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

標題: MAX7219多片級聯驅動點陣單片機程序編寫經歷 [打印本頁]

作者: YHF1996    時間: 2019-4-22 16:51
標題: MAX7219多片級聯驅動點陣單片機程序編寫經歷
      大家好,我給大家分享一個自己寫的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

作者: 51hei團團    時間: 2019-4-22 18:03
好東東 能分享下 代碼的工程包嗎
作者: YHF1996    時間: 2019-4-22 21:17
51hei團團 發表于 2019-4-22 18:03
好東東 能分享下 代碼的工程包嗎

都在這了!就只有這么點就可以!
作者: by64214    時間: 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
復制代碼


作者: sh-fluke    時間: 2020-1-9 08:14
好東東 能分享下代碼的工程包嗎?
作者: MANHAMCHAN    時間: 2020-4-27 10:55
按你的程序建了工程,點陣要么不亮要么閃爍幾下就不亮了
作者: dlj123    時間: 2020-12-23 01:07
能發一下程序嗎?
作者: by64214    時間: 2020-12-23 08:58
我上面的程序  就是樓主發的全部程序圖片  仿真顯示正常,實物未檢驗
作者: glinfei    時間: 2021-1-15 10:29
本帖最后由 glinfei 于 2021-2-1 16:16 編輯
MANHAMCHAN 發表于 2020-4-27 10:55
按你的程序建了工程,點陣要么不亮要么閃爍幾下就不亮了

程序沒問題,我也試過了,不過我用的某多多的最小系統,跟你出現同樣問題的原因竟然是它的EN管腳竟然沒拉高。
作者: 人人學會單片機    時間: 2021-1-15 11:47
TM公司的芯片 要比MAX7219 好用多了。
作者: kaixuan520    時間: 2021-1-28 21:07
網上的代碼很累贅,無論幾塊max7219,寫一波數據,然后CS=1;  CS=0;,比單個寫好
作者: dlj123    時間: 2021-2-1 23:31
大神把程序發出來啊
作者: hefq    時間: 2021-2-2 09:46


作者: suqianfu    時間: 2021-2-23 09:15
軟件延時簡直就是單片機的大敵啊。好,簡潔,方便。那個送數函數while,改為for循環應該效果一樣。
作者: suqianfu    時間: 2021-2-23 09:18
老大,如果要滾動顯示怎么處理呢?
作者: YHF1996    時間: 2021-3-14 12:00
dlj123 發表于 2021-2-1 23:31
大神把程序發出來啊

你好!我的另一篇帖子已上傳工程包
作者: zyw497947507    時間: 2021-11-7 16:12
如何實現滾動呢?有人會嗎
作者: asd2580    時間: 2022-2-27 20:52
樓主,有16X16顯示漢字的驅動嗎?
作者: woliuyuexun    時間: 2023-7-20 09:59
謝謝 by64214 ,成功點亮四塊ABCD。
作者: Q__Q    時間: 2023-7-20 11:56
好東西,非常感謝,先收藏了,今天回去學習研究下,用這個做個動態顯示的應該怎么寫
作者: suqianfu    時間: 2023-9-10 14:26
zyw497947507 發表于 2021-11-7 16:12
如何實現滾動呢?有人會嗎

加上定時器移位地址或數據,就可以做左右滾動或者上下滾動了。
作者: suqianfu    時間: 2023-9-10 17:03
人人學會單片機 發表于 2021-1-15 11:47
TM公司的芯片 要比MAX7219 好用多了。

TM的芯片自帶時鐘,不受外部時鐘中斷而爆亮。這點很好,能保證光點亮度均勻。7219估計跟兩片595寄存器組合起來差不多,數據的掃描輸出估計應該受時鐘信號波動而變動。
作者: isyido    時間: 2024-1-7 11:40
等于多個級聯,不是11111111,22222222,333333333,44444444一個一個的刷新,而是1234,1234,1234....這樣一列一列刷新的?




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产精品久久久久久久久久久免费看 | 精品亚洲一区二区三区 | 久草电影网 | 成人免费在线 | 91av视频在线观看 | 色女人天堂 | 日本激情视频网 | 一道本在线 | 九九在线视频 | 久久亚洲欧美日韩精品专区 | 精精国产xxxx视频在线播放7 | 国产91在线 | 亚洲 | 成人午夜精品 | 午夜影院污 | 国产精品一区二区三区四区 | 国产精品999| 91成人影院 | 国产日韩欧美在线观看 | 蜜桃官网 | 国产亚洲精品成人av久久ww | 亚洲福利在线观看 | 成人免费在线电影 | 欧美一级二级在线观看 | 日本黄色高清视频 | 国产一区二区 | 欧美理伦片在线播放 | 欧美视频精品 | 亚洲一级毛片 | 国产一级免费在线观看 | 999国产精品视频免费 | 欧美精品三区 | 国产精品一区二区三区99 | 亚洲午夜在线 | 在线看91 | 日韩精品在线看 | 欧美一级在线 | 亚洲国产成人精品女人久久久野战 | 亚洲高清在线观看 | 国产乱码精品一区二区三区五月婷 | 午夜欧美 | 一区二区三区在线 |