عضویت     ورود  از قسم خوردن بپرهیزید، چرا كه كالا را تلف مى‏كند و بركت را از بین مى‏برد. حضرت علي (ع) جمعه، 26 مرداد ماه ، 1397

کانال تلگرام


تبلیغات متنی


منوی سایت


جست و جو در بانك مقالات




مقالات جدید
تعداد شاخه ها: 30 عدد
تعداد مقالات: 758 عدد 1: آزمايشگاه الكترونيك - استاد محرري 
[دفعات مشاهده : 4835 بار]
 2: جزوه درس مخابرات 1 - دانشگاه فردوسي مشهد 
[دفعات مشاهده : 4786 بار]
 3: كتاب مهندسي تاسيسات / دكتر كلهر 
[دفعات مشاهده : 4818 بار]
 4: مجموع اعوجاج هارمونیک T.H.D 
[دفعات مشاهده : 4766 بار]
 5: كتاب "روش طراحي و تحليل مدارهاي الكترونيك" 
[دفعات مشاهده : 11189 بار]
 6: ادوات نوري 
[دفعات مشاهده : 4825 بار]
 7: كتاب اصول تلويزيون رنگي 
[دفعات مشاهده : 6398 بار]
 8: پروژه دزد گیر با سنسور تشخیص حرکت pir با قفل رمز الکترونیکی 
[دفعات مشاهده : 6012 بار]
 9: جزوه اندازه گیری الکتریکی 
[دفعات مشاهده : 5160 بار]
 10: سوالات کنکور کارشناسی ارشد 90 / گروه مهندسی برق 
[دفعات مشاهده : 7127 بار]
 11: آرشيو پروژه هاي 8051 
[دفعات مشاهده : 5874 بار]
 12: آرشيو پروژه هاي AVR‌ (ـ‌ 126 پروژه ) 
[دفعات مشاهده : 13576 بار]
 13: آموزش برنامه نويسي و كار با ماژول Sim300CZ با ميكروكنترلر AVR 
[دفعات مشاهده : 9896 بار]
 14: سوالات كنكور كارشناسي ناپيوسته 89 - گروه برق 
[دفعات مشاهده : 7285 بار]
 15: ارتباط میکروهای PIC با کمک پروتکل سریال I2C و نکات تکمیلی ماژول MSSP 
[دفعات مشاهده : 5408 بار]
 16: ساعت تقویم با کمک میکروکنترلر PIC و DS1307 
[دفعات مشاهده : 5977 بار]
 17: تایمرهای چند زمانه ( ساعت مرکزی ) با میکرو PIC 
[دفعات مشاهده : 5428 بار]
 18: ساعت تقویم شمسی مجهز به آلارم روزانه و هفتگی 
[دفعات مشاهده : 6378 بار]
 19: صفحه کلید وقفه ای با میکروکنترلر PIC 
[دفعات مشاهده : 5109 بار]
 20: کرنومتر دیجیتال با میکروکنترلر PIC با قابلیت ثبت 3 زمان 
[دفعات مشاهده : 5226 بار]
 21: طراحی و ساخت مدارات انتقال دیتا به وسیله ماژول های HMTR + پروژه چت متنی بیسیم 
[دفعات مشاهده : 8031 بار]
 22: سنسورهای حرارت 
[دفعات مشاهده : 7389 بار]
 23: کنترل وسایل برقی از طریق خط تلفن با میکروکنترلر PIC 
[دفعات مشاهده : 7399 بار]
 24: ارتباط سریال UART بین دو میکروکنترلر PIC 
[دفعات مشاهده : 5675 بار]
 25: گزارش کار آموزی : ماشین های ابزار کنترل عددی CNC 
[دفعات مشاهده : 5967 بار]
 26: کنترل وسایل به کمک ماژول HM-TR و میکرو AVR 
[دفعات مشاهده : 8383 بار]
 27: طراحی و ساخت کنترل از راه دور 1 کانال با کمک ماژول های ASK و آی سی های سری PT 
[دفعات مشاهده : 6977 بار]
 28: مجموعه رفرنس های آموزشی میکروکنترلرهای سری dsPIC 
[دفعات مشاهده : 6437 بار]
 29: مجموعه پروژه های میکروکنترلر AVR با کامپایلر بسکام 
[دفعات مشاهده : 11558 بار]
 30: طراحی و ساخت مدارات انتقال دیتا به وسیله ماژول های HM-T و HM-R با میکرو AVR 
[دفعات مشاهده : 9454 بار]


آخرين مطالب ارسال شده
· روش طراحي و تحليل مدارهاي الكترونيك[ 1 نظر شما چيه؟ - 38809 مشاهده ]
· اصول تلويزيون رنگي[ 0 نظر شما چيه؟ - 17537 مشاهده ]
· نرم افزار DigSilent[ 2 نظر شما چيه؟ - 20910 مشاهده ]
· AVR Tech Lib 2011[ 1 نظر شما چيه؟ - 24428 مشاهده ]
· مجموعه كنفرانس هاي سالينه ميكروچيپ / سال 2009 /[ 2 نظر شما چيه؟ - 22073 مشاهده ]
· آموزش كار با ماژول SIM300CZ با ميكرو AVR[ 4 نظر شما چيه؟ - 24506 مشاهده ]
· مجموعه فيلم هاي آموزشي نرم افزار Altium Designer[ 0 نظر شما چيه؟ - 37819 مشاهده ]
·  سوالات كنكور كارشناسي ناپيوسته 89 - گروه برق[ 0 نظر شما چيه؟ - 19372 مشاهده ]
· لينك دانلود مجله October 2010 / SERVO[ 0 نظر شما چيه؟ - 16598 مشاهده ]
· Catalog CA 01 (10/2009) / International version[ 0 نظر شما چيه؟ - 20573 مشاهده ]

[ موارد بیشتر در بخش اخبار و تازه ها ]


زبان
انتخاب زبان نمایش :



مطالب جديد
· 1: ANSI/IEEE Std 997-1985
· 2: Applied Statistics Using SPSS, STATISTICA,MATLAB and R
· 3: تعيين محل نصب مناسب آنتن بر روي ترانسفورماتور جهت تشخيص جابجايي محوري سيمپيچ فشار ضعيف به كمك امواج
· 4: Programming with Data A Guide to the S Language
· 5: IEEE Std 960-1993-A-
· 6: HVDC.and.FACTS.Controllers.Applications.of.Static.Converters.in.Power.Systems.Kluwer.Academic.Publis
· 7: پردازش صداي قلبي مبتني بر آناليز زمان - فركانسي
· 8: Self-Adaptive Handoff Management for Mobile Streaming Continuity
· 9: آشکارسازی راداری GLR در محیط تداخل Auto-Regressive با طیف گوسی
· 10: IEEE Std 58-1978
· 11: نقشه و راهنمای تعمیرات ویدئو مدل SV-600G-HACO
· 12: LED-Based Projection Systems
· 13: ساخت هستان شناسي از روی متون زبان طبيعي
· 14: A 10-bit Low-Power Small-Area High-Swing CMOS DAC
· 15: A Method of Measuring Eye Movemnent Using a Scieral Search Coil in a Magnetic Field
· 16: يک روش ترکيبی جديد برای نمايه گذاری و بازيابی تصاوير با استفاده از روش همبسته نگار موجک، بازخورد
· 17: بررسی یک حادثه
· 18: A Simple PID Controller with Adaptive Parameter in a dsPIC; Case of Study
· 19: MEMS
· 20: اتصال زمین در شبکه های توزیع و پیشنهادات اصلاحی جهت بهبود سیستم حفاظتی

