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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

C51單片機驅動MAX7219控制LED點陣滾動顯示漢字程序

[復制鏈接]
跳轉到指定樓層
樓主
利用多個8*8點陣模塊設計并制作條形顯示屏,滾動顯漢字,現在寫出了C語言,但是老師要求匯編

圖片1.png (68.33 KB, 下載次數: 74)

圖片1.png

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:1026000 發表于 2022-5-24 12:37 | 只看該作者
  1. #include <reg52.h>
  2. #include <intrins.h>

  3. #define u8 unsigned char
  4. #define u16  unsigned int

  5. #define DECODE_MODE  0x09
  6. #define INTENSITY    0x0A
  7. #define SCAN_LIMIT   0x0B
  8. #define SHUT_DOWN    0x0C
  9. #define DISPLAY_TEST 0x0F

  10. #define BLOCKS 8


  11. sbit MAX7219_CLK = P1^2;
  12. sbit MAX7219_CS  = P1^1;
  13. sbit MAX7219_DIN = P1^0;

  14. u8 code bytes[] = {
  15.        
  16. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  17. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  18. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  19. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  20. /* 熱[0xC8C8]   16x16 */
  21. 0x08,0x40,0x08,0x40,0x08,0x48,0x7F,0xFC,0x08,0x48,0x0A,0x48,0x1C,0xC8,0x68,0x48,
  22. 0x08,0xA8,0x08,0x8A,0x29,0x0A,0x12,0x04,0x00,0x00,0x48,0x88,0x44,0x46,0x84,0x42,
  23. /* GB2312 16x16點陣字庫*/
  24. /* 烈[0xC1D2]   16x16 */
  25. 0x01,0x04,0x7F,0x84,0x10,0x24,0x10,0x24,0x1F,0x24,0x21,0x24,0x21,0x24,0x52,0x24,
  26. 0x0C,0x24,0x08,0x04,0x30,0x0C,0x40,0x00,0x28,0x90,0x24,0x4C,0x44,0x46,0x80,0x02,
  27. /* GB2312 16x16點陣字庫*/
  28. /* 祝[0xD7A3]   16x16 */
  29. 0x20,0x08,0x13,0xFC,0x12,0x08,0x02,0x08,0xFE,0x08,0x0A,0x08,0x12,0x08,0x3B,0xF8,
  30. 0x56,0xA8,0x90,0xA0,0x10,0xA0,0x11,0x20,0x11,0x22,0x12,0x22,0x14,0x1E,0x18,0x00,
  31. /* GB2312 16x16點陣字庫*/
  32. /* 賀[0xBAD8]   16x16 */
  33. 0x10,0x00,0x10,0x04,0x7F,0x7E,0x11,0x44,0x11,0x44,0x25,0x7C,0x42,0x10,0x9F,0xF8,
  34. 0x10,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x02,0xC0,0x0C,0x30,0x30,0x08,
  35. /* GB2312 16x16點陣字庫*/
  36. /* 中[0xD6D0]   16x16 */
  37. 0x01,0x00,0x01,0x00,0x01,0x04,0x7F,0xFE,0x41,0x04,0x41,0x04,0x41,0x04,0x41,0x04,
  38. 0x7F,0xFC,0x41,0x04,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
  39. /* GB2312 16x16點陣字庫*/
  40. /* 南[0xC4CF]   16x16 */
  41. 0x01,0x00,0x01,0x04,0xFF,0xFE,0x01,0x00,0x01,0x04,0x7F,0xFE,0x48,0x24,0x44,0x44,
  42. 0x5F,0xF4,0x41,0x04,0x41,0x04,0x5F,0xF4,0x41,0x04,0x41,0x04,0x41,0x14,0x40,0x08,
  43. /* GB2312 16x16點陣字庫*/
  44. /* 大[0xB4F3]   16x16 */
  45. 0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0xFF,0xFE,0x01,0x00,0x02,0x80,
  46. 0x02,0x80,0x02,0x40,0x04,0x40,0x04,0x20,0x08,0x10,0x10,0x0E,0x60,0x04,0x00,0x00,
  47. /* GB2312 16x16點陣字庫*/
  48. /* 學[0xD1A7]   16x16 */
  49. 0x22,0x08,0x11,0x08,0x11,0x10,0x00,0x20,0x7F,0xFE,0x40,0x02,0x80,0x04,0x1F,0xE0,
  50. 0x00,0x40,0x01,0x84,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00,
  51. /* GB2312 16x16點陣字庫*/
  52. /* 物[0xCEEF]   16x16 */
  53. 0x11,0x00,0x11,0x00,0x51,0x00,0x51,0x04,0x7B,0xFE,0x54,0xA4,0x90,0xA4,0x1C,0xA4,
  54. 0x31,0x24,0xD1,0x44,0x12,0x44,0x12,0x44,0x14,0x84,0x10,0x84,0x11,0x28,0x10,0x10,
  55. /* GB2312 16x16點陣字庫*/
  56. /* 理[0xC0ED]   16x16 */
  57. 0x00,0x08,0x13,0xFC,0xFA,0x48,0x22,0x48,0x23,0xF8,0x22,0x48,0xFA,0x48,0x23,0xF8,
  58. 0x20,0x40,0x20,0x50,0x23,0xF8,0x3C,0x40,0xE0,0x40,0x40,0x44,0x0F,0xFE,0x00,0x00,
  59. /* GB2312 16x16點陣字庫*/
  60. /* 與[0xD3EB]   16x16 */
  61. 0x10,0x00,0x10,0x00,0x10,0x08,0x1F,0xFC,0x10,0x00,0x10,0x00,0x10,0x08,0x1F,0xFC,
  62. 0x00,0x08,0x00,0x08,0x00,0x48,0xFF,0xE8,0x00,0x08,0x00,0x08,0x00,0x50,0x00,0x20,
  63. /* GB2312 16x16點陣字庫*/
  64. /* 電[0xB5E7]   16x16 */
  65. 0x02,0x00,0x02,0x00,0x02,0x10,0x7F,0xF8,0x42,0x10,0x42,0x10,0x7F,0xF0,0x42,0x10,
  66. 0x42,0x10,0x7F,0xF0,0x42,0x10,0x02,0x00,0x02,0x04,0x02,0x04,0x01,0xFC,0x00,0x00,
  67. /* GB2312 16x16點陣字庫*/
  68. /* 子[0xD7D3]   16x16 */
  69. 0x00,0x00,0x3F,0xF0,0x00,0x10,0x00,0x20,0x00,0x40,0x01,0x80,0x01,0x04,0xFF,0xFE,
  70. 0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00,
  71. /* GB2312 16x16點陣字庫*/
  72. /* 學[0xD1A7]   16x16 */
  73. 0x22,0x08,0x11,0x08,0x11,0x10,0x00,0x20,0x7F,0xFE,0x40,0x02,0x80,0x04,0x1F,0xE0,
  74. 0x00,0x40,0x01,0x84,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00,
  75. /* 院[0xD4BA]   16x16 */
  76. 0x00,0x80,0x78,0x40,0x4F,0xFE,0x54,0x02,0x58,0x14,0x63,0xF8,0x50,0x00,0x48,0x08,
  77. 0x4F,0xFC,0x48,0xA0,0x68,0xA0,0x50,0xA0,0x41,0x22,0x41,0x22,0x42,0x1E,0x4C,0x00,
  78. /* GB2312 16x16點陣字庫*/
  79. /* 成[0xB3C9]   16x16 */
  80. 0x00,0x80,0x00,0xA0,0x00,0x90,0x3F,0xFC,0x20,0x80,0x20,0x80,0x20,0x84,0x3E,0x44,
  81. 0x22,0x48,0x22,0x48,0x22,0x30,0x2A,0x20,0x24,0x62,0x40,0x92,0x81,0x0A,0x00,0x06,
  82. /* GB2312 16x16點陣字庫*/
  83. /* 立[0xC1A2]   16x16 */
  84. 0x02,0x00,0x01,0x00,0x01,0x00,0x00,0x08,0x7F,0xFC,0x00,0x00,0x00,0x10,0x10,0x10,
  85. 0x08,0x20,0x08,0x20,0x04,0x40,0x04,0x40,0x04,0x80,0x00,0x04,0xFF,0xFE,0x00,0x00,
  86. /* 字串 20   16x16  */
  87. 0x00,0x00,0x00,0x00,0x7C,0x7C,0xC6,0xC6,0x06,0xC6,0x0C,0xCE,0x18,0xD6,0x30,0xD6,
  88. 0x60,0xE6,0xC0,0xC6,0xC6,0xC6,0xFE,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  89. /* GB2312 16x16點陣字庫*/
  90. /* 周[0xD6DC]   16x16 */
  91. 0x00,0x08,0x3F,0xFC,0x21,0x08,0x21,0x48,0x2F,0xE8,0x21,0x08,0x21,0x28,0x3F,0xF8,
  92. 0x20,0x48,0x27,0xE8,0x24,0x48,0x24,0x48,0x24,0x48,0x47,0xC8,0x84,0x28,0x00,0x10,
  93. /* GB2312 16x16點陣字庫*/
  94. /* 年[0xC4EA]   16x16 */
  95. 0x08,0x00,0x08,0x08,0x1F,0xFC,0x11,0x00,0x21,0x00,0x41,0x10,0x1F,0xF8,0x11,0x00,
  96. 0x11,0x00,0x11,0x04,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00


  97. };

  98. u8 val[8];
  99. u8 character_len = sizeof(bytes) / 8;
  100. void delay(u16 x)
  101. {
  102.   u16 i,j;
  103.   for(i = 0; i < x; i++)
  104.     for(j = 0;j < 112; j++);
  105. }

  106. void Max7219_writeByte(u8 dat)
  107. {
  108.   u8 i;
  109.   MAX7219_CS = 0;
  110.   for(i = 8; i >= 1; i--)
  111.   {
  112.     MAX7219_CLK = 0;
  113.     MAX7219_DIN = dat & 0x80; // &10000000, 取最高位
  114.     dat = dat << 1;
  115.     MAX7219_CLK = 1;
  116.   }
  117. }



  118. void Max7219_singeWrite(u8 index, u8 addr, u8 dat)
  119. {
  120.   MAX7219_CS = 0;
  121.   Max7219_writeByte(addr);
  122.   Max7219_writeByte(dat);
  123. while(index--)
  124. {
  125. Max7219_writeByte(0x00);
  126. Max7219_writeByte(0x00);

  127. }
  128.   MAX7219_CS = 1;

  129. }

  130. void Max7219_multiWrite1(u8 addr, u8* dat)
  131. {
  132. u16 t=8;
  133.         MAX7219_CS = 0;
  134.   while(t--)
  135.   {
  136.                
  137.     Max7219_writeByte(addr);
  138.     Max7219_writeByte         (*dat++);
  139.                
  140.   }
  141.   MAX7219_CS = 1;
  142. }



  143. void Max7219_init(void)
  144. {
  145.   u8 i;
  146.   for (i = 0; i < BLOCKS; i++)
  147.   {
  148.     Max7219_singeWrite(i, SHUT_DOWN,   0x01);  // 0x00:shutdown, 0x01:normal
  149.     Max7219_singeWrite(i, DECODE_MODE, 0x00);  // No decode
  150.     Max7219_singeWrite(i, INTENSITY,   0x03);  // 0x00:min, 0x0F:max
  151.     Max7219_singeWrite(i, SCAN_LIMIT,  0x07);  // Display 8 digits
  152.     Max7219_singeWrite(i, DISPLAY_TEST, 0x00); // 0x00:normal, 0x01:test mode
  153.   }
  154. }


  155. void main(void)
  156. {
  157. u16 i=0,j=0,t=0,n=0,m=0,f;
  158.   Max7219_init();

  159. while(1)
  160.   {
  161.         f=0;
  162.     n = t / 8; // 第幾個字
  163.                 m=t%8;

  164.     for(j=0;j<8;j++)
  165.                 {
  166.                          for(i=0;i<4;i++)
  167.                         {
  168.                                 f=(n+i)%(character_len/2);
  169.                                 val[i]=bytes[2*j+f/2*32+f%2]<<m;
  170.                                         val[i+4]=bytes[2*j+f/2*32+f%2+16]<<m;
  171.                                 f=(n+i+1)%(character_len/2);
  172.                                 val[i]|=bytes[2*j+f/2*32+f%2]>>8-m;
  173.                                 val[i+4]|=bytes[2*j+f/2*32+f%2+16]>>8-m;
  174.                         }

  175.                         Max7219_multiWrite1(j+1, val);
  176.     }
  177.                         t=(t+1)%(sizeof(bytes)/2);
  178.                
  179.                 delay(150);
  180.         }

  181.        
  182.         }
