久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

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

QQ登錄

只需一步,快速開始

搜索
查看: 2636|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

關(guān)于單片機(jī)MAX7219控制點(diǎn)陣屏鬼影閃爍的問題有沒有遇到過的

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主

如圖,總有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;

#define liangdu 0xff;

uchar code table[38][8]={                                                        
{0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//0
{0x08,0x18,0x28,0x08,0x08,0x08,0x08,0x08},//1
{0x7E,0x02,0x02,0x7E,0x40,0x40,0x40,0x7E},//2
{0x3E,0x02,0x02,0x3E,0x02,0x02,0x3E,0x00},//3
{0x08,0x18,0x28,0x48,0xFE,0x08,0x08,0x08},//4
{0x3C,0x20,0x20,0x3C,0x04,0x04,0x3C,0x00},//5
{0x3C,0x20,0x20,0x3C,0x24,0x24,0x3C,0x00},//6
{0x3E,0x22,0x04,0x08,0x08,0x08,0x08,0x08},//7
{0x00,0x3E,0x22,0x22,0x3E,0x22,0x22,0x3E},//8
{0x3E,0x22,0x22,0x3E,0x02,0x02,0x02,0x3E},//9
{0x08,0x14,0x22,0x3E,0x22,0x22,0x22,0x22},//A         10
{0x3C,0x22,0x22,0x3E,0x22,0x22,0x3C,0x00},//B        11
{0x3C,0x40,0x40,0x40,0x40,0x40,0x3C,0x00},//C        12
{0x7C,0x42,0x42,0x42,0x42,0x42,0x7C,0x00},//D        13
{0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x7C},//E        14
{0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x40},//F        15
{0x3C,0x40,0x40,0x40,0x40,0x44,0x44,0x3C},//G        16
{0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44},//H        17
{0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x7C},//I        18
{0x3C,0x08,0x08,0x08,0x08,0x08,0x48,0x30},//J        19
{0x00,0x24,0x28,0x30,0x20,0x30,0x28,0x24},//K        20
{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7C},//L        21
{0x81,0xC3,0xA5,0x99,0x81,0x81,0x81,0x81},//M        22
{0x00,0x42,0x62,0x52,0x4A,0x46,0x42,0x00},//N        23
{0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//O        24
{0x3C,0x22,0x22,0x22,0x3C,0x20,0x20,0x20},//P        25
{0x1C,0x22,0x22,0x22,0x22,0x26,0x22,0x1D},//Q        26
{0x3C,0x22,0x22,0x22,0x3C,0x24,0x22,0x21},//R        27
{0x00,0x1E,0x20,0x20,0x3E,0x02,0x02,0x3C},//S        28
{0x00,0x3E,0x08,0x08,0x08,0x08,0x08,0x08},//T        29
{0x42,0x42,0x42,0x42,0x42,0x42,0x22,0x1C},//U        30
{0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18},//V        31
{0x00,0x49,0x49,0x49,0x49,0x2A,0x1C,0x00},//W        32
{0x00,0x41,0x22,0x14,0x08,0x14,0x22,0x41},//X        33
{0x41,0x22,0x14,0x08,0x08,0x08,0x08,0x08},//Y        34
{0x00,0x7F,0x02,0x04,0x08,0x10,0x20,0x7F},//Z        35
{0x08,0x7F,0x49,0x49,0x7F,0x08,0x08,0x08},//中        36
{0xFE,0xBA,0x92,0xBA,0x92,0x9A,0xBA,0xFE},//國(guó)        37
};

void delay(uint xms)
{                                                                                                        
        uint i,j;
        for(i=xms;i>0;i--)
                for(j=112;j>0;j--);
}

void write_7219_byte(uchar Data)                                        //為什么DATA要大寫?
{
        uchar i;
        for(i=0;i<8;i++)
        {
                clk=0;
                din=Data&0x80;
                Data=Data<<1;
                clk=1;
        }
}

void write_7219_shuju1(uchar add1,uchar dat1)  
{
        cs=0;
        write_7219_byte(add1);
        write_7219_byte(dat1);
        cs=1;
}
void write_7219_shuju2(uchar add2,uchar dat2)
{
        cs=0;
        write_7219_byte(add2);
        write_7219_byte(dat2);
        write_7219_byte(0x00);
        write_7219_byte(0x00);
        cs=1;
}
void write_7219_shuju3(uchar add3,uchar dat3)
{
        cs=0;
        write_7219_byte(add3);
        write_7219_byte(dat3);
        write_7219_byte(0x00);
        write_7219_byte(0x00);
        write_7219_byte(0x00);
        write_7219_byte(0x00);
        cs=1;
}
void write_7219_shuju4(uchar add4,uchar dat4)
{
        cs=0;
        write_7219_byte(add4);
        write_7219_byte(dat4);
        write_7219_byte(0x00);
        write_7219_byte(0x00);
        write_7219_byte(0x00);
        write_7219_byte(0x00);
        write_7219_byte(0x00);
        write_7219_byte(0x00);
        cs=1;
}
void write_7219_shuju5(uchar add5,uchar dat5)
{
        cs=0;
        write_7219_byte(add5);
        write_7219_byte(dat5);
        write_7219_byte(0x00);
        write_7219_byte(0x00);
        write_7219_byte(0x00);
        write_7219_byte(0x00);
        write_7219_byte(0x00);
        write_7219_byte(0x00);
        write_7219_byte(0x00);
        write_7219_byte(0x00);
        cs=1;
}

void init()
{
        write_7219_shuju1(0x0a,0xff);
        write_7219_shuju1(0x0b,0x07);
        write_7219_shuju1(0x0c,0x01);
        write_7219_shuju1(0x0f,0x00);
        write_7219_shuju1(0x09,0x00);

        write_7219_shuju2(0x0a,0xff);
        write_7219_shuju2(0x0b,0x07);
        write_7219_shuju2(0x0c,0x01);
        write_7219_shuju2(0x0f,0x00);
        write_7219_shuju2(0x09,0x00);

        write_7219_shuju3(0x0a,0xff);
        write_7219_shuju3(0x0b,0x07);
        write_7219_shuju3(0x0c,0x01);
        write_7219_shuju3(0x0f,0x00);
        write_7219_shuju3(0x09,0x00);

        write_7219_shuju4(0x0a,0xff);
        write_7219_shuju4(0x0b,0x07);
        write_7219_shuju4(0x0c,0x01);
        write_7219_shuju4(0x0f,0x00);
        write_7219_shuju4(0x09,0x00);

        write_7219_shuju5(0x0a,0xff);
        write_7219_shuju5(0x0b,0x07);
        write_7219_shuju5(0x0c,0x01);
        write_7219_shuju5(0x0f,0x00);
        write_7219_shuju5(0x09,0x00);
}
void main()
{
        while(1)
        {
        write_7219_shuju1(1,table[15][0]);  
        write_7219_shuju1(2,table[15][1]);
        write_7219_shuju1(3,table[15][2]);
        write_7219_shuju1(4,table[15][3]);
        write_7219_shuju1(5,table[15][4]);
        write_7219_shuju1(6,table[15][5]);
        write_7219_shuju1(7,table[15][6]);
        write_7219_shuju1(8,table[15][7]);

        write_7219_shuju2(1,table[21][0]);  
        write_7219_shuju2(2,table[21][1]);
        write_7219_shuju2(3,table[21][2]);
        write_7219_shuju2(4,table[21][3]);
        write_7219_shuju2(5,table[21][4]);
        write_7219_shuju2(6,table[21][5]);
        write_7219_shuju2(7,table[21][6]);
        write_7219_shuju2(8,table[21][7]);

        write_7219_shuju3(0x0c,0x01);
        write_7219_shuju3(1,table[1][0]);
        write_7219_shuju3(2,table[1][1]);
        write_7219_shuju3(3,table[1][2]);
        write_7219_shuju3(4,table[1][3]);
        write_7219_shuju3(5,table[1][4]);
        write_7219_shuju3(6,table[1][5]);
        write_7219_shuju3(7,table[1][6]);
        write_7219_shuju3(8,table[1][7]);

        
        write_7219_shuju4(1,table[28][0]);   
        write_7219_shuju4(2,table[28][1]);
        write_7219_shuju4(3,table[28][2]);
        write_7219_shuju4(4,table[28][3]);
        write_7219_shuju4(5,table[28][4]);
        write_7219_shuju4(6,table[28][5]);
        write_7219_shuju4(7,table[28][6]);
        write_7219_shuju4(8,table[28][7]);

        
        write_7219_shuju5(1,table[32][0]);  
        write_7219_shuju5(2,table[32][1]);
        write_7219_shuju5(3,table[32][2]);
        write_7219_shuju5(4,table[32][3]);
        write_7219_shuju5(5,table[32][4]);
        write_7219_shuju5(6,table[32][5]);
        write_7219_shuju5(7,table[32][6]);
        write_7219_shuju5(8,table[32][7]);
        delay(1000);        
        }

}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:405840 發(fā)表于 2022-1-8 10:02 | 只看該作者
這個(gè)算法的效率太低了 可以參考論壇某個(gè)帖子 里面的程序很簡(jiǎn)潔
回復(fù)

使用道具 舉報(bào)

板凳
ID:912398 發(fā)表于 2022-1-8 10:48 | 只看該作者
消影時(shí)間不夠吧
回復(fù)

使用道具 舉報(bào)

地板
ID:624769 發(fā)表于 2022-1-8 13:41 | 只看該作者
MAX7219, 是顯示驅(qū)動(dòng)器。
他只需要你把點(diǎn)陣數(shù)據(jù)發(fā)給他,他就會(huì)自動(dòng)顯示,換句話說,你數(shù)據(jù)不發(fā)生變化的前提下,是不需要,也不應(yīng)該去反復(fù)的刷 7219的,
所以,你在while(1) 里面 不停的發(fā)是什么鬼? 你只要去掉while(1),把它放在main的結(jié)尾, while(1); 就不會(huì)有那所謂的“鬼影”。

然后順帶說一下, 那所謂的“鬼影”, 就是你在發(fā)送 數(shù)據(jù)一的時(shí)候,后面莫名其妙增加的那些數(shù)據(jù),發(fā)送數(shù)據(jù)二的時(shí)候,被正確的數(shù)據(jù)覆蓋,所以只顯示一小會(huì)兒,就成了所謂的鬼影,換言之你的這種數(shù)據(jù)發(fā)送方法是有問題的。
回復(fù)

使用道具 舉報(bào)

5#
ID:978416 發(fā)表于 2022-1-8 16:25 | 只看該作者
本帖最后由 egsresrhtrhrtst 于 2022-1-8 16:27 編輯
188610329 發(fā)表于 2022-1-8 13:41
MAX7219, 是顯示驅(qū)動(dòng)器。
他只需要你把點(diǎn)陣數(shù)據(jù)發(fā)給他,他就會(huì)自動(dòng)顯示,換句話說,你數(shù)據(jù)不發(fā)生變化的前 ...

謝謝,把while放到后邊確實(shí)沒有了,這是我參考論壇里的動(dòng)態(tài)顯示的程序改的,想著靜態(tài)顯示一下,弄了好久都不行,你說的莫名其妙的程序是說的write_7219_byte(0x00);;這些發(fā)送空值得程序嗎,這些不是要傳送的嘛。
回復(fù)

使用道具 舉報(bào)

6#
ID:624769 發(fā)表于 2022-1-8 19:08 | 只看該作者
egsresrhtrhrtst 發(fā)表于 2022-1-8 16:25
謝謝,把while放到后邊確實(shí)沒有了,這是我參考論壇里的動(dòng)態(tài)顯示的程序改的,想著靜態(tài)顯示一下,弄了好久 ...

你最好,好好看看手冊(cè),究竟需要發(fā)些什么, 你上面的代碼,很多操作都是無意義的。

初始化,定義亮度,這些都是只需要做一次的,然后就是定義每一個(gè)位的亮滅,當(dāng)你顯示不需要變化的時(shí)候,就不用再操作7219,產(chǎn)生變化的時(shí)候,其實(shí)也只需要更新發(fā)生變化的地址的數(shù)據(jù)而已。而不是所有的地址數(shù)據(jù)全都更新
回復(fù)

使用道具 舉報(bào)

7#
ID:978416 發(fā)表于 2022-1-8 20:02 | 只看該作者
188610329 發(fā)表于 2022-1-8 19:08
你最好,好好看看手冊(cè),究竟需要發(fā)些什么, 你上面的代碼,很多操作都是無意義的。

初始化,定義亮度 ...

好的。謝謝了
回復(fù)

使用道具 舉報(bào)

8#
ID:526543 發(fā)表于 2022-1-9 13:46 | 只看該作者
建議多看看數(shù)據(jù)手冊(cè)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 免费av观看 | 91久久精品 | 伊人网站视频 | 欧美国产视频 | 成人av免费网站 | 一区二区三区电影在线观看 | 亚洲第一在线视频 | 国产精品揄拍一区二区 | 黄色成人亚洲 | 人人爱干 | 性高湖久久久久久久久aaaaa | 盗摄精品av一区二区三区 | 国产日产欧产精品精品推荐蛮挑 | 色欧美片视频在线观看 | 欧美精品1区2区 | 中文字幕一区二区三区日韩精品 | 欧美极品在线视频 | 91毛片在线看 | 岛国毛片| 国产一区二区在线免费观看 | 国产精品久久久久久妇女6080 | 精品国产一区二区三区性色av | 免费久| 日韩一区三区 | 天堂久久天堂综合色 | av天空| 国产精品一区二区不卡 | 狠狠干影院 | 国产精品久久久久aaaa | 国产精品不卡一区二区三区 | 欧美精品在线视频 | 欧美日韩大片 | 日日天天 | 欧美黄色精品 | 日韩中文字幕一区二区 | 一二三四在线视频观看社区 | 亚洲精品久久久久avwww潮水 | 国产精品视频一二三区 | 九九热视频这里只有精品 | 在线中文字幕日韩 | 中文字幕久久久 |