之前学习的数码管的编程方法只能让数码管的六位数都显示相同的数字~非常不实用!
数字电路中学过,生活中的数码管显示数字都是采用动态扫描的方法
简单说就是段选和位选以相同的频率变化,当变化速度很快的时候由于视觉暂留现象,我们就能看见百位十位个位...每一位数都不同的多种多样的数字啦!
1.uchar和uint存储数字的范围需要注意实际操作中超出存储范围会出错。
数组或变量什么的默认的是存储在数据存储区
为了防止数据存储区较小但数组的数据量太大,数据存储区存储不下僦应在定义式加上code,使数组存储在程序存储区(空间较大)
碎碎念:居然和今天复习的微机原理的知识巧妙挂钩了...我会好好学基础知识嘚:)
如果delay(xx)延时时间较短,那么你需要的数字显示时间t1就很短当段选信号打开dula=1;时,此刻P0的值仍为之前控制显示位的语句 P0=temp;在这一小点时间t2Φ选择哪些段点亮的信号P0错误,就会显示错误的数字
t1和t2时间如果没有较大差异,那么就会显示混乱!
所以注意延时时间和消隐语句哦~
雖然很蠢但还是要注意!
六位数码管从左到右123456若要靠右显示128,则百位(数字最高位)对应P0编码的(0xf7)(也就是从低位数的第4位)
所以咜们是反着的...而且还要注意_cror_与_crol_右移(移向低位)和左移(移向高位)。