找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

16*16點(diǎn)陣的動(dòng)態(tài)顯示(單片機(jī)仿真,程序)親測(cè)可用

[復(fù)制鏈接]
ID:198282 發(fā)表于 2017-5-8 18:33 | 顯示全部樓層 |閱讀模式
點(diǎn)陣,親測(cè)可用
proteus仿真顯示效果:
QQ圖片20170417215643.png

原理圖:
QQ圖片20170417215431.png

0.png

單片機(jī)源程序:
  1. #include <reg52.h>

  2. #define MATRIX_DATA P0
  3. sbit MATRIX_X_EN_0 = P2^0;
  4. sbit MATRIX_X_EN_1 = P2^1;
  5. sbit MATRIX_Y_EN_0 = P2^2;
  6. sbit MATRIX_Y_EN_1 = P2^3;

  7. unsigned char code text[]={
  8. 0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,
  9. 0x80,0x00,0x88,0x08,0x88,0x10,0x88,0x20,
  10. 0x84,0x20,0x84,0x40,0x82,0x40,0x81,0x40,
  11. 0x80,0x00,0x80,0x00,0xA0,0x00,0x40,0x00,//小

  12. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  13. 0x04,0x02,0x04,0x04,0xC4,0x7F,0x1F,0x04,
  14. 0x15,0x12,0x55,0x4F,0x95,0x24,0x55,0x4A,
  15. 0x1F,0x1F,0x05,0x10,0x04,0x04,0xD4,0x7F,
  16. 0x1C,0x04,0x17,0x04,0x02,0x04,0x00,0x04,//蟀

  17. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  18. 0x20,0x20,0x24,0x20,0x24,0x20,0xFC,0x25,
  19. 0x22,0x24,0x20,0x24,0xFF,0x27,0x20,0x24,
  20. 0x20,0x24,0xFC,0x25,0x24,0x25,0x24,0x25,
  21. 0x64,0x21,0xA4,0x20,0x20,0x28,0x20,0x10,//制

  22. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  23. 0x90,0x00,0x90,0x00,0x90,0x00,0x88,0x7F,
  24. 0x48,0x01,0x4C,0x01,0x2C,0x01,0x0A,0x1F,
  25. 0x09,0x01,0x08,0x01,0x08,0x01,0x08,0x3F,
  26. 0x08,0x01,0x08,0x01,0x08,0x01,0x08,0x01,//作

  27. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  28. };

  29. void DelayMs(unsigned int ms);
  30. void MatrixShow(unsigned char *text);

  31. void main()
  32. {
  33.         unsigned int cnt = 0, p = 0;
  34.         while(1)
  35.         {
  36.                 MatrixShow(&text[p]);
  37.                 DelayMs(2);
  38.                 cnt++;
  39.                 if(cnt == 64)
  40.                 {
  41.                         cnt = 0;
  42.                         p += 2;
  43.                         if(p >= sizeof(text)-17)
  44.                         {
  45.                                 p = 0;
  46.                         }
  47.                 }
  48.         }
  49. }

  50. void DelayMs(unsigned int ms)
  51. {
  52.         unsigned int i, j;
  53.         for(i=0; i<ms; i++)
  54.                 for(j=0; j<110; j++);
  55. }

  56. void MatrixShow(unsigned char *text)
  57. {
  58.         static unsigned char cnt = 0;

  59.         MATRIX_DATA = 0xff;
  60.         MATRIX_Y_EN_0 = 1;
  61.         MATRIX_Y_EN_0 = 0;
  62.         MATRIX_Y_EN_1 = 1;
  63.         MATRIX_Y_EN_1 = 0;

  64.         MATRIX_DATA = text[2*cnt];
  65.         MATRIX_X_EN_0 = 1;
  66.         MATRIX_X_EN_0 = 0;

  67.         MATRIX_DATA = text[2*cnt+1];
  68.         MATRIX_X_EN_1 = 1;
  69.         MATRIX_X_EN_1 = 0;

  70.         if(cnt<8)
  71.         {
  72.                 MATRIX_DATA = ~(0x01<<cnt);
  73.                 MATRIX_Y_EN_0 = 1;
  74.                 MATRIX_Y_EN_0 = 0;
  75.         }
  76.         else
  77.         {
  78.                 MATRIX_DATA = ~(0x01<<(cnt-8));
  79.                 MATRIX_Y_EN_1 = 1;
  80.                 MATRIX_Y_EN_1 = 0;
  81.        

  82. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

下載:
0009-16x16點(diǎn)陣 - 副本.rar (104.58 KB, 下載次數(shù): 101)

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:446199 發(fā)表于 2018-12-14 13:02 | 顯示全部樓層
為啥我proteus打不開
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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