'********************************** '7segmentLED Display 0.0.1 'JA4LAO_ito '2008.04.13 'ATmega644P-20 '********************************** Config Portd = Output Config Portc = Output Config Portb.0 = Output Config Portb.1 = Output Config Portb.2 = Input Config Portb.3 = Input Config Portb.4 = Output Config Portb.5 = Input Config Debounce = 3 Dim A As Byte Dim B As String * 1 Dim I As Byte Dim J As Byte Dim K As Word Dim N As Byte Dim M As Byte Dim Hyoujidata As String * 8 Dim Hyouji As Long Dim Hyouji2 As Long Do Debounce Pinb.2 , 1 , Data_in , Sub Gosub 7seghyouji Loop End 7seghyouji: M = 9 - N : J = 1 For I = M To 8 B = Mid(hyoujidata , J , 1) Select Case B Case "0" Portd = &B0000001 Gosub Anode Case "1" Portd = &B1001111 Gosub Anode Case "2" Portd = &B0010010 Gosub Anode Case "3" Portd = &B0000110 Gosub Anode Case "4" Portd = &B1001100 Gosub Anode Case "5" Portd = &B0100100 Gosub Anode Case "6" Portd = &B0100000 Gosub Anode Case "7" Portd = &B0001111 Gosub Anode Case "8" Portd = &B0000000 Gosub Anode Case "9" Portd = &B0000100 Gosub Anode End Select Incr J Next I Return Anode: Select Case I Case 1 Set Portb.1 Waitus 100 Reset Portb.1 Case 2 Set Portb.0 Waitus 100 Reset Portb.0 Case 3 Set Portc.0 Waitus 100 Reset Portc.0 Case 4 Set Portc.1 Waitus 100 Reset Portc.1 Case 5 Set Portc.2 Waitus 100 Reset Portc.2 Case 6 Set Portc.3 Waitus 100 Reset Portc.3 Case 7 Set Portc.4 Waitus 100 Reset Portc.4 Case 8 Set Portc.5 Waitus 100 Reset Portc.5 End Select Return Data_in: Bitwait Pinb.3 , Set Shiftin Pinb.5 , Portb.4 , Hyouji , 0 , 32 , 50 Bitwait Pinb.3 , Reset Hyoujidata = Str(hyouji) N = Len(hyoujidata) Return