找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)16*96點(diǎn)陣屏仿真 74hc138和74hc595驅(qū)動 帶源程序

[復(fù)制鏈接]
ID:137190 發(fā)表于 2016-9-9 23:45 | 顯示全部樓層 |閱讀模式
0.png
51單片機(jī)做的16*96點(diǎn)陣屏仿真,使用的驅(qū)動芯片是74hc138和74hc595,電路原理圖如上

單片機(jī)程序源碼如下:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit SH=P3^0;
  5. sbit DS=P3^1;
  6. sbit ST=P3^2;
  7. uchar num=12;                             //漢字個(gè)數(shù)
  8. uchar code hanzi[]={
  9. //好
  10. //C51 Code,逐行從上到下取模,每行左為最高位
  11. //Creat By Super Led_Dot_Matrix Char V1.0
  12. 0x00,0x00,0x0C,0xC6,0x0F,0xCC,0x7F,0x78,
  13. 0x7C,0x70,0x0F,0xF8,0x0F,0x9C,0x21,0x88,
  14. 0x21,0x80,0x21,0x86,0x27,0x86,0x2F,0xFE,
  15. 0x29,0x80,0x39,0x80,0x31,0x80,0x00,0x80,


  16. 0x00,0x00,0x0C,0xC6,0x0F,0xCC,0x7F,0x78,
  17. 0x7C,0x70,0x0F,0xF8,0x0F,0x9C,0x21,0x88,
  18. 0x21,0x80,0x21,0x86,0x27,0x86,0x2F,0xFE,
  19. 0x29,0x80,0x39,0x80,0x31,0x80,0x00,0x80,
  20. //學(xué)
  21. //C51 Code,逐行從上到下取模,每行左為最高位
  22. 0x00,0x00,0x0E,0x30,0x4E,0x30,0x7D,0x30,
  23. 0x3D,0x30,0x0D,0x32,0x4D,0x33,0xED,0x73,
  24. 0x2D,0xFE,0x0D,0xF0,0x1D,0xB0,0x7D,0xB0,
  25. 0xED,0x30,0x4E,0x30,0x0E,0x30,0x00,0x00,
  26. //習(xí)
  27. //C51 Code,逐行從上到下取模,每行左為最高位
  28. 0x00,0x00,0x00,0x00,0x00,0x10,0x60,0x18,
  29. 0x2C,0x18,0x2E,0x30,0x26,0x30,0x23,0x20,
  30. 0x22,0x60,0x20,0x66,0x20,0xC6,0x20,0x06,
  31. 0x3F,0xFE,0x3F,0xFC,0x00,0x00,0x00,0x00,
  32. //完
  33. //C51 Code,逐行從上到下取模,每行左為最高位
  34. 0x00,0x00,0x3C,0x82,0x3C,0x86,0x34,0x86,
  35. 0x36,0x8C,0x36,0xF8,0x36,0xE0,0xF6,0x80,
  36. 0x76,0x80,0x36,0xFE,0x36,0x86,0x36,0x82,
  37. 0x30,0x82,0x38,0x8E,0x3C,0x8C,0x00,0x00,
  38. //善
  39. //C51 Code,逐行從上到下取模,每行左為最高位
  40. 0x00,0x00,0x11,0x20,0x15,0x3E,0x15,0x31,
  41. 0x55,0xF1,0x35,0x31,0x15,0x31,0x1F,0xF1,
  42. 0x15,0x31,0x15,0x31,0x35,0x31,0x75,0xF1,
  43. 0x15,0x31,0x15,0x3F,0x11,0x20,0x00,0x00,
  44. //自
  45. //C51 Code,逐行從上到下取模,每行左為最高位
  46. 0x00,0x00,0x00,0x00,0x10,0x02,0x1F,0xFE,
  47. 0x12,0x4C,0x12,0x4C,0xF2,0x4C,0x72,0x4C,
  48. 0x12,0x4C,0x12,0x4C,0x12,0x4C,0x12,0x4C,
  49. 0x1F,0xFE,0x1F,0xFE,0x00,0x00,0x00,0x00,
  50. //我
  51. //C51 Code,逐行從上到下取模,每行左為最高位
  52. 0x00,0x00,0x16,0x60,0x36,0x62,0x36,0x62,
  53. 0x3F,0xFE,0x3F,0xFC,0x66,0xC4,0x66,0xC6,
  54. 0x06,0x0C,0x7F,0xEC,0x06,0xF8,0x26,0x3C,
  55. 0x36,0xE6,0x1F,0xC2,0x06,0x0E,0x00,0x04,

  56. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  57. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  58. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  59. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  60. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  61. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  62. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  63. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  64. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  65. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  66. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  67. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  68. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  69. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  70. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  71. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  72. };
  73. void delay(uint z)
  74. {
  75.         uint x,y;
  76.         for(x=0;x<z;x++)
  77.                 for(y=50;y>0;y--);
  78. }
  79. void send(uchar dat)
  80. {
  81.     uchar i;
  82.     for(i=0;i<8;i++)
  83.     {
  84.         dat>>=1;
  85.         DS=CY;
  86.         SH=0;
  87.         SH=1;
  88.     }
  89. }
  90. void display(uchar k)
  91. {
  92.     uchar i,j,hang,m;
  93.     uint g;
  94.     for(j=0;j<5;j++)           //動態(tài)掃描5次
  95.     {
  96.         hang=0x08;                // 開通第一個(gè)138
  97.         for(i=0;i<16;i++)
  98.         {
  99.             ST=0;
  100.             for(m=4;m>0;m--)
  101.             {
  102.                 g=2*i+2*k+m*32-32;
  103.                 send(hanzi[g]);
  104.                 send(hanzi[g+1]);
  105.             }
  106.             P1=hang;
  107.             hang++;
  108.             ST=1;                                    //鎖存數(shù)據(jù)
  109.             delay(1);
  110.         }
  111.     }
  112. }
  113. void move()
  114. {
  115.     uint k,j,a,b;
  116.     for(k=0;k<16*(num-4);k++)
  117.     {
  118.         display(k);
  119.     }
  120.     for(a=16*(num-4);a>0;a--)
  121.     {
  122.             display(a);
  123.     }
  124.     for(j=0;j<2;j++)
  125.     {
  126.         for(b=16;b>0;b--)
  127.         {
  128.             display(16*4*j);
  129.         }
  130.     }  
  131. }
  132. void main()
  133. {
  134.     while(1)
  135.     {
  136.         move();
  137.     }
  138. }
復(fù)制代碼
0.png

所有資料下載: 595.138點(diǎn)陣屏.zip (74.98 KB, 下載次數(shù): 62)

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:143663 發(fā)表于 2016-10-20 20:55 | 顯示全部樓層
很好 剛好用得到
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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