您的位置 首页 ADAS

单片机51小试验—跑马灯

以下这个程序我在实验箱上运行过,AT89C52功能:根据P2X口的电平,若输入为1,则有X个灯在P0P1口上循环;输入为开关按键ORG0000HJMP8:MOV

以下这个程序我在试验箱上运转过,AT89C52功用:依据P2.X口的电平,若输入为1,则有X个灯在P0P1口上循环

;输入为开关按键
ORG 0000H
JMP8: MOV P2,#0FFH ;将地点口置1,即设为输入方法
MOV A,#0 ;初始化R1
MOV R1,A
JB P2.0,SHOW1 ;判别P2口,若为1则转入相应的处理程序
JB P2.1,SHOW2
JB P2.2,SHOW3
JB P2.3,SHOW4
JB P2.4,SHOW5
JB P2.5,SHOW6
JB P2.6,SHOW7
JB P2.7,SHOW8
JMP JMP8
;P2口对应的处理部分
SHOW1:MOV A,#1
MOV R0,A
ACALL PRO ;PRO为处理子程序
SHOW2:MOV A,#2
MOV R0,A
ACALL PRO
SHOW3:MOV A,#3
MOV R0,A
ACALL PRO
SHOW4:MOV A,#4
MOV R0,A
ACALL PRO
SHOW5:MOV A,#5
MOV R0,A
ACALL PRO
SHOW6:MOV A,#6
MOV R0,A
ACALL PRO
SHOW7:MOV A,#7
MOV R0,A
ACALL PRO
SHOW8:MOV A,#8
MOV R0,A
ACALL PRO
RET
PRO:ACALL OUT ;OUT为向P2口输出子程序
CLR 20H ;将位20H作为是否跳到JMP8的标志,1则跳转
ACALL PP ;PP为判别P2口是否有新的按键
JB 20H,JMP8
ACALL XG ;XG为修正R1R0的值
JMP PRO
RET
OUT:MOV A,R1
MOV P1,A
MOV A,R0
MOV P0,A
ACALL DELAY ;DELAY为延时1024us的子程序
RETDELAY:MOV A,#0FFH
MOV R3,A
TT1:NOP
NOP
NOP
NOP
DJNZ R3,TT1
RET
PP: JB P2.0,S
JB P2.1,S
JB P2.2,S
JB P2.3,S
JB P2.4,S
JB P2.5,S
JB P2.6,S
JB P2.7,S
SETB 20H
S:RET
XG: MOV A,R1 ;将R1R0十六位进行循环移位
MOV C,ACC.7
MOV A,R0
RLC A
MOV R0,A
MOV A,R1
RLC A
MOV R1,A
RET
END

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/259883.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部