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