- رفع اشکال برنامه avr - تالار گفتمان | یزد کیت

اين اختيار صفحه ي اصلي را همانند اول خواهد كرد ، تمام ابزارك ها و تنظيمات به حالت اول باز خواهند گشت.

ريست
 
شما باید برای پست دادن وارد شوید ورود ثبت نام


ثبت نام? | رمز عبور را گم کرده ام?

جستجوی فروم ها:


 






Wildcard استفاده ی:
*    مطابق بودن هر تعداد کاراکتر
%    مطابقت دقیقاً مثل هم

RTC ساعت

هیچ گیرنده ای انتخاب نشده است
برچسب ها
کاربرپست

۱۰:۲۷ ب.ظ
ژانویه ۲۱, ۲۰۱۰


saied20

میهمان

سلام من یک برنامه ساده ساعت دارم

که به صورت زیر نوشته شده است

من میخوام بدونم با استفاده از کلید فشاری برای تنظیم ساعت و دقیقه چه دستوری لازم هست که بتونم با اون ساعت رو تنظیم کنم

$

$

regfile = "M8DEF.DAT"crystal = 8000000

 

Config Lcdpin = Pin , Db4 = Pinc.2 , Db5 = Pinc.3 , Db6 = Pinc.4 , Db7

= _

Pinc.5 , E = Pinc.1 , Rs = Pinc.0

Config Lcd = 16 * 2

Enable Interrupts

Config Clock = Soft

Time$ = "02:50:00

 

 

"

Do

Locate 1 , 1

Lcd Time

$

Loop

 

End

 

6:14 ب.ظ
ژانویه ۲۳, ۲۰۱۰


مدیر

میهمان

سلام در قدم اول شما باید به نحوی مقادیر زمان را تنظیم کنید که میتوانید با تعریف مثلا ۳ کلید این کار را انجام بدین

۲ تا از کلید ها وظیفه کاهش یا افزایش زمان را داشته باشد و کلید آخری وظیفه انتخاب هر کدام از زمان ها که ساعت و دقیقه و ثانیه باشد

حالا بعد از تنظیم کلید ها باید به نحوی به مقادیر دسترسی داشته باشین

در کد زیر مقادیر برای ساعت و دقیقه وساعت تعیین شده است

_sec = 12 : _min = 30 : _hour = 18   

و بعد با استفاده از دستور

lcd  Time$

مقدار تنظیم شده را نمایش بدین

این اساس کار بود بقیه کار های جانبی میمونه واسه تنظیم مقادیر و..

اگه مشکلی بود مطرح کنید Smile

۹:۳۹ ب.ظ
ژانویه ۲۶, ۲۰۱۰


shahrokh_majno

میهمان

سلام این می شه:

$regfile = "m16def.dat"
$crystal = 8000000
Cursor Off
Enable Interrupts
Dim A As Single , B As Single , C As Single
Config Clock = Soft
_sec = 58 : _min = 59 : _hour = 23
Do
Locate 1 , 5
Lcd Time$
If Pinb.1 = 1 Then Gosub Mi
If Pinb.2 = 1 Then Gosub Hour
If _hour = 24 Then _hour = 00
Loop
End
Mi:
_min = A
A = A + .1
_min = A
If _min >= 60 Then A = 00
_min = A
Return
Hour:
_hour = B
B = B + .1
_hour = B
If _hour >= 24 Then B = 00
_hour = B
Return

برای زیاد کردن از پین a.1 و A.2 استفاده شده
یادت باشه اون ۱٫ است , نه ۱
اگر ۱ بذاری ۱۰ تا ۱۰ تا اضافه می کنه
wink

۹:۴۱ ب.ظ
ژانویه ۲۶, ۲۰۱۰


shahrokh_majno

میهمان

پست در تاریخ ۹:۴۳ ب.ظ – ژانویه ۲۶, ۲۰۱۰ توسط shahrokh_majno ویرایش شد


۱٫ نه ۱٫

۶:۵۰ ق.ظ
ژانویه ۲۸, ۲۰۱۰


مدیر

میهمان

سلام

شما از برنامه بالا جواب گرفتین ؟

برنامه را براتون تصحیح کردم ، عملی تست کنید و خبرشو بدین

