80C51 单片机使用汇编语言编写点亮和熄灭绿色LED流水灯附PROTEUS8仿真电路及效果(一)

C语言是单片机和一些嵌入式芯片驱动的首选语言,作为微型计算机驱动应用比较多的是汇编语言。大家常说C语言的指针难以操作,内存难以控制,编写较为复杂。汇编作为更低层级的语言,在芯片设计和底层运用方面起到了不可替代的作用。上学时,很多同学都觉得汇编是比C语言更难学习和掌握的语言,实际上当大家运用起来之后,便不会有这样的顾虑了,熟能生巧。

 

单片机型号:80c51

语言:汇编

编译平台:keil5

仿真软件:proteus 8.0

编译方法参考:https://jingyan.baidu.com/article/b0b63dbfe41ef84a49307064.html

接下来是依次熄灭绿色LED灯的流水(熄灭)效果代码:(来源于百度知道 ------ 代码搬运工)

;左移
star: mov r3,#8 ;设置流水位数
mov p2,#11111110b ;从p2.0开始
loop: acall d01s
mov a,p2 ;读取p2当前数据到acc
rl a ;左移一位
mov p2,a ;将左移的数据再送到p2
djnz r3,loop ;没有完成8位继续
;******************
mov p2,#0ffh ;熄灭所有灯
;******************
;右移
mov r3,#8 ;设置流水位数
mov p2,#01111111b ;从p2.7开始
loop1: acall d01s
mov a,p2 ;读取p2当前数据到acc
rr a ;右移一位
mov p2,a ;将左移的数据再送到p2
djnz r3,loop1 ;没有完成8位继续
ljmp star ;完成后返回到开始再来
;延时子程序
d01s: mov r0,#255
d01l1: mov r1,#198
djnz r1,$
djnz r0,d01l1
ret
end

程序仿真电路以及实现效果见下图(一):

 接下来是依次熄灭绿色LED灯的流水(点亮)效果代码:(来源于百度知道 ------ 代码搬运工)

ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH1,#HIGH(65536-50000)
MOV TL1,#LOW(65536-50000)
SETB TR0
SETB ET0
SETB EA
MOV R2,#0
MOV A,#01H
SJMP $
T0ISR:
CLR TR0
MOV TH1,#HIGH(65536-50000)
MOV TL1,#LOW(65536-50000)
SETB TR0
INC R2
CJNE R2,#20,T0E
MOV R2,#0
MOV P2,A
RL A
T0E:
RETI
END

程序仿真电路以及实现效果见下图(二):

THANK YOU FOR YOUR READING!

THE END. 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

potato_potato_123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值