⑴ 51單片機,讀寫IIC匯流排,1602LCD顯示.結果亂碼
write_date(shi); write_date(ge);
是不是這兩個地方不對啊,shi,ge這兩個數轉換成ASII值之後再傳給屏才能正常顯示吧 ?
⑵ 51單片機上12864顯示亂碼問題,由於字數限制不相關函數去掉了
x00=unm/100;
xx=unm%100;
x0=xx/10;
x=xx%10;
數據分離出錯
改下
x00=unm/1000; 千位
xx=unm%1000/100;百
x0=xx%100/10;十
x=xx%10;個
⑶ 51單片機 電子時鍾程序(共陽)。為何老是亂碼,求大神指點
小問題還是挺多的。
首先,像樓上說的,P0送顯示數據前應該關一下顯示。考慮到你是共陽顯示,mov P1,#0才對。像這樣
mov P1, #0 // 關顯示。
mov P0, 顯示數據
mov P1, 顯示哪一位。
acall delay // 延時一小段時間,調試的時候可以適當延時長一點。
djnz 。。。// 顯示下一位。
關顯示的位置應該在MOV P0,@R1之前。當然在delay後面也可以,但考慮到將來要改成使用定時中斷,最好還是像上面這樣做。
另外,這個程序應該先把中斷全部關了調,不然肯定顯示亂碼。
⑷ 單片機 LCD1602顯示亂碼
估計是初始化沒做好,時序不對,考慮到你之前是沒問題的,應該是工作不穩定,很有可能是你寫的代碼的時序太快,造成LCD工作不穩定。
建議在寫指令的時候多加一些短延時,每一個CLK時鍾信號之間都加一些短延時(這是最主要的),很短的延時就可以了。
我之前也遇到過這些問題,基本加了延時之後工作就很穩定了,現在的1602質量參差不齊,不同模塊的工作速度都有很大誤差。這些東西模擬是仿不出來的,只能自己慢慢調試
⑸ 51單片機1602液晶只顯示第一排黑塊和數碼管亂碼怎麼解決
你所說的這種液晶,如果之前是第1排的話,建議你減3,是不是因為顯像管損壞。
⑹ 51單片機直接驅動LED數碼管感覺程序和硬體都沒問題,卻輸出亂碼,這是為什麼呢
輸出亂碼是固定的話,多數是軟體問題。如果不固定,軟硬體都有可能。
你不應該用延時程序來點亮LED,這種程序結構容易造成CPU無法處理其他的事件,如果CPU在處理大量的數據時可能就沒機會進入延時,應該靈活運用定時器引起的中斷,來解決這個問題。你可以考慮下你的程序的總體結構,不要按照順序的思路來考慮,而是要考慮隨機事件產生如何處理的思路。延時在書本上是現成的例子,那些入門學習時是不錯的,真正工作中需要結合實際創新。不知道你是用C還是匯編,如果有機會你可以參考下C編譯後產生的匯編文件,學習下他的設計思路,一定會對你有幫助的。
⑺ 51單片機點陣問題,總是亂碼
好象是滾動顯示中間的8個代碼看看陰碼陽碼是否搞錯,行列是否搞錯
delay(1000);不知你是多大的延時,要是1000ms可有點大,100ms以下還差不多
掃描一次才花費16ms,中間你敢停1000ms嗎?
個人認為,這個延時太小了會無滾動效果,太大了會造成其它行很暗、而只有最後一行很亮的情況
所以,乾脆去掉這個延時,而將每一次掃描重復5-7次,也就是80-110ms,然後再i++,將圖像向上推進
就是在for(z=0;z<8;z++)外面再加一層for循環
for(m=0;m<10;m++)//m值由實驗確定
{
for(z=0;z<8;z++)
{
c=i+z;
DULA=1;
P1=HANG[z];
DULA=0;
delay(1);
WELA=1;
P1=LIE_2[c];
WELA=0;
delay(1);
}
}
另外8*8點陣顯示效果不會很好,特別是點與點之間的空隙太大,有時不仔細看,還真看不出顯的是什麼東東
⑻ 單片機做ds1302實驗時出現lcd亂碼怎麼辦
估計是你發送給1602的待顯示數據有問題,調試看看,
51單片機的話 一般不使用在線模擬 可以使用串口列印的方法調試
⑼ 單片機lcd1602顯示亂碼是怎麼回事
LCD1602隻能顯示ASCII碼字元,如果你送的不是ASCII碼,比如漢字的區位碼,那麼肯定形式亂碼。
⑽ LCD顯示亂碼
很簡單~換解碼板
整個液晶面板占成本的92%,你可以算算電源,解碼板,還有別的東西的成本了哦