|
大家好,
我用兩片74HC595D 控制8位數(shù)碼管動(dòng)態(tài)掃描,一片做8位段碼的控制,另一片做8位位碼的控制。
因?yàn)橹笆侵苯佑脝纹瑱C(jī)IO連接數(shù)碼管來(lái)控制的,代碼里面需要有消隱和延時(shí)程序,用起來(lái)沒(méi)啥問(wèn)題,現(xiàn)在改用74HC595后,發(fā)現(xiàn)不需要消隱和延時(shí)了,加了消隱和延時(shí)發(fā)現(xiàn)反而無(wú)法正常顯示了,我不知道為啥是這樣,代碼里我就直接放顯示部分了。
顯示是沒(méi)啥問(wèn)題,但是現(xiàn)在有一個(gè)小問(wèn)題,就是前面7位亮度一致,最后一位比較亮,也就是最后一位比前7位都亮。這個(gè)應(yīng)該是最后一位掃描到的時(shí)間比前面長(zhǎng)造成的,但是我不知道如何解決。
各位大神有解決這個(gè)問(wèn)題的比較成熟的方法么?
顯示程序大概如下:
void SendData595(uint8_t DataSendH15_8, uint8_t DataSendL7_0); // 74HC595數(shù)據(jù)發(fā)送
uint8_t weima_table[]= {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe} //8位位碼
uint8_t duanma_table[]={0xd7,0x82,0xcd,0x5d,0x1e,0x5b,0xdb,0x15,0xdf,0x5f} //段碼,0~9
void SHG_DISPLAY() // 數(shù)碼管顯示,此處無(wú)需消隱和延時(shí)
{
SendData_hc595(weima_table[0], duanma_table[5]);
SendData_hc595(weima_table[1], duanma_table[2]);
SendData_hc595(weima_table[2], duanma_table[1])
SendData_hc595(weima_table[3], duanma_table[4])
SendData_hc595(weima_table[4], duanma_table[0]);
SendData_hc595(weima_table[5], duanma_table[8])
SendData_hc595(weima_table[6], duanma_table[3]); //以上7位顯示亮度均勻一致
SendData_hc595(weima_table[7], duanma_table[7]); //這一位特別亮,比前7位都亮
}
|
|