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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機的16x128點陣顯示文字Proteus仿真程序

[復制鏈接]
跳轉到指定樓層
樓主
自己設計了一款基于51單片機的16*128大屏點陣顯示文字,如效果如下圖:


單片機源程序如下:
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit sclk=P1^1;
  6. sbit rclk=P1^2;
  7. sbit sdin=P1^0;
  8. sbit s1=P3^6;
  9. sbit s2=P3^7;
  10. bit fangxiang;
  11. uint alt,net,s3=30*25.5;
  12. int d1,d2;
  13. bit mode;
  14. uchar code tab[]={

  15. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",0*/

  16. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",1*/

  17. 0x00,0x80,0x01,0x02,0x06,0x02,0x78,0x82,0x08,0x82,0x08,0x82,0x08,0x82,0x08,0x82,
  18. 0xFF,0xFE,0x48,0x82,0x08,0x82,0x08,0x82,0x19,0x82,0x08,0x86,0x00,0x02,0x00,0x00,/*"生",2*/

  19. 0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFC,0x42,0x08,0x42,0x08,0x42,0x08,0x42,0x08,
  20. 0x42,0x08,0x42,0x08,0x42,0x08,0x7F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"日",3*/

  21. 0x0E,0x00,0x00,0x00,0xFF,0xFF,0x10,0x00,0x0D,0x01,0x11,0x02,0x11,0x0C,0x11,0x70,
  22. 0xFF,0x80,0x11,0x60,0x11,0x10,0x11,0x0C,0x1F,0x06,0x01,0x03,0x01,0x02,0x00,0x00,/*"快",4*/

  23. 0x00,0x00,0x00,0x04,0x02,0x18,0x3F,0x30,0x22,0xE0,0x22,0x48,0x22,0x04,0x62,0x02,
  24. 0x5F,0xFC,0x42,0x00,0xC2,0x00,0xC2,0x40,0x42,0x30,0x02,0x1C,0x00,0x08,0x00,0x00,/*"樂",5*/

  25. 0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  26. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"!",6*/


  27. /*--  文字:  點  --*/
  28. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  29. 0x00,0x01,0x00,0x02,0x03,0xEC,0x02,0x20,0x02,0x20,0x02,0x28,0xFE,0x26,0x12,0x20,
  30. 0x12,0x28,0x12,0x26,0x12,0x20,0x13,0xE0,0x10,0x08,0x10,0x07,0x00,0x00,0x00,0x00,
  31.                        
  32. /*--  文字:  陣  --*/
  33. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  34. 0x00,0x00,0x7F,0xFF,0x40,0x10,0x44,0x08,0x5B,0x10,0x60,0xE0,0x10,0x10,0x13,0x10,
  35. 0x1D,0x10,0xF1,0x10,0x17,0xFF,0x11,0x10,0x11,0x10,0x11,0x10,0x10,0x10,0x00,0x00,
  36.                        
  37. /*--  文字:  顯  --*/
  38. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  39. 0x00,0x02,0x00,0x42,0x00,0x22,0x7F,0x1A,0x49,0x02,0x49,0xFE,0x49,0x02,0x49,0x02,
  40. 0x49,0x02,0x49,0xFE,0x49,0x02,0x7F,0x0A,0x00,0x12,0x00,0x62,0x00,0x02,0x00,0x00,

  41. /*--  文字:  示  --*/
  42. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  43. 0x02,0x04,0x02,0x08,0x42,0x10,0x42,0x60,0x42,0x00,0x42,0x02,0x42,0x01,0x43,0xFE,
  44. 0x42,0x00,0x42,0x00,0x42,0x00,0x42,0x40,0x42,0x20,0x02,0x10,0x02,0x0C,0x00,0x00,

  45. /*--  文字:  屏  --*/
  46. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  47. 0x00,0x02,0x00,0x0C,0x7F,0xF0,0x48,0x20,0x49,0x21,0x4D,0x26,0x4B,0xF8,0x49,0x20,
  48. 0x49,0x20,0x49,0x20,0x4B,0xFF,0x4D,0x20,0x79,0x20,0x00,0x20,0x00,0x00,0x00,0x00,               

  49. /*--  文字:  程  --*/
  50. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  51. 0x24,0x10,0x24,0x60,0x25,0x80,0x7F,0xFF,0xC4,0x80,0x44,0x60,0x00,0x02,0x7C,0x92,
  52. 0x44,0x92,0x44,0x92,0x44,0xFE,0x44,0x92,0x44,0x92,0x7C,0x92,0x00,0x82,0x00,0x00,
  53. /*--  文字:  序  --*/
  54. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  55. 0x00,0x02,0x00,0x0C,0x3F,0xF0,0x20,0x00,0x20,0x80,0x20,0x80,0x28,0x80,0xA8,0x82,
  56. 0x6A,0x81,0x29,0xFE,0x2A,0x80,0x2C,0x80,0x28,0x80,0x20,0xA0,0x20,0xC0,0x00,0x00,

  57. /*--  文字:  設  --*/
  58. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  59. 0x02,0x00,0x02,0x00,0x42,0x00,0x33,0xFC,0x00,0x09,0x02,0x11,0x05,0x02,0x79,0xC2,
  60. 0x41,0x34,0x41,0x08,0x41,0x14,0x79,0x62,0x05,0x82,0x04,0x01,0x04,0x01,0x00,0x00,

  61. /*--  文字:  計  --*/
  62. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  63. 0x02,0x00,0x02,0x00,0x42,0x00,0x33,0xFE,0x00,0x04,0x02,0x08,0x02,0x00,0x02,0x00,
  64. 0x02,0x00,0xFF,0xFF,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x00,0x00,

  65. /*--  文字:  與  --*/
  66. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  67. 0x00,0x10,0x00,0x10,0x07,0x10,0xF9,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,
  68. 0x11,0x10,0x11,0x12,0x11,0x01,0x11,0x02,0x11,0xFC,0x10,0x00,0x00,0x00,0x00,0x00,

  69. /*--  文字:  仿  --*/
  70. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  71. 0x00,0x80,0x01,0x00,0x06,0x00,0x1F,0xFF,0xE0,0x01,0x10,0x02,0x10,0x0C,0x1F,0xF0,
  72. 0x91,0x00,0x71,0x02,0x11,0x01,0x11,0x02,0x11,0xFC,0x10,0x00,0x10,0x00,0x00,0x00,

  73. /*--  文字:  真  --*/
  74. /*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
  75. 0x00,0x08,0x20,0x08,0x20,0x09,0x2F,0xFA,0x2A,0xAC,0x2A,0xA8,0x2A,0xA8,0xFA,0xA8,
  76. 0x2A,0xA8,0x2A,0xA8,0x2A,0xAC,0x2F,0xFA,0x20,0x09,0x20,0x08,0x00,0x08,0x00,0x00,





  77. 0x10,0x04,0x1F,0xFC,0x00,0x84,0x01,0x00,0x01,0x00,0x01,0x04,0x00,0xFC,0x00,0x04,/*"h",7*/

  78. 0x00,0x00,0x00,0x98,0x01,0x24,0x01,0x44,0x01,0x44,0x01,0x44,0x00,0xFC,0x00,0x04,/*"a",8*/

  79. 0x01,0x01,0x01,0xFF,0x00,0x85,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x70,0x00,0x00,/*"p",9*/

  80. 0x01,0x01,0x01,0xFF,0x00,0x85,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x70,0x00,0x00,/*"p",10*/

  81. 0x01,0x01,0x01,0x81,0x01,0x71,0x00,0x0E,0x00,0x18,0x01,0x60,0x01,0x80,0x01,0x00,/*"y",11*/

  82. 0x00,0x00,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*".",12*/

  83. 0x10,0x00,0x1F,0xFC,0x00,0x88,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x70,0x00,0x00,/*"b",13*/

  84. 0x00,0x00,0x01,0x04,0x19,0x04,0x19,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,/*"i",14*/

  85. 0x01,0x04,0x01,0x04,0x01,0xFC,0x00,0x84,0x01,0x04,0x01,0x00,0x01,0x80,0x00,0x00,/*"r",15*/

  86. 0x00,0x00,0x01,0x00,0x01,0x00,0x07,0xF8,0x01,0x04,0x01,0x04,0x00,0x00,0x00,0x00,/*"t",16*/

  87. 0x10,0x04,0x1F,0xFC,0x00,0x84,0x01,0x00,0x01,0x00,0x01,0x04,0x00,0xFC,0x00,0x04,/*"h",17*/

  88. 0x00,0x00,0x00,0x70,0x00,0x88,0x01,0x04,0x01,0x04,0x11,0x08,0x1F,0xFC,0x00,0x04,/*"d",18*/

  89. 0x00,0x00,0x00,0x98,0x01,0x24,0x01,0x44,0x01,0x44,0x01,0x44,0x00,0xFC,0x00,0x04,/*"a",19*/

  90. 0x01,0x01,0x01,0x81,0x01,0x71,0x00,0x0E,0x00,0x18,0x01,0x60,0x01,0x80,0x01,0x00,/*"y",20*/

  91. 0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xCC,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,/*"!",21*/

  92. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",22*/

  93. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",23*/

  94. };

  95. void delay(uint z)           //延時子函數
  96. {
  97.    uchar x;
  98.    for(;z>0;z--)
  99.    for(x=110;x>0;x--);
  100. }

  101. void writedata(uchar dat1,uchar dat2,uchar dat3,uchar dat4,uchar dat5,uchar dat6,uchar dat7,uchar dat8,uchar dat9,uchar dat10,uchar dat11,uchar dat12,uchar dat13,uchar dat14,uchar dat15,uchar dat16)         //595顯示子函數
  102. {
  103.   uchar i;
  104.   for(i=0;i<8;i++)                //循環八次
  105.   {
  106.     dat1=dat1>>1;                //數據左移
  107.           sdin=CY;
  108.           sclk=1;
  109.           
  110.           sclk=0;
  111.   }
  112.   for(i=0;i<8;i++)          //循環八次
  113.   {
  114.       dat2=dat2>>1;          //數據左移
  115.           sdin=CY;
  116.           sclk=1;
  117.           
  118.           sclk=0;
  119.   }
  120.         for(i=0;i<8;i++)          //循環八次
  121.   {
  122.       dat3=dat3>>1;          //數據左移
  123.           sdin=CY;
  124.           sclk=1;
  125.           
  126.           sclk=0;
  127.   }
  128.         for(i=0;i<8;i++)          //循環八次
  129.   {
  130.       dat4=dat4>>1;          //數據左移
  131.           sdin=CY;
  132.           sclk=1;
  133.           
  134.           sclk=0;
  135.   }
  136.        
  137.         for(i=0;i<8;i++)                //循環八次
  138.   {
  139.     dat5=dat5>>1;                //數據左移
  140.           sdin=CY;
  141.           sclk=1;
  142.           
  143.           sclk=0;
  144.   }
  145.   for(i=0;i<8;i++)          //循環八次
  146.   {
  147.       dat6=dat6>>1;          //數據左移
  148.           sdin=CY;
  149.           sclk=1;
  150.           
  151.           sclk=0;
  152.   }
  153.         for(i=0;i<8;i++)          //循環八次
  154.   {
  155.       dat7=dat7>>1;          //數據左移
  156.           sdin=CY;
  157.           sclk=1;
  158.           
  159.           sclk=0;
  160.   }
  161.         for(i=0;i<8;i++)          //循環八次
  162.   {
  163.       dat8=dat8>>1;          //數據左移
  164.           sdin=CY;
  165.           sclk=1;
  166.           
  167.           sclk=0;
  168.   }
  169.        
  170. for(i=0;i<8;i++)                //循環八次
  171.   {
  172.     dat9=dat9>>1;                //數據左移
  173.           sdin=CY;
  174.           sclk=1;
  175.           
  176.           sclk=0;
  177.   }
  178.   for(i=0;i<8;i++)          //循環八次
  179.   {
  180.       dat10=dat10>>1;          //數據左移
  181.           sdin=CY;
  182.           sclk=1;
  183.           
  184.           sclk=0;
  185.   }
  186.         for(i=0;i<8;i++)          //循環八次
  187.   {
  188.       dat11=dat11>>1;          //數據左移
  189.           sdin=CY;
  190.           sclk=1;
  191.           
  192.           sclk=0;
  193.   }
  194.         for(i=0;i<8;i++)          //循環八次
  195.   {
  196.       dat12=dat12>>1;          //數據左移
  197.           sdin=CY;
  198.           sclk=1;
  199.           
  200.           sclk=0;
  201.   }
  202.        
  203.         for(i=0;i<8;i++)                //循環八次
  204.   {
  205.     dat13=dat13>>1;                //數據左移
  206.           sdin=CY;
  207.           sclk=1;
  208.           
  209.           sclk=0;
  210.   }
  211.   for(i=0;i<8;i++)          //循環八次
  212.   {
  213.       dat14=dat14>>1;          //數據左移
  214.           sdin=CY;
  215.           sclk=1;
  216.           
  217.           sclk=0;
  218.   }
  219.         for(i=0;i<8;i++)          //循環八次
  220.   {
  221.       dat15=dat15>>1;          //數據左移
  222.           sdin=CY;
  223.           sclk=1;
  224.           
  225.           sclk=0;
  226.   }
  227.         for(i=0;i<8;i++)          //循環八次
  228.   {
  229.       dat16=dat16>>1;          //數據左移
  230.           sdin=CY;
  231.           sclk=1;
  232.           
  233.           sclk=0;
  234.   }        
  235.        
  236.        
  237.        
  238.        
  239.        
  240.        
  241.   rclk=0;                        //輸出顯示
  242.   rclk=1;
  243.   rclk=0;
  244. }


  245. void xianshi()                        //顯示
  246. {
  247.    char aa;
  248.              
  249.               P2=P2+1;   //列掃描
  250.               writedata(tab[net+aa],tab[net+aa+1],tab[net+aa+32],tab[net+aa+33],tab[net+aa+64],tab[net+aa+65],tab[net+aa+96],tab[net+aa+97],tab[net+aa+128],tab[net+aa+129],tab[net+aa+160],tab[net+aa+161],tab[net+aa+192],tab[net+aa+193],tab[net+aa+224],tab[net+aa+225]);         //顯示數據
  251.                   delay(1);                                                                //延時
  252.                   writedata(0,0,0,0);                                           //清屏
  253.                   aa+=2;                                                           //數據加 實現掃描
  254.                   if(aa>30) aa=0;                                              //循環16次 清零
  255.           //}
  256.    
  257. }

  258. void main()         //主函數
  259. {
  260.    sclk=0;
  261.    rclk=1;
  262.    ET0=1;         //使能定時器0
  263.    EA=1;         //開啟總中斷
  264.    TR0=1;        //開始計數
  265.    while(1)         //無限循環
  266.    {
  267.            xianshi();  //顯示
  268.            if(s1==0)   //檢測按鍵
  269. ……………………

  270. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
51單片機16X128點陣顯示.rar (204.22 KB, 下載次數: 62)


評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:737067 發表于 2020-4-25 17:01 | 只看該作者
要是加字庫如何編寫
回復

使用道具 舉報

板凳
ID:520507 發表于 2020-4-26 21:49 | 只看該作者
abcd-a 發表于 2020-4-25 17:01
要是加字庫如何編寫

用取模軟件把字庫的代碼取出來存放在一個矩陣數組里,調用就可以
回復

使用道具 舉報

地板
ID:57831 發表于 2020-5-31 23:27 | 只看該作者
void writedata(uchar dat1,uchar dat2,uchar dat3,uchar dat4,uchar dat5,uchar dat6,uchar dat7,uchar dat8,uchar dat9,uchar dat10,uchar dat11,uchar dat12,uchar dat13,uchar dat14,uchar dat15,uchar dat16)  
這個函數優化優化吧
回復

使用道具 舉報

5#
ID:767117 發表于 2020-6-4 11:25 來自手機 | 只看該作者
longshugao123 發表于 2020-4-26 21:49
用取模軟件把字庫的代碼取出來存放在一個矩陣數組里,調用就可以

可否分享下取模軟件,自己的軟件取模出來不能正常顯示
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲欧美精品在线观看 | 国产精品成人一区二区三区 | 国产精品精品3d动漫 | 久久久网 | av中文在线观看 | 日本一区二区高清不卡 | 在线一区二区观看 | 欧美v免费 | 日韩欧美成人精品 | 精品中文在线 | 伊人激情综合网 | 亚洲第一av | 中文字幕动漫成人 | www.国产日本 | 亚洲一区中文字幕 | 中文字幕亚洲精品 | 国产精品久久久久无码av | 中国av在线免费观看 | 伊人性伊人情综合网 | 国产91色在线 | 亚洲 | 国产亚洲精品91 | 黄色亚洲网站 | 美国av毛片| 久久久久久艹 | 成人精品一区二区三区中文字幕 | 日本久久网站 | 羞羞视频在线观看网站 | 欧美日高清视频 | 亚洲一区二区久久久 | 毛片一级片 | 国产激情视频在线观看 | 成年人免费看的视频 | 日韩在线国产精品 | 亚洲中午字幕 | 国产精品久久久久久久久久久免费看 | 国产成人精品久久二区二区91 | 综合久久av | 国产精品毛片无码 | 久久久蜜臀国产一区二区 | 免费国产视频在线观看 | 亚洲欧美激情精品一区二区 |