单片机按键显示程序及原理图.docx
《单片机按键显示程序及原理图.docx》由会员分享,可在线阅读,更多相关《单片机按键显示程序及原理图.docx(13页珍藏版)》请在冰豆网上搜索。
单片机按键显示程序及原理图
1.KEYLED---按键一位显示
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
mova,#010h
mov50h,a
main1:
LCALLLED
LCALLKEY
SJMPMAIN1
KEY:
LCALLKS
JNZK1
LCALLDELAY
LJMPK5
K1:
LCALLDELAY
LCALLDELAY
LCALLKS
JNZK2
LJMPK5
K2:
MOVR2,#0FEH
MOVR4,#00H
K3:
MOVA,R2
MOVP2,A
MOVA,P2
ANLA,#0F0H
SWAPA
JBACC.0,L1
MOVA,#00H
LJMPLK
L1:
JBACC.1,L2
MOVA,#04H
LJMPLK
L2:
JBACC.2,L3
MOVA,#08H
LJMPLK
L3:
JBACC.3,NEXT
MOVA,#0CH
LK:
ADDA,R4
PUSHACC
K4:
LCALLDELAY
LCALLKS
JNZK4
POPACC
mov50h,a
K5:
RET
NEXT:
INCR4
MOVA,R2
JNBACC.3,K5
RLA
MOVR2,A
LJMPK3
KS:
MOVA,#0F0H
MOVP2,A
MOVA,P2
CPLA
ANLA,#0F0H
SWAPA
RET
LED:
mova,50h
movr1,A
movp3,#0efh
LED1:
MOVA,r1
movdptr,#table
MOVcA,@a+dptr
movp0,a
LCALLDELAY
RET
DELAY:
movr5,#10H
D0:
MOVR6,#0FAH
D1:
DJNZR6,D1
djnzr5,D0
RET
table:
db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0C6h,0A1h,86h,8Eh,0ch
END
2.KEYLEDINT1---按键4位显示,中断
ORG0000H
LJMPMAIN
org0013h
ljmpsubint1
org001bh
ljmpsubt1
ORG0030H
MAIN:
mova,#010h
mov50h,a
mov51h,#0h
mov52h,#0h
mov53h,#0ch
mov54h,#0h
mov55h,#4
clrp1.2
setbp1.5
CLRRS0
CLRRS1
//SETBRS0
movr7,#20
CLRRS0
movtl0,#00h
movth0,#00h
movtl1,#0B0h
movth1,#3ch
movtmod,#11h
movie,#8ch
movtcon,#04h
//setbtr0
setbtr1
clrp1.0
main1:
movR0,#4fh
movR2,#0F7h
main2:
movR3,#04H
main3:
movA,R2
RLA
movR2,A
INCR0
LCALLLED
DJNZR3,main3
SJMPMAIN1
LED:
mova,@R0
movr1,A
movp3,r2
LED1:
MOVA,r1
movdptr,#table
MOVcA,@a+dptr
movp0,a
LCALLDELAY
RET
DELAY:
movr5,#4H
D0:
MOVR6,#0faH
D1:
DJNZR6,D1
djnzr5,D0
RET
table:
db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0C6h,0A1h,86h,8Eh,0ch
subint1:
pushacc
inc54h
dec55h
mova,55h
cjnea,#00h,subint10
mov55h,#4
cplp1.5
cplp1.2
subint10:
popacc
reti
subt1:
movtl1,#0B0h
movth1,#3Ch
pushacc
//SETBRS0
decr7
cjner7,#00h,subt10
mova,54h
movb,#4
divab//mul
mov54h,#00h
movr7,#20
movb,#0ah
divab
mov50h,b
movb,#0ah
divab
mov51h,b
movb,#0ah
divab
mov52h,b
movb,#0ah
divab
mov53h,b
cplp1.4
subt10:
//CLRRS0
popacc
reti
3.中断脉宽调制PWM
Org0000h
ljmpmain
org000bh
ljmpsubt0
org0030h
main:
mov50h,#0h
mov51h,#10h
mov52h,#80h
mov53h,#00h
movtl0,#00h
movth0,#00h
movtmod,#01h
movie,#82h
setbtr0
lp1:
sjmplp1
subt0:
movtl0,#00h
movth0,#00h
inc50h
mova,53h
cjneA,#0,lp2
mova,50h
cjnea,51H,lp4
mov50h,#00h
mov53h,#01h
SETBp1.3
SJMPLP4
LP2:
mova,50h
cjnea,52H,lp4
mov50h,#00h
mov53h,#00h
CLRp1.3
lp4:
reti
end
4.中断脉宽调制PWM扩展
Org0000h
ljmpmain
org000bh
ljmpsubt0
org0030h
main:
mov50h,#1h
mov56h,#0h
mov57h,#2h
mov58h,#30h
mov59h,#00h
movtl0,#00h
movth0,#00h
movtmod,#01h
movie,#82h
setbtr0
lp1:
LCALLLED
LCALLKEY
mova,50h
JZlp1
movB,A
movA,57h
MULAB
mov58H,A
sjmplp1
subt0:
PUSHACC
movtl0,#00h
movth0,#00h
inc56h
mova,59h
cjneA,#0,lp2
mova,56h
cjnea,57H,lp4
mov56h,#00h
mov59h,#01h
SETBp1.3
SJMPLP4
LP2:
mova,56h
cjnea,58H,lp4
mov56h,#00h
mov59h,#00h
CLRp1.3
lp4:
POPACC
reti
KEY:
LCALLKS
JNZK1
LCALLDELAY
LJMPK5
K1:
LCALLDELAY
LCALLDELAY
LCALLKS
JNZK2
LJMPK5
K2:
MOVR2,#0FEH
MOVR4,#00H
K3:
MOVA,R2
MOVP2,A
MOVA,P2
ANLA,#0F0H
SWAPA
JBACC.0,L1
MOVA,#00H
LJMPLK
L1:
JBACC.1,L2
MOVA,#04H
LJMPLK
L2:
JBACC.2,L3
MOVA,#08H
LJMPLK
L3:
JBACC.3,NEXT
MOVA,#0CH
LK:
ADDA,R4
PUSHACC
K4:
LCALLDELAY
LCALLKS
JNZK4
POPACC
mov50h,a
K5:
RET
NEXT:
INCR4
MOVA,R2
JNBACC.3,K5
RLA
MOVR2,A
LJMPK3
KS:
MOVA,#0F0H
MOVP2,A
MOVA,P2
CPLA
ANLA,#0F0H
SWAPA
RET
LED:
mova,50h
movr1,A
movp3,#0efh
LED1:
MOVA,r1
movdptr,#table
MOVcA,@a+dptr
movp0,a
LCALLDELAY
RET
DELAY:
movr5,#10H
D0:
MOVR6,#0FAH
D1:
DJNZR6,D1
djnzr5,D0
RET
table:
db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0C6h,0A1h,86h,8Eh,0ch
end
1.ADC0809参考电路
2.DAC0832参考电路
3.4位LED显示参考电路