标题:
单片机四位数码管显示程序问题
[打印本页]
作者:
1970420173
时间:
2022-1-4 16:23
标题:
单片机四位数码管显示程序问题
我用的是带74hc595编码的四位数码。但是显示时为什么像流水灯一样,不能一起显示,每一个数码管之间也有延时。我加大时间就像流水灯,减少数据他就不停的闪,但是最后一个数码管没什么问题,显示正常,就前面三个。。请各位帮帮忙大佬。
BH1750temmp=result1750;
BH1750temmp = Display123[result1750 / 1000];
HC595_Send(BH1750temmp);
SMG_Sele(0);
delay_ms(5);
BH1750temmp = Display123[result1750 / 100%10];
HC595_Send(BH1750temmp);
SMG_Sele(1); //
delay_ms(5);
BH1750temmp = Display123[result1750 / 10%10];
HC595_Send(BH1750temmp);
SMG_Sele(2); //
delay_ms(5);
BH1750temmp = Display123[result1750 % 10];
HC595_Send(BH1750temmp);
SMG_Sele(3);
delay_ms(5);
作者:
188610329
时间:
2022-1-4 16:23
用定时器显示,不要用Delay 就没事了
作者:
Hephaestus
时间:
2022-1-4 20:20
595的12脚接哪里了,软件上又是怎么处理的,这才是595显示不闪的最核心问题。
作者:
兴安xa
时间:
2022-1-4 22:39
问题可能不是出在这段进位程序,查一下段码表和数码管是否对应,还有位码是不是对的,这是用串口控制锁器的方式,通信线要接对
作者:
1970420173
时间:
2022-1-5 16:54
188610329 发表于 2022-1-4 16:23
用定时器显示,不要用Delay 就没事了
void delay_us(u32 nus)
{
u32 temp;
SysTick->LOAD=nus*fac_us; //ê±¼ä¼óÔØ
SysTick->VAL=0x00; //Çå¿Õ¼ÆêyÆ÷
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ; //¿aê¼μ1êy
do
{
temp=SysTick->CTRL;
}while((temp&0x01)&&!(temp&(1<<16))); //μè′yê±¼äμ½′ï
SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk; //1رռÆêyÆ÷
SysTick->VAL =0X00; //Çå¿Õ¼ÆêyÆ÷
}
还是没有用
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1