51单片机的数码管循环显示编程实例

时间:2023-03-11作者:佚名
  要求在数码管上循环显示数字 1~5。

51单片机的数码管循环显示编程实例

  范例分析:
  1.1硬件分析
  数码管采用共阳极结构。
  1.2软件设计
  设计中要求循环显示1~5,很显然应采用循环的方法来实现,最简单的方法是将1~5的段码依次由P0口送出。
  准备程序

51单片机的数码管循环显示编程实例


  2、控制转移类指令的特点及使用
  (1)长转移指令
  LJMP Addr16
  功能:长距离无条件转移指令
  说明:三字节指令,它直接将指令中的16位常数装入PC,使程序无条件转移到指定的地址处执行。目标语句可以是程序存储器64KB空间的任何地方。
  (2)绝对转移指令
  AJMP addr11
  例: 4002H AJMP MM
  ……
  4600H MM: MOV A,#00H
  注意:目标语句必须和当前语句同页。在51单片机中,64KB程序存储器分成32页,每页2KB(7FFH)。
  (3)短跳转指令
  SJMP 目标语句(rel)
  例: 4060H SJMP LOOP
  ……
  4090H LOOP:MOV A,#0FFH
  ……
  注意:短跳转的目标语句地址必须在当前语句向前127(7FH)字节,向后128(80H)字节,否则在进行程序编译时会出错。
  (4)变址寻址转移指令
  JMP @A DPTR
  该指令主要用于多分支的跳转程序设计。跳转的目标地址是累加器A和数据指针DPTR之和,它可以是64KB存储空间的任何地方。
  例 根据标志单元R2中的内容,分别转各个处理程序。
  程序如下:
  PJ1: MOV DPTR ,#TAB1
  CLR C
  MOV A,R2
  ADD A,R2 ;(R2) ×2←A
  JNC NADD
  NC DPH ;(R2)×2>256时,16位数据指针高8位加1
  NADD:JMP @A DPTR
  TAB1:LJMP PRG0 ;转处理程序0的首地址
  LJMP RRG1
  …
  LJMP RRG n
  (5)减1条件转移指令组
  DJNZ Rn,目标地址(rel);如果(Rn)-1≠0,则程序跳转到目标语句,否则顺序执行下一条语句。
  DJNZ direct,目标地址(rel);如果(direct)-1≠0,则程序跳转到目标语句,否则顺序执行下一条语句。
   例 将8031内部RAM的40H~4FH单元置初值A0H~AFH。程序为:
  START:MOV RO,#40H ;RO赋值,指向数据单元
  MOV R2,#10H ;R2赋值,为传送字节数,十六进制数
  MOV A,#0A0H ;给A赋值
  LOOP: MOV @RO,A ;开始传送
  INC,RO ;修改地址指针,准备传下一数地址
  INC A ;修改传送数据值
  DJNZ R2,LOOP ;如果未传送完,则继续循环传送
  RET ;当R2的值减为0时,则传送结束

  3、延时程序的设计和延时时间的计算方法
  延时程序是一种应用较为广泛的小程序,一般采用多条语句循环执行来实现延时。
  例1:设计一延时程序,延时时间为1ms(fosc=12MHz)。
  例2:设计一延时250ms的程序
  已有上例所举延时1ms子程序,调用250次,即得延时250ms子程序
  DELAY2:MOV R3,#FAH
  DEL3:ACALL DELAY1
  DEL2: NOP
  NOP
  DJNZ R3,DEL3
  RET
  本段程序延时的时间为:
  1 (2 993 2)250 2=249253us
  误差不到1ms
  思考:如何设计延时1s程序?

  4、子程序的设计方法
  4.1子程序:在程序中反复多次执行的程序段,可编写为子程序,在使用时通过主程序调用就可以使用它。这样不但可以减少编程工作量,也缩短了程序的长度。
  4.2子程序的使用:
  (1)子程序调用:
  指令:ACALL ××× ;绝对调用,2KB范围
     LCALL ××× ;长调用,64KB范围
  (2)子程序返回:
  指令:RET ;子程序返回指令
     RETI ;中断子程序返回指令
  ORG 2000H
  MAIN: CLR P3.2
  MOV P0,#0F9H
  LCALL DEL
  MOV P0,#0A4H
  LCALL DEL
  MOV P0,#0B0H
  LCALL DEL
  SJMP MAIN
  DEL: MOV R7,#10
  DEL1: MOV R6,#123
  …………
  DJNZ R7,DEL1
  RET
  END

  5、循环程序设计的基本方法
  循环程序:在程序中需要反复执行的程序段,为了避免在程序中多次的编写,可以通过利用条件转移或无条件转移指令来控制程序的执行。结构流程图一般如下图所示:

