سلام من یه برنامه ساعت نوشتم که برای نمایش زمان از سونسگمنت استفاده میکنه
7سگمنتها با هم مالتیپلکس شدن . تو پروتئوس کار میکنه ولی رو برد بستم تمام عددها روشن هستن و زمانو نمیشه فهمید
برنامه رو میزارم ببینین مشکل از برنامه هست یا چیزه دیگه اییه
ممنون میشم کمکم کنید.
$regfile = "M8def.dat "
$crystal = 8000000
Dim A As Byte
Dim B As Byte
Dim C As Byte
Dim D As Byte
Dim E As Byte
Dim F As Byte
Config Portb = Output
Config Portd = Output
Config Portc.0 = Output
Config Pinc.1 = Input
Enable Interrupts
Config Clock = Soft , Gosub = Sectic
Dim Minute As Bit
Minute Alias Pinc.1
A = 0
B = 0
C = 0
D = 0
E = 0
F = 0
Dim Hour As Bit
Config Pinc.2 = Input
Hour Alias Pinc.2
Do
Reset Portb.0
Set Portb.1
Set Portb.2
Set Portb.3
Set Portb.4
Set Portb.5
Portd = Lookup(a , Lable1)
Waitms 40
Set Portb.0
Reset Portb.1
Set Portb.2
Set Portb.3
Set Portb.4
Set Portb.5
Portd = Lookup(b , Lable1)
Waitms 100
Set Portb.0
Set Portb.1
Reset Portb.2
Set Portb.3
Set Portb.4
Set Portb.5
Portd = Lookup(c , Lable1)
Waitms 100
Set Portb.0
Set Portb.1
Set Portb.2
Reset Portb.3
Set Portb.4
Set Portb.5
Portd = Lookup(d , Lable1)
Waitms 100
Set Portb.0
Set Portb.1
Set Portb.2
Set Portb.3
Reset Portb.4
Set Portb.5
Portd = Lookup(e , Lable2)
Waitms 100
Set Portb.0
Set Portb.1
Set Portb.2
Set Portb.3
Set Portb.4
Reset Portb.5
Portd = Lookup(f , Lable3)
Waitms 100
Loop
Sectic:
''''''''&# 039;''''''' 9;'''
''''''''&# 039;''''''' 9;'''
If Minute = 0 Then
Incr C
If C = 10 Then
C = 0
Incr D
If D = 6 Then
D = 0
End If
End If
End If
If Hour = 0 Then
Incr E
End If
''''''''&# 039;''''''' 9;'''
''''''''&# 039;''''''' 9;'''
Toggle Portc.0
Incr A
If A = 10 Then
A = 0
Incr B
End If
''''''''&# 039;''''''
If B = 6 Then
B = 0
Incr C
End If
''''''''&# 039;'''''''
If C = 10 Then
C = 0
Incr D
End If
''''''''&# 039;''''''' 9;
If D = 6 Then
D = 0
Incr E
End If
''''''''&# 039;''''''' 9;'
If E = 10 Then
E = 0
Incr F
End If
''''''''&# 039;''''''' 9;'''''''
If F = 2 And E = 4 Then
F = 0
E = 0
End If
Return
''''''''&# 039;''''''' 9;'''''''' ''
Lable1:
Data &B11000000 '00111111
Data &B11111001 '00000110
Data &B10100100 '01011011
Data &B10110000 '01001111
Data &B10011001 '01100110
Data &B10010010 '01101101
Data &B10000010 '01111101
Data &B11111000 '00000111
Data &B10000000 '01111111
Data &B10010000 '01101111
Lable2:
Data &B00111111 '0
Data &B00000110
Data &B01011011
Data &B01001111
Data &B01100110
Data &B01101101
Data &B01111101
Data &B00000111
Data &B01111111
Data &B01101111
Data &B00111111
Data &B00000110
Data &B01011011
Data &B01001111
Lable3:
Data &B00111111
Data &B00000110
Data &B01011011
Data &B01001111
7سگمنتها با هم مالتیپلکس شدن . تو پروتئوس کار میکنه ولی رو برد بستم تمام عددها روشن هستن و زمانو نمیشه فهمید
برنامه رو میزارم ببینین مشکل از برنامه هست یا چیزه دیگه اییه
ممنون میشم کمکم کنید.
$regfile = "M8def.dat "
$crystal = 8000000
Dim A As Byte
Dim B As Byte
Dim C As Byte
Dim D As Byte
Dim E As Byte
Dim F As Byte
Config Portb = Output
Config Portd = Output
Config Portc.0 = Output
Config Pinc.1 = Input
Enable Interrupts
Config Clock = Soft , Gosub = Sectic
Dim Minute As Bit
Minute Alias Pinc.1
A = 0
B = 0
C = 0
D = 0
E = 0
F = 0
Dim Hour As Bit
Config Pinc.2 = Input
Hour Alias Pinc.2
Do
Reset Portb.0
Set Portb.1
Set Portb.2
Set Portb.3
Set Portb.4
Set Portb.5
Portd = Lookup(a , Lable1)
Waitms 40
Set Portb.0
Reset Portb.1
Set Portb.2
Set Portb.3
Set Portb.4
Set Portb.5
Portd = Lookup(b , Lable1)
Waitms 100
Set Portb.0
Set Portb.1
Reset Portb.2
Set Portb.3
Set Portb.4
Set Portb.5
Portd = Lookup(c , Lable1)
Waitms 100
Set Portb.0
Set Portb.1
Set Portb.2
Reset Portb.3
Set Portb.4
Set Portb.5
Portd = Lookup(d , Lable1)
Waitms 100
Set Portb.0
Set Portb.1
Set Portb.2
Set Portb.3
Reset Portb.4
Set Portb.5
Portd = Lookup(e , Lable2)
Waitms 100
Set Portb.0
Set Portb.1
Set Portb.2
Set Portb.3
Set Portb.4
Reset Portb.5
Portd = Lookup(f , Lable3)
Waitms 100
Loop
Sectic:
''''''''&# 039;''''''' 9;'''
''''''''&# 039;''''''' 9;'''
If Minute = 0 Then
Incr C
If C = 10 Then
C = 0
Incr D
If D = 6 Then
D = 0
End If
End If
End If
If Hour = 0 Then
Incr E
End If
''''''''&# 039;''''''' 9;'''
''''''''&# 039;''''''' 9;'''
Toggle Portc.0
Incr A
If A = 10 Then
A = 0
Incr B
End If
''''''''&# 039;''''''
If B = 6 Then
B = 0
Incr C
End If
''''''''&# 039;'''''''
If C = 10 Then
C = 0
Incr D
End If
''''''''&# 039;''''''' 9;
If D = 6 Then
D = 0
Incr E
End If
''''''''&# 039;''''''' 9;'
If E = 10 Then
E = 0
Incr F
End If
''''''''&# 039;''''''' 9;'''''''
If F = 2 And E = 4 Then
F = 0
E = 0
End If
Return
''''''''&# 039;''''''' 9;'''''''' ''
Lable1:
Data &B11000000 '00111111
Data &B11111001 '00000110
Data &B10100100 '01011011
Data &B10110000 '01001111
Data &B10011001 '01100110
Data &B10010010 '01101101
Data &B10000010 '01111101
Data &B11111000 '00000111
Data &B10000000 '01111111
Data &B10010000 '01101111
Lable2:
Data &B00111111 '0
Data &B00000110
Data &B01011011
Data &B01001111
Data &B01100110
Data &B01101101
Data &B01111101
Data &B00000111
Data &B01111111
Data &B01101111
Data &B00111111
Data &B00000110
Data &B01011011
Data &B01001111
Lable3:
Data &B00111111
Data &B00000110
Data &B01011011
Data &B01001111
دیدگاه