' radjeno za: 'F:\Podaci sa C\Elektronika\Proteus\_Moje\ATMEGA8 i 10 LED 7 seg\02.DSN $regfile = "m8def.dat" $crystal = 1000000 $hwstack = 128 ' default use 32 for the hardware stack $swstack = 25 'default use 10 for the SW stack $framesize = 100 'default use 40 for the frame space Dim Znam(5) As Byte , Ii As Byte , Pom As Byte , P3 As Byte Dim Number(11) As Byte Dim Br(10) As Byte Dim I As Byte Dim Oi As Byte Dim O As Byte Dim W As Word Dim Cu As Integer Dim Ww As String * 3 Dim S0 As String * 3 Dim S1 As String * 1 Dim S2 As String * 1 Dim S3 As String * 1 Dim V1 As Byte Dim V2 As Byte Dim V3 As Byte W = 230 'config ADC Config Adc = Single , Prescaler = Auto , Reference = Internal Start Adc Config Timer0 = Timer , Prescale = 8 '64 Config Portb = Output 'set port B as output Config Portd = Output 'Ddrc = &B11000000 Portb = &B00000000 Portd = &B11111111 'kada brojevi idu od port0 ka port7 Number(1) = &B11111001 '1 Number(2) = &B10100100 '2 Number(3) = &B10110000 '3 Number(4) = &B10011001 '4 Number(5) = &B10010010 '5 Number(6) = &B10000010 '6 Number(7) = &B11111000 '7 Number(8) = &B10000000 '8 Number(9) = &B10010000 '9 Number(10) = &B01000000 'ovo je nula Number(11) = &B11111111 'prazno On Timer0 Prikaz Enable Interrupts Enable Timer0 Counter0 = 60536 Start Timer0 'For I = 1 To 10 ' Br(i) = Number(i) 'Next 'Br(10) = Number(4) 'Br(2) = Number(2) 'Br(3) = Number(6) 'prouci naredbu STR2DIGITS Do ' Oi = Br(10) ' Br(10) = Br(1) : Br(1) = Br(2) : Br(2) = Br(3) : Br(3) = Br(4) : Br(4) = Br(5) ' Br(5) = Br(6) : Br(6) = Br(7) : Br(7) = Br(8) : Br(8) = Br(9) : Br(9) = Oi Oi = 0 For I = 0 To 3 W = Getadc(i) ' W = 105 W = W * 10 Cu = W / 40 '/40 '1023= 25V =2.56V 1023/399=2,56 - prikazuje 2 broja + jednu decimalu Ww = Str(cu) ' S0 = Format(ww , "000") ' S1 = Mid(s0 , 1 , 1) ' S2 = Mid(s0 , 2 , 1) ' S3 = Mid(s0 , 3 , 1) ' Print "ww=" ; Ww ; " s0=" ; S0 ; " s1=" ; S1 ; " s2=" ; S2 ; " s3=" ; S3 If I = 0 Or I = 2 Then S0 = Format(ww , "000") S1 = Mid(s0 , 1 , 1) S2 = Mid(s0 , 2 , 1) S3 = Mid(s0 , 3 , 1) V1 = Val(s1) V2 = Val(s2) V3 = Val(s3) If V1 = 0 Then V1 = 11 If V2 = 0 Then V2 = 10 If V3 = 0 Then V3 = 10 Oi = Oi + 1 Br(oi) = Number(v1) Oi = Oi + 1 Br(oi) = Number(v2) Oi = Oi + 1 Br(oi) = Number(v3) ' Print "ww=" ; Ww ; " s0=" ; S0 ; " s1=" ; S1 ; " s2=" ; S2 ; " s3=" ; S3 ' Print "ww=" ; Ww ; " s0=" ; S0 ; " v1=" ; V1 ; " v2=" ; V2 ; " v3=" ; V3 ' Print "i=" ; I ; " cu=" ; Cu ; " s0=" ; S0 ' Print Br(1) ' Print Br(2) ' Print Br(3) Else S0 = Format(ww , "00") S1 = Mid(s0 , 1 , 1) S2 = Mid(s0 , 2 , 1) V1 = Val(s1) V2 = Val(s2) If V1 = 0 Then V1 = 11 If V2 = 0 Then V2 = 10 Oi = Oi + 1 Br(oi) = Number(v1) Oi = Oi + 1 Br(oi) = Number(v2) End If Next I Loop '... Prikaz: For Ii = 1 To 10 Portd = Br(ii) Portb = &B00000000 Waitms 2 Portb = &B00000001 Next Ii Portd = Br(1) Counter0 = 65536 Start Timer0 Return