[ آخرين مقالات ]


ارسال مقاله به سايت

 



...::: Ir-Micro.Com :::... :: View topic - ساعت واقعي با PIC ???


ساعت واقعي با PIC ???
Goto page Previous  1, 2, 3, 4  Next
 
Post new topic   Reply to topic    ...::: Ir-Micro.Com :::... Forum Index -> برنامه نویسی و مباحث مربوط به PIC Printable Version
View previous topic :: View next topic  
Author Message
Hamed
مدیر سایت - Site Admin
مدیر سایت - Site Admin

Joined: Mar 10, 2006
Posts: 1351




Location: تهران
702870.36 امتیاز

Items

Status: Offline

PostPosted: جمعه، 9 فروردين ماه ، 1387 22:36:58 Reply with quote Scroll Down to Next postGo to last Post of Page

saber2q wrote:

منظورتون از كريستال RTC اينه كه يك كريستال به ميكرو وصل كنم و يك كريستال به RTC ؟ البته من اينكار رو يكبار با نا اميدي و بدون دقت انجام دادم و يك كريستال 4 مگاهرتزي به همراه 2تا خازن 27pf به RTC وصل كردم و دقيقا مشابهش هم به خود ميكرو وصل بود.


کریستالی که چه به 1307 و چه به ورودی کلاک تایمر 1 متصل میشه ، کریستال ساعتی هست که فرکانسش 32768 هرتز هست . احتمالا با قرار دادن این کریستال مشکل تغییر نکردن مقادیر حل میشه .


__________________

Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
payam1825
کاربر فعال
کاربر فعال

Joined: May 28, 2007
Posts: 223





358118.98 امتیاز

Items

Status: Offline

PostPosted: يكشنبه، 11 فروردين ماه ، 1387 10:50:33 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

با سلام خدمت دوستان عزيز
من با برنامه نوشته شده يكمي مشكل دارم
در صورت امكان منو راهنمايي كنيد
برنامه code studio من از خط I2CREAD SDA,SCL,$D1,$00,[STR DB0] اشكال ميگيره و برنامه code نميشه دليلش چيه ؟
ضمنا يكي لطف كنه و اين خط رو براي من توضيح بده كه هر گزينه معادل كدوم يكي از از اعداد تاريخ و ساعت هستش ( گزينه هاي داخل كروشه)؟
' Set time & date to 21:58:00 Tuesday 6th of July 2004
I2CWRITE SDA,SCL,$D0,$00,[$00,$58,$21,$00,$6,$7,$4,$90]
در ضمن اگه يكي لطف كنه نقشه و برنامه اين ساعت رو با كليد هاي كنترلي كه بحسش شده بگذاره خيلي خيلي ممنون ميشم
با تشكر

Back to top
View user's profile Send private message
payam1825
کاربر فعال
کاربر فعال

Joined: May 28, 2007
Posts: 223





358118.98 امتیاز

Items

Status: Offline

PostPosted: يكشنبه، 11 فروردين ماه ، 1387 11:47:21 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

سلام
آقا من درست مثل نقشه داده شده رو در proteus 7.1 كشيدم و لي اجرا نميشه و lcd چيزي رو نشون نميده
لطفا يكي فايل proteus رو برام بگذاره
ممنون

Back to top
View user's profile Send private message
Arash_em
مدیر سایت - Site Admin
مدیر سایت - Site Admin

Joined: Mar 12, 2006
Posts: 2230




Location: ايران
282074.08 امتیاز

Items

Status: Offline

PostPosted: يكشنبه، 11 فروردين ماه ، 1387 15:22:48 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

payam1825 wrote:
سلام
آقا من درست مثل نقشه داده شده رو در proteus 7.1 كشيدم و لي اجرا نميشه و lcd چيزي رو نشون نميده
لطفا يكي فايل proteus رو برام بگذاره
ممنون


سلام.
پيام جان كاش تاپيك را از اول مي خوندي...
در بالاتر توضيح دادم كه يك مقدار از دستور I2cread جا افتاده و درستش :
I2CREAD SDA,SCL,$D1,$00,[STR DB0\8]
هست...
مقدارها هم در دستور نوشتن از سمت چپ به راست به اين شكل مي باشد :
ثانيه
دقيقه
ساعت
روز هفته
روز
ماه
سال

اين مدار در عمل 100 درصد كار مي كند و دوستان هم جواب گرفتند...
موفق و پيروز باشيد.


__________________
زهر است عطاي خلق هر چند كه دوا باشد*

حاجت ز كه مي خواهي جايي كه خدا باشد *
Back to top
View user's profile Send private message Send e-mail Visit poster's website
saber2q
کاربر فعال
کاربر فعال

Joined: Feb 20, 2008
Posts: 210




Location: tehran
216161.02 امتیاز

Items

Status: Offline

PostPosted: دوشنبه، 12 فروردين ماه ، 1387 03:41:40 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

Hamed wrote:
saber2q wrote:

منظورتون از كريستال RTC اينه كه يك كريستال به ميكرو وصل كنم و يك كريستال به RTC ؟ البته من اينكار رو يكبار با نا اميدي و بدون دقت انجام دادم و يك كريستال 4 مگاهرتزي به همراه 2تا خازن 27pf به RTC وصل كردم و دقيقا مشابهش هم به خود ميكرو وصل بود.


کریستالی که چه به 1307 و چه به ورودی کلاک تایمر 1 متصل میشه ، کریستال ساعتی هست که فرکانسش 32768 هرتز هست . احتمالا با قرار دادن این کریستال مشکل تغییر نکردن مقادیر حل میشه .

حامد جان منظور از ورودي كلاك 1 چيه؟
من چند تا كريستال بايد وصل كنم؟
منظورت اينه كه يك كريستال 4 مگاهرتز به ميكرو وصل كنم و يك كريستال 33.768 به rtc وصل كنم؟؟؟؟؟

Back to top
View user's profile Send private message Send e-mail Yahoo Messenger
Hamed
مدیر سایت - Site Admin
مدیر سایت - Site Admin

Joined: Mar 10, 2006
Posts: 1351




Location: تهران
702870.36 امتیاز

Items

Status: Offline

PostPosted: دوشنبه، 12 فروردين ماه ، 1387 08:45:44 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

منظوزم اسیلاتور خارجی برای تایمر 1 هست که زمانی که از تایمر 1 برای تاخیر استفاده می کنید این کریستال استفاده میشه (مثل ساعتی که با سون سگمنت هست) .
اما واسه حالتی که از RTC خارجی مثل 1307 هم هاستفاده می کنید ، باز هم باید این کریستال 32738 هرتز رو به پایه های مربوط به اسیلاتورش وصل کنید .
کریستال 4 مگ هم برای میکرو وصل میشه .


