امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 1
  • 1
  • 2
  • 3
  • 4
  • 5
ساخت ساعت
نویسنده پیام
elish آفلاین
تازه وارد

ارسال‌ها: 21
موضوع‌ها: 7
تاریخ عضویت: شهریور ۱۳۸۸

تشکرها : 7
( 5 تشکر در 4 ارسال )
ارسال: #1
ساخت ساعت
سلام . لطفا كمكم كنيد تا يه ساعت با تاريخ بسازم واسه آزمايشگام. درگير برنامه نويسيشم كه به زبان بيسيك بايد باشه. و يه سري دستورات مثل time$ , _second,_min , _hour هم داشته باشه . كريستال ساعت هم در سخت افزارم وجود داره . ممنونم .
۱۰-بهمن-۱۳۸۸, ۲۰:۳۶:۳۹
ارسال‌ها
پاسخ
ilgar آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 843
موضوع‌ها: 17
تاریخ عضویت: اردیبهشت ۱۳۸۷

تشکرها : 383
( 2597 تشکر در 855 ارسال )
ارسال: #2
RE: ساخت ساعت
برای کریستال 12 مگ تایمر 1 باید به ازای هر ثانیه 183 بار از اول تا آخر و یک بار هم از صفر تا حدود 6900 یا به عبارتی از 58636 تا آخر بشمره. به ازای هر 60 ثانیه یه واحد به متغییر دقیقه اضافه میشه و به ازای هر 60 دقیقه یک واحد به متغییر ساعت
۱۰-بهمن-۱۳۸۸, ۲۲:۵۰:۰۱
ارسال‌ها
پاسخ
تشکر شده توسط : sheitunak, t3r!p3000, mahdi20, elish
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #3
RE: ساخت ساعت
مهندس واسه کار شما بسکام همه توابعش رو داره !!




در بعضي از ميکرو ها تايمر /کانتر دو يا صفر ميتواند به صورت اسنکرون ( در حالت اسنکرون کلاک ‏تايمر توسط کريستال ساعت ‏‏32768‏Hz‏ از دو پايه ‏toc1,toc2‎‏ تامين مي شود) کار کند و زمان و تاريخ را بشمارد ، اين شمارش در ‏همه حالتها حتي زماني که ‏ميکرو در حالت ‏power-save‏ است نيز وجود دارد.

همچنين ايسي هاي نيز وجود دارد که زمان و تاريخ ‏را ميشمارد و حتي قابليت ‏شمارش و ذخيره زمان و تاريخ شمرده شده را نيز دارد در زير هر دو مورد را بررسي ميکنيم:‏


‏>‏Rtc‏ داخلي ميکرو :‏


اين قابليت در بعضي از ميکروها وجود دارد ، که شما ميتوانيد با مراجعه به ديتا شيت ميکرو از وجود يا ‏عدم وجود آن مطلع ‏شويد.‏rtc‏ با دستور زير پيکربندي مي شود:‏

کد php:
CONFIG CLOCK soft USER [, GOSUB SECTIC]‎ 

Soft‏ :هنگامي استفاده مي شود که ميخواهيد از ‏rtc‏ داخلي ميکرو استفاده کنيد.‏

USER‏ : هنگاي استفاده مي شود که بخواهيد از ‏rtc‏ خارجي (مانند ‏Ds1307‎‏ يا...(اين ايسي از پروتکل ‏I2C ‎استفاده ميکند ،کار با اين ‏ايسي در بخش "روشهاي ارتباطي در ‏avr "‎‏ گفته شده است))استفاده کنيد.‏

GOSUB = SECTIC‏: اين گزينه اختياري است ، زماني که تايمر سرريز شد ( تا يک ثانيه شمرد) به ‏برچسب ‏SECTIC‏ پرش مي شود ، ‏باز گشت از برچسب با دستور ‏return ‎صورت ميگيرد ‏

با دستورات زير مقدار اوليه زمان و تاريخ مشخص مي شوند(روش اول) :‏

