Code:
@ ERRORLEVEL -306
digit1 var portc.6'portd.0
digit2 var portc.4'portd.1
digit3 var portc.5'portd.2
digit4 var portc.7'portd.3
digit5 var portd.4
digit6 var portd.5
check var byte
cnt var word
digit var byte
pattern var byte
i var word
truby var byte
first var byte
second var byte
third var byte
fourth var byte
fifth var byte
sixth var byte
mills var word
seconds var byte
mins var byte
hour var byte
ampm var portb.7
parker var byte
num1 var portd.0'portc.6
num2 var portb.5
num3 var portb.4
num4 var portb.3
num5 var portb.2
num6 var portb.1
num7 var portb.0
num8 var portd.1'portc.4
num9 var portd.2 'portc.5
numstar var portb.6
num0 var portd.3 'portc.7
'CM2CON0=0
'CM1CON0=0
ANSELH=0
seconds=45
mins=59
hour=1
mills=1
cnt=0
ANSEL=0
truby = 0
INTCON=%10100000
OPTION_REG=%00000000
TMR0=6
on interrupt goto isr
INTCON=%10100000
trise=1
trisa=0
'trisd=0
trisd=%11000000
trisb=%01111111
trise=1
trisc=1
ampm=1
parker=0
portb=1
portc=1
loopa:
if portc.3=1 then
mills=mills+1000
while portc.3=1
wend
endif
if mills>59 then
mills=0
seconds=seconds+30
endif
if seconds>59 then
seconds=0
mins=mins+1
endif
if mins>59 then
mins=0
hour=hour+1
endif
if hour>11 then
hour=1
parker=1
if parker=0 then
ampm=0
else
ampm=1
endif
endif
if numstar=0 then
seconds = 0
mins = 0
hour = 0
goto delay
endif
goto loopa
delay:
for i=0 to 20
pause 1
next i
goto loophour
loophour:
if num2 = 0 then
hour = 2
for i=0 to 20
pause 1
next i
goto loopmins
endif
if num1 = 0 then
hour = 1
for i=0 to 20
pause 1
next i
goto loopmins
endif
if num3 = 0 then
hour = 3
for i=0 to 20
pause 1
next i
goto loopmins
endif
if num4 = 0 then
hour = 4
for i=0 to 20
pause 1
next i
goto loopmins
endif
if num5 = 0 then
hour = 5
for i=0 to 20
pause 1
next i
goto loopmins
endif
if num6 = 0 then
hour = 6
for i=0 to 20
pause 1
next i
goto loopmins
endif
if num7 = 0 then
hour = 7
for i=0 to 20
pause 1
next i
goto loopmins
endif
if num8 = 0 then
hour = 8
for i=0 to 20
pause 1
next i
goto loopmins
endif
if num9 =0 then
hour =9
for i=0 to 20
pause 1
next i
goto loopmins
endif
'for i=0 to 20
'pause 1
' next i
' goto loopmins
if numstar=0 then
for i=0 to 20
pause 1
next i
goto loopa
else
goto loophour
endif
loopmins:
if num2 = 0 then
mins = 2
for i=0 to 20
pause 1
next i
goto loopsec
endif
if num1 =0 then
mins=1
for i=0 to 20
pause 1
next i
goto loopsec
endif
if num3=0 then
mins=3
for i=0 to 20
pause 1
next i
goto loopsec
endif
if num4=0 then
mins=4
for i=0 to 20
pause 1
next i
goto loopsec
endif
if num5=0 then
mins=5
for i=0 to 20
pause 1
next i
goto loopsec
endif
if num6=0 then
mins=6
for i=0 to 20
pause 1
next i
goto loopsec
endif
if num7=0 then
mins=7
for i=0 to 20
pause 1
next i
goto loopsec
endif
if num8=0 then
mins=8
for i=0 to 20
pause 1
next i
goto loopsec
endif
if num9=0 then
mins=9
for i=0 to 20
pause 1
next i
goto loopsec
endif
if numstar=0 then
for i=0 to 20
pause 1
next i
goto loopa
else
goto loopmins
endif
loopsec:
if num2 = 0 then
seconds = 2
for i=0 to 20
pause 1
next i
endif
if num1 = 0 then
seconds=1
for i=0 to 20
pause 1
next i
endif
if num3=0 then
seconds=3
for i=0 to 20
pause 1
next i
endif
if num4=0 then
seconds=4
for i=0 to 20
pause 1
next i
endif
if num5=0 then
seconds=5
for i=0 to 20
pause 1
next i
endif
if num6=0 then
seconds=6
for i=0 to 20
pause 1
next i
endif
if num7=0 then
seconds=7
for i=0 to 20
pause 1
next i
endif
if num8=0 then
seconds=8
for i=0 to 20
pause 1
next i
endif
if num9=0 then
seconds=9
for i=0 to 20
pause 1
next i
endif
if numstar=0 then
for i=0 to 20
pause 1
next i
goto loopa
else
goto loopsec
endif
disable
isr:TMR0=6
digit=hour dig 1
lookup digit,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],pattern
porta=pattern
digit6=1
pauseus 500
digit6=0
digit=hour dig 0
lookup digit,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],pattern
porta=pattern
digit5=1
pauseus 500
digit5=0
digit=mins dig 1
lookup digit,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],pattern
porta=pattern
digit4=1
pauseus 500
digit4=0
digit=mins dig 0
lookup digit,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],pattern
porta=pattern
digit3=1
pauseus 500
digit3=0
digit=seconds dig 1
lookup digit,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],pattern
porta=pattern
digit2=1
pauseus 500
digit2=0
digit=seconds dig 0
lookup digit,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],pattern
porta=pattern
digit1=1
pauseus 500
digit1=0
cnt=cnt+1
intcon.2=0
resume
enable
end
Bookmarks