mkd 51 programy potencjomETR
org 0
ljmp start
;org 0003h ;przerwanie z wejścia /INT0
org 000Bh ;przerwanie z licznika T0
ljmp intT0
;org 0013h ;przerwanie z wejścia /INT1
;org 001Bh ;przerwanie z licznika T1
;org 0023h ;przerwanie z portu szeregowego
start:
mov 32,#83h ;ustawienie licznika pomocniczego w celu uzyskania sekundwych odstepow
mov 40,#0 ;1-9
mov 41,#0
mov 42,#0
mov 43,#0
mov 50,#0
mov IE,#82h ;odblokowanie przerwan
mov TMOD,#1h ;ustawienie trybu licznika
mov dptr,#-5000
mov TL0,dpl ;poczatkowa wartosc licznika
mov TH0,dph
mov TCON,#10h ;uruchomienie licznika
wyswietlanie: ;Glowna petla
ljmp wyswietlanie
intT0: ;obsluga przerwania z T0
push dpl
push dph
push acc
;======================
mov dptr,#8005h
movx @dptr,a
;======================
mov a,#40
add a,50
mov dptr,#led
mov r0,a
mov a,@r0
movc a,@a+dptr
mov dptr,#8018h
movx @dptr,a
mov P1,50
inc 50
mov a,50
anl a,#4
jz const
mov 50,#0
;======================
const:
;inc 20h ;sprawdzenie licznika pomocniczego
;mov a,20h
;jnz kintT0
;mov 20h,#83h ;ustawienie licznika pomocniczego
mov dptr,#8000h
movx a,@dptr
mov b,#100
div ab
mov 42,a
mov a,b
mov b,#10
div ab
mov 41,a
mov 40,b
mov a,40
mov dptr,#jednostki
movc a,@a+dptr
mov 40,a
jnz kintT0
mov a,41
mov dptr,#jednostki
movc a,@a+dptr
mov 41,a
jnz kintT0
mov a,42
mov dptr,#jednostki
movc a,@a+dptr
mov 42,a
jnz kintT0
mov a,43
mov dptr,#jednostki
movc a,@a+dptr
mov 43,a
jnz kintT0
kintT0:
mov dptr,#-5000
mov TL0,dpl ;poczatkowa wartosc licznika
mov TH0,dph
pop acc
pop dph
pop dpl
reti
jednostki:
db 1,2,3,4,5,6,7,8,9,0
led:
db 3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh,0
DELAY256:
push dpl
push dph
push acc
mov a,#0
loop:
inc a
jnz loop
pop acc
pop dph
pop dpl
ret
end
Wyszukiwarka