کد php:
DATE$ = "mm/dd/yy"
TIME
$ = "hh:mm:ss"‎ 

به جاي حروف اعداد اوليه قرار داده ميشوند مانند:‏

کد php:
‏$‏regfile "M16DEF.DAT"
‏$‏crystal 
8000000‎
Config Lcdpin 
Pin Db4 Pind.2 Db5 Pind.3 Db6 Pind.4 Db7 Pind.5 ‎Pind.1 Rs Pind.0‎
Config Lcd 
16 2‎
Enable Interrupts
Config Clock 
Soft
Date
$ = "11/11/00"
Time
$ = "02:20:00"
Do
Locate 1 1‎
Lcd Date‏$‏
Locate 2 
1‎
Lcd Time‏$‏
Loop
End 

شما ميتوانيد با دستورات زير مقدار اوليه اي را براي زمان و تاريخ مشخص کنيد:‏
‏_‏sec = X ‎‏ بين ‏‏0 تا 59 است‏x
‏_‏min = X‏ بين 0 تا 59 است ‏‏ ‏x
‏_‏hour = X ‎‏ بين 0 ‏تا 23 است‏x
‏_‏day = X ‎‏ بين 1 ‏تا 31 است‏x
‏_‏month = X‏ بين 1 تا 12 است ‏‏ ‏x
‏_‏year = x ‎‏ بين 0 تا ‏‏99 است‏x
شما ميتوانيد کليه اعمال جمع و تفريق (کاستن و افزودن ) را مستقيم روي متغيير هاي بالا انجام ‏دهيد .مثال:‏

کد php:
‏$‏regfile "M16DEF.DAT"
‏$‏crystal 
8000000‎
Config Lcdpin 
Pin Db4 Pind.2 Db5 Pind.3 Db6 Pind.4 Db7 Pind.5 ‎Pind.1 Rs Pind.0‎
Config Lcd 
16 2‎
Config Portb 
Input
Enable Interrupts
Config Date 
YMD Separator‏ =.
Config Clock 
Soft Gosub Sectic
‏_‏sec 
57 _min 59 _hour 23 _day 32 _month 11 _year 99‎
Goto W
Set_ok‏
:
Locate 1 
10 Lcd "set ok‏ ‏‎"
Wait 2 
Locate 1 10 Lcd‏ "          ‏‎"
W‏
:
Do
Debounce Pinb.5 Incr_sec
Loop
Incr_sec‏
:
Do
Locate 1 10 Lcd "set sec"
Debounce Pinb.5 
Incr_min Waitms 100‎
If Pinb.6 0 Then _sec Waitms 400 End If
If 
Pinb.7 0 Then _sec 30 Waitms 400 End If
Loop
Incr_min‏
:
Do
Locate 1 10 Lcd "set min" Waitms 100‎
Debounce Pinb.5 
Incr_hour
If Pinb.6 0 Then  Incr _minWaitms 400 End If
If 
Pinb.7 0 Then Decr _min Waitms 400 End If
Loop
Incr_hour‏
:
Do
Locate 1 10 Lcd "set hou"
Debounce Pinb.5 
Incr_day:Waitms 100‎
If Pinb.6 0 Then Incr _hour Waitms 400 End If
If 
Pinb.7 0 Then  Decr _hourWaitms 400 End If
Loop
Incr_day‏
:
Do
Locate 1 10 Lcd "set day"
Debounce Pinb.5 
Incr_month:Waitms 100‎
If Pinb.6 0 Then Incr _day Waitms 400 End If
If 
Pinb.7 0 Then Decr _day Waitms 400 End If
Loop
Incr_month‏
:
Do
Locate 1 10 Lcd "set mon"
Debounce Pinb.5 
Incr_year :Waitms 100‎
If Pinb.6 0 Then Incr _month Waitms 400 End If
If 
Pinb.7 0 Then Decr _month Waitms 400 End If
Loop
Incr_year‏
:
Do
Locate 1 10 Lcd "set yea"
Debounce Pinb.5 
Set_ok Waitms 100‎
If Pinb.6 0 Then Incr _year Waitms 400 End If
If 
Pinb.7 0 Then Decr _year Waitms 400 End If
Loop
End
Sectic‏
:
Locate 1 
Lcd Date$ : Locate 2 Lcd Time‏$‏
Return‏ ‏
مثال
:
‏$‏regfile 
"M16DEF.DAT"
‏$‏crystal 
8000000‎
Config Lcdpin 
Pin Db4 Pind.2 Db5 Pind.3 Db6 Pind.4 Db7 Pind.5 ‎Pind.1 Rs Pind.0‎
Config Lcd 
16 2‎
Enable Interrupts
Cursor Off
Config Clock 
Soft Gosub Sectic
Config Adc 
Single Prescaler Auto
Dim Q
(2) As Word
Date
$ = "11/11/00"
Time
$ = "02:20:00"
Start Adc
Do
Q(1) = Getadc(0‎‏)
Q
(2) = Getadc(1‎‏)
Q
(1) = Q(1) / 2‎
Q
(2) = Q(2) / 2‎
Locate 1 
11‎
Lcd 
"t1:" Q(1‎‏)
Locate 2 
11‎
Lcd 
"t2:" Q(2‎‏)
Loop
End
Sectic‏
:
Locate 1 
1‎
Lcd Date‏$‏
Locate 2 
1‎
Lcd Time‏$‏
Return 