復制代碼
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 九九亚洲 | 国产精品久久久久久婷婷天堂 | 亚洲精品免费在线观看 | 亚洲高清中文字幕 | av一区二区在线观看 | 一区二区在线不卡 | 免费一级毛片 | 亚州精品天堂中文字幕 | 欧美日韩精品久久久免费观看 | 欧美精品91 | 国产精品免费av | 一级黄色日本片 | 欧美a级成人淫片免费看 | 国产成人麻豆免费观看 | 精品国产欧美一区二区三区成人 | 精品一区二区三区免费毛片 | 91精品国产综合久久精品 | 日韩精品视频在线观看一区二区三区 | 久久在线 | 中文字幕高清免费日韩视频在线 | 人人人人干 | 久久国产区 | 免费一区 | 国产精品一区视频 | 我想看国产一级毛片 | 人人澡人人爱 | 夜夜爽99久久国产综合精品女不卡 | 久久精品 | 久久久久久国产精品久久 | 亚洲一区二区久久久 | 91高清视频 | 国产精品一区二区三区久久久 | 久久精品超碰 | 国产精品免费在线 | 青青草av网站 | 欧美日韩一 | 亚洲欧美在线视频 | 欧美精品日韩精品国产精品 | 成人国产在线视频 | 久久精品免费 | 精品一区二区在线观看 |