????????说到动态显示,我们可以说是轻车熟路了,之前的LED已经练过不少了,此次只是把LED换成了数码管,原理一样,还是一样的电路,接下来看看如何做到动态显示。
首先是对程序代码做些更改,只要要加上扫描的部分就可以了。关于中间的时间,还是用延时函数来做。
在循环函数中,我先是把刷新代码写在了最前部分,激活数码管1,输出数据,然后延时,接着激活数码管2,然后输出数据,再次延时,延时结束判断按键是否按下。没有按下继续扫描数码管,显示的是之前的存储在缓存中的数值,延时函数,采用的还是之前的配方,时间也是一样的,估计有些同学已经忘记了是延时多久了。我再给介绍下如何查看延时时间。
首先看下仿真中选择的单片机的晶振频率。
我用的是11.0592MHz,然后再去查看keil中仿真的频率是多少。修改为一致的参数。
单击这个按键,弹出设置对话框。
把此处的数字更改为11.0592即可,只填数值。记号小数点不要填错位置。其他不用动,单击OK即可。
单击此按键进入仿真模式。
在延时函数结尾处的灰色部分也添加断点。接着单击左上角复位键后的开始键。
当运行到延时函数时,就停下来了,此时延时函数前的运行时间是0.00043511秒。还是很快的。再次点击开始按键。
当按下按键,首先是显示的0,1、2此时再不停地切换。
再次按下按键,数码管显示了10,因为buffer2中的0依然在,buffer1中存储的是1,所以就显示了10。
多次单击后,可以看到,奇数显示在左,偶数显示在右,随着单击,交替更新。有兴趣可以自己测试下。