با عرض سلام خدمت اساتید محترم
بنده تازه کار با avr هارو شروع کردم . برنامه ای که نوشتم به زبان basic هستش . برنامه شامل ساعت و دماسنج میشه که قراره روی یک lcd 16*2
نمایش داده بشه . شبیه سازی برنامه تو proteus جواب میده اما در عمل ..... دیگه نمیدونم باید چیکار کنم :twisted: . تاپیک های قبلیم خوندم اما جواب نگرفتم . از اساتید خواهش میکنم راهنماییم کنم . فایل bascom و proteus و به صورت کامل میذارم ....اینم قسمتی از برنامم :
[code=vb]$regfile = "m16adef.dat"
$crystal = 1000000
Config Portb.5 = Input
Config Portb.6 = Input
Config Portb.7 = InputConfig Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , Rs = Portd.3 , E = Portd.2
Config Lcd = 16 * 2
Config Portc.0 = Output
Config Porta.5 = Output
Config Porta.6 = Output
Config Porta.7 = Output
Config Timer2 = Timer , Async = On , Prescale = 128
Config Adc = Single , Prescaler = Auto
Dim San As Byte , Dagh As Byte , Saat As Byte
Dim A As Word , B As Byte
Locate 1 , 3
Lcd "Amin Assadi"
Wait 2
Cls
Start Adc
B = 1
Enable Interrupts
Enable Timer2
On Timer2 K
Start Timer2
Cls
Cursor Off
Do
Loop
K:
Locate 1 , 1
Lcd "Time ="
Locate 2 , 16
Incr B
If B > 6 Then B = 1
Incr San
If San > 59 Then
Incr Dagh
San = 0
If Dagh > 59 Then
Incr Saat
Dagh = 0
San = 0
If Saat > 23 Then
Saat = 0
San = 0
Dagh = 0
End If
End If
End If
If Pinb.5 = 1 Then
San = 0
Elseif Pinb.6 = 1 Then
Incr Dagh
Elseif Pinb.7 = 1 Then
Incr Saat
If Saat > 23 Then
Saat = 0
Dagh = 0
San = 0
End If
End If
Locate 1 , 7
If Saat < 10 Then
Lcd "0" ; Saat ; ":"
Else
Lcd Saat ; ":"
End If
If Dagh < 10 Then
Lcd "0" ; Dagh ; ":"
Else
Lcd Dagh ; ":"
End If
If San < 10 Then
Lcd "0" ; San
Else
Lcd San
End If[/code]
بنده تازه کار با avr هارو شروع کردم . برنامه ای که نوشتم به زبان basic هستش . برنامه شامل ساعت و دماسنج میشه که قراره روی یک lcd 16*2
نمایش داده بشه . شبیه سازی برنامه تو proteus جواب میده اما در عمل ..... دیگه نمیدونم باید چیکار کنم :twisted: . تاپیک های قبلیم خوندم اما جواب نگرفتم . از اساتید خواهش میکنم راهنماییم کنم . فایل bascom و proteus و به صورت کامل میذارم ....اینم قسمتی از برنامم :
[code=vb]$regfile = "m16adef.dat"
$crystal = 1000000
Config Portb.5 = Input
Config Portb.6 = Input
Config Portb.7 = InputConfig Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , Rs = Portd.3 , E = Portd.2
Config Lcd = 16 * 2
Config Portc.0 = Output
Config Porta.5 = Output
Config Porta.6 = Output
Config Porta.7 = Output
Config Timer2 = Timer , Async = On , Prescale = 128
Config Adc = Single , Prescaler = Auto
Dim San As Byte , Dagh As Byte , Saat As Byte
Dim A As Word , B As Byte
Locate 1 , 3
Lcd "Amin Assadi"
Wait 2
Cls
Start Adc
B = 1
Enable Interrupts
Enable Timer2
On Timer2 K
Start Timer2
Cls
Cursor Off
Do
Loop
K:
Locate 1 , 1
Lcd "Time ="
Locate 2 , 16
Incr B
If B > 6 Then B = 1
Incr San
If San > 59 Then
Incr Dagh
San = 0
If Dagh > 59 Then
Incr Saat
Dagh = 0
San = 0
If Saat > 23 Then
Saat = 0
San = 0
Dagh = 0
End If
End If
End If
If Pinb.5 = 1 Then
San = 0
Elseif Pinb.6 = 1 Then
Incr Dagh
Elseif Pinb.7 = 1 Then
Incr Saat
If Saat > 23 Then
Saat = 0
Dagh = 0
San = 0
End If
End If
Locate 1 , 7
If Saat < 10 Then
Lcd "0" ; Saat ; ":"
Else
Lcd Saat ; ":"
End If
If Dagh < 10 Then
Lcd "0" ; Dagh ; ":"
Else
Lcd Dagh ; ":"
End If
If San < 10 Then
Lcd "0" ; San
Else
Lcd San
End If[/code]
دیدگاه