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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

MAX7219多片級聯驅動點陣單片機程序編寫經歷

  [復制鏈接]
跳轉到指定樓層
樓主
ID:311310 發表于 2019-4-22 16:51 來自手機 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
      大家好,我給大家分享一個自己寫的MAX7219級聯驅動程序!
      我在那個寶上買了一個四級聯點陣模塊,花了好多時間寫出了它的驅動程序(作為菜鳥我很難受)。
       我剛開始一下沒弄明白,在網上找了一個程序,(就是那幾張手機截圖),照著搞了一遍,能顯示,但問題很多,比如會閃爍,有一片會有重影,而且代碼我覺得啰嗦而且還要延時,細看發現分四片寫入,而且還要寫入大量的NO-OP數據OX00。所以我只好自己寫了一個驅動程序,看了會數據手冊,發現這不就是類似74HC595的東西嘛!于是我自己寫了一個程序,非常簡潔明了,非常穩定,如彩圖所示,我測試過STC15在1T的情況下4~35MHZ頻率,都沒有任何問題,其實那兩個nop都不需要了,只是想求個穩,希望對有需要的人有用,大神的話就不了說了,我只不過是一個剛入坑單片機不久的菜鳥!都是大神們玩剩下的了,唉!

IMG_20190422_155558.png (393.64 KB, 下載次數: 232)

IMG_20190422_155558.png

IMG_20190422_155903.png (336.17 KB, 下載次數: 196)

IMG_20190422_155903.png

IMG_20190422_155958.png (377.12 KB, 下載次數: 193)

IMG_20190422_155958.png

IMG_20190422_160108.png (184.06 KB, 下載次數: 224)

IMG_20190422_160108.png

IMG_20190422_134338.jpg (813.05 KB, 下載次數: 221)

IMG_20190422_134338.jpg

Screenshot_20190422-161024.jpg (142.81 KB, 下載次數: 220)

Screenshot_20190422-161024.jpg

Screenshot_20190422-160929.jpg (179.99 KB, 下載次數: 224)

Screenshot_20190422-160929.jpg

Screenshot_20190422-160949.jpg (234.82 KB, 下載次數: 212)

Screenshot_20190422-160949.jpg

Screenshot_20190422-161013.jpg (278.87 KB, 下載次數: 212)

Screenshot_20190422-161013.jpg

Screenshot_20190422-161005.jpg (251.82 KB, 下載次數: 214)

Screenshot_20190422-161005.jpg

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏11 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:328014 發表于 2019-4-22 18:03 | 只看該作者
好東東 能分享下 代碼的工程包嗎
回復

使用道具 舉報

板凳
ID:311310 發表于 2019-4-22 21:17 來自手機 | 只看該作者
51hei團團 發表于 2019-4-22 18:03
好東東 能分享下 代碼的工程包嗎

都在這了!就只有這么點就可以!
回復

使用道具 舉報

地板
ID:44037 發表于 2019-11-29 23:06 | 只看該作者
謝謝分享  程序簡潔  明了   學習的好模板


