راه اندازی 74hc595 با avr
راه اندازی 74hc595 با avr-در این مدار ما آی سی 74hc595 را به میکروکنترلر atmega16 متصل نموده. و با 4 عدد آی سی 74hc595 و با استفاده از 3 پایه میکروکنترلر هیجده عدد سون سگمنت را راه اندازی نموده ایم. که بترتیب ثانیه دقیقه و ساعت را نمایش می دهد که شما می توانید با تغییر متغیرها آنها را به موارد دیگر همانند تاریخ و دما تغییر دهید هدف از این آموزش نحوه کارکرد آی سی 74595 می باشد
راه اندازی 74hc595 با avr
‘—————————–www.pc21.ir————————————–
$regfile = “m16def.dat”
$crystal = 1000000
Config Portd = Output
‘Config Portb = Output
Config Clock = Soft
Enable Interrupts
Config Timer1 = Timer , Prescale = 1
Enable Interrupts
Enable Timer1
‘On Timer1 Ss
Config Sda = Portd.6
Config Scl = Portd.7
Dim Array(95) As Byte
Dim Hm As Byte , A As Byte , B As Byte , C As Byte , D As Byte,
Dim E As Byte , F As Byte , G As Byte ‘, H As Byte , F10 As Byte,
Dim R As Byte
Dim Dat As Byte , Mine As Byte , Seco As Byte , Hour As Byte
Dim Haft As Byte , Rooz As Byte , Mah As Byte , Sal As Byte
Do
Gosub Ds1307
Hm = &B11111111
Gosub Mmm
Gosub Nnn
If R = 0 Then Gosub Aaa
If R = 1 Then Gosub Bbb
If R = 2 Then Gosub Ccc
If R = 3 Then Gosub Ddd
If R = 4 Then Gosub Eee
If R = 5 Then Gosub Fff
Loop
راه اندازی 74hc595 با avr
‘@@@@@@@@@@@@@@@@@@@@@@@@@@@@ www.pc21.ir @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Ds1307:
I2cstart
I2cwbyte &HD0
I2cwbyte 0
I2cstart
I2cwbyte &HD1
I2crbyte Seco , Ack
I2crbyte Mine , Ack
I2crbyte Hour , Ack
I2crbyte Rooz , Ack
I2crbyte Haft , Ack
I2crbyte Mah , Ack
I2crbyte Sal , Nack
I2cstop
Seco = Makedec(seco) : Mine = Makedec(mine) : Hour = Makedec(hour)
Haft = Makedec(haft) : Rooz = Makedec(rooz) : Mah = Makedec(mah)
Sal = Makedec(sal)
Return
‘@@@@@@@@@@@@@@@@@@@@@@@@@@@@ www.pc21.ir @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Nnn:
Incr R
Waitus 1
If R > 5 Then R = 0
Return
Mmm:
Dat = Array(b)
Shiftout Portd.0 , Portd.1 , Dat , 3
C = B + 8
Dat = Array(c)
Shiftout Portd.0 , Portd.1 , Dat , 3
D = C + 8
Dat = Array(d)
Shiftout Portd.0 , Portd.1 , Dat , 3
E = D + 8
Dat = Array(e)
Shiftout Portd.0 , Portd.1 , Dat , 3
Portd.1 = 0 : Portd.1 = 1
Portd.2 = 0
Return
راه اندازی 74hc595 با avr
‘@@@@@@@@@@@@@@@@@@@@@@@@@@@@ www.pc21.ir @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Aaa:
Hm = R Mod 10
For A = 0 To 6
Array(a) = Lookup(hm , Dab1)
Next
Hm = Hour / 10
For A = 7 To 14
Array(a) = Lookup(hm , Dab)
Next
Hm = Hour / 10
For A = 15 To 21
Array(a) = Lookup(hm , Dab)
Next
Hm = Hour / 10
For A = 22 To 28
Array(a) = Lookup(hm , Dab)
Next
Portd.2 = 1
Return
راه اندازی 74hc595 با avr
‘@@@@@@@@@@@@@@@@@@@@@@@@@@@@ www.pc21.ir @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Bbb:
Hm = R Mod 10
For A = 0 To 6
Array(a) = Lookup(hm , Dab1)
Next
Hm = Hour Mod 10
For A = 7 To 14
Array(a) = Lookup(hm , Dab)
Next
Hm = Hour Mod 10
For A = 15 To 21
Array(a) = Lookup(hm , Dab)
Next
Hm = Hour Mod 10
For A = 22 To 28
Array(a) = Lookup(hm , Dab)
Next
Portd.2 = 1
Return
‘@@@@@@@@@@@@@@@@@@@@@@@@@@@@ www.pc21.ir @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Ccc:
Hm = R Mod 10
For A = 0 To 6
Array(a) = Lookup(hm , Dab1)
Next
Hm = Mine / 10
For A = 7 To 14
Array(a) = Lookup(hm , Dab)
Next
Hm = Mine / 10
For A = 15 To 21
Array(a) = Lookup(hm , Dab)
Next
Hm = Mine / 10
For A = 22 To 28
Array(a) = Lookup(hm , Dab)
Next
Portd.2 = 1
Return
‘@@@@@@@@@@@@@@@@@@@@@@@@@@@@ www.pc21.ir @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Ddd:
Hm = R Mod 10
For A = 0 To 6
Array(a) = Lookup(hm , Dab1)
Next
Hm = Mine Mod 10
For A = 7 To 14
Array(a) = Lookup(hm , Dab)
Next
Hm = Mine Mod 10
For A = 15 To 21
Array(a) = Lookup(hm , Dab)
Next
Hm = Mine Mod 10
For A = 22 To 28
Array(a) = Lookup(hm , Dab)
Next
Portd.2 = 1
Return
‘@@@@@@@@@@@@@@@@@@@@@@@@@@@@ www.pc21.ir @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Eee:
Hm = R Mod 10
For A = 0 To 6
Array(a) = Lookup(hm , Dab1)
Next
Hm = Seco / 10
For A = 7 To 14
Array(a) = Lookup(hm , Dab)
Next
Hm = Seco / 10
For A = 15 To 21
Array(a) = Lookup(hm , Dab)
Next
Hm = Seco / 10
For A = 22 To 28
Array(a) = Lookup(hm , Dab)
Next
Portd.2 = 1
Return
‘@@@@@@@@@@@@@@@@@@@@@@@@@@@@ www.pc21.ir @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Fff:
Hm = R Mod 10
For A = 0 To 6
Array(a) = Lookup(hm , Dab1)
Next
Hm = Seco Mod 10
For A = 7 To 14
Array(a) = Lookup(hm , Dab)
Next
Hm = Seco Mod 10
For A = 15 To 21
Array(a) = Lookup(hm , Dab)
Next
Hm = Seco Mod 10
For A = 22 To 28
Array(a) = Lookup(hm , Dab)
Next
Portd.2 = 1
Return
راه اندازی 74hc595 با avr
‘@@@@@@@@@@@@@@@@@@@@@@@@@@@@ www.pc21.ir @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
‘****************************** www.pc21.ir ***********************************
Dab:
‘Data 3 , 159 , 37 , 13 , 153 , 73 , 065 , 031 , 1 , 9 , 255
Data &B00000010 , &B10011111 , &B00100101 , &B00001101 , &B10011001 , &B01001000
Data &B11000000 , &B00011010 , &B00000000 , &B00011000
‘Data &B11111101 , &B01100000 , &B11011010 , &B11110010 , &B0100110 , &B10110111
‘Data &B00111111 , &B11100101 , &B11111111 , &B11100111
Dab1:
‘Data &B00000001 , &B00000010 , &B00000100 , &B00001000 , &B00010000 , &B00100000
Data &B10000000 , &B01000000 , &B00100000 , &B00010000 , &B00001000 , &B00000100,
‘ Data &B01111111 , &B10111111 , &B11011111 , &B11101111 , &B11110111 , &B11111011,
Ss:
Return
راه اندازی 74hc595 با avr