org 0
ljmp start
org 000Bh ;przerwanie z licznika T0
ljmp intT0
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
Podobne podstrony:
mkd 51 programy potencjomETRmkd 51 programy potencjomETRwyświetlaczmkd 51 programy Nowy dokument tekstowy (2)mkd 51 programy selcasmkd 51 programy przerwamkd 51 programy zalmkd 51 programy Nowy dokument tekstowymkd 51 programy kolokwiummkd 51 programy POTDIODAmkd 51 programy w7segx9mkd 51 programy pseudo asmProgramator procesorów 51 firmy Atmel README2Programator procesorów 51 firmy Atmel READMEwięcej podobnych podstron