动态数码管实验(汇编语言)——含仿真

本文主要描述数码管动态显示的实现过程,介绍如何通过74HC245和74HC138芯片实现段选和位选。


  • 74HC245芯片

86646f7c724869082405c78173b5ccf6.png

74HC245芯片用以数码管的段选,它的输入端与P0相连,故可通过对P0赋段码值实现段选。已知八段数码管为共阴数码管,查阅资料,段码表如下,

6894e1f31ba6c8e2cf30bc44880775c9.jpeg

  • 74HC138芯片

该芯片用以位选,通过P2端口的P22,P23,P24实现位选,真值表如下:

30e8f38d1c49dc8891100a5380836ab9.png
008ce1441209e4e17188f8af56a9255e.png

  • 动态显示

动态显示实际上是利用LED显示器的余辉和人眼的视觉暂留作用,达到在同一时刻多位数码管同时亮起的假象。这只需要控制位选之间的延时效果间隔合适即可。


代码如下:


ORG 0000H
AJMP START
ORG 0030H
START:                
  MOV 60H,#1
  MOV 61H,#3
  MOV 62H,#1
  MOV 63H,#4
  MOV 64H,#10
  MOV 65H,#5
  MOV 66H,#2
  MOV 67H,#0
MAIN:
  MOV P2,#0FFH            ;位选
  MOV A,60H                ;查表第一个数,给A赋值
  LCALL LOOP1            ;调用函数,确定段选
  MOV P0,A                ;将段码赋给P0,进行段选
  LCALL DLY                ;延时
 
  MOV P2,#0FBH
  MOV A,61H
  LCALL LOOP1
  MOV P0,A
  LCALL DLY
  
  MOV P2,#0F7H
  MOV A,62H
  LCALL LOOP1
  MOV P0,A
  LCALL DLY

  MOV P2,#0F3H
  MOV A,63H
  LCALL LOOP1
  MOV P0,A
  LCALL DLY

  MOV P2,#0EFH
  MOV A,64H
  LCALL LOOP1
  MOV P0,A
  LCALL DLY

  MOV P2,#0EBH
  MOV A,65H
  LCALL LOOP1
  MOV P0,A
  LCALL DLY

  MOV P2,#0E7H
  MOV A,66H
  LCALL LOOP1
  MOV P0,A
  LCALL DLY

  MOV P2,#0E3H
  MOV A,67H
  LCALL LOOP1
  MOV P0,A
  LCALL DLY
  LJMP MAIN

DLY:MOV R0,#20      ;延时 
D1:MOV R1,#50      
   DJNZ R1,$        
   DJNZ R0,D1         
RET                    
LOOP1: INC A         ;偏移量
       MOVC A,@A+PC      
RET
TAB:                ;0-9与-的段码
    DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H
END

仿真结果如下图:

注意,要先进行位选,再进行段选,否则在proteus 中数码管无法正常显示。

393470788edc92df243826d6b7c8e000.jpeg
2535e51620836efd286d55436f5cd6fe.png

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值