__________________

Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
saber2q
کاربر فعال
کاربر فعال

Joined: Feb 20, 2008
Posts: 210




Location: tehran
216161.02 امتیاز

Items

Status: Offline

PostPosted: دوشنبه، 12 فروردين ماه ، 1387 18:23:56 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

حامد جان مشكل حل شد
كريستال 32768 رو به RTC وصل كردم البته فيوز WDT رو قبلا خاموش نميكردم و اينكار رو هم كردم و ساعت به خوبي كار كرد.
حالا ميخوام سعي كنم 3تا كليد تنظيم براش بنويسم تا بتوتم ساعت و تقويم رو تنظيم كنم و احتمالا بازم برام سوال پيش مياد و مزاحمتون ميشم.

ممنون

Back to top
View user's profile Send private message Send e-mail Yahoo Messenger
payam1825
کاربر فعال
کاربر فعال

Joined: May 28, 2007
Posts: 223





358118.98 امتیاز

Items

Status: Offline

PostPosted: چهارشنبه، 14 فروردين ماه ، 1387 15:19:06 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

سلام آرش جان
بابت جوابت ممنون
با توجه به نكته اي كه گفتي مشكل اول برطرف شد ولي برنامه micro code studio من حالا از اين خط ايراد ميگيره :
CMCON = %00000111
و پيغام زير رو ميده :
undefined symbol "cmcon"
ايراد از كجا ميتونه باشه ؟
در ضمن كسي نقشه و برنامه اين ساعت رو با كليد هاي كنترلي نداره كه بشه ساعت و تاريخ رو باهاش تنظيم كرد ؟
با تشكر

Back to top
View user's profile Send private message
Hamed
مدیر سایت - Site Admin
مدیر سایت - Site Admin

Joined: Mar 10, 2006
Posts: 1351




Location: تهران
702870.36 امتیاز

Items

Status: Offline

PostPosted: چهارشنبه، 14 فروردين ماه ، 1387 22:53:56 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

در مورد فیوز wdt نیازی به این کار نبود ، چون pbp خودش اتومات قبل از سر ریز شدن اونو ریست می کنه . مگه اینکه خودتون تو برنامه تعریف کنید که این ریست شدن انجام نشه .
واسه CMCON هم : راستش هنوز این برنامه رو نخوندم که چه جوری هست و البته نمی دونم چرا تو این برنامه از این خط برنامه استفاده شده .
اما CMCON رجیستر رزرو شده هست که برای تنظیمات مقایسه گر های داخلی به کار میره که اجازه استفاده این نام برای یک متغیر یا ... وجود نداره . و تنها واسه میکرویی قابل استفاده هست که این رجیستر داخلی رو داره . مثلا 16F877A داره ، اما 16F877 نداره که باید دقت کنید تا ارور داده نشه .


__________________

Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
saber2q
کاربر فعال
کاربر فعال

Joined: Feb 20, 2008
Posts: 210




Location: tehran
216161.02 امتیاز

Items

Status: Offline

PostPosted: پنجشنبه، 15 فروردين ماه ، 1387 00:15:43 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

من بالاخره تونستم منوي تنظيمات رو به همراه دماسنج به برنامه اضافه كنم. البته به دليل آماتور بودم حجم برنامه زياد شده ولي درست كار ميكنه اساتيد لطفا ببينيد چيكارش ميشه كرد...
سنسور lm35 رو به Ra.0 وصل كردم و 2تا كليد قرار دادم كه به rd2 و rd3 وصله البته حداقل و حداكثر دما رو هم اين برنامه ثبت ميكنه كه با زدن يكي از كليد ها به مدت 3ثانيه نشونش ميده همچنين با نگه داشتن كليد منو به مدت 3ثانيه وارد قسمت تنظيمات ساعت و تاريخ ميشه.

ببينيد چطور ميشه حجمش رو كم كرد...
Code:

include"modedefs.bas"
DEFINE LCD_DREG PORTD
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 1
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 0
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
define adc_bits 10
define adc_clock 3
lcdout $fe,$40,$10,$06,$09,$08,$08,$09,$06,$00
TRISC= %11111111
h var byte
mi var byte
d var byte
mo var byte
y var byte
i var byte
j var byte
e var byte
f var byte
a var byte
c var byte
up var byte
down var byte
h = $12
mi = $58
d = $4
mo = $7
y = $6
hs var byte
mis var byte
ds var byte
mos var byte
ys var byte
w0 var word
bmenu var portd.2
bset var portd.3
SDA var PORTC.0
SCL var PORTC.1
DB0 var byte[8]
CMCON = %00100111
adcon1.7 = 1
adcin 0,w0
w0 = (w0*5)/10
down = w0
goto write_1307
read_1307:
adcin 0,w0
w0 = (w0*5)/10
gosub tempcheck
I2CREAD SDA,SCL,$D1,$00,[STR DB0\8]
lcdout $fe,1,"Time=",hex2 DB0[2],":",hex2 DB0[1],":",hex2 db0[0]
lcdout $fe,$c0,hex2 DB0[4],"/",hex2 DB0[5],"/20",hex2 db0[6],"   ",dec w0,0
for i = 0 to 100 step 1
if bmenu = 1 then delay
if bset = 1 then gosub tempddisplay
pause 10
next
goto read_1307
end
Write_1307:
' Set time & date to 21:58:00 Tuesday 6th of July 2004
I2CWRITE SDA,SCL,$D0,$00,[00,mi,h,$00,d,mo,y,$90]
pause 10
goto read_1307
    delay:
    lcdout $fe,1," Hold For 3 sec "
    lcdout $fe,$c0,"  To Open Menu  "
    j = 0
    for j = 0 to 300 step 1
    if bmenu = 0 then read_1307
    pause 10
    next
sethour:
  lcdout $fe,1,"Set Hour"
  if bmenu = 1 then gosub delayy
  lookdown db0[2],[$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$10,$11,$12,$13,$14,$1 5,$16,$17,$18,$19,$20,$21,$22,$23,$24],f
  hs = f
  sethour2:
  for i = 0 to 10 step 1
  lcdout $fe,1,"Set Hour"
  lcdout $fe,$c0,"    ",dec2 hs,":",hex2 DB0[1],":","00"
  if bset = 1 then hsset
  if bmenu = 1 then setminut
  pause 60
  next
  for i = 0 to 7 step 1
  lcdout $fe,1,"Set Hour"
  lcdout $fe,$c0,"    ","  ",":",hex2 DB0[1],":","00"
  if bset = 1 then hsset
  if bmenu = 1 then setminut
  pause 60
  next
  goto sethour2
  hsset:
  hs = hs + 1
  if hs > 24 then hs = 1
  pause 300
  goto sethour2