برنامه بالا علاوه برنمايش ساعت وتقويم دماي دو نقطه ي دلخواه را نيز نمايش ميدهد ، همانگونه که ‏مشاهده ميفرماييد برنامه اسکن ‏کانال هاي ‏adc‏ در حلقه ي ‏do –loop‏ قرار داده شده ، هنگامي که تايمر سرريز مي شود به برچسب ‏Sectic‏ پرش مي شود و زمان ‏و تاريخ بر روي ‏lcd‏ نمايش داده شده و دوباره با دستور ‏return ‎‏ به حلقه ي ‏do-loop‏ رجوع مي شود و ‏اين کار مدام تکرار ‏ميگردد.شما ميتوانيد در حلقه از هر دستوري استفاده کنيد .‏

شما همچنين ميتوانيد با دستور زير فرمت نمايش تاريخ را معين کنيد ( در هرکشوري تاريخ به شکل ‏خاص نشان داده مي شود ، مثلا در ‏ايران به صورت : ‏‎ yy/mm/dd‎‏ و درايلات متحده امريکا به صورت: ‏mm-dd-yy‏ است)‏

کد php:
CONFIG DATE DMY/MDY/YMD Separator char‎ 

DMY/MDY/YMD‏ :نشان دهنده مکان نمايش روز ، ماه وسال است ، ‏d‏ نمايشگر روز(‏Day‏) ، ‏‎ m ‎‏ ‏نمايشگر ماه(‏month‏) و ‏y‏ نمايشگر ‏سال(‏year‏) است .‏
Char‏ : علامت بين روز و ماه وسال ميباشد که ميتواند نقطه "." ، مميز"/" يا خط فاصله"-" باشد.‏
۱۱-بهمن-۱۳۸۸, ۰۱:۲۰:۱۷
ارسال‌ها
پاسخ
تشکر شده توسط : mahdi20, elish, sheitunak, amard_1368, h0x00i, coloop, sharin
abol_rh آفلاین
تازه وارد

ارسال‌ها: 11
موضوع‌ها: 0
تاریخ عضویت: فروردین ۱۳۹۰

تشکرها : 5
( 3 تشکر در 1 ارسال )
ارسال: #4
RE: ساخت ساعت
سلام من یه برنامه ساختم که توش ساعت باتایمر 2 وکریستال داخلی داره این برنامه یکبار روال کلی رومیره اعم از ساعت و دما و... ولی در بار دوم میکرو ریست میشه لطفا" کمکم کنین تا بدونم مشکل از کجاست؟؟؟
۱۲-مرداد-۱۳۹۰, ۰۷:۴۰:۳۷
ارسال‌ها
پاسخ
h0x00i آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 959
موضوع‌ها: 109
تاریخ عضویت: دى ۱۳۸۹