51单片机的数码管循环显示编程实例

相关阅读

常见的外围硬件电路设计参考及注意事项

从事嵌入式这个行业已经有七八年了,在此我给大家分享分享一些硬件电路的设计方案和心得,供一些刚学嵌入式的朋友参考,大神和老鸟请忽略哈。还有,因为本人知识非常有限,也...
2023-05-31
常见的外围硬件电路设计参考及注意事项

一文看懂三相异步电动机接触器联锁的正反转控制原理

本文介绍了三相异步电动机接触器联锁的正反转控制的方法,三相异步电动机的正反转控制方式、三相异步电动机正反转控制的安全措施、接触器联锁的正反转控制线路的工作原理等知...
2023-06-26
一文看懂三相异步电动机接触器联锁的正反转控制原理

正弦交流电路与其分析方法“相量法”(下)

【免费学习】 PLC热门课程_PLC初级_PLC基础_PLC中高级_软件安装 【免费学习】 变频器精品课程_西门子PLC精品教程_三菱PLC精品教程! 但凡有知道交流电路正弦量的,多多少少应该都听过“...
2023-06-27

秒懂!图解变电站二次设备的检修

电气设备根据功能不同,可分为一次设备和二次设备。电气二次设备主要包括继电保护、自动装置、故障录波、就地监控和远动。它们正常可靠的运行是保障电网稳定和电力设备安全的...
2023-06-11
秒懂!图解变电站二次设备的检修

1.5V、3V、6V转换为220V的逆变电路分析

在本文中,我们讨论了一些可以将 1.5 V 转换为 220 V 或 3 V 转换为 220 V 或 6 V 转换为 220 V 的微型逆变器电路。所有设计均采用单个 PNP 晶体管和变压器,以反馈模式连接以产生振荡。  ...
2023-07-10
1.5V、3V、6V转换为220V的逆变电路分析

热销商品

FEITA 镊子碳纤维合成塑料防静电无尘净化塑胶手动工具镊子93302

FEITA镊子93302采用高强度碳纤维合成塑料材质,兼具轻量化与耐用性,适用于精密操作场景。其独特的防静电设计有效避免静电对电子元件的损害,广泛应用于半导体、光学、...
1.2

江南国标rvv铜芯电缆软线3 4多芯平方rvvp护套信号屏蔽线线缆电线

江南国标rvv铜芯电缆软线34多芯平方rvvp护套信号屏蔽线线缆电线,是一种高性能的电缆产品,适用于各种信号传输和控制场合。该电缆采用优质铜芯,具有优良的导电性能和...
1.96

内六角扳手套装单个内六方螺丝刀进口S2款加长特长平头内6角2.5mm

这款进口S2材质内六角扳手套装,专为精密机械维修与装配设计,采用高品质S2合金钢制造,具备卓越的硬度、耐磨性与抗扭强度,有效防止使用过程中断裂或变形。套装中包含2....
1.4

橡胶条U型防撞包边条橡胶卡条玻璃嵌条配电箱机柜u型条密封条封王

橡胶条U型防撞包边条是一种多功能密封与防护配件,广泛应用于配电箱、机柜、玻璃门窗及各类设备边缘。采用优质橡胶材质,具备优异的弹性、耐老化、防水防尘和抗冲击...
0.8

10副装护目镜打磨劳保防飞溅男女骑行机械实验防风沙灰尘防护眼镜

这款10副装护目镜专为多场景防护设计,适用于打磨、机械加工、实验操作、骑行及户外作业等环境。采用高透光防雾镜片,有效抵御飞溅物、风沙、灰尘及化学液体喷溅,保障...
19.8

网站栏目