Proszę zaradźcie coś!
Kod: Zaznacz cały
'Bascom-AVR ver.1.11.7.4
$regfile = "AT26DEF.DAT"
$crystal = 8000000
Ddrb = &B00001100
Portb = &B00001111
'Osccal = 238
'Osccal = 226
'Osccal = 210
'Osccal = 190
'Osccal = 162
'Osccal = 124
'Osccal = 65
Osccal = 65
Pllcsr = &B00000010
Pllcsr = &B00000111
Ocr1c = 225
Ocr1b = 128
'Tccr1b = &B01000010
'Tccr1b = &B01000011
'Tccr1b = &B01000100
Tccr1b = &B01000100
Tccr1a = &B00110000
Config Pina.0 = Output
Config Pina.1 = Output
Config Pina.2 = Output
Config Pina.3 = Output
Config Pina.4 = Output
Config Pina.5 = Output
Config Pina.6 = Output
Config Pina.7 = Input
Config Pinb.0 = Input
Config Pinb.1 = Input
A_seg Alias Porta.5
B_seg Alias Porta.6
C_seg Alias Porta.4
D_seg Alias Porta.3
E_seg Alias Porta.2
F_seg Alias Porta.1
G_seg Alias Porta.0
A_k Alias Pina.7
S1 Alias Pinb.0
S2 Alias Pinb.1
Declare Sub Cyfry(cyfra As Byte)
Dim Cyfra As Byte
Dim Ocr As Byte
Dim Czas As Word
'############################
'GŁÓWNA PĘTLA PROGRAMU
'############################
If S1 = 0 Then
Waitms 100
Cyfra = 11
Call Cyfry(cyfra)
Do
Loop Until S1 = 1
Waitms 100
Readeeprom Cyfra , 1
If Cyfra > 9 Then Cyfra = 0
Call Cyfry(cyfra)
Do
If S1 = 0 Then
Waitms 100
Incr Cyfra
If Cyfra > 9 Then
Cyfra = 0
End If
Call Cyfry(cyfra)
Do
Loop Until S1 = 1
Waitms 100
End If
Loop Until S2 = 0
Waitms 100
Do
Loop Until S2 = 1
Waitms 100
Writeeeprom Cyfra , 1
Cyfra = 12
Call Cyfry(cyfra)
Wait 1
End If
'#############################
'#############################
Readeeprom Cyfra , 1
If Cyfra > 9 Then Cyfra = 1
Call Cyfry(cyfra)
Select Case Cyfry
Case 1 :
Osccal = 128 '100Hz
Tccr1b = &B01001100 '100Hz
Case 2 :
Osccal = 128 '200Hz
Tccr1b = &B01001011 '200Hz
Case 3 :
Osccal = 204 '300Hz
Tccr1b = &B01001011 '300Hz
Case 4 :
Osccal = 128 '400Hz
Tccr1b = &B01001010 '400Hz
Case 5 :
Osccal = 175 '500Hz
Tccr1b = &B01001010 '500Hz
Case 6 :
Osccal = 176 '1k
Tccr1b = &B01001001 '1k
Case 7 :
Osccal = 176 '2k
Tccr1b = &B01001000 '2k
Case 8 :
Osccal = 116 '3k
Tccr1b = &B01000111 '3k
Case 9 :
Osccal = 176 '4k
Tccr1b = &B01000111 '4k
Case 0 :
Osccal = 210 '5k
Tccr1b = &B01000111 '5k
End Select
'#################################
Tccr1a = &B00010001
'#################################
Ocr = 128
Do
If S2 = 0 Then
If Czas < 6000 Then Waitms 40
If Ocr < 225 Then Incr Ocr
Czas = 0
Do
Incr Czas
Loop Until S2 = 1 Or Czas = 6000
If Czas < 6000 Then Waitms 40
End If
'#################################
If S1 = 0 Then
If Czas < 6000 Then Waitms 40
If Ocr > 0 Then Decr Ocr
Czas = 0
Do
Incr Czas
Loop Until S1 = 1 Or Czas = 6000
If Czas < 6000 Then Waitms 40
End If
Ocr1b = Ocr
Loop
'#################################
'*********************************
'#################################
Sub Cyfry(cyfra As Byte)
Select Case Cyfra
Case 0 :
If A_k = 0 Then
A_seg = 1
B_seg = 1
C_seg = 1
D_seg = 1
E_seg = 1
F_seg = 1
G_seg = 0
Elseif A_k = 1 Then
A_seg = 0
B_seg = 0
C_seg = 0
D_seg = 0
E_seg = 0
F_seg = 0
G_seg = 1
End If
Case 1 :
If A_k = 0 Then
A_seg = 0
B_seg = 1
C_seg = 1
D_seg = 0
E_seg = 0
F_seg = 0
G_seg = 0
Elseif A_k = 1 Then
A_seg = 1
B_seg = 0
C_seg = 0
D_seg = 1
E_seg = 1
F_seg = 1
G_seg = 1
End If
Case 2 :
If A_k = 0 Then
A_seg = 1
B_seg = 1
C_seg = 0
D_seg = 1
E_seg = 1
F_seg = 0
G_seg = 1
Elseif A_k = 1 Then
A_seg = 0
B_seg = 0
C_seg = 1
D_seg = 0
E_seg = 0
F_seg = 1
G_seg = 0
End If
Case 3 :
If A_k = 0 Then
A_seg = 1
B_seg = 1
C_seg = 1
D_seg = 1
E_seg = 0
F_seg = 0
G_seg = 1
Elseif A_k = 1 Then
A_seg = 0
B_seg = 0
C_seg = 0
D_seg = 0
E_seg = 1
F_seg = 1
G_seg = 0
End If
Case 4 :
If A_k = 0 Then
A_seg = 0
B_seg = 1
C_seg = 1
D_seg = 0
E_seg = 0
F_seg = 1
G_seg = 1
Elseif A_k = 1 Then
A_seg = 1
B_seg = 0
C_seg = 0
D_seg = 1
E_seg = 1
F_seg = 0
G_seg = 0
End If
Case 5 :
If A_k = 0 Then
A_seg = 1
B_seg = 0
C_seg = 1
D_seg = 1
E_seg = 0
F_seg = 1
G_seg = 1
Elseif A_k = 1 Then
A_seg = 0
B_seg = 1
C_seg = 0
D_seg = 0
E_seg = 1
F_seg = 0
G_seg = 0
End If
Case 6 :
If A_k = 0 Then
A_seg = 1
B_seg = 0
C_seg = 1
D_seg = 1
E_seg = 1
F_seg = 1
G_seg = 1
Elseif A_k = 1 Then
A_seg = 0
B_seg = 1
C_seg = 0
D_seg = 0
E_seg = 0
F_seg = 0
G_seg = 0
End If
Case 7 :
If A_k = 0 Then
A_seg = 1
B_seg = 1
C_seg = 1
D_seg = 0
E_seg = 0
F_seg = 0
G_seg = 0
Elseif A_k = 1 Then
A_seg = 0
B_seg = 0
C_seg = 0
D_seg = 1
E_seg = 1
F_seg = 1
G_seg = 1
End If
Case 8 :
If A_k = 0 Then
A_seg = 1
B_seg = 1
C_seg = 1
D_seg = 1
E_seg = 1
F_seg = 1
G_seg = 1
Elseif A_k = 1 Then
A_seg = 0
B_seg = 0
C_seg = 0
D_seg = 0
E_seg = 0
F_seg = 0
G_seg = 0
End If
Case 9 :
If A_k = 0 Then
A_seg = 1
B_seg = 1
C_seg = 1
D_seg = 1
E_seg = 0
F_seg = 1
G_seg = 1
Elseif A_k = 1 Then
A_seg = 0
B_seg = 0
C_seg = 0
D_seg = 0
E_seg = 1
F_seg = 0
G_seg = 0
End If
Case 11 :
If A_k = 0 Then
A_seg = 1
B_seg = 0
C_seg = 0
D_seg = 1
E_seg = 0
F_seg = 0
G_seg = 1
Elseif A_k = 1 Then
A_seg = 0
B_seg = 1
C_seg = 1
D_seg = 0
E_seg = 1
F_seg = 1
G_seg = 0
End If
Case 12 :
If A_k = 0 Then
A_seg = 0
B_seg = 1
C_seg = 1
D_seg = 0
E_seg = 1
F_seg = 1
G_seg = 1
Elseif A_k = 1 Then
A_seg = 1
B_seg = 0
C_seg = 0
D_seg = 1
E_seg = 0
F_seg = 0
G_seg = 0
End If
End Select
End Sub
'******************************
End