я делаю задержку waitms 1000.
написанием на asm не владею.
это программа часов. кривая, но рабочая.
- Код: Выделить всё • Развернуть
$regfile = "m16def.dat"
$crystal = 8000000
$lib "lcd4.lib"
'$lib "mcsbyte.lbx"
'Config Rc5 = Pind.2
'Enable Interrupts
Config Lcdpin = Pin , Rs = Porta.0 , E = Porta.2 , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7
Config Lcd = 16 * 2
Dim H1 As Integer
Dim H2 As Integer
Dim M1 As Integer
Dim M2 As Integer
Dim S1 As Integer
Dim S2 As Integer
Dim B As Integer
Dim Ndat As Byte
Clockzero:
Let S1 = 0
Let S2 = 0
Let H1 = 0
Let H2 = 0
Let M1 = 0
Let M2 = 0
Let M1 = 0
Let M2 = 0
Cls
Locate 2 , 1
Lcd "Hour:"
Locate 2 , 8
Lcd "Min:"
Locate 2 , 13
Lcd "Sec:"
Do
Seconds:
If S1 = 6 Then M2 = M2 + 1
If S1 = 6 Then S1 = 0
Locate 1 , 13
Lcd S1
If S2 = 10 Then S2 = 0
Locate 1 , 14
Lcd S2
Minutes:
Locate 1 , 8
Lcd M1
If M2 = 10 Then M1 = M1 + 1
If M2 = 10 Then M2 = 0
If M1 = 6 Then H2 = H2 + 1
If M1 = 6 Then M1 = 0
Locate 1 , 9
Lcd M2
Houres:
If H1 = 6 Then Goto Clockzero
Locate 1 , 1
Lcd H1
If H2 = 10 Then H1 = H1 + 1
If H2 = 10 Then H2 = 0
Locate 1 , 2
Lcd H2
S2 = S2 + 1
If S2 = 10 Then S1 = S1 + 1
Waitms 1000
Loop
в тексте указан внутренний кварц, но на самом деле уже сделал внешний 8.000 мгц.
как указывать внешний я не знаю.
Последний раз редактировалось
Vooon 30 сен 2009, 19:21, всего редактировалось 2 раз(а).
Причина: CODE!!!