数码管的动态显示

2023-12-17 05:14:49

????????说到动态显示,我们可以说是轻车熟路了,之前的LED已经练过不少了,此次只是把LED换成了数码管,原理一样,还是一样的电路,接下来看看如何做到动态显示。

图片

首先是对程序代码做些更改,只要要加上扫描的部分就可以了。关于中间的时间,还是用延时函数来做。

图片

图片

在循环函数中,我先是把刷新代码写在了最前部分,激活数码管1,输出数据,然后延时,接着激活数码管2,然后输出数据,再次延时,延时结束判断按键是否按下。没有按下继续扫描数码管,显示的是之前的存储在缓存中的数值,延时函数,采用的还是之前的配方,时间也是一样的,估计有些同学已经忘记了是延时多久了。我再给介绍下如何查看延时时间。

首先看下仿真中选择的单片机的晶振频率。

图片

我用的是11.0592MHz,然后再去查看keil中仿真的频率是多少。修改为一致的参数。

图片

单击这个按键,弹出设置对话框。

图片

把此处的数字更改为11.0592即可,只填数值。记号小数点不要填错位置。其他不用动,单击OK即可。

图片

单击此按键进入仿真模式。

图片

图片

图片

在延时函数结尾处的灰色部分也添加断点。接着单击左上角复位键后的开始键。

图片

当运行到延时函数时,就停下来了,此时延时函数前的运行时间是0.00043511秒。还是很快的。再次点击开始按键。

图片

图片

图片

当按下按键,首先是显示的0,1、2此时再不停地切换。

图片

再次按下按键,数码管显示了10,因为buffer2中的0依然在,buffer1中存储的是1,所以就显示了10。

图片

多次单击后,可以看到,奇数显示在左,偶数显示在右,随着单击,交替更新。有兴趣可以自己测试下。

文章来源:https://blog.csdn.net/qq_65102825/article/details/135037113
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。