📄 a5_1.asm
字号:
;///////////////////////////////////////////
;本程序源代码由单片机培训网提供.
;单片机培训网,让更多人学习单片机更容易.
;第一网址----www.mcuedu.com
;第二网址----http://51_train.nease.net
;创办人------刘永忠
;热线电话----(0755)27529998
;email-------aa815@163.com
;程序难易等级--------稍难
;利用UART的MODE0做串行发送
;将8051的RXD,TXD接74164,扩充8个输出口
;利用表格的方式,建立一组数据,利用UART发送至8BIT串入并出的IC 74164
;这组数据使74164的8个LED左移2次,右移2次,闪烁2次
;///////////////////////////////////////////
org 00h ;起始地址
mov scon,#00000000b ;设定uart的工作方式modeo
start:
mov dptr,#table ;数据指针寄存器指到table的开头
loop:
clr a ;清除acc
movc a,@a+dptr ;到table取数据
cjne a,#03,al ;取到结束码03h吗?不是则跳到al
jmp start ;是跳到start
al:
;cpl a ;将取到数据反相
mov 30h,a ;存入(30h)地址
mov sbuf,30h ;将(30h)的值存入sbuf
loop1:
jbc ti,loop2 ;检测ti=1? 是则跳到loop2
jmp loop1 ;不是再检测
loop2:
call delay ;延时0.2秒
inc dptr ;数据指针加1
jmp loop
delay:
mov r5,#20 ;200毫秒
d1:
mov r6,#20 ;10毫秒
d2:
mov r7,#248
djnz r7,$
djnz r6,d2
djnz r5,d1
ret
table: db 01h,02h,04h,08h ;左移
db 10h,20h,40h,80h
db 01h,02h,04h,08h ;左移
db 10h,20h,40h,80h
db 80h,40h,20h,10h ;右移
db 08h,04h,02h,01h
db 80h,40h,20h,10h ;右移
db 08h,04h,02h,01h
db 00h,0ffh,00h,0ffh ;闪烁
db 03h ;结束码
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -