51单片机动态扫描问题。。。

51单片机动态扫描问题。。。,第1张

scan是用来控制哪个LED显示的。

通过左移让每个LED分时显示,由于速度很快,肉眼看不出闪烁。

SCAN=1,就是00000001,需要取反后发送到P1。

就是p1=~scan,然后左移1位scan就变为00000010,接下一个循环。

动态扫描就是给各个数码管依次显示,任意时间只有一个数码管亮,但闪烁的太快了,人眼分辨不出,给人的感觉就是每个数码管都在亮。一般过程就是赋值,开显示,延时,关显示,这是我以前写过的程序

#include <REGX52H>

main()

{unsigned int i;

while(1)

{P0=0x3f;//个位赋值

P1_0=0;//开显示

for(i=0;i<2;i++);//延时

P1_0=1;//关显示

P0=0x6;//十位

P1_1=0;

for(i=0;i<2;i++);

P1_1=1;

P0=0x5b;//百位

P1_2=0;

for(i=0;i<2;i++);

P1_2=1;

P0=0x4f;//千位

P1_3=0;

for(i=0;i<2;i++);

P1_3=1;}

}

这个是4位数码管,P0口接赋值端,P1口低四位接4个数码管的选通端,你要八个的话就把P1口的高四位再接到另外四个数码管的片选端,程序仿照就可以了

以上就是关于51单片机动态扫描问题。。。全部的内容,包括:51单片机动态扫描问题。。。、51单片机如何控制八个数码管,进行动态扫描、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9417700.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存