LED 动态显示实验汇编

实验内容:

利用动态显示方法,在4个数码管上从左到右显示“1234”。

实验步骤:

(1)连接数据总线,将M区的P0口用8芯排线与L区的J8相连。
(2)连接“写”信号,用导线将M区WR与L区的WR3相连。
(3)连接段码和位码选通地址控制信号,将Y区的138译码器输出端Y3和Y4分别用导线与L
区的E-SEG和E-CM相连。
(4)编写程序(根据电路可设置段码选通地址为BFFFH,位码选通地址为CFFFH)。
(5)运行程序,观察显示结果。
(6)改变扫描频率,观察显示效果的变化

实验程序

ORG 0000H                  ;位码可作为位选信号,用以选择LED3~LED0
LJMP MAIN
MAIN:
MOV 40H,#06H               ;40H~43H存放对于LED3~LED0需要显示的段码
MOV 41H,#5BH
MOV 42H,#4FH
MOV 43H,#66H
DISP4:MOV R0,#40H         ;置段码存放首地址
      MOV R7,#01H         ;置位码存放首地址
DISP1:MOV A,R7            ;位码送A
      MOV DPTR,#0CFFFH    ;选通位码锁存器
	  MOVX @DPTR,A        ;位码口输出位码
	  MOV A,@R0           ;段码送A
	  MOV DPTR,#0BFFFH    ;选通段码锁存器
	  MOVX @DPTR,A        ;段码口输出段码
	  LCALL DL1ms         ;调用延时程序
	 INC R0               ;指向下一个显示单元
	 MOV A,R7
	 RL  A
	 MOV R7,A
	 CJNE A,#10H,DISP1   ;判断A中数据是否为10H,若相等则执行下一步
	 SJMP DISP4          ;完成,重新启动循坏
DL1ms:MOV R6,#250        ;调用延时程序:(2T+2T)*250+2T
DL4T: NOP                ;假设f=12MHz
      NOP
	  DJNZ R6,DL4T
	  RET 
END

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是51单片机LED动态显示实验汇编语言程序: ```assembly ORG 0H // 程序起始地址 MOV P0,#0FFH // P0口设置为输出状态,关闭LED灯 MOV P2,#0FH // P2口低四位设为输出状态,用于控制数码管 MOV R0,#0 // 初始化计数器为0 MAIN: MOV A,R0 // 将计数器存入累加器 ANL A,#0FH // 只保留低四位(个位) MOV P0,#0FFH // 关闭LED灯 MOV P2,#0FH // P2口低四位设为输出状态,用于控制数码管 JNB P3.2,DIS2 // 判断P3.2是否为0,若为0则跳转到DIS2 MOV P2,#0EH // P2口第二位设为0,控制数码管的L1引脚显示 JMP DISPLAY // 跳转到DISPLAY DIS2: MOV P2,#0DH // P2口第三位设为0,控制数码管的L2引脚显示 DISPLAY: MOV P0,#00H // 显示编码 MOV A,R0 // 将计数器存入累加器 ANL A,#F0H // 只保留高四位(十位) SWAP A // 高低四位交换 ORL A,#80H // 与80H或运算,使数码管显示小数点 MOV P0,A // 显示编码 ACALL DELAY // 延时 INC R0 // 计数器加1 CJNE R0,#10H,MAIN // 判断计数器是否为10,若不为10则跳转到MAIN SJMP MAIN // 若计数器为10则跳转到MAIN DELAY: MOV R1,#0FFH // 初始化R1为FFH AGAIN: MOV R2,#0FFH // 初始化R2为FFH AGAIN1: DJNZ R2,AGAIN1 // R2自减,若R2不为0,则跳转到AGAIN1 DJNZ R1,AGAIN // R1自减,若R1不为0,则跳转到AGAIN RET // 延时结束,返回 ``` 此程序使用了共阴极数码管显示0~9的编码,通过循环动态显示0~9,每次循环调用显示函数,在显示函数中获取十位和个位上的数,然后依次显示出来。其中,延时函数用于控制显示时间。汇编语言相对于C语言来说,更加底层,更加灵活,但是需要掌握更多的指令和语法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值