熱門(mén): 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂(lè)園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2023-3-4 17:35
正文摘要:代碼如下:參照網(wǎng)上一位老師的程序修改后能點(diǎn)亮單個(gè)LED了。但是屏幕上有不規(guī)則LED閃爍干擾。各位老師幫忙看看是什么原因呢?非常感謝 這是抓拍的圖片. #include<reg52.h> sbit HC595_DS = P3^6; ... |
先查電路圖吧,代碼邏輯有問(wèn)題,與電路有關(guān) |
人中狼 發(fā)表于 2023-3-5 07:58 電路圖沒(méi)有,是其它設(shè)備上拆的點(diǎn)陣板子 大致理了一下線路 點(diǎn)亮了一些 ,想著用單片機(jī)來(lái)測(cè)試看看 |
405616736 發(fā)表于 2023-3-5 05:01 非常感謝,板子是以前設(shè)備上的,拆下來(lái)改的,所以電路上不是完全理清,想著單片機(jī)上面寫(xiě)程序測(cè)試能測(cè)出來(lái)就先試試看了。 |
缺電路圖,代碼看著邏輯有問(wèn)題 |
由unsigned char buffer[]={0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff};//64列 判斷列為低電平有效,行為高電平有效 但Lattice_WriteData(buffer,0x7f,0xff); 行數(shù)據(jù)復(fù)制0x7f,0xff,給出除了第一個(gè)點(diǎn)都有效,這里與“點(diǎn)亮單個(gè)LED”就已經(jīng)不相符。 建議了解情況行列的高低電平有效值,注意修改以下三行代碼: HC595_DS = value&(0x7f >> i); unsigned char buffer[]={0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff};//64列 Lattice_WriteData(buffer,0x7f,0xff); |
大漠落日 發(fā)表于 2023-3-4 20:55 行列都用595驅(qū)動(dòng)的不需要消隱 |
本帖最后由 405616736 于 2023-3-5 01:43 編輯 unsigned char buffer[]={0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff};//64列 從數(shù)組0x7f,0xff推測(cè)你64列為低電平有效,對(duì)應(yīng)行為高電平有效 Lattice_WriteData(buffer,0x7f,0xff); 這條代碼,行給出0x7f,0xff已經(jīng)點(diǎn)亮出第一個(gè)外所有LED。與點(diǎn)亮單個(gè)LED了的想法不符了。 建議先弄清楚點(diǎn)陣屏的行列有效電平。 再重點(diǎn)關(guān)注以下幾行代碼 HC595_DS = value&(0x7f >> i); unsigned char buffer[]={0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff};//64列Lattice_WriteData(buffer,0x7f,0xff); |
消隱沒(méi)有寫(xiě)好 |
飛云居士 發(fā)表于 2023-3-4 18:11 線路檢查沒(méi)有問(wèn)題,謝謝 |
檢查線路是否有接觸不良、短路等。如一切正常,程序中在往顯示緩沖區(qū)寫(xiě)數(shù)據(jù)時(shí),短暫關(guān)閉顯示。 |
Powered by 單片機(jī)教程網(wǎng)