51单片机数码管怎样才能同时在两个数码管上面显示不同的数字??

#include<reg52.h>

#define uchar unsigned char
#define uint unsigned int
void main()
{
P0=0xfe; //我直接把单片机P0口接到位端
P1=0x3f; //把P1口接到数码管段处理端

P0=0xfd;
P1=0x66;

}

这个程序为什么只显示0x66这个数字。

但是我稍微改动下
#include<reg52.h>

#define uchar unsigned char
#define uint unsigned int
void main()
{
P0=0xfe; //我直接把单片机P0口接到位端
P1=0x3f; //把P1口接到数码管段处理端
delayms(5);//插入一个延时语句为什么就可以同时显示两个不同的数字呢??

P0=0xfd;
P1=0x66;

}

是因为人眼的视觉暂留效应,实际上两个数码管是交替显示的,但是因为交替的速度十分快,所以会有因为视觉暂留效应而看到两个数码管都是同时现实的。

视觉暂留现象即视觉暂停现象(Persistence of vision,Visual staying phenomenon,duration of vision)又称“余晖效应”,1824年由英国伦敦大学教授皮特.马克.罗葛特在他的研究报告《移动物体的视觉暂留现象》中最先提出。

人眼在观察景物时,光信号传入大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失,这种残留的视觉称“后像”,视觉的这一现象则被称为“视觉暂留”。

扩展资料:

led数显管分类:

1、按控制方式分:分为内控方式(内部有单片机,通电自动变色)和外控方式(需要外接控制器才能变色)。

2、按变化方式分:分为固定色彩的和七彩、全彩的;固定色彩的是用来勾轮廓的,全彩的可以勾轮廓,也可以组成管屏显示文字、视频等。

3、按尺寸分:有D50的、D30的,这是直径;长度基本上1米的(可以定制);这个需要根据实际需要进行选择就行了。

4、按内部可控性分:有1米6段的,有1米8段的和1米12段、1米16段、1米32段的。也就是1米的管子内有几段可以独立受控。 1米段数越多,做视频的效果越好。如果密度低,或者做些追逐效果,做1米6段也就可以了。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-27
如果是2个及以上的smg,是不会用你的放法的。使用数码管都是用动态显示实现的。
人能方便的频率是50HZ,你只要保证单个现实的时间在20ms一下就可以了。
你要现实2个数码管,线点亮第一个数码管,然后点亮第二个数码管。本回答被提问者采纳
第2个回答  2013-05-06
利用人眼的视觉暂留,先写第一个数码管的数字,再写第二个数码管, 只要两个数码管动态显示快,人眼就可以看成同时显示。
第3个回答  2013-05-06
动态扫描。
相似回答