setminut:
  lcdout $fe,1,"Set Minute"
  if bmenu = 1 then gosub delayy
  lookdown db0[1],[$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$10,$11,$12,$13,$14,$1 5,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32, $33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$5 0,$51,$52,$53,$54,$55,$56,$57,$58,$59,$60],f
  mis = f
  setminut2:
  for i = 0 to 10 step 1
  lcdout $fe,1,"Set Minute"
  lcdout $fe,$c0,"    ",dec2 hs,":",dec2 mis,":","00"
  if bset = 1 then miset
  if bmenu = 1 then setday
  pause 60
  next
  for i = 0 to 7 step 1
  lcdout $fe,1,"Set Minute"
  lcdout $fe,$c0,"    ",dec2 hs,":","  ",":","00"
  if bset = 1 then miset
  if bmenu = 1 then setday
  pause 60
  next
  goto setminut2
  miset:
  mis = mis + 1
  if mis > 59 then mis = 0
  pause 300
  goto setminut2
setday:
  lcdout $fe,1,"Set Day"
  if bmenu = 1 then gosub delayy
  lookdown db0[4],[$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$10,$11,$12,$13,$14,$1 5,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31],f
  lookdown db0[5],[$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$10,$11,$12],e
  mos = e
  ds = f
  setday2:
  for i = 0 to 10 step 1
  lcdout $fe,1,"Set Day"
  lcdout $fe,$c0,"    ",dec2 ds,":",hex2 DB0[5],":",hex2 db0[6]
  if bset = 1 then dset
  if bmenu = 1 then setmonth
  pause 60
  next
  for i = 0 to 7 step 1
  lcdout $fe,1,"Set Day"
  lcdout $fe,$c0,"    ","  ",":",hex2 DB0[5],":",hex2 db0[6]
  if bset = 1 then dset
  if bmenu = 1 then setmonth
  pause 60
  next
  goto setday2
  dset:
  ds = ds + 1
  if mos > 6 and ds > 30 then ds = 1
  if mos < 7 and ds > 31 then ds = 1
  pause 300
  goto setday2
setmonth:
  lcdout $fe,1,"Set Month"
  if bmenu = 1 then gosub delayy
  lookdown db0[5],[$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$10,$11,$12],f
  mos = f
  setmonth2:
  for i = 0 to 10 step 1
  lcdout $fe,1,"Set Month"
  lcdout $fe,$c0,"    ",dec2 ds,":",dec2 mos,":",hex2 db0[6]
  if bset = 1 then moset
  if bmenu = 1 then setyear
  pause 60
  next
  for i = 0 to 7 step 1
  lcdout $fe,1,"Set Month"
  lcdout $fe,$c0,"    ",dec2 ds,":","  ",":",hex2 db0[6]
  if bset = 1 then moset
  if bmenu = 1 then setyear
  pause 60
  next
  goto setmonth2
  moset:
  mos = mos + 1
  if mos > 12 then mos = 1
  pause 300
  goto setmonth2
setyear:
  lcdout $fe,1,"Set Year"
  if bmenu = 1 then gosub delayy
  lookdown db0[6],[$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$10,$11,$12,$13,$14,$1 5,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32, $33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$5 0,$51,$52,$53,$54,$55,$56,$57,$58,$59,$60,$61,$62,$63,$64,$65,$66,$67, $68,$69,$70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$80,$81,$82,$83,$84,$8 5,$86,$87,$88,$89,$90,$91,$92,$93,$94,$95,$96,$97,$98,$99],f
  ys = f
  setyear2:
  for i = 0 to 10 step 1
  lcdout $fe,1,"Set Year"
  lcdout $fe,$c0,"    ",dec2 ds,":",dec2 mos,":",dec2 ys
  if bset = 1 then yset
  if bmenu = 1 then finishset
  pause 60
  next
  for i = 0 to 7 step 1
  lcdout $fe,1,"Set Year"
  lcdout $fe,$c0,"    ",dec2 ds,":",dec2 mos,":","  "
  if bset = 1 then yset
  if bmenu = 1 then finishset
  pause 60
  next
  goto setyear2
  yset:
  ys = ys + 1
  if ys > 99 then ys = 00
  pause 300
  goto setyear2   
     finishset:
         for i = 0 to 3 step 1
         lcdout $fe,1,"  Time & Date   "
         lcdout $fe,$c0,"  Set Complete  "
         pause 350
         next
         lcdout $fe,1,"Design By Saber"
         pause 500
   lookup hs,[$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$10,$11,$12,$13,$14,$15,$1 6,$17,$18,$19,$20,$21,$22,$23,$24],h
   lookup mis,[$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$10,$11,$12,$13,$14,$15,$ 16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33 ,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50, $51,$52,$53,$54,$55,$56,$57,$58,$59,$60],mi
   lookup ds,[$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$10,$11,$12,$13,$14,$15,$1 6,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31],d
   lookup mos,[$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$10,$11,$12],mo
   lookup ys,[$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$10,$11,$12,$13,$14,$15,$1 6,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33, $34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$5 1,$52,$53,$54,$55,$56,$57,$58,$59,$60,$61,$62,$63,$64,$65,$66,$67,$68, $69,$70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$80,$81,$82,$83,$84,$85,$8 6,$87,$88,$89,$90,$91,$92,$93,$94,$95,$96,$97,$98,$99],y
   goto write_1307
     delayy:
     if bmenu = 0 then return
     pause 200
     goto delayy
tempcheck:
if w0 > up then up = w0
if w0 < down then down = w0
return
tempddisplay:
lcdout $fe,1,"   Temp = ",dec w0,0
lcdout $fe,$c0,"Up:",#up,0," / ","Down:",#down,0
Pause 3000
return

Back to top
View user's profile Send private message Send e-mail Yahoo Messenger
payam1825
کاربر فعال
کاربر فعال

Joined: May 28, 2007
Posts: 223





358118.98 امتیاز

Items

Status: Offline

PostPosted: شنبه، 17 فروردين ماه ، 1387 07:41:13 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

صابر جان از زحمتي كه كشيدي خيلي ممنون
فقط يه لطفي كن و شماتيك مداري كه ازش استفاده كردي رو برامون بگذار
راستي تو برنامت فقط port c رو از لحاظ ورودي يا خروجي تعريف كردي و بقيه پورت ها رو تعيين نكردي ؟؟
بازم از زحمتي كه كشيدي ممنون

Back to top
View user's profile Send private message
MehdiArt
عضو افتخاری
عضو افتخاری

Joined: Nov 24, 2007
Posts: 394




Location: مشهد
95991.80 امتیاز

Items

Status: Offline

PostPosted: شنبه، 17 فروردين ماه ، 1387 09:42:28 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

سلام ...
آفرين صابر خان aa)
خوشم مياد مثل خودمي !!!
به يه چيزي كه پيله كني تا آخرش ميري Wink
از شوخي گذشته !به اين پشتكارت بايد احسن گقت !!!
انشالله هميشه موفق و پيزور باشيد ....


__________________


