这是什么类型的程序是单片机吗?谁能告诉我一下,顺便告诉我一下,这程序是实现什么功能的?
org 000h
ajmp start
;中断向量程序段,一般不能用
org 000bh
ajmpdshi
;定时中断向量地
ORG0030h
start:mov sp,#30h ;初始化程序段
;mov p1,#00h;
;中断设置
;
mov
tmod,#01h
;定时器设置
mov
th0,#0fbh
mov
tl0,#01eh
mov
IE,#82h
mov
r0,#00h
mov
r1,#00h
mov
r2,#00h
mov
r3,#00h
mov
r4,#00h
clr
p3.7
;setb tr0
main:jnb
p1.3,qqq
acalld20
acallsetset
qqq:
ajmpmain
;**********************************
;扫描键盘S2,S3是否按下
;******************************
setset: ;clr p1.3
;clr p1.2
mov a,p1
jbacc.2, nnn
jbacc.3,nnn
acallset32
;clr a
nnn:ret
;**********************************
;键盘S3按下处理
;************************
set32: acall d20
;clr p1.3
;clr p1.2
mov a,p1
jb acc.2,smo
jb acc.3,smo
setbtr0
;setbp1.1
setbp3.7
smo:
ret
;*************************************
;定时中断服务子程序:定时1秒
dshi: mov
th0,#0fbh
mov
tl0,#01eh
inc
r0
cjne
r0,#08h,chuli
mov
r0,#00h
chuli:acall show
inc
r1
cjne
r1,#0ah,next
mov
r1,#00h
inc
r2
cjne
r2,#0ah,next
mov
r2,#00h
inc
r3
cjne
r3,#0ah,next
mov
r3,#00h
inc
r4
cjne
r4,#04h,next
cjne
r3,#00h,next
cjne
r2,#00h,next
cjne
r1,#00h,next
mov
r1,#00h
mov
r2,#00h
mov
r3,#00h
mov
r4,#00h
clr
p3.7
clr
tr0
next:
reti
;显示程序
show: setb p3.7
mov dptr,#Tab1
mov a,r0
movc a,@a+dptr
setb acc.2
setb acc.3
; setb acc.1
mov p1,a
;rlc a
;
mov p1.7,c
; rlc a
;mov p1.6,c
;rlc a
;mov p1.5,c
;rlc a
;mov p1.4,c
;mova,#00h
ret
;***********************
;延时程序约0.18秒
;***********************
d20:
mov 09h,#0afh
dly1: mov 08h,#0abh
dly2: nop
djnz 08h,dly2
djnz 09h,dly1
ret
;*******************
;**********
ORG0200h
Tab1: db 080h,0c0h,040h,060h,020h,030h,010h,090h
end
|