单片机段选程序和位选程序的书写顺序不一样时LED显示的就不一样是怎么回事啊?

来源:百度知道 编辑:UC知道 时间:2024/05/26 11:39:50
dula=1;
P0=table[0];//table[0]=0x3f;
dula=0;
wela=1;
P0=0xfe;
wela=0;
while(1);//这样写就能正确显示并且是第一个数码管亮
但是如果这样写就出现问题了:
wela=1;
P0=0xfe;
wela=0;

dula=1;
P0=table[0];
dula=0;//而且Protues上显示wela上的电平为0x3f,也就是段选的数值!!!
急求回答,不胜感激!!!!!!!!!!!!!

你的电路是什么样子的啊,有没有用到锁存器啊,要是有的话怎么写都行,但是要是没有的话就不可以了啊,因为你是用的一个口来控制段选和位选的,

在送完段选数据后 P0口上仍保持着上次的段选数据 所以wela上的电平还是上个dula的 可以加指令P0=0xff来消除 数码管显示时就不会乱码了~

不大明白你的意思

动态扫描显示的话,注意延时处理
如果显示错了一位,那肯定是延时的问题

选位—— 写SEG—— 延时 ; 显示在所选的位上
写SEG——延时——选位 ; 显示在上一位上

若是仿真和实物不一样,那有可能是硬件接线和仿真中的不一样