PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : [درخواست] درخواست راهنمایی-میکروکنترلر-کریستال ساعت



omidta
06-10-2014, 09:51
سلام دوستان. با یه مشکلی مواجه شدم نمیدونم مشکل از کجاس.اگه بتونید راهنماییم کنید ممنون میشم
رو یک پروژه کار میکنم.شمارنده معکوس.به اینصورت که در لحظه راه اندازی عدد 24 روی سونت سگمنت نمایش داده شه.
بعد استارت کردن هر یک ثانیه یک عدد کم بشه.توی برنامه و شبیه سازی هیچ مشکلی ندارم و به درستی کار میکنه. ولی وقتی پروگرم میکنم و مدارو میبندم عدد 24 رو سون سگمنت میوفته ولی وقتی استارت میکنم عدد کم نمیشه و عدد 24 ثابت روی سون سگمنت میوفته.
برنامه را با bascom نوشتم. میکرو mega8 و از کریستال ساعت استفاده کردم. موقع پروگرم کردن فیوز بیت کریستال را روی کریستال خارجی 1001 که مخصوص کریستال ساعته گذاشتم.
نمیدونم مشکل از کجاس؟ آیا باید فیوز بیت دیگه ای را تغییر بدم؟
اینهم برنامه:

'omid taherkhani
' email: omid.1988@yahoo.com
'gmail: taherkhani1225@gmail.com
'^^^^^^^^^^******************-----------------______________----------------**^^
$regfile = "m8def.dat"
$crystal = 500000
Config Timer2 = Timer , Async = On , Prescale = 128
Config Portb = Output
Config Portc = Output
Config Portd = Output
Enable Interrupts
On Timer2 Saneye
'************************************************* ******************************
Dim A As Byte
Dim B As Byte
Dim C As Byte
Dim D As Byte
Dim E As Byte
Dim F As Byte
Dim G As Byte
Dim H As Byte
Dim I As Single
Dim J As Byte
Dim K As Bit
Dim L As Byte
Dim M As Byte
Dim N As Single
Dim O As Byte
Dim P As Byte
'***********************
Sy Alias Portc.0
Sd Alias Portc.1
'***********************
Declare Sub Yekan
Declare Sub Dahgan
Declare Sub Star
Declare Sub Rest24
Declare Sub Rest14
'************************************************* ******************************
P = 24
Do
Debounce Pinb. 0 , 1 , Star , Sub
Debounce Pinb. 1 , 1 , Rest24 , Sub
'***********************
G = Timer2
I = G
I = I / 2.55
J = I
'***********************
If K = 0 Then
Disable Timer2
Stop Timer2
Else
Enable Ovf2
Start Timer2
L = J
End If
'^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^____________________ ___________
A = P
Call Yekan : Call Dahgan
Sy = 1
Portd = D
Waitms 3
Sy = 0
Sd = 1
Portd = F
Waitms 3
Sd = 0
'______________________________________
'^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If P = 0 Then
Set Portc.2
Set Portc.3
Wait 3
Reset Portc.2
Reset Portc.3
Goto Rest24 , Sub
End If
Loop
End 'end program
'************************************************* ******************************
omid:
Data &B1000000 , &B1111001 , &B0100100 , &B0110000
Data &B0011001 , &B0010010 , &B0000010 , &B1111000
Data &B0000000 , &B0010000
'**************************************
Saneye:
Decr P
Return
'************************************************* ******************************
Sub Yekan
B = A / 10
B = B * 10
C = A - B
D = Lookup(c , omid)
End Sub
'**************************************
Sub Dahgan
C = A / 10
F = Lookup(c ,omid)
End Sub
'**************************************
Sub Star
Toggle K
N = L * 2.55
If N > 255 Then N = 0
O = N
Timer2 = O
End Sub
'**************************************
Sub Rest24
Timer2 = 0
K = 0
L = 0
P = 24
M = 0
H = 0
End Sub
'**************************************

Doloop
06-10-2014, 14:55
سلام

چرا کریستال ساعت ؟!!
یعنی بجای کریستال میکرو که معمولا 8 مگ میزارن شما کریستال ساعت 32 کیلوهرتز گذاشتید ..!!!

فعال کردن کریستال خارجی فکر کنم توی بسکام 1010 بود نه 1001 حالا شما کریستال ساعت قرار دادید فرکانس کاریتون اونقدر پائینه که شاید هر ثانیه میکرو برای شما حدود 5 یا 6 دقیقه باشه اگر تاخیر هم استفاده کرده باشید که فبها ..!

علت این کارتون چی بوده ؟؟؟

کریستال رو روی خارجی فکر کنم 1010 تنظیم کنید
و یه 8 مگ بزارید ببینید نتیجه چی میشه