仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載
org 0000h
ljmp reset
org 0003h
reti
org 000bh
reti
org 001bh
reti
org 0023h
ljmp tans_int
reset: mov r0,#0
djnz r0,$
init: mov r1,#4
mov tmod,#0020h
mov th1,#0fdh
mov tl1,#0fdh
setb tr1
mov pcon,#00h
clr sm0
setb sm1
setb ren
clr ti
clr ri
setb es
setb ea
main:
mov r0,#9
mov a,#0
loop:
mov dptr,#table
mov a,r0
movc a,@a+dptr
mov sbuf,a
jb ti,$
lcall delay
inc dptr
dec r0
cjne r0,#255,loop
ljmp main
tans_int:
push acc
push psw
jnb ti,recive_clr
clr ti
sjmp int_end
recive_clr:
jnb ri,int_end
clr ri
mov a,sbuf
mov p2,a
int_end:
pop psw
pop acc
reti
table:
db 0c0h,0f9h,0a4h,0b0h,99h
db 92h,82h,0f8h,80h,90h
delay:
mov r3,#4 ;????(????5**255*255*2=500ms)
l0: mov r4,#0
l1: mov r5,#0ffh
djnz r5,$
djnz r4,l1
djnz r3,l0
ret
end
|