Victory is not never to fall, It is to rise after every fall[/i:
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Arash_em
مدیر سایت - Site Admin
مدیر سایت - Site Admin

Joined: Mar 12, 2006
Posts: 2230




Location: ايران
282074.08 امتیاز

Items

Status: Offline

PostPosted: شنبه، 17 فروردين ماه ، 1387 19:01:45 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

سلام بر همگي عزيزان.
صابر جان خسته نباشي...ممنون كه برنامت را اينجا قرار دادي تا ديگر دوستان هم استفاده كنند.
به به مهدي آقاي گل...قربان كم پيداين...حال ما پير مردا را هم كه نمي پرسيد...تاپيك فيلد باس هم كه به خاطرات پيوست...
مهدي جان بيشتر به ما سر بزنيد...خوشحال مي شيم...
موفق و پيروز باشيد.


__________________
زهر است عطاي خلق هر چند كه دوا باشد*

حاجت ز كه مي خواهي جايي كه خدا باشد *
Back to top
View user's profile Send private message Send e-mail Visit poster's website
payam1825
کاربر فعال
کاربر فعال

Joined: May 28, 2007
Posts: 223





358118.98 امتیاز

Items

Status: Offline

PostPosted: سه شنبه، 20 فروردين ماه ، 1387 13:57:41 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

سلام صابر جان
يه لطفي كن و شماتيك برنامت رو به همراه سورس برنامت اينجا برام بگذار
بد جوري بهش احتياج دارم
ممنون

Back to top
View user's profile Send private message
saber2q
کاربر فعال
کاربر فعال

Joined: Feb 20, 2008
Posts: 210




Location: tehran
216161.02 امتیاز

Items

Status: Offline

PostPosted: سه شنبه، 27 فروردين ماه ، 1387 23:51:27 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

خواهش ميكنم دوستان واقعا بدون كمك شما ها نميتونستم هرچند كه وقت زيادي گذاشتم البته تازه كارم ديگه دارم تمرين ميكنم ايشالا روان تر كه بشم بتونم برنامه هاي واقعا مفيد بنويسم تا همه استفاده كنن ازش. اين برنامه اي كه نوشتم همه شما اساتيد براتون مثل آب خوردنه
بازم تشكر

Back to top
View user's profile Send private message Send e-mail Yahoo Messenger
saber2q
کاربر فعال
کاربر فعال

Joined: Feb 20, 2008
Posts: 210




Location: tehran
216161.02 امتیاز

Items

Status: Offline

PostPosted: سه شنبه، 27 فروردين ماه ، 1387 23:58:07 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

payam1825 wrote:
سلام صابر جان
يه لطفي كن و شماتيك برنامت رو به همراه سورس برنامت اينجا برام بگذار
بد جوري بهش احتياج دارم
ممنون

پيام جان شماتيكش همون شماتيك صفحه اوله
Click to view this image at its original size
Click on the image to view it at its original size

اين برنامه اي هم كه دوباره گذاشتم با كمي تغييرات (البته كلي تغييرات) يعني سعي كردم حجمش رو كمتر كنم كه اگه از اين استفاده كنيد بهتر عمل ميكنه و به نظر ميرسه كاملا بي مشكل باشه
توي برنامه فقط tric c تعريف شده و پورت c به عنوان ورودي تعريف شده و بقيه پورت ها چون قراره به عنوان خروجي باشند و پيشفرض pic هم همون خروجي هست پس نيازي به تعريف نداره.

اين برنامه رو اجرا كنيد بهتره:

Code:
include"modedefs.bas"
DEFINE LCD_DREG PORTD
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 1
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 0
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
define adc_bits 10
define adc_clock 3
lcdout $fe,$40,$10,$06,$09,$08,$08,$09,$06,$00
TRISC= %11111111
w0 var word
bmenu var portd.2 : bset var portd.3
SDA var PORTC.0 : SCL var PORTC.1
DB0 var byte[8]
second var byte : minute var byte : hour var byte : day var byte : month var byte : year var byte
se var byte : mi var byte : ho var byte : da var byte : mo var byte : ye var byte
up var byte : down var byte
i var byte : j var byte
CMCON = %00100111
adcon1.7 = 1
adcin 0,w0
w0 = (w0*5)/10
down = w0
up = w0
   read_13071:
       adcin 0,w0
       w0 = (w0*5)/10
       gosub tempcheck
       I2CREAD SDA,SCL,$D1,$00,[STR DB0\8]
       gosub loockdowns
       if se > 60 then notset
       lcdout $fe,1,"Time=",hex2 DB0[2],":",hex2 DB0[1],":",hex2 db0[0]
       lcdout $fe,$c0,hex2 DB0[4],"/",hex2 DB0[5],"/20",hex2 db0[6],"   ",dec w0,0
       if bmenu = 1 then delay
       if bset = 1 then gosub tempddisplay
       pause 1000
   read_1307:
       adcin 0,w0
       w0 = (w0*5)/10
       gosub tempcheck
       I2CREAD SDA,SCL,$D1,$00,[STR DB0\8]
       lcdout $fe,1,"Time=",hex2 DB0[2],":",hex2 DB0[1],":",hex2 db0[0]
       lcdout $fe,$c0,hex2 DB0[4],"/",hex2 DB0[5],"/20",hex2 db0[6],"   ",dec w0,0
       if bmenu = 1 then delay
       if bset = 1 then gosub tempddisplay
       pause 350
       if bmenu = 1 then delay
       if bset = 1 then gosub tempddisplay
       pause 350
       if bmenu = 1 then delay
       if bset = 1 then gosub tempddisplay
       pause 300
       goto read_1307
write_1307:
       I2CWRITE SDA,SCL,$D0,$00,[second,minute,hour,$00,day,month,year,$90]
       pause 10
       return
loockdowns:
lookdown db0[0],[$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$10,$11,$12,$13,$14,$1 5,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32, $33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$5 0,$51,$52,$53,$54,$55,$56,$57,$58,$59,$60,$61,$62,$63,$64,$65,$66,$67, $68,$69,$70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$80,$81,$82,$83,$84,$8 5,$86,$87,$88,$89,$90,$91,$92,$93,$94,$95,$96,$97,$98,$99],se
lookdo wn db0[1],[$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$10,$11,$12,$13,$14,$1 5,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32, $33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$5 0,$51,$52,$53,$54,$55,$56,$57,$58,$59,$60],mi
lookdown db0[2],[$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$10,$11,$12,$13,$14,$1 5,$16,$17,$18,$19,$20,$21,$22,$23,$24],ho
lookdown db0[4],[$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$10,$11,$12,$13,$14,$1 5,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31],da
lookdown db0[5],[$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$10,$11,$12],mo
look down db0[6],[$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$10,$11,$12,$13,$14,$1 5,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32, $33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$5 0,$51,$52,$53,$54,$55,$56,$57,$58,$59,$60,$61,$62,$63,$64,$65,$66,$67, $68,$69,$70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$80,$81,$82,$83,$84,$8 5,$86,$87,$88,$89,$90,$91,$92,$93,$94,$95,$96,$97,$98,$99],ye
return
              notset:
              I2CWRITE SDA,SCL,$D0,$00,[$00,$00,$01,$00,$01,$01,$08,$90]
              pause 10
              for i = 0 to 70 step 1
              lcdout $fe,1," Clock Not Set  "
              lcdout $fe,$c0,"Press Key to set"
              pause 10
              if bmenu = 1 or bset = 1 then adjust
              next
              for i = 0 to 50 step 1
              lcdout $fe,1
              pause 10
              if bmenu = 1 or bset = 1 then adjust
              next
              goto notset
        delay:
        lcdout $fe,1," Hold For 3 sec "
        lcdout $fe,$c0,"  To Open Menu  "
        for j = 0 to 300 step 1
        if bmenu = 0 then read_1307
        pause 10
        next
        goto adjust
adjust:
lcdout $fe,1
if bmenu = 1 then gosub buttondelay
I2CWRITE SDA,SCL,$D0,$00,[$00,minute,hour,$00,day,month,year,$90]
pause 10
gosub loockdowns
sethour:
for i = 0 to 5 step 1
if ho > 23 then ho = 0
lcdout $fe,1,"  ",":",dec2 mi
lcdout $fe,$c0,dec2 da,"/",dec2 mo,"/20",dec2 ye
if bset = 1 then : pause 200 : ho = ho + 1 : goto h1
if bmenu = 1 then minuntadjust
pause 40
next
h1:
for i = 0 to 20 step 1
if ho > 23 then ho = 0
lcdout $fe,1,dec2 ho,":",dec2 mi
lcdout $fe,$c0,dec2 da,"/",dec2 mo,"/20",dec2 ye
if bset = 1 then : pause 200 : ho = ho + 1 : goto h1
if bmenu = 1 then minuntadjust
pause 30
next
goto sethour
  minuntadjust:
  if bmenu = 1 then gosub buttondelay
  minuntadjust1:
  for i = 0 to 5 step 1
  if mi > 59 then mi = 0
  lcdout $fe,1,dec2 ho,":","  "
  lcdout $fe,$c0,dec2 da,"/",dec2 mo,"/20",dec2 ye
  if bset = 1 then : pause 200 : mi = mi + 1 : goto m1
  if bmenu = 1 then dayadjust:
  pause 40
  next
  m1:
  for i = 0 to 20 step 1
  if mi > 59 then mi = 0
  lcdout $fe,1,dec2 ho,":",dec2 mi
  lcdout $fe,$c0,dec2 da,"/",dec2 mo,"/20",dec2 ye
  if bset = 1 then : pause 200 : mi = mi + 1 : goto m1
  if bmenu = 1 then dayadjust:
  pause 30
  next
  goto minuntadjust1
     dayadjust:
     if bmenu = 1 then gosub buttondelay       
     for i = 0 to 5 step 1
     if mo > 6 and da > 30 then da = 1
     if mo < 7 and da > 31 then da = 1
     lcdout $fe,1,dec2 ho,":",dec2 mi
     lcdout $fe,$c0,"  ","/",dec2 mo,"/20",dec2 ye
     if bset = 1 then : pause 200 : da = da + 1 : goto d1
     if bmenu = 1 then monthset
     pause 40
     next
     d1:
     for i = 0 to 20 step 1
     if mo > 6 and da > 30 then da = 1
     if mo < 7 and da > 31 then da = 1
     lcdout $fe,1,dec2 ho,":",dec2 mi
     lcdout $fe,$c0,dec2 da,"/",dec2 mo,"/20",dec2 ye
     if bset = 1 then : pause 200 : da = da + 1 : goto d1
     if bmenu = 1 then monthset
     pause 30
     next
     goto dayadjust
        monthset:
        if bmenu = 1 then gosub buttondelay
        for i = 0 to 5 step 1
        if mo > 12 then mo = 1
        lcdout $fe,1,dec2 ho,":",dec2 mi
        lcdout $fe,$c0,dec2 da,"/","  ","/20",dec2 ye
        if bset = 1 then : pause 200 : mo = mo + 1 : goto mo1
        if bmenu = 1 then yearset
        pause 40
        next
        mo1:
        for i = 0 to 20 step 1
        if mo > 12 then mo = 1
        lcdout $fe,1,dec2 ho,":",dec2 mi
        lcdout $fe,$c0,dec2 da,"/",dec2 mo,"/20",dec2 ye
        if bset = 1 then : pause 200 : mo = mo + 1 : goto mo1
        if bmenu = 1 then yearset
        pause 30
        next
        goto monthset
            yearset:
            if bmenu = 1 then gosub buttondelay
            for i = 0 to 5 step 1
            if ye > 99 then ye = 0
            lcdout $fe,1,dec2 ho,":",dec2 mi
            lcdout $fe,$c0,dec2 da,"/",dec2 mo,"/    "
            if bset = 1 then : pause 200 : ye = ye + 1 : goto y1
            if bmenu = 1 then finishset
            pause 40
            next
            y1:
            for i = 0 to 20 step 1
            if ye > 99 then ye = 0
            lcdout $fe,1,dec2 ho,":",dec2 mi
            lcdout $fe,$c0,dec2 da,"/",dec2 mo,"/20",dec2 ye
            if bset = 1 then : pause 200 : ye = ye + 1 : goto y1
            if bmenu = 1 then finishset
            pause 30
            next 
            goto yearset               
                     buttondelay:
                     if bmenu = 0 then return
                     goto buttondelay
              finishset:
              lcdout $fe,1,"  Set Complete":
              gosub convertcod
              second = 0
              gosub write_1307
              pause 500
              goto read_1307
convertcod:
lookup ho,[$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$10,$11,$12,$13,$14,$15,$1 6,$17,$18,$19,$20,$21,$22,$23,$24],hour
lookup mi,[$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$10,$11,$12,$13,$14,$15,$1 6,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33, $34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$5 1,$52,$53,$54,$55,$56,$57,$58,$59,$60],minute
lookup da,[$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$10,$11,$12,$13,$14,$15,$1 6,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31],day
l ookup mo,[$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$10,$11,$12],month
lookup ye,[$00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$10,$11,$12,$13,$14,$15,$1 6,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33, $34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$5 1,$52,$53,$54,$55,$56,$57,$58,$59,$60,$61,$62,$63,$64,$65,$66,$67,$68, $69,$70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$80,$81,$82,$83,$84,$85,$8 6,$87,$88,$89,$90,$91,$92,$93,$94,$95,$96,$97,$98,$99],year
return
            tempcheck:
            if w0 > up then up = w0
            if w0 < down then down = w0
            return
        tempddisplay:
        lcdout $fe,1,"   Temp = ",dec w0,0
        lcdout $fe,$c0,"Up:",#up,0," /","Down:",#down,0
        Pause 3000
        return 



Last edited by saber2q on دوشنبه، 2 ارديبهشت ماه ، 1387 22:11:15; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail Yahoo Messenger
payam1825
کاربر فعال
کاربر فعال

Joined: May 28, 2007
Posts: 223





358118.98 امتیاز

Items

Status: Offline

PostPosted: چهارشنبه، 28 فروردين ماه ، 1387 11:10:46 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

سلام صابر جان
بخاطر زحمتي كه كشيدي ممنون
ولي در اول برنامه قبليت گفتي كه سنسور lm35 رو به Ra.0 وصل كردم و 2تا كليد قرار دادم كه به rd2 و rd3 وصله مگه اينا ورودي نيستند كه تعريفشون نكردي؟
در ضمن اگه ميشه اين نقشه رو تكميل كن و اينجا بگذار تا همه استفاده كنند و يكم در مورد طرز كار با كليدهاي مدارت توضيح بده
قبلا از زحماتت خيلي خيلي تشكر ميكنم
موفق باشي

Back to top
View user's profile Send private message
saber2q
کاربر فعال
کاربر فعال

Joined: Feb 20, 2008
Posts: 210




Location: tehran
216161.02 امتیاز

Items

Status: Offline

PostPosted: چهارشنبه، 28 فروردين ماه ، 1387 18:15:39 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

payam1825 wrote:
سلام صابر جان
بخاطر زحمتي كه كشيدي ممنون
ولي در اول برنامه قبليت گفتي كه سنسور lm35 رو به Ra.0 وصل كردم و 2تا كليد قرار دادم كه به rd2 و rd3 وصله مگه اينا ورودي نيستند كه تعريفشون نكردي؟
در ضمن اگه ميشه اين نقشه رو تكميل كن و اينجا بگذار تا همه استفاده كنند و يكم در مورد طرز كار با كليدهاي مدارت توضيح بده
قبلا از زحماتت خيلي خيلي تشكر ميكنم
موفق باشي


پیام جان اگه برای پورت d بخوای میتوني tris تعریف کنی ولی چون از دستور IF…THEN برای کلید ها استفاده شده، پس نیازی به این کار نبوده (یعنی من تعریف نکردم و خطایی هم از برنامه گرفته نشده و به درستی کار کرد) درباره RA0 هم چون به عنوان یک پورت انالوگ تعریف شده باز هم نیاز به tric نداشته
کلید RD2 را با نام Menu و کلید RD3 را با نام Set تعریف کردم.
وقتی مدار رو روشن میکنید در ابتدا پیغام Clock Not Set Press Key to set ظاهر میشه که با فشار هر کدوم از کلید ها به قسمت تنظیم ساعت وارد میشید که با فشار دادن کلید Set میتونید مقادیر رو تغییر دهید و با هر بار فشار دادن کلید Menu به مرحله بعدی تنظیم وارد میشوید به ترتیب ساعت، دقیقه، روز، ماه و سال رو تنظیم میکنید. در انتها و بعد از تنظیم سال و با فشار کلید Menu به حالت عادی با ساعت تنظیم شده میروید.
اما در حالت عادی که ساعت و تاریخ و دمای محیط در حال نشان دادن است، در صورتی که کلید Menu را به مدت 3ثانیه نگه دارید دوباره به قسمت تنظیم ساعت وارد میشوید و همچنین در حالت عادی اگر کلید Set را فشار دهید به مدت 3 ثانیه مقدار حد اکثر و حداقل دمایی که مدار تجربه کرده را به همراه دمای فعلی به شما با عنوان Down و Up و temp نشان میدهد.
در شماتیک پست قبلیم :
1- یک کریستال 4مگاهرتزی به پایه 13 و 14 میکرو وصل کنید و دو خازن موازی شده 15 تا 22 که طرف دیگشون به gnd وصل است
2- یک کریستال ساعت 32.768 هم به پایه 1 و 2 rtc وصل کنید به همراه 2 خازن سری شده 15 تا 22 که طرف دیگر آنها به gnd وصل میشه
3- برای اتصال دو کلید از 2عدد میکرو سوئیچ استفاده کنید که یک طرف هر سوئیچ را به مثبت 5 ولت و طرف دیگر را به پایه مورد نظر از میکرو وصل کنید همچنین یک مقامت 10کیلو اهمی هم از همان پایه میکرو سوئیچ که به میکرو وصل هست به زمین(GND) ولت وصل کنید.
4- برای سنسور lm35 هم، پایه مثبت و منفس سنسور را به مثبت 5ولت و زمین (GND) وصل کنید و پایه وسطی سنسور را به RA0 میکرو وصل کنید.
5- مقاومت های بالاکشی که سر راه SDA و SCL در RTC قرار گرفته و در شماتیک مشخصه باید مقاومت 10کیلو اهمی باشن که بازم به مثبت 5 ولت وصل میشن.
6- پایه شماره 4 RTC به GND وصل میشه و پایه شماره 8 به مثبت 5 ولت وصل میشه.
7- پایه شماره 11 میکرو به مثبت 5ولت
8- پایه شماره 12 میکرو به (GND) وصل میشه.
9- پایه شماره 1 میکرو را هم به همراه یک مقاومت 10 کیلو اهمی به مثبت 5 ولت وصل کنید.
فکر نمیکنم چیز دیگه ای مونده باشه و بقیه مدار هم طبق همون شماتیک باید بسته بشه ولی اگه بازم سوالی بود بفرمائید

Back to top
View user's profile Send private message Send e-mail Yahoo Messenger
payam1825
کاربر فعال
کاربر فعال

Joined: May 28, 2007
Posts: 223





358118.98 امتیاز

Items

Status: Offline

PostPosted: جمعه، 30 فروردين ماه ، 1387 15:39:56 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

سلام صابر جان
بي نهايت از توضيحات كاملت ممنونم
انشاا.. بتونم جبران كنم
فقط يه سوال ديگه : من اين مدار رو به شكل اوليه بستم ومدارم كار هم كرد ولي LED كه به پايه شماره 7 آي سي RTC وصل شده روشن نميشه مشكل از كجا ميتونه باشه؟
بازم ممنون

Back to top
View user's profile Send private message
saber2q
کاربر فعال
کاربر فعال

Joined: Feb 20, 2008
Posts: 210




Location: tehran
216161.02 امتیاز

Items

Status: Offline

PostPosted: جمعه، 30 فروردين ماه ، 1387 21:42:28 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

payam1825 wrote:
سلام صابر جان
بي نهايت از توضيحات كاملت ممنونم
انشاا.. بتونم جبران كنم
فقط يه سوال ديگه : من اين مدار رو به شكل اوليه بستم ومدارم كار هم كرد ولي LED كه به پايه شماره 7 آي سي RTC وصل شده روشن نميشه مشكل از كجا ميتونه باشه؟
بازم ممنون

خواهش ميكنم
اين سوال رو خودمم تو فكرم بود كه از استيد بپرسم كه يادم رفته بود چون من اين برنامه رو از روي الگوي برنامه صفحه اول نوشتم و منو رو بهش اضافه كردم ولي ال اي دي منم روشن نميشه البته نبودن ال اي دي هم تاثيري تو كار مدار نداره.
ضمنا اگه دلت بخواد ميتوني يك باتري 2 تا 3 ولت به پايه شماره 3 وصل كنيد تا هنگام قطع و وصل برق تنظيم ساعت بهم نخوره

Back to top
View user's profile Send private message Send e-mail Yahoo Messenger
Hamed
مدیر سایت - Site Admin
مدیر سایت - Site Admin

Joined: Mar 10, 2006
Posts: 1351




Location: تهران
702870.36 امتیاز

Items

Status: Offline

PostPosted: جمعه، 30 فروردين ماه ، 1387 23:28:57 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

راستش من برنامه رو ندیدم . اما واسه روشن شدن led باید بیت 4 از آدرس 07h ست شده باشه و همچنین بیت های 0 و 1 از همین آدرس هم ریست شده باشند .
علاوه بر این موارد پایه خروجی از نوع درین باز هست که لازم هست یک مقاومت پول آپ بهش متصل بشه .


__________________

Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
saber2q
کاربر فعال
کاربر فعال

Joined: Feb 20, 2008
Posts: 210




Location: tehran
216161.02 امتیاز

Items

Status: Offline

PostPosted: شنبه، 31 فروردين ماه ، 1387 13:39:45 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

Hamed wrote:
راستش من برنامه رو ندیدم . اما واسه روشن شدن led باید بیت 4 از آدرس 07h ست شده باشه و همچنین بیت های 0 و 1 از همین آدرس هم ریست شده باشند .
علاوه بر این موارد پایه خروجی از نوع درین باز هست که لازم هست یک مقاومت پول آپ بهش متصل بشه .

حامد جان منظور از اين آدرس كدام قسمته؟
I2CWRITE SDA,SCL,$D0,$00,[second,minute,hour,$00,day,month,year,$90
يا
CMCON = %00100111
؟؟؟؟
من هنوز نتونستم درك كنم كه آدرس RTC رو كجا بايد ست كنيم و همچنين براي تنظيمات حالت 12 يا 24 ساعته؟؟
يكم بيشتر توضيح بده لطفا
ممنون

Back to top
View user's profile Send private message Send e-mail Yahoo Messenger
Arash_em
مدیر سایت - Site Admin
مدیر سایت - Site Admin

Joined: Mar 12, 2006
Posts: 2230




Location: ايران
282074.08 امتیاز

Items

Status: Offline

PostPosted: شنبه، 31 فروردين ماه ، 1387 15:07:40 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

سلام برهمگي عزيزان.
صابر جان آدرسي كه حامد گفته مربوط مي شه به ريجيستر كنترلي Rtc ...كه خودش فعلا مقدار درست را دارد...
شما با قرار دادن يك مقاومت پول آپ در خروجي پايه SQW/OUT مدارتون به درستي كار خواهد كرد...
براي حالت 12 يا 24 ساعته هم شما بايد بيت 6 از آدرس 01h را تغيير بديد...
موفق و پيروز باشيد.

Back to top
View user's profile Send private message Send e-mail Visit poster's website
saber2q
کاربر فعال
کاربر فعال

Joined: Feb 20, 2008
Posts: 210




Location: tehran
216161.02 امتیاز

Items

Status: Offline

PostPosted: شنبه، 31 فروردين ماه ، 1387 17:01:31 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

Arash_em wrote:
سلام برهمگي عزيزان.
صابر جان آدرسي كه حامد گفته مربوط مي شه به ريجيستر كنترلي Rtc ...كه خودش فعلا مقدار درست را دارد...
شما با قرار دادن يك مقاومت پول آپ در خروجي پايه SQW/OUT مدارتون به درستي كار خواهد كرد...
براي حالت 12 يا 24 ساعته هم شما بايد بيت 6 از آدرس 01h را تغيير بديد...
موفق و پيروز باشيد.

ممنون آرش جان
ولي مشكل اصلي من اينه كه: بيت 6 از آدرس 01h رو چجوري بايد تغيير بدم؟ Crying or Very sad Confused

Back to top
View user's profile Send private message Send e-mail Yahoo Messenger
Hamed
مدیر سایت - Site Admin
مدیر سایت - Site Admin

Joined: Mar 10, 2006
Posts: 1351




Location: تهران
702870.36 امتیاز

Items

Status: Offline

PostPosted: يكشنبه، 1 ارديبهشت ماه ، 1387 14:57:46 Reply with quote Go to Top of PageScroll Up to Previous postScroll Down to Next postGo to last Post of Page

تو ارتباط i2c و دستورات i2cread و i2cwrite ، برای بخش های داده ، بایت کنترل و آدرس بخش های تعیین شده ای وجود داره .
مثلا در این دستور :

Code:
I2CWRITE SDA,SCL,$D0,$00,[second,minute,hour,$00,day,month,year,$90]


بایت کنترل $D0 هست .
آدرس 00$ و داده ها نیز متغیر های second ، minute ، hour و 00$ ، day ، month ، year و $90 هستند . که به ترتیب در آدرس های 0 و بالاتر نوشته می شوند . یعنی مقدار متغیر second در آدرس 0 ، مقدار متغیر minute در آدرس 1 و ...
این نوشتن به صورت رشته ای هست که یک رشته کامل یا جزئی رو به ترتیب ارسال می کنید .
اما اگر قصد تغییر تنها یک بیت رو داشته باشید ، باید ابتدا بایت اطلاعاتی مربوط به اون آدرس رو بخونید و سپس به جز بیت مرود نظر ، باقی بیت ها رو ماسک کنید (با همون مقدار خوانده شده جایگزین کنید تا بعد از نوشتن مقادیر بیت هایی که مورد نیاز نیست تغییری نکند) . و حال در بایتی که قصد ارسال اونو دارید ، بیت مورد نظر خودتون رو تغییر داده و به همراه باقی بیت ها و به صورت یک بایتی به 1307 ارسال کنید .
در این حالت آدرس باید به جای $00 ، 01$ قرار بگیره و اطلاعات هم تنها به یک بایت محدود بشه .


__________________

Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger
Display posts from previous:   
Post new topic   Reply to topic    ...::: Ir-Micro.Com :::... Forum Index -> برنامه نویسی و مباحث مربوط به PIC All times are GMT + 3.5 Hours
Goto page Previous  1, 2, 3, 4  Next
Page 3 of 4
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum

 
 Jump to:   

Related topics
 Topics   Replies   Author   Views   Last Post 
No new posts Sticky: دستور define در PIC 4 mohammadfallahi 10012 چهارشنبه، 14 دي ماه ، 1390 00:25:51
nasrmicro View latest post
No new posts Sticky: دستور INCLUDE در PIC 4 koorosh181 10089 سه شنبه، 23 تير ماه ، 1388 23:33:53
taykof View latest post
No new posts اتصال PIC به پورت USB 24 vpic 27776 پنجشنبه، 5 فروردين ماه ، 1389 16:09:36
mahdifah View latest post
No new posts اتصال pic به مونيتور كامپيوتر 14 vpic 15664 دوشنبه، 30 ارديبهشت ماه ، 1387 11:44:09
naatamam View latest post
No new posts کتاب آموزش pic 0 gharibe_12000 13245 جمعه، 20 بهمن ماه ، 1385 12:00:04
gharibe_12000 View latest post
 


Powered by phpBB © 2001, 2008 phpBB Group

Ported to Platinum 7.6.b.4 V2 by sadeghkhafan

فروشگاه تخصصی برق و الکترونیک ایران میکرو
www.iran-micro.com
PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL.
Powered by Platinum 7.6.b.4 v2
Powered by Platinum 7.6.b.4 v2 Persian

مدت زمان ایجاد صفحه : 1.22 ثانیه