单片机/MCU论坛
直播中

呦呦呦123

8年用户 42经验值
私信 关注

74hc245的使用要注意什么

用51单片机控制74hc138,用74hc245来驱动数码管动态显示,为什么不加下面高亮部分的延时,数码管显示会变暗,不是有74hc245芯片的驱动吗?为什么还必须要有延时?
#include
***it yi=P2^0;
***it er=P2^1;
***it 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 for(k=0;k<124;k++);
}

回帖(4)

jblbin2008

2017-3-18 19:22:22
那个是消隐,如果开的一个接一个的显示,正常显示的数字就会变暗,而且显示成别的数字,比方说1和2这两个数据紧挨着显示,就不是1和2了,就显示成小写的a和a了,第一个a的后面一束比较清晰,第二个a的前面部分比较清晰。
举报

呦呦呦123

2017-3-18 20:01:20
引用: ***lbin2008 发表于 2017-3-18 19:22
那个是消隐,如果开的一个接一个的显示,正常显示的数字就会变暗,而且显示成别的数字,比方说1和2这两个数据紧挨着显示,就不是1和2了,就显示成小写的a和a了,第一个a的后面一束比较清晰,第二个a的前面部分比较清晰。 ...

请教为什么会出现变暗这种情况?鬼影我是去除了
举报

hts20100101

2017-3-19 09:45:02
好好学习,天天向上
举报

jblbin2008

2017-3-19 20:24:13
引用: 呦呦呦123 发表于 2017-3-18 20:01
请教为什么会出现变暗这种情况?鬼影我是去除了

这个跟你设定的消隐时间有关,消隐时间设定的越长,灯光越暗,长到一定程度就可以看到明显的闪烁。但是太短不会起到消隐效果。只是影子变暗了而已。
举报

更多回帖

×
20
完善资料,
赚取积分