找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2161|回復(fù): 10
收起左側(cè)

單片機(jī)16*64點(diǎn)陣點(diǎn)亮單個(gè)LED后 屏幕有不規(guī)則干擾

[復(fù)制鏈接]
ID:105115 發(fā)表于 2023-3-4 17:35 | 顯示全部樓層 |閱讀模式
代碼如下:參照網(wǎng)上一位老師的程序修改后能點(diǎn)亮單個(gè)LED了。但是屏幕上有不規(guī)則LED閃爍干擾。各位老師幫忙看看是什么原因呢?非常感謝
51hei圖片_20230304173032.jpg 這是抓拍的圖片.



#include<reg52.h>
sbit HC595_DS = P3^6;
sbit HC595_STCP = P3^5;
sbit HC595_SHCP = P3^4;
sbit HC595_OE = P3^7;

void HC595_WriteByte(unsigned char value)
{
                        unsigned char i;
                        for(i=0;i<8;i++)
  {
                        HC595_SHCP = 0;
                        HC595_DS = value&(0x7f >> i);
                        HC595_SHCP = 1;
  }
}
void Lattice_WriteData(unsigned char *buffer,unsigned char value,value1)
{
while(*buffer)//列掃描
{
                        HC595_WriteByte(*buffer++);
}
                        HC595_WriteByte(value);//行數(shù)據(jù)低八位
                        HC595_WriteByte(value1);//行數(shù)據(jù)高八位
                        HC595_STCP = 0;
                        HC595_STCP = 1;
}
unsigned char buffer[]={0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff};//64列
void main()
{
               
         while(10)
                        
                {
                        HC595_OE = 0;
                        Lattice_WriteData(buffer,0x7f,0xff);
                }

}

LED干擾閃爍.zip

2.75 MB, 下載次數(shù): 9

視頻拍攝效果

回復(fù)

使用道具 舉報(bào)

ID:404160 發(fā)表于 2023-3-4 18:11 | 顯示全部樓層
檢查線路是否有接觸不良、短路等。如一切正常,程序中在往顯示緩沖區(qū)寫數(shù)據(jù)時(shí),短暫關(guān)閉顯示。
回復(fù)

使用道具 舉報(bào)

ID:105115 發(fā)表于 2023-3-4 20:53 | 顯示全部樓層
飛云居士 發(fā)表于 2023-3-4 18:11
檢查線路是否有接觸不良、短路等。如一切正常,程序中在往顯示緩沖區(qū)寫數(shù)據(jù)時(shí),短暫關(guān)閉顯示。

線路檢查沒有問題,謝謝
回復(fù)

使用道具 舉報(bào)

ID:195496 發(fā)表于 2023-3-4 20:55 | 顯示全部樓層
消隱沒有寫好
回復(fù)

使用道具 舉報(bào)

ID:579397 發(fā)表于 2023-3-5 01:31 | 顯示全部樓層
本帖最后由 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);
回復(fù)

使用道具 舉報(bào)

ID:579397 發(fā)表于 2023-3-5 01:41 | 顯示全部樓層

行列都用595驅(qū)動(dòng)的不需要消隱
回復(fù)

使用道具 舉報(bào)

ID:579397 發(fā)表于 2023-3-5 05:01 | 顯示全部樓層
由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ù)

使用道具 舉報(bào)

ID:384109 發(fā)表于 2023-3-5 07:58 | 顯示全部樓層
缺電路圖,代碼看著邏輯有問題
回復(fù)

使用道具 舉報(bào)

ID:105115 發(fā)表于 2023-3-5 21:48 來(lái)自手機(jī) | 顯示全部樓層
405616736 發(fā)表于 2023-3-5 05:01
由unsigned char buffer[]={0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff};//64列
判斷列為低電平有效,行為 ...

非常感謝,板子是以前設(shè)備上的,拆下來(lái)改的,所以電路上不是完全理清,想著單片機(jī)上面寫程序測(cè)試能測(cè)出來(lái)就先試試看了。
回復(fù)

使用道具 舉報(bào)

ID:105115 發(fā)表于 2023-3-5 21:49 來(lái)自手機(jī) | 顯示全部樓層
人中狼 發(fā)表于 2023-3-5 07:58
缺電路圖,代碼看著邏輯有問題

電路圖沒有,是其它設(shè)備上拆的點(diǎn)陣板子 大致理了一下線路 點(diǎn)亮了一些 ,想著用單片機(jī)來(lái)測(cè)試看看
回復(fù)

使用道具 舉報(bào)

ID:384109 發(fā)表于 2023-3-5 23:47 | 顯示全部樓層
先查電路圖吧,代碼邏輯有問題,與電路有關(guān)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表