74hc245使用应该注意什么

2019-03-24 17:20发布

用51单片机控制74hc138,用74hc245来驱动数码管动态显示,为什么不加下面高亮部分的延时,数码管显示会变暗,不是有74hc245芯片的驱动吗?为什么还必须要有延时?
#include <reg52.h>
sbit yi=P2^0;
sbit er=P2^1;
sbit san=P2^2;
typedef unsigned char uchar;
typedef unsigned int uint;
#define shumaguan P0
uchar code shumaguanshuzi[ ]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                                        0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void dongtaisaomiao( );
void delay_ms(uin);
uchar i;
void main ( ){

while ( 1 )
dongtaisaomiao( );
}
void dongtaisaomiao( ){
for(i=0;i<8;i++){
switch (i){
case 0:yi=0;er=0;san=0;break;
case 1:yi=1;er=0;san=0;break;
case 2:yi=0;er=1;san=0;break;
case 3:yi=1;er=1;san=0;break;
case 4:yi=0;er=0;san=1;break;
case 5:yi=1;er=0;san=1;break;
case 6:yi=0;er=1;san=1;break;
case 7:yi=1;er=1;san=1;break;
}
shumaguan=shumaguanshuzi;
//delay_ms(1);
shumaguan=0x00;
}
}
void delay_ms(uint time ){
uint i,k;
for(i=0;i<time;i++)
for(k=0;k<124;k++);
}

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
strong161
2019-03-25 03:41
不延时闪的过快,假如5%的时间点亮,那么相当于闪的过快就会还没有亮起来就灭了,所以会暗,因为人眼对于超过一定频度的闪灯产什么余辉,所以不加延时看到的余辉都是亮还没有亮起来的状态,所以会暗,如果加上一定的延时后,灯已点灯再来,看到的就是全亮的余辉,所以会更亮,同样只有5%的时间是点亮数码管的。

一周热门 更多>