您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页按键+1四位显示的移植

按键+1四位显示的移植

来源:二三娱乐

独立按键实现数码管的数字移动,即每按下按键一次,数字加一,以十进制方式进位,满十进一,最高四位数。连接好单片机,且用k51进行编程,用宏晶科技软件进行烧录,程序烧录完成后,即可实现此功能。(*注意:我们是对小板进行操作,利用的基础程序来源于大板)因此,需要我们对小板进行分析。

一、程序分析

小板是四位数码管,而大板是八位,所以我们首先必须明白两者结构的区别。(结构图如下)
每个数码管的控制 小板数码管的显示(信号直接接到了STC的端口) 大板数码管的显示(通过3线8线译码器连接数码管)
要实现数码管显示,首先要确定共阴还是共阳,我们选共阳信号,所以置1为高电平,段不亮,置0为低电平,段亮。信号大板小板不同,小板从高位至低位依次为P2.0-P2.3,置低电平时,位被选中。独立按键选择init 1进行操作。

二、代码修改

根据大板和小板的不同点,我们对程序进行修改。

我们来看代码图


数码管定义及延时:定义位选信号:LSA\LSB\LSC\LSD四个端口,用来显示数码管的1-4位。定义段选信号:共阳极,0为段亮,1为段不亮,且由右到左依次为低位到高位。U8 number为初始时的数码管显示的数字,即初始数码管显示0000选用init1接口的独立按键 动态码显示:当LSA/LSB/LSC/LSD分别置0位时,才会显示并且消隐函数要全都置位为1,否则无法实现消隐。 main函数部分
实现后的显示如图:
存误显示(最后一位没显示的情况)

三、问题研究

通过实验,发现了很多问题,而且有一些还没有完全解决。在实验过程中,首先要使用k51进行调试,然后通过撰写程序形成.Hex文件,再使用宏晶进行烧录,完成实验。

在程序修改过程中,主要问题如下:
1、对于题目的理解,首先要看清楚意思,不然找不到大板的源程序,这也是我在实验中第一个困难。

2、共阳共阴问题,如果没有分析小板电路图的话,很容易将大板上共阴的数码管代码原搬过来,使得一开始现实的时候正好反向。

3、消隐问题。消隐非常的重要,修改完共阳数码管的显示后,会发现不亮的数码管还是会有隐隐约约的亮,而显示的数字几乎看不出来(如下图),这时我们就要从代码上找问题,我们分析过共阳的数码管当高电平的时候段不亮,所以要想消隐就必须全都置位为高电平,所以要将原先消隐代码0x00变为0xff。


未消隐

4、我们会发现直接用端口进行位选的时候就要相应的改变端口的高低电平。为了让各个位都能正常显示,我们还是得需要分析电路图。置位为0的时候,此位才显示。所以,当最低位都置为1时,就如上面显示图一样,最低位不显示。

5、未解决问题
(1)、代码不进位,只是单循环。

(2)、smgduan[17]的含义,以及换成table[]的正确性原因。 代码
(3)、case(0)(1)(2)(3)的顺序和LSD的引入,以及0/1值的修正。 代码

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务