main.c
  1. #include <reg52.h>
  2. #include "intrins.h"
  3. #include "Max7219.h"

  4. uchar code laji[][8]={
  5. {0x18,0x24,0x42,0x42,0x7E,0x42,0x42,0x42},//A
  6. {0x7C,0x42,0x42,0x7C,0x42,0x42,0x42,0x7C},//B
  7. {0x3C,0x42,0x40,0x40,0x40,0x40,0x42,0x7C},//C
  8. {0x7C,0x42,0x42,0x42,0x42,0x42,0x42,0x7C},//D
  9. };
  10. /*n毫秒的延時程序*/
  11. /*void Delay_xms(uint x)
  12. {
  13.   uint i,j;
  14.   for(i=0;i<x;i++)
  15.   for(j=0;j<112;j++);
  16. }*/
  17. void main()
  18. {
  19.   uchar i,j;
  20.   //Delay_xms(50);
  21.   MAX7219Init();  
  22.   while(1)
  23.   {
  24.                 for(j=0;j<8;j++)
  25.     {
  26.       for(i=0;i<number;i++)
  27.       {
  28.         Max7219WR(j+1,laji[i][j]);
  29.             }
  30.       CS=1; _nop_(); CS=0;
  31.                         //Delay_xms(100);
  32.     }  
  33.   }
  34. }


  35. Max7219.h
  36. #ifndef _Max7219_H_
  37. #define _Max7219_H_

  38. #define uchar unsigned char
  39. #define uint  unsigned int
  40. #define number  4 //點陣級聯個數
  41. #define lum     5 //亮度級別,0-F,共16級

  42. //定義Max7219端口
  43. sbit CLK = P2^2;  //時鐘 Max7219_pin
  44. sbit CS  = P2^1;  //鎖存
  45. sbit DIN = P2^0;  //數據

  46. //向MAX7219 寫入地址和數據
  47. void Max7219WR(uchar addr,uchar dat)
  48. {
  49.   uchar n=8;
  50.         CLK=0;
  51.         CS=0;   //CS=0有效,CS=1鎖存
  52.         /*發送數據 高位先發*/
  53.         while(n--)
  54.         {
  55.           DIN = addr & 0x80;
  56.                 CLK=1;
  57.                 addr <<= 1;
  58.                 CLK=0;
  59.         }
  60.         n=8;
  61.         /*發送數據 高位先發*/
  62.         while(n--)
  63.         {
  64.           DIN = dat & 0x80;
  65.                 CLK=1;
  66.                 dat <<= 1;
  67.                 CLK=0;
  68.         }
  69. }
  70. void MAX7219Init()
  71. {
  72.   uchar i,j;
  73.         for(i=0;i<5;i++)  //
  74.         {
  75.           for(j=number;j>0;j--)
  76.                 switch(i)
  77.                 {
  78.                   case 0:Max7219WR(0x09, 0x00); break; //譯碼方式:BCD碼 不譯碼
  79.                         case 1:Max7219WR(0x0A, lum);  break; //亮度 0-15 共16級
  80.                         case 2:Max7219WR(0x0B, 0x07); break; //掃描界限;8位顯示
  81.                         case 3:Max7219WR(0x0C, 0x01); break; //掉電模式:0,普通模式:1
  82.                         case 4:Max7219WR(0x0F, 0x00); break; //顯示測試:1;測試結束,正常顯示:0
  83.                 }
  84.                 CS=1; _nop_(); CS=0; //每寫入四次給一個鎖存脈沖
  85.         }
  86. }
  87. #endif
復制代碼

回復

使用道具 舉報

5#
ID:652804 發表于 2020-1-9 08:14 | 只看該作者
好東東 能分享下代碼的工程包嗎?
回復

使用道具 舉報

6#
ID:476465 發表于 2020-4-27 10:55 | 只看該作者
按你的程序建了工程,點陣要么不亮要么閃爍幾下就不亮了
回復

使用道具 舉報

7#
ID:688367 發表于 2020-12-23 01:07 來自手機 | 只看該作者
能發一下程序嗎?
回復

使用道具 舉報

8#
ID:44037 發表于 2020-12-23 08:58 | 只看該作者
我上面的程序  就是樓主發的全部程序圖片  仿真顯示正常,實物未檢驗
回復

使用道具 舉報

9#
ID:844772 發表于 2021-1-15 10:29 | 只看該作者
本帖最后由 glinfei 于 2021-2-1 16:16 編輯
MANHAMCHAN 發表于 2020-4-27 10:55
按你的程序建了工程,點陣要么不亮要么閃爍幾下就不亮了

程序沒問題,我也試過了,不過我用的某多多的最小系統,跟你出現同樣問題的原因竟然是它的EN管腳竟然沒拉高。
回復

使用道具 舉報

10#
ID:390416 發表于 2021-1-15 11:47 | 只看該作者
TM公司的芯片 要比MAX7219 好用多了。
回復

使用道具 舉報

