熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2022-1-8 01:51
正文摘要:如圖,總有F的鬼影 單片機(jī)源程序如下: #include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int sbit din=P2^2; sbit cs =P2^1; sbit clk=P2^0; ... |
建議多看看數(shù)據(jù)手冊(cè) |
188610329 發(fā)表于 2022-1-8 19:08 好的。謝謝了 |
egsresrhtrhrtst 發(fā)表于 2022-1-8 16:25 你最好,好好看看手冊(cè),究竟需要發(fā)些什么, 你上面的代碼,很多操作都是無(wú)意義的。 初始化,定義亮度,這些都是只需要做一次的,然后就是定義每一個(gè)位的亮滅,當(dāng)你顯示不需要變化的時(shí)候,就不用再操作7219,產(chǎn)生變化的時(shí)候,其實(shí)也只需要更新發(fā)生變化的地址的數(shù)據(jù)而已。而不是所有的地址數(shù)據(jù)全都更新 |
本帖最后由 egsresrhtrhrtst 于 2022-1-8 16:27 編輯 188610329 發(fā)表于 2022-1-8 13:41 謝謝,把while放到后邊確實(shí)沒有了,這是我參考論壇里的動(dòng)態(tài)顯示的程序改的,想著靜態(tài)顯示一下,弄了好久都不行,你說(shuō)的莫名其妙的程序是說(shuō)的write_7219_byte(0x00);;這些發(fā)送空值得程序嗎,這些不是要傳送的嘛。 |
MAX7219, 是顯示驅(qū)動(dòng)器。 他只需要你把點(diǎn)陣數(shù)據(jù)發(fā)給他,他就會(huì)自動(dòng)顯示,換句話說(shuō),你數(shù)據(jù)不發(fā)生變化的前提下,是不需要,也不應(yīng)該去反復(fù)的刷 7219的, 所以,你在while(1) 里面 不停的發(fā)是什么鬼? 你只要去掉while(1),把它放在main的結(jié)尾, while(1); 就不會(huì)有那所謂的“鬼影”。 然后順帶說(shuō)一下, 那所謂的“鬼影”, 就是你在發(fā)送 數(shù)據(jù)一的時(shí)候,后面莫名其妙增加的那些數(shù)據(jù),發(fā)送數(shù)據(jù)二的時(shí)候,被正確的數(shù)據(jù)覆蓋,所以只顯示一小會(huì)兒,就成了所謂的鬼影,換言之你的這種數(shù)據(jù)發(fā)送方法是有問題的。 |
消影時(shí)間不夠吧 |
這個(gè)算法的效率太低了 可以參考論壇某個(gè)帖子 里面的程序很簡(jiǎn)潔 |
Powered by 單片機(jī)教程網(wǎng)