$regfile = "m16def.dat"
$crystal = 8000000
'——————————-
Config Lcd = 16 * 2
Config Lcdpin = Pin , E = Porta.0 , Rs = Porta.1 , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , Db7 = Porta.5
Cursor Off
Enable Interrupts
Dim A As Single , B As Single , C As Single
'——————————–
Config Clock = Soft
_sec = 58 : _min = 59 : _hour = 23
Config Portb.1 = Input
Config Portb.2 = Input
'——————————
main:
Do
Locate 1 , 5
Lcd Time$
If Pinb.1 = 1 Then Gosub Mi
If Pinb.2 = 1 Then Gosub Hour
If _hour = 24 Then _hour = 00
Loop
End
'——————————
Mi:
A = _min
A = A + 1
_min = A
If _min >= 60 Then A = 00
Return
'—————————-
Hour:
B = _hour
B = B + 1
_hour = B
If _hour >= 24 Then B = 00
Return

یا علیSmile

۱۱:۰۶ ق.ظ
ژانویه ۲۹, ۲۰۱۰


shahrokh_majno

میهمان

اتفاقا من هم یک گذاشتم جواب نمی داد
۱۰تا اضافه می کرد تو تست
ولی با یک دهم اونطوری یکی یکی
بله تست شده
مرسی که توجه دارین
فقط من یک سئوال AVCC ,AREF پرسیدم لطفا به اون هم پاسخ بدین

۱۱:۱۱ ق.ظ
ژانویه ۲۹, ۲۰۱۰


shahrokh_majno

میهمان

البته تو نوشتن تو سایت یادم رفته بود config پین ها رو بدم

۳:۰۲ ب.ظ
ژانویه ۲۹, ۲۰۱۰


مدیر

میهمان

پست در تاریخ ۳:۰۶ ب.ظ – ژانویه ۲۹, ۲۰۱۰ توسط مدیر ویرایش شد


سلام

برنامه زیر خودم نوشتم وتست کردم وبدون هیچ مشکلی جواب میداد و مقادیر هم با اضافه کردن واحد۱ اضافه میشه

مشکل شما این بود که با if کلید را چک کرده بودین و وقتی دستتون را میگذاشتین روی کلید سریع و به صورت مدام این دستور و شرط برقرار میشد و واحد ها را مدام اضافه میکرد و شما فکر میکردین ۱۰ واحد اضافه شده در صورتی که ۱ واحد بیشتر اضافه نمیشه اما تا زمانی که دست شما روی کلید بوده حتی در زمان کوتاه این شرط مثلا برای ۱۰ بار متوالی برقرار میشده.

به هر حال این برنامه درست ونهایی هست و کلید تنظیم ثانیه هم اضافه کردم.

$regfile = "m16def.dat"
$crystal = 1000000
'——————————-
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Porta.0 , E = Porta.1 , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , Db7 = Porta.5
Cursor Off
Enable Interrupts
Config Debounce = 30
'——————————–
Config Clock = Soft
_sec = 58 : _min = 59 : _hour = 23
Config Portb.0 = Input
Config Portb.1 = Input
Config Portb.2 = Input
'——————————
main:
Do
Locate 1 , 5
Lcd Time$
Debounce Pinb.0 , 1 , seco , Sub
Debounce Pinb.1 , 1 , Mi , Sub
Debounce Pinb.2 , 1 , Hour , Sub
If _hour = 24 Then _hour = 00
Loop
End
'———————————————
Seco:
_sec = _sec + 1
If _sec >= 60 Then _sec = 0
Return
'————————-
Mi:
_min = _min + 1
If _min >= 60 Then _min = 0
Return
'——————————————-
Hour:
_hour = _hour + 1
If _hour >= 24 Then _hour = 0
Return

اینم نقشه شماتیک مدار:

http://upload-pic.yazdkit.com/…..cclock.gif

فقط من یک سئوال AVCC ,AREF پرسیدم لطفا به اون هم پاسخ بدین

این ۲ پایه برای بخش adc میکرو هست در صورتی که از مبدل انالوگ به دیجیتال استفاده میکنید و در بخش کانفیک ولتاژ رفرنس را ولتاز تغذیه انتخاب کرده اید باید پایه aref  به تغذیه مثبت وصل شود هم چنین باید همیشه درر صورت استفاده از adc میکرو پایه avcc  به تغذیه مثبت ۵ وصل شود.

یا علی

برچسب ها


 


Video & Audio Comments are proudly powered by Riffly