11#
ID:300212 發表于 2021-1-28 21:07 來自手機 | 只看該作者
網上的代碼很累贅,無論幾塊max7219,寫一波數據,然后CS=1;  CS=0;,比單個寫好
回復

使用道具 舉報

12#
ID:688367 發表于 2021-2-1 23:31 來自手機 | 只看該作者
大神把程序發出來啊
回復

使用道具 舉報

13#
ID:605142 發表于 2021-2-2 09:46 | 只看該作者

回復

使用道具 舉報

14#
ID:718536 發表于 2021-2-23 09:15 | 只看該作者
軟件延時簡直就是單片機的大敵啊。好,簡潔,方便。那個送數函數while,改為for循環應該效果一樣。
回復

使用道具 舉報

15#
ID:718536 發表于 2021-2-23 09:18 | 只看該作者
老大,如果要滾動顯示怎么處理呢?
回復

使用道具 舉報

16#
ID:311310 發表于 2021-3-14 12:00 來自手機 | 只看該作者
dlj123 發表于 2021-2-1 23:31
大神把程序發出來啊

你好!我的另一篇帖子已上傳工程包
回復

使用道具 舉報

17#
ID:907424 發表于 2021-11-7 16:12 | 只看該作者
如何實現滾動呢?有人會嗎
回復

使用道具 舉報

18#
ID:964313 發表于 2022-2-27 20:52 | 只看該作者
樓主,有16X16顯示漢字的驅動嗎?
回復

使用道具 舉報

19#
ID:819175 發表于 2023-7-20 09:59 | 只看該作者
謝謝 by64214 ,成功點亮四塊ABCD。
回復

使用道具 舉報

20#
ID:641483 發表于 2023-7-20 11:56 | 只看該作者
好東西,非常感謝,先收藏了,今天回去學習研究下,用這個做個動態顯示的應該怎么寫
回復

使用道具 舉報

21#
ID:718536 發表于 2023-9-10 14:26 | 只看該作者
zyw497947507 發表于 2021-11-7 16:12
如何實現滾動呢?有人會嗎

加上定時器移位地址或數據,就可以做左右滾動或者上下滾動了。
回復

使用道具 舉報

22#
ID:718536 發表于 2023-9-10 17:03 | 只看該作者
人人學會單片機 發表于 2021-1-15 11:47
TM公司的芯片 要比MAX7219 好用多了。

TM的芯片自帶時鐘,不受外部時鐘中斷而爆亮。這點很好,能保證光點亮度均勻。7219估計跟兩片595寄存器組合起來差不多,數據的掃描輸出估計應該受時鐘信號波動而變動。
回復

使用道具 舉報

23#
ID:476415 發表于 2024-1-7 11:40 | 只看該作者
等于多個級聯,不是11111111,22222222,333333333,44444444一個一個的刷新,而是1234,1234,1234....這樣一列一列刷新的?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91就要激情 | 欧美一区二区网站 | 中国一级毛片免费 | 国产一区二区三区亚洲 | 久久成人精品视频 | 色接久久 | 99久久国产免费 | 男女午夜激情视频 | 亚洲乱码一区二区三区在线观看 | 看av网址| 成人一区二区三区在线观看 | 日韩精品一区二区三区中文在线 | 在线观看www视频 | 亚洲一区二区三区在线 | 欧美福利视频 | 欧美成人激情视频 | 亚洲精品美女在线观看 | 国产精品成人一区二区三区 | 亚洲午夜精品一区二区三区他趣 | 夜夜草av| 国产精品片aa在线观看 | av日韩精品 | 久久久影院 | 一级黄a视频 | 一区二区三区在线免费观看 | 人人玩人人干 | 九九精品久久久 | 中文字幕一区二区三区在线观看 | 91久久精品 | 亚洲激情一区二区三区 | 国产情侣激情 | 欧美国产日韩精品 | 成人在线播放 | 亚洲码欧美码一区二区三区 | 97久久国产| 激情av免费看 | 91精品国产91久久综合桃花 | 久久久www成人免费无遮挡大片 | 91高清在线| 国产我和子的乱视频网站 | 91精品国产777在线观看 |