📄 a5_2.asm
字号:
;///////////////////////////////////////////
;本程序源代码由单片机培训网提供.
;单片机培训网,让更多人学习单片机更容易.
;第一网址----www.mcuedu.com
;第二网址----http://51_train.nease.net
;创办人------刘永忠
;热线电话----(0755)27529998
;email-------aa815@163.com
;程序难易等级--------稍难
;利用一个并入串出的IC 74166连接一个8位的指拨开关,作为数据输入
;送到8051的接收端RXD;8051经UART存入SBUF寄存器,并检测当RI=1时,送至P2口显示
;输出一个LOW的信号(P10)到74166的SH/LD(位移/载入),将指拨开关的状态载入74166内部寄存器.
;启动UART的MODE0作为读入74166的数据.
;///////////////////////////////////////////
org 00h ;起始地址
loop: mov scon,#00010000b ;设定mode0 ren=1
clr p1.0 ;p1.0=0,载入74166数据(并入)
call delay1 ;延时
setb p1.0 ;p1.0=1,74166(移位串出)
clr ri ;ri=0
loop1: jbc ri,loop2 ;ri=1?是则跳到loop2
jmp loop1 ;不是则再检查
loop2: mov a,sbuf ;将dbuf载入acc
cpl a ;将数据反相
mov p2,a ;输出至p2
call delay ;延时500毫秒
jmp loop
delay: mov r5,#50 ;500毫秒
d1: mov r6,#20 ;10毫秒
d2: mov r7,#248
djnz r7,$
djnz r6,d2
djnz r5,d1
ret
delay1:
mov r7,#02
djnz r7,$
ret
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -