74hc245的使用要注意什么
时间:10-02
整理:3721RD
点击:
用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++);
}
#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++);
}
那个是消隐,如果开的一个接一个的显示,正常显示的数字就会变暗,而且显示成别的数字,比方说1和2这两个数据紧挨着显示,就不是1和2了,就显示成小写的a和a了,第一个a的后面一束比较清晰,第二个a的前面部分比较清晰。
请教为什么会出现变暗这种情况?鬼影我是去除了
好好学习,天天向上
这个跟你设定的消隐时间有关,消隐时间设定的越长,灯光越暗,长到一定程度就可以看到明显的闪烁。但是太短不会起到消隐效果。只是影子变暗了而已。