تشکرها : 2866
( 2450 تشکر در 949 ارسال )
ارسال: #5
RE: ساخت ساعت
سلام دوست عزیز

لطف کن برنامتو بزار تا بتونیم نظر بدیم

:)

دوستان الکترونیکی پیشنهاد می کنم حتما برن python یاد بگیرن ...
پروژه ، مقاله ،... 
۱۲-مرداد-۱۳۹۰, ۱۹:۱۴:۰۲
وب سایت ارسال‌ها
پاسخ
eai آفلاین
كاربر دو ستاره
**

ارسال‌ها: 194
موضوع‌ها: 29
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 302
( 119 تشکر در 67 ارسال )
ارسال: #6
RE: ساخت ساعت
اگر می خواهید ساعت بسازید من آی سی DS1307 رو به شما پیشنهاد می کنم
به این آی سی یه کریستال ساعت (32768Hz) و یه باتری ساعت (باتری مادر برد کامپیوتر) وصل میشه و با ارتباط I2C با میکرو ارتباط برقرار میکنه
نحوه استفاده و راه اندازیش سادس و با قطع شدن برق اطلاعاتش از بین نمیره (با باتری که روشه میگن تا 10 سال هم زمان رو نگاه میداره)
توی این آی سی ابتدا باید اطلاعات ثانیه ، دقیقه ، ساعت و روز و ماه و سال رو بدی بعدش دیگه خودش همه چیز رو محاسبه میکنه و هر وقت که خواستی میتونی ازش همون اطلاعات رو بگیری
سرچ کنی اطلاعات خوبی پیدا می کنی
یه نمونه میزارم شاید بدردت بخوره اگه نفهمیدی بگو تا برات توضیح بدم


فایل‌(های) پیوست شده
.zip   clock_DS1307_www.picpars.com.zip (اندازه: 89.58 KB / تعداد دفعات دریافت: 107)
۱۳-مرداد-۱۳۹۰, ۱۰:۵۷:۴۲
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : rdscience, h0x00i, sharin
abol_rh آفلاین
تازه وارد

ارسال‌ها: 11
موضوع‌ها: 0
تاریخ عضویت: فروردین ۱۳۹۰

تشکرها : 5
( 3 تشکر در 1 ارسال )
ارسال: #7
RE: ساخت ساعت
سلام
یه برنامه با میکرو 32 که دارای یه ساعت با تایمر 2 وکریستال32768 خارجیه طراحی کردم و یه کلید منو براش در نظر گرفتم که هر بار اینو میزنم بهترتیب به 15 زیروال از جمله نمایش دماوفشار پایه 5تازمان برای دیفراست و5 مقدار برای روشن بودن دیفراست و در نهایت برگرده به وقفه ساعت و دوباره ساعتو نشون بده ولی هنگام برگشت میکرو ریست مشه و همهچی به حلت اول میره مشکل کجاست
با تشکر
۱۳-مرداد-۱۳۹۰, ۱۹:۲۷:۲۵
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Rolleyes درخواست کمک برای ساخت ساعت مرتضی حسینی 3 1,388 ۱۴-اسفند-۱۳۹۷, ۱۸:۳۷:۰۲
آخرین ارسال: 1نفر
  فایل های رایگان تابلو بانکی سیتک (ساعت بانکی) sina6479 0 2,170 ۳۱-تير-۱۳۹۴, ۱۲:۴۹:۱۷
آخرین ارسال: sina6479
  مشکل نمایش ساعت روی lcd 6610 4221577 0 1,753 ۲۱-بهمن-۱۳۹۲, ۰۳:۰۶:۳۲
آخرین ارسال: 4221577
  [سوال] کمک در ساخت ساعت با سون سگمنت r222 0 2,274 ۲۸-آذر-۱۳۹۰, ۱۹:۳۴:۴۷
آخرین ارسال: r222

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS