hnmenglei 发表于 2019-1-18 12:19 分享一下程序加仿真 |
|
weidoit 发表于 2019-1-19 09:40 嗯,你用的是我的程序嘛? |
|
本帖最后由 weidoit 于 2019-1-21 10:37 编辑 Proteus仿真动态扫描,动态显示的效果,Proteus环境正常。
|
|
本帖最后由 weidoit 于 2019-1-21 10:33 编辑 Proteus仿真通过,没问题的
|
佛云 发表于 2019-1-18 08:46 请问一下,可以详细解说下那种扫描方式? |
yzwzfyz 发表于 2019-1-18 08:22 感谢,点我的发帖里边,有我发布的问题。 |
| 如果用1/16扫,3片596可以驱动 16x8x3个像素,相当于48个数码管,其他扫描方式类推 |
| 静态又有称为1/1扫的 其他的1/2,1/4,1/8,1/16都属于动态扫描。 静态和动态是LED显示屏的两种不同的驱动方式。 |
|
3个 595,1个驱动数码管段选(a-g,p),2个驱动数码管位选(com1-16) 用扫描方式驱动,高低位互不影响. |
| 你先举一个受到影响的例子 |
|
3片595是可以驱动16位数码管的。 第一:两片595进行位选,一片595进行段选。 第二:我所看到的多位数码管显示,都是段并联,如下图
第三:针对这样的电路,显示都是用“视觉暂留”原理的扫描法——一次只亮一个数码管(位选),间隔时间短,眼就认为都亮了。 程序例如:(原理程序,不是你的电路的配套程序!!!!!) void DigDisplay() //数码管动态显示子函数 { GPIO4=0;//位选 GPIO=DisplayData[0];//段选 Delay(30);//时间要自己试,一般在100ms以内 GPIO4=1;//关闭 GPIO3=0; GPIO=DisplayData[1]; Delay(30); GPIO3=1; GPIO2=0; GPIO=DisplayData[2]; Delay(30); GPIO2=1; GPIO1=0; GPIO=DisplayData[3]; Delay(30); GPIO1=1; ...... } 所以,你说的“高低位互不影响”的意思我懂啊,高位给高位的数据,低位给低位的数据,怎么会影响呢? |