1.除法器
2. 从0-99计数,以1ms为间隔:
多位数码管使用同一组段选,不同的位选,因此我们就不能够一对一得固定显示,这时我们就需要动态扫描。
动态扫描:利用人眼视觉暂留,四位数码管每次只显示一位数字,但是切换频率大于200HZ(50 × 4),这样就能让人产生同时显示四个数字的错觉。
但是一个完整的驱动程序不只这些,一个完整的数码管驱动有6部分:
1.码表(ROM):存储段码(一般放在ROM中,节省RAM空间),例如数字0的段码就是0xC0,码表则包含0-9的段码
实际的码表:
2.显存(RAM):保存要显示的数字,取连续地址(便于查表)
3.段选赋值:通过查表(码表)操作,将显存映射到段码
4.位选切换:切换显示的位置(个位/十位/百位/千位)
5.延时:显示的数字短暂保持,提升亮度(这里显示的是以1ms速度切换就差不多)
6.消影:消除切换时不同位置互相影响而产生的残影(这一步还挺重要!MOV p0,#0FFH)
另外的一点小问题:
P0口在接入的时候要注意接上拉电阻
就像这样子
好啦,完毕