program xdisplay2a
dim i as byte
dim j as byte
dim v as byte
dim por1 as byte
dim por2 as byte
sub function mask(dim num as byte) as byte ' this function returns masks
select case num ' for common cathode 7-seg. display
case 0 result = $3F
case 1 result = $06
case 2 result = $5B
case 3 result = $4F
case 4 result = $66
case 5 result = $6D
case 6 result = $7D
case 7 result = $07
case 8 result = $7F
case 9 result = $6F
end select'case end
end sub
sub procedure interrupt
if v=0 then
portb=por2 ' prepare mask for digit
porta=1 ' turn on 1st, turn off 2nd 7seg.
v=1
else
portb=por1 ' prepare mask for digit
porta=2 ' turn on 2nd, turn off 1st 7seg.
v=0
end if
TMR0=0
INTCON=$20
end sub
main:
OPTION_REG = $80
por2 = $3F
j = 0
TMR0 = 0
INTCON = $A0 ' Disable PEIE,INTE,RBIE,T0IE
trisa = 0
trisb = 0
portb = 0
porta = 0
do
for i = 0 to 99 ' count from 0 to 99
j = i mod 10
POR1 = mask(j) ' prepare appropriate digit
j = (i div 10) mod 10
POR2 = mask(j) ' prepare appropriate digit
Delay_ms(1000)
Next i
loop until false
end.