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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2862|回復: 7
打印 上一主題 下一主題
收起左側

關于單片機MAX7219控制點陣屏鬼影閃爍的問題有沒有遇到過的

[復制鏈接]
跳轉到指定樓層
樓主

如圖,總有F的鬼影

單片機源程序如下:
#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},//國        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 分享淘帖 頂 踩
回復

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

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

使用道具 舉報

5#
ID:978416 發表于 2022-1-8 16:25 | 只看該作者
本帖最后由 egsresrhtrhrtst 于 2022-1-8 16:27 編輯
188610329 發表于 2022-1-8 13:41
MAX7219, 是顯示驅動器。
他只需要你把點陣數據發給他,他就會自動顯示,換句話說,你數據不發生變化的前 ...

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

使用道具 舉報

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

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

初始化,定義亮度,這些都是只需要做一次的,然后就是定義每一個位的亮滅,當你顯示不需要變化的時候,就不用再操作7219,產生變化的時候,其實也只需要更新發生變化的地址的數據而已。而不是所有的地址數據全都更新
回復

使用道具 舉報

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

初始化,定義亮度 ...

好的。謝謝了
回復

使用道具 舉報

8#
ID:526543 發表于 2022-1-9 13:46 | 只看該作者
建議多看看數據手冊
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久国产精品视频 | 免费网站国产 | 欧美日韩精品一区 | 国产精品毛片久久久久久 | 蜜桃日韩| 欧美一区二区三区久久精品 | av中文字幕在线观看 | 欧美精品被 | 美女日批免费视频 | 欧美高清视频在线观看 | 色视频在线播放 | 国产成人免费视频网站高清观看视频 | 亚洲精品v日韩精品 | 色综合一区二区 | 爱高潮www亚洲精品 中文字幕免费视频 | 国产欧美一级二级三级在线视频 | 亚洲精品在线视频 | 999久久久国产精品 欧美成人h版在线观看 | 亚洲图片视频一区 | 久久久国产一区二区 | 黄色大片网站 | 中文字幕精品一区二区三区在线 | 日批免费在线观看 | 97视频人人澡人人爽 | 色综合99 | 韩日一区二区三区 | 国产1区2区 | 国产精品一二区 | 国产成人精品一区 | 精品国产乱码久久久久久影片 | 亚洲不卡在线观看 | 亚洲一区二区在线视频 | 成人无遮挡毛片免费看 | 亚洲国产精品一区二区久久 | 国产精品欧美一区喷水 | 日韩精品在线网站 | 国产传媒 | 免费特级黄毛片 | 91免费在线播放 | 亚洲综合中文字幕在线观看 | 久久久亚洲 |