单片机c51汇编语言,51单片机汇编语言

a) 单个与多个LED灯,位操作与字节操作—输出016f8d2710bfcd6aa37eb10c0e7d2642.png

ORG 0000H

START:

CLR C

MOV P0.0,C

MOV P1.1,C

MOV P2.2,C

MOV P3.3,C

CLR A

CPL A

MOV P0,A

MOV P1,A

MOV P2,A

MOV P3,A

END

程序说明:

可以用7段数码管来代替各端口的8个LED灯,硬件的这种显示方式使得数字表达成为实用。数字显示由数码管的硬件结构与工作原理(7个LED灯的几何变形组合)和数字表达的数据格式确定。

如:

共阳极数码管显示数字3,则有P1口送数据#4FH;

MOV  P1, #0B0H

共阴极数码管显示数字8,则有P1口送数据#80H;

MOV  P1, #7F H

用数据表表示则有:

TABshuziyang: //阳极管(共阴极管取反即可)

DB (数字0~F)

C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H,88H,83H,C6H,A1H,86H,8EH

TABshuziyin: //阴极管(共阳极管取反即可)

DB(数字0~F)

3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H

b) 单个与多个LED灯闪烁—延时子程序—注意定时器87c89c6d0329698afdd735dbc8a95f43.png

前边已经看到,通过改变位或字节的赋值,可以使得LED灯亮或灭,以此形成闪烁效果。但是硬件的响应时间太短,使得效果不佳。虽然可以通过改变单片机的时钟设置来改变效果。但时钟的改变极其不方便,因此需要利用延时指令(注意定时器功能)获得理想的效果。延时效果是利用单片机空转来实现的。

ACALL  DELAY   ; 调延时子程序

*************************************************************************

DELAY:      ; 延时子程序 — 这是一个非常有用、而且常见的一个子程序

MOV R5,#04H    ;将16进制数04H传递给寄存器R5

F3:

MOV R6,#0FFH  ;将16进制数0FFH传递给寄存器R6

F2:

MOV R7,#0FFH  ;将16进制数0FFH传递给寄存器R7

F1:

DJNZ  R7, F1 ;寄存器R7减1非0跳转到F1,直到减为0顺序执行下一指令

DJNZ  R6, F2 ;寄存器R6减1非0跳转到F2,直到减为0顺序执行下一指令

DJNZ  R5, F3 ;寄存器R5减1非0跳转到F3,直到减为0顺序执行下一指令

RET       ; 子程序结束,返回子程序入口处  ACALL  DELAY   ; 调延时子程序</

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值