找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機+74HC595入門8X8點陣教學(xué)(想學(xué)的新人進來看看)

  [復(fù)制鏈接]
ID:424598 發(fā)表于 2019-4-24 21:22 | 顯示全部樓層 |閱讀模式
寫在前面的話
希望所有發(fā)貼求助的新人朋友們, 請先在論壇搜索, 論壇有很多老師們發(fā)的貼子, 雖然有很多描述得不清不楚, 但總是有能用的
8X8點陣我也參考了好多, 發(fā)代碼的確實不少, 但在硬件方面配套的原理圖, 連接圖都不太清楚, 于是就瞎子摸象, 總算是搞清楚了
特發(fā)此貼跟大家分享


照樣, 先上原理圖, 接線圖
點陣0423(修正).png



程序有附仿真程序, 方便調(diào)試
JD20190424210555.png


由于是測試, 所以用排針+杜邦線
IMG_20190423_050352.jpg


IMG_20190423_050400.jpg


IMG_20190423_050456.jpg


IMG_20190423_052826.jpg


IMG_20190423_052911.jpg


單片機源程序如下:

  1. /*********************************************************************************
  2. 接線方式請看main.h說明
  3.         二片74HC595 + 一個8*8點陣(1088AS共陰)
  4.         實現(xiàn)文字靜態(tài)顯示+移動顯示(左移/右移/上移/下移)
  5.         代碼精簡,方便理解
  6. **********************************************************************************/
  7. #include "main.h"

  8. //定義變量
  9. uchar temp = 0xfe;

  10. /*取模說明:
  11. 菜單選項:
  12. "點陣格式" : 根據(jù)你的點陣是共陰還是共陽, 我的是共陰, 所以選擇的是陰碼
  13. "取模走向" : 根據(jù)你的需求, 選擇逆向或順向, 我這里選擇的是逆向
  14. "取模方式" : 請看下面示例說明, 根據(jù)移動方向選擇
  15. "每行顯示數(shù)據(jù)" : 點陣=8, 索引=8
  16. "液晶面板仿真" : 像素大小=8
  17. "輸出數(shù)制" : 選擇"十六進制數(shù)"
  18. "輸出選項" : 選擇"輸出精簡格式"和"輸出緊湊格式"
  19. "自定義格式" : 選擇"C51格式", 其它默認

  20. 主界面選項:
  21. 字體: 幼圓
  22. 字寬: 8                字高: 8
  23. 點陣寬: 8        點陣高: 8
  24. */

  25. //動態(tài)顯示數(shù)組
  26. uchar Display_word1[48] = {                        //數(shù)組個數(shù)(這里的40代表有40個十六進制,因為是8*8點陣,所以每個字有8個十六進制)
  27. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,        //空白(前面放一個空白屏,實現(xiàn)移動出字效果)
  28. //0x10,0x38,0x54,0x10,0x10,0x10,0x10,0x10,        //箭頭

  29. //逆向+逐列式或列行式 (左移/右移)
  30. 0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,        //"一",0
  31. 0x80,0x80,0x80,0xFE,0x90,0x90,0x80,0x80,        //"上",1
  32. 0x00,0x40,0x44,0x44,0x44,0x44,0x40,0x00,        //"二",2
  33. 0x00,0x02,0x02,0xFE,0x0A,0x12,0x02,0x00,        //"下",3


  34. //逆向+行列式或逐行式 (上移/下移)
  35. /*0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,        //"一",0
  36. 0x00,0x08,0x08,0x08,0x38,0x08,0x08,0xFF,        //"上",1
  37. 0x00,0x00,0x3C,0x00,0x00,0x00,0x7E,0x00,        //"二",2
  38. 0x00,0x7E,0x08,0x18,0x28,0x08,0x08,0x08,        //"下",3
  39. */

  40. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,        //空白(最后放一個空白屏,以免出現(xiàn)亂碼)
  41. };

  42. //靜態(tài)顯示數(shù)組(第1個參數(shù)為幾個字,第2個參數(shù)為每字多少字節(jié))
  43. uchar Display_word2[3][8] = {
  44. 0x0C,0x1E,0x3E,0x7C,0x7C,0x3E,0x1E,0x0C,        //心
  45. 0x10,0x38,0x54,0x10,0x10,0x10,0x10,0x10,        //箭頭
  46. 0x0C,0x1E,0x3E,0x7C,0x7C,0x3E,0x1E,0x0C,        //心
  47. };

  48. //****************************************************
  49. //主函數(shù)
  50. //****************************************************
  51. void main()
  52. {
  53.         uint i;
  54.         uchar j,k;
  55.         while(1)
  56.         {               
  57.                 ///////////////////////////////////////////////////////////////////////////
  58.                 //靜態(tài)顯示
  59.                 for(j = 0 ; j < 3 ; j++) {                //共需顯示3個字
  60.                         for(i = 0 ; i < 1000 ; i++)        {                //靜態(tài)顯示時間
  61.                                 temp = 0x7f;
  62.                                 for(k = 0 ; k < 8 ; k++) {                //顯示1-8列(8為顯示8列)如果改成4則有4列顯示,另4列黑屏
  63.                                         Send_Data(Display_word2[j][k]);
  64.                                 }
  65.                         }
  66.                 }

  67.                 ///////////////////////////////////////////////////////////////////////////               
  68.                 //移動方式(想要不同的移動方式,就按以下說明修改)

  69.                 //for(j = 0 ; j < 40 ; j++) //左移(逐列式)/上移(逐行式)
  70.                 //for(j = 39 ; j-1 > 0 ; j--)        //右移(逐列式)/下移(逐行式)

  71.                 for(j = 0 ; j < 40 ; j++) {                                //要顯示的字數(shù)(每個字8位,這里是顯示一屏空白+4個字,所以是8+4*8=40)
  72.                         for(i = 0 ; i < 50 ; i++) {                        //控制移動的速度(數(shù)字越小移動速度越快,越大越慢)
  73.                                 temp = 0x7f;

  74.                                 //移動方式(想要不同的移動方式,就按以下說明修改)
  75.                                 //for(k = 0 ; k < 8 ; k++) //左移(逐列式)/右移(逐列式)
  76.                                 //for(k = 8 ; k-1 > 0 ; k--) //上移(逐行式)/下移(逐行式)

  77.                                 for(k = 0 ; k < 8 ; k++) {                //(每個字取8次數(shù)組, 不要修改)
  78.                                         Send_Data(Display_word1[j+k]);
  79.                                 }
  80.                         }
  81.                 }
  82.         }                                       
  83. }
復(fù)制代碼

壓縮包內(nèi), 附了仿真程序, 點陣程序和取模說明和工具
JD20190424210828.png

全部資料51hei下載地址:
STC89C52+74HC595+8X8點陣移動程序.zip (2.65 MB, 下載次數(shù): 427)

評分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:520127 發(fā)表于 2019-4-25 00:07 | 顯示全部樓層
感謝大哥分享源碼
回復(fù)

使用道具 舉報

ID:492212 發(fā)表于 2019-4-25 12:35 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報

ID:492212 發(fā)表于 2019-4-25 12:35 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報

ID:343102 發(fā)表于 2019-4-25 14:57 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報

ID:516983 發(fā)表于 2019-4-26 10:48 | 顯示全部樓層
請問大哥有匯編得程序嗎
回復(fù)

使用道具 舉報

ID:424598 發(fā)表于 2019-4-26 13:47 來自手機 | 顯示全部樓層
土豪男 發(fā)表于 2019-4-26 10:48
請問大哥有匯編得程序嗎

沒有,沒學(xué)過匯編
回復(fù)

使用道具 舉報

ID:579763 發(fā)表于 2019-7-8 10:21 | 顯示全部樓層
正好在找這相關(guān)資料。!
回復(fù)

使用道具 舉報

ID:529757 發(fā)表于 2019-7-8 20:20 | 顯示全部樓層
真的很nice
回復(fù)

使用道具 舉報

ID:572981 發(fā)表于 2019-7-9 16:41 | 顯示全部樓層
感謝
回復(fù)

使用道具 舉報

ID:97097 發(fā)表于 2019-9-26 09:20 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報

ID:414344 發(fā)表于 2019-10-17 00:18 | 顯示全部樓層
為什么下了  仿真沒見又效果
回復(fù)

使用道具 舉報

ID:625633 發(fā)表于 2019-10-17 15:07 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報

ID:625659 發(fā)表于 2019-10-17 15:31 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報

ID:643653 發(fā)表于 2019-11-17 15:18 | 顯示全部樓層
下載之后  任意點陣字符代碼生成器  里面的應(yīng)用程序打不開,一點擊就顯示錯誤
回復(fù)

使用道具 舉報

ID:778399 發(fā)表于 2020-6-13 18:23 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報

ID:789451 發(fā)表于 2020-6-25 13:43 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報

ID:787783 發(fā)表于 2020-6-25 16:10 | 顯示全部樓層
很有用,謝謝
回復(fù)

使用道具 舉報

ID:495287 發(fā)表于 2020-6-27 13:45 | 顯示全部樓層
感謝樓主分享源碼,好運常伴樓主。
回復(fù)

使用道具 舉報

ID:795427 發(fā)表于 2022-1-21 22:03 | 顯示全部樓層
謝謝分享,不錯,寫的很詳細。
回復(fù)

使用道具 舉報

ID:297903 發(fā)表于 2022-2-6 13:22 | 顯示全部樓層
感謝分享,有空也整一個試下!
回復(fù)

使用道具 舉報

ID:679189 發(fā)表于 2022-5-5 21:31 | 顯示全部樓層
干的漂亮!
回復(fù)

使用道具 舉報

ID:1066865 發(fā)表于 2023-7-17 14:43 | 顯示全部樓層
怎么顯示不同字體的設(shè)置
回復(fù)

使用道具 舉報

ID:1112603 發(fā)表于 2024-5-16 12:55 | 顯示全部樓層
剛學(xué)過74HC595驅(qū)動數(shù)碼管,下載看看和這個控制點陣的有什么不同,謝謝分享!
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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