基于Proteus+8051汇编应用实例系列之五--数码管显示拨码开关编码

本文通过8051单片机和Proteus仿真,详细讲解如何使用拨码开关生成一个数字,并通过4位数码管以十进制方式动态扫描显示。内容涉及拨码开关状态读取、数值转换为十进制、数码管段选及动态扫描显示技术。

题目描述:
  
           Proteus仿真图如下所示:

通过一个拨码开关来生成一个数,并通过4位数码管以十进制方式显示出来,其中拨码开关与P1口连接,P0口通过一个74LS245来与数码管相连(因为P9口自身的高电平不足以驱动数码管,需要这个器件来帮忙),段选连接到P2口的低四位上。
问题分析:
1)拨码开关因每一位的开关状态,构成一个有8个二进制位的字节,即读取P1口的数值也就是拨码开关的状态
2)将P1口的数值读回来,是以16进制(实质当然还是8个二进制)表示,需要将它转换成三位的十进制数显示在数码管上,通过除以10,余数为个位数,然后再除以10,余数是十位,商是百位数。
3)多位数码管的动态扫描显示,即通过段选指定显示第几个数字,通过引脚将相应信号传入,并保留一个很短的时间段,然后将所以段选再关闭(称作消隐过程),以显示下一位数字。注意这种动态扫描,就是一位一位地显示,在间隔够短时,人眼看到的便是三位同时显示的效果了。另外注意消隐过程,若无消除,当各位显示间隔较大时,出现流动显示的效果,间隔够短时,便显示乱码了,可能每一位都显示不正常了。

代码文件main.asm

// *************************************************************
//	数码管显示拨码开关编码
// 1)多位数码管的动态扫描显示(通过段选来指定位置)
// 2) 16进制转换成三位的十进制数(DIV指令)		
// *************************************************************
		ORG	00H
// ********************************
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值