找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8560|回复: 8
打印 上一主题 下一主题
收起左侧

51单片机16*16点阵轮流显示汉字proteus仿真及程序

[复制链接]
跳转到指定楼层
楼主


51单片机做的16*16点阵显示汉字的所有资料下载:
点阵.rar (50.48 KB, 下载次数: 131)


下面是部分程序预览:
  1. #include <reg51.h>
  2. #include<intrins.h>
  3. /*  数据端接口定义 */
  4. sbit  sck = P2^0;        //输入时钟
  5. sbit  row_dat = P2^1;    //行数据时钟
  6. sbit  row_buf_sck = P2^2; //行锁存
  7. //sbit  row_mr = P2^4;    //移位寄存器清零端
  8. //sbit  row_oe = P2^5;  //输出使能
  9. /*  选通端接口定义 */
  10. sbit  col_dat = P2^6;     //列数据时钟
  11. sbit  col_buf_sck = P2^3; //列锁存

  12. unsigned int code sel[16] = {0xff7f,0x7fff,0xffbf,0xbfff,0xffdf,0xdfff,0xffef,0xefff,
  13.                              0xfff7,0xf7ff,0xfffb,0xfbff,0xfffd,0xfdff,0xfffe,0xfeff};

  14. unsigned char code hanzi[22][32] =
  15. {

  16. /* @1 河(16x16,V)@ [suki software]*/
  17. {0x08,0x20,  0x06,0x20,  0x40,0x7E,  0x31,0x80,
  18. 0x00,0x00,  0x20,0x00,  0x27,0xF0,  0x24,0x20,
  19. 0x24,0x20,  0x27,0xF0,  0x20,0x02,  0x20,0x01,
  20. 0x3F,0xFE,  0x20,0x00,  0x20,0x00,  0x00,0x00},
  21. /* @2 南(16x16,V)@ [suki software]*/
  22. {0x20,0x00,  0x27,0xFF,  0x24,0x00,  0x24,0x10,
  23. 0x26,0x90,  0x25,0x90,  0x24,0x90,  0xFC,0xFE,
  24. 0x24,0x90,  0x25,0x90,  0x26,0x90,  0x24,0x12,
  25. 0x24,0x01,  0x27,0xFE,  0x20,0x00,  0x00,0x00},
  26. /* @3 工(16x16,V)@ [suki software]*/
  27. {0x00,0x04,  0x20,0x04,  0x20,0x04,  0x20,0x04,
  28. 0x20,0x04,  0x20,0x04,  0x20,0x04,  0x3F,0xFC,
  29. 0x20,0x04,  0x20,0x04,  0x20,0x04,  0x20,0x04,
  30. 0x20,0x04,  0x20,0x04,  0x00,0x04,  0x00,0x00},
  31. /* @4 业(16x16,V)@ [suki software]*/
  32. {0x00,0x02,  0x08,0x02,  0x06,0x02,  0x01,0xC2,
  33. 0x00,0x02,  0xFF,0xFE,  0x00,0x02,  0x00,0x02,
  34. 0x00,0x02,  0xFF,0xFE,  0x00,0x42,  0x00,0x82,
  35. 0x03,0x02,  0x0C,0x02,  0x00,0x02,  0x00,0x00},
  36. /* @5 职(16x16,V)@ [suki software]*/
  37. {0x40,0x10,  0x40,0x18,  0x7F,0xF0,  0x49,0x10,
  38. 0x49,0x20,  0x7F,0xFF,  0x40,0x20,  0x40,0x01,
  39. 0x3F,0xC6,  0x20,0x98,  0x20,0x80,  0x20,0x80,
  40. 0x20,0x90,  0x3F,0xCC,  0x00,0x03,  0x00,0x00},
  41. /* @6 业(16x16,V)@ [suki software]*/
  42. {0x00,0x02,  0x08,0x02,  0x06,0x02,  0x01,0xC2,
  43. 0x00,0x02,  0xFF,0xFE,  0x00,0x02,  0x00,0x02,
  44. 0x00,0x02,  0xFF,0xFE,  0x00,0x42,  0x00,0x82,
  45. 0x03,0x02,  0x0C,0x02,  0x00,0x02,  0x00,0x00},
  46. /* @7 技(16x16,V)@ [suki software]*/
  47. {0x08,0x20,  0x08,0x22,  0x08,0x41,  0xFF,0xFE,
  48. 0x08,0x80,  0x09,0x01,  0x10,0x01,  0x11,0x02,
  49. 0x11,0xC2,  0x11,0x34,  0xFF,0x08,  0x11,0x14,
  50. 0x11,0x62,  0x11,0x81,  0x10,0x01,  0x00,0x00},
  51. /* @8 术(16x16,V)@ [suki software]*/
  52. {0x00,0x08,  0x08,0x10,  0x08,0x20,  0x08,0x40,
  53. 0x08,0x80,  0x0B,0x00,  0x0C,0x00,  0xFF,0xFF,
  54. 0x0C,0x00,  0x0B,0x00,  0x48,0x80,  0x38,0x40,
  55. 0x08,0x20,  0x08,0x10,  0x00,0x08,  0x00,0x00},
  56. /* @9 学(16x16,V)@ [suki software]*/
  57. {0x02,0x20,  0x0C,0x20,  0x88,0x20,  0x69,0x20,
  58. 0x09,0x20,  0x09,0x22,  0x89,0x21,  0x69,0x7E,
  59. 0x09,0x60,  0x09,0xA0,  0x19,0x20,  0x28,0x20,
  60. 0xC8,0x20,  0x0A,0x20,  0x0C,0x20,  0x00,0x00},
  61. /* @10 院(16x16,V)@ [suki software]*/
  62. {0x00,0x00,  0x7F,0xFF,  0x44,0x20,  0x5A,0x10,
  63. 0x61,0xE0,  0x08,0x01,  0x30,0x82,  0x24,0x8C,
  64. 0x24,0xF0,  0xA4,0x80,  0x64,0x80,  0x24,0xFC,
  65. 0x24,0x82,  0x28,0x82,  0x30,0x8E,  0x00,0x00},
  66. /* @11 电(16x16,V)@ [suki software]*/
  67. {0x00,0x00,  0x00,0x00,  0x1F,0xF8,  0x11,0x10,  
  68. 0x11,0x10,  0x11,0x10,  0x11,0x10,  0xFF,0xFE,  
  69. 0x11,0x11,  0x11,0x11,  0x11,0x11,  0x11,0x11,  
  70. 0x1F,0xF9,  0x00,0x01,  0x00,0x0F,  0x00,0x00},  
  71. /* @12 子(16x16,V)@ [suki software]*/
  72. {0x01,0x00,  0x41,0x00,  0x41,0x00,  0x41,0x00,  
  73. 0x41,0x00,  0x41,0x02,  0x41,0x01,  0x47,0xFE,  
  74. 0x45,0x00,  0x49,0x00,  0x51,0x00,  0x61,0x00,  
  75. 0x41,0x00,  0x01,0x00,  0x01,0x00,  0x00,0x00},  
  76. /* @13 工(16x16,V)@ [suki software]*/
  77. {0x00,0x04,  0x20,0x04,  0x20,0x04,  0x20,0x04,  
  78. 0x20,0x04,  0x20,0x04,  0x20,0x04,  0x3F,0xFC,  
  79. 0x20,0x04,  0x20,0x04,  0x20,0x04,  0x20,0x04,  
  80. 0x20,0x04,  0x20,0x04,  0x00,0x04,  0x00,0x00},  
  81. /* @14 程(16x16,V)@ [suki software]*/
  82. {0x24,0x10,  0x24,0x60,  0x25,0x80,  0x7F,0xFF,  
  83. 0xC4,0x80,  0x44,0x60,  0x00,0x02,  0x7C,0x92,  
  84. 0x44,0x92,  0x44,0x92,  0x44,0xFE,  0x44,0x92,  
  85. 0x44,0x92,  0x7C,0x92,  0x00,0x82,  0x00,0x00},  
  86. /* @15 系(16x16,V)@ [suki software]*/
  87. {0x00,0x00,  0x00,0x42,  0x44,0x44,  0x4C,0xC8,  
  88. 0x54,0xD0,  0x65,0x42,  0x45,0x41,  0x46,0x7E,  
  89. 0x84,0x40,  0x88,0x40,  0x90,0x50,  0x81,0x48,  
  90. 0x80,0xC4,  0x00,0x62,  0x00,0x00,  0x00,0x00},
  91. /* @16 计(16x16,V)@ [suki software]*/
  92. {0x02,0x00,  0x02,0x00,  0x42,0x00,  0x33,0xFE,  
  93. 0x00,0x04,  0x02,0x08,  0x02,0x00,  0x02,0x00,  
  94. 0x02,0x00,  0xFF,0xFF,  0x02,0x00,  0x02,0x00,  
  95. 0x02,0x00,  0x02,0x00,  0x02,0x00,  0x00,0x00},  
  96. /* @17 控(16x16,V)@ [suki software]*/
  97. {0x08,0x40,  0x08,0x42,  0x08,0x81,  0xFF,0xFE,  
  98. 0x09,0x00,  0x04,0x02,  0x19,0x02,  0x12,0x42,  
  99. 0x14,0x42,  0x90,0x42,  0x70,0x7E,  0x14,0x42,  
  100. 0x12,0x42,  0x15,0x42,  0x18,0x02,  0x00,0x00},
  101. /* @18 1(16x16,V)@ [suki software]*/
  102. 0x00,0x00,  0x00,0x00,  0x00,0x00,  0x00,0x00,  
  103. 0x00,0x00,  0x08,0x04,  0x08,0x04,  0x1F,0xFC,  
  104. 0x00,0x04,  0x00,0x04,  0x00,0x00,  0x00,0x00,  
  105. 0x00,0x00,  0x00,0x00,  0x00,0x00,  0x00,0x00,  
  106. /* @19 2(16x16,V)@ [suki software]*/
  107. 0x00,0x00,  0x00,0x00,  0x00,0x00,  0x00,0x00,  
  108. 0x00,0x00,  0x0E,0x0C,  0x10,0x14,  0x10,0x24,  
  109. 0x10,0x44,  0x11,0x84,  0x0E,0x0C,  0x00,0x00,  
  110. 0x00,0x00,  0x00,0x00,  0x00,0x00,  0x00,0x00,  
  111. /* @20 0(16x16,V)@ [suki software]*/
  112. 0x00,0x00,  0x00,0x00,  0x00,0x00,  0x00,0x00,  
  113. 0x00,0x00,  0x07,0xF0,  0x08,0x08,  0x10,0x04,  
  114. 0x10,0x04,  0x08,0x08,  0x07,0xF0,  0x00,0x00,  
  115. 0x00,0x00,  0x00,0x00,  0x00,0x00,  0x00,0x00,  
  116. /* @21 1(16x16,V)@ [suki software]*/
  117. 0x00,0x00,  0x00,0x00,  0x00,0x00,  0x00,0x00,  
  118. 0x00,0x00,  0x08,0x04,  0x08,0x04,  0x1F,0xFC,  
  119. 0x00,0x04,  0x00,0x04,  0x00,0x00,  0x00,0x00,  
  120. 0x00,0x00,  0x00,0x00,  0x00,0x00,  0x00,0x00,
  121. /* @22 班(16x16,V)@ [suki software]*/
  122. {0x21,0x08,  0x21,0x0C,  0x3F,0xF8,  0x21,0x10,  
  123. 0x21,0x11,  0x00,0x42,  0x1F,0x84,  0x00,0x18,  
  124. 0xFF,0xE0,  0x00,0x00,  0x21,0x04,  0x21,0x04,  
  125. 0x3F,0xFC,  0x21,0x04,  0x21,0x04,  0x00,0x00},
  126. };
  127. void send_data_row(unsigned int dat);  /*  发送行数据端数据函数  */


  128. void send_data_col(unsigned int dat);  /*  发送列选通端数据函数  */

  129. void display(unsigned char *p);

  130. void delay(unsigned int m);

  131. void main()
  132. {
  133.     unsigned char i,j;
  134. //  row_mr = 1;
  135. //  row_oe = 0;
  136.     while(1)
  137.     {

  138.         for(i=0;i<22;i++)            //八个代码
  139.         {
  140.             for(j=0;j<15;j++)      //循环显示汉字十遍
  141.             
  142.             display(hanzi[i]);     //显示一个汉字
  143.         }
  144.     }
  145. }

  146. void send_data_row(unsigned int dat)
  147. {
  148.     unsigned char i;
  149.    
  150.     for(i=0;i<16;i++)
  151.     {
  152.         sck = 0;
  153.         row_dat = dat&0x8000;       //temp<<=1;
  154.         dat = dat<<1;               //ds = CY;
  155.         sck = 1;
  156.     }
  157.     row_buf_sck = 0;
  158.     _nop_();
  159.     _nop_();
  160.     row_buf_sck = 1;
  161. }

  162. void send_data_col(unsigned int dat)
  163. {
  164.     unsigned char i;
  165.     for(i=0;i<16;i++)
  166.     {
  167.         sck = 0;
  168.         col_dat = dat&0x8000;
  169.         dat = dat<<1;
  170.         sck = 1;
  171.     }
  172.     col_buf_sck = 0;
  173.     _nop_();
  174.     _nop_();
  175.     col_buf_sck = 1;
  176. }

  177. void delay(unsigned int m)
  178. {
  179.     unsigned char i;
  180.     for(;m>0;m--)
  181.     {
  182.         for(i=0;i<124;i++)
  183.         {;}
  184.     }
  185. }

  186. void display(unsigned char *p)
  187. {
  188.     unsigned char i;
  189. //  unsigned int temp;
  190.     for(i=0;i<32;i++)
  191.     {
  192.         if(i<16)
  193.         {
  194.             send_data_row(0x0000);
  195.         //  temp = sel[i]|0xff00;
  196.             send_data_col(sel[i]);
  197.             send_data_row(*p);
  198.             p++;
  199.             delay(2);
  200.         }
  201.         else
  202.         {
  203.             send_data_row(0x0000);
  204.         //  temp = (sel[i]<<8)|0x00ff;
  205.             send_data_col(sel[i-16]);
  206.             send_data_row((*p)<<8);
  207.             p++;
  208.             delay(2);
  209.         }
  210.     }
  211. }
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:183691 发表于 2017-3-27 20:50 | 只看该作者
你好,我是新来刚刚学习单片机的小白,关于这个代码我有些不懂,可以请教一下你吗?
回复

使用道具 举报

板凳
ID:184098 发表于 2017-3-28 13:22 | 只看该作者
刚好来学习学习!
回复

使用道具 举报

地板
ID:125275 发表于 2017-3-29 10:50 | 只看该作者
一看作者的程序就是拷贝别人的 程序定义接口和原理图完全对不上 不知道审核时怎么通过的
回复

使用道具 举报

5#
ID:195061 发表于 2017-5-8 20:33 | 只看该作者
在吗?请问那个汉字是怎样取模的,我取到的不一样
回复

使用道具 举报

6#
ID:261218 发表于 2017-12-13 20:30 | 只看该作者
邦邦~ 发表于 2017-5-8 20:33
在吗?请问那个汉字是怎样取模的,我取到的不一样

有取模软件
回复

使用道具 举报

7#
ID:93224 发表于 2018-1-7 11:10 | 只看该作者
仿真完全可以运行
回复

使用道具 举报

8#
ID:265553 发表于 2018-1-14 08:08 来自手机 | 只看该作者
好资料,51黑有你更精彩
回复

使用道具 举报

9#
ID:350265 发表于 2018-6-12 14:36 | 只看该作者
可以发下取模软件吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表