找回密码
 立即注册

QQ登录

只需一步,快速开始

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

LCD2004 1602液晶显示汉字和自定义字符教程+仿真+keil程序

  [复制链接]
跳转到指定楼层
楼主
LCD1602显示汉字、LCD1602显示自定义字符,详细的word格式的的教程,从取模开始每一步的操作都很详细(word文档和从附件下载)
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)








单片机源程序如下:
  1. #include<reg51.h>
  2. #include<intrins.h>                        //        _nop_();
  3. #include"lcd.h"

  4. /////////////////////////////////////////////////////////////////////////////////
  5. //  data      内部RAM,低128字节(0x00-0x7f)                                                                   //
  6. //  idata          内部RAM,高128字节(0x00-0xff,指针方式,其中0x00-0x7f与data一样) //
  7. //  pdata          外部RAM的前256字节(速度与idata一样)                                                           //
  8. //  xdata          外部RAM的全部                                                                                                           //
  9. /////////////////////////////////////////////////////////////////////////////////

  10. uchar Set[12] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

  11. uchar  sheng[]={0x04,0x14,0x1f,0x14,0x0e,0x04,0x1f,0x00};  //“生”字字模
  12. uchar   kuai[]={0x0a,0x0a,0x1f,0x1b,0x1f,0x0a,0x0d,0x00};  //“快”字字模
  13. uchar     le[]={0x1e,0x10,0x14,0x1f,0x04,0x15,0x15,0x00};  //“乐”字字模

  14. uchar yi[]={0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00};      //一,代码 0x00
  15. uchar er[]={0x00,0x00,0x00,0x0e,0x00,0xff,0x00,0x00};      //二,代码 0x01
  16. uchar san[]={0x00,0x00,0xff,0x00,0x0e,0x00,0xff,0x00};     //三,代码 0x02
  17. uchar si[]={0x00,0x00,0xff,0xf5,0xfb,0xf1,0xff,0x00};      //四,代码 0x03
  18. uchar wu[]={0x00,0xfe,0x08,0xfe,0x0a,0x0a,0xff,0x00};      //五,代码 0x04

  19. uchar     ri[]={0x1f,0x11,0x11,0x1f,0x11,0x11,0x1f,0x00};  //“日”字字模        
  20. uchar nian[]={0x08,0x0F,0x12,0x0F,0x0A,0x1F,0x02,0x02};    //年,代码 0x06
  21. uchar yue[]={0x0F,0x09,0x0F,0x09,0x0F,0x09,0x09,0x12};     //月,代码 0x07        
  22. /*
  23. uchar idata sheng[]={0x04,0x14,0x1f,0x14,0x0e,0x04,0x1f,0x00};  //“生”字字模
  24. uchar idata    ri[]={0x1f,0x11,0x11,0x1f,0x11,0x11,0x1f,0x00};  //“日”字字模
  25. uchar idata  kuai[]={0x0a,0x0a,0x1f,0x1b,0x1f,0x0a,0x0d,0x00};  //“快”字字模
  26. uchar idata    le[]={0x1e,0x10,0x14,0x1f,0x04,0x15,0x15,0x00};  //“乐”字字模

  27. uchar VOL1[]={0x10,0x18,0x17,0x11,0x11,0x17,0x18,0x10};          //  [>
  28. uchar VOL2[]={0x01,0x03,0x1D,0x11,0x11,0x1D,0x03,0x01};          //  <]
  29. uchar Temp[]={0x10,0x06,0x09,0x08,0x08,0x08,0x09,0x06};          //  'C
  30. uchar gang[]={0x00,0x15,0x15,0x15,0x15,0x15,0x15,0x00};          //  |||

  31. uchar pdata ni1[]={ 0x01,0x02,0x06,0x02,0x02,0x02,0x02,0x00};          //你字左边
  32. uchar pdata ni2[]={ 0x08,0x0F,0x15,0x04,0x15,0x15,0x04,0x0C};          //你字右边
  33. uchar pdata hao1[]={ 0x00,0x04,0x1F,0x0A,0x04,0x0A,0x00,0x00};    //好字左边
  34. uchar pdata hao2[]={ 0x1E,0x02,0x04,0x1F,0x04,0x04,0x0C,0x00};    //好字右边



  35. uchar pdata yi[]={0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00};      //一,代码 0x00
  36. uchar pdata er[]={0x00,0x00,0x00,0x0e,0x00,0xff,0x00,0x00};      //二,代码 0x01
  37. uchar pdata san[]={0x00,0x00,0xff,0x00,0x0e,0x00,0xff,0x00};     //三,代码 0x02
  38. uchar pdata si[]={0x00,0x00,0xff,0xf5,0xfb,0xf1,0xff,0x00};      //四,代码 0x03
  39. uchar pdata wu[]={0x00,0xfe,0x08,0xfe,0x0a,0x0a,0xff,0x00};      //五,代码 0x04
  40. uchar pdata liu[]={0x00,0x04,0x00,0xff,0x00,0x0a,0x11,0x00};     //六,代码 0x05

  41.         
  42. uchar pdata nian[]={0x08,0x0F,0x12,0x0F,0x0A,0x1F,0x02,0x02};    //年,代码 0x06
  43. uchar pdata yue[]={0x0F,0x09,0x0F,0x09,0x0F,0x09,0x09,0x12};     //月,代码 0x07        
  44. */        
  45. //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//
  46. //                      最多只能显示其中八个,分别对应:
  47. //代码:          0x00         0x01         0x02         0x03  
  48. //地址:   0x40~0x47    0x48~0x4f    0x50~0x57    0x58~0x5f  
  49. //
  50. //代码:          0x04         0x05         0x06         0x07
  51. //地址:   0x60~0x67    0x68~0x6f         0x70~0x77    0x78~0x7f
  52. //
  53. //             CGRAM首地址为0x40,从0x80开始的地址用于设置数据地址指针
  54. //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!//        
  55.         
  56.         
  57.         

  58. void IntConfiguration();

  59. uchar SetState=0,SetPlace=10;
  60. uchar SetState2=0,SetPlace2=10;

  61. void Delay10ms(void);   //误差 0us
  62. void Delayms(unsigned char c);
  63. void Delay(uint y);


  64. /*******************************************************************************
  65. * 函数名         : main
  66. * 函数功能                   : 主函数
  67. * 输入           : 无
  68. * 输出                  : 无
  69. *******************************************************************************/
  70. void main()
  71. {
  72.         uint i;
  73.         uint count=0;

  74.         LcdInit();
  75.         
  76.                 for(i=0;i<8;i++)                                        //1  显示’一‘
  77.                 {
  78.                         LcdWriteCom(0x40+i);
  79.                         LcdWriteData(yi[i]);
  80.                         //Delay(100);
  81.                 }
  82.                 LcdWriteCom(0x80);
  83.                 LcdWriteData(0x00);

  84.                 for(i=0;i<8;i++)                                        //2  显示‘二’
  85.                 {
  86.                         LcdWriteCom(0x48+i);
  87.                         LcdWriteData(er[i]);
  88.                         //Delay(100);
  89.                 }
  90.                 LcdWriteCom(0x80+1);
  91.                 LcdWriteData(0x01);


  92.                 for(i=0;i<8;i++)                                        //3  显示‘三’
  93.                 {
  94.                         LcdWriteCom(0x50+i);
  95.                         LcdWriteData(san[i]);
  96.                         //Delay(100);
  97.                 }
  98.                 LcdWriteCom(0x80+2);
  99.                 LcdWriteData(0x02);

  100.                 for(i=0;i<8;i++)                                        //4  显示‘四’
  101.                 {
  102.                         LcdWriteCom(0x58+i);
  103.                         LcdWriteData(si[i]);
  104.                         //Delay(100);
  105.                 }
  106.                 LcdWriteCom(0x80+3);
  107.                 LcdWriteData(0x03);        



  108.                 for(i=0;i<8;i++)                                        //5  显示’五‘
  109.                 {
  110.                         LcdWriteCom(0x60+i);
  111.                         LcdWriteData(wu[i]);
  112.                         //Delay(100);
  113.                 }
  114.                 LcdWriteCom(0x80+4);
  115.                 LcdWriteData(0x04);

  116.                 for(i=0;i<8;i++)                                        //6  显示‘日’
  117.                 {
  118.                         LcdWriteCom(0x68+i);
  119.                         LcdWriteData(ri[i]);
  120.                         //Delay(100);
  121.                 }
  122.                 LcdWriteCom(0x80+5);
  123.                 LcdWriteData(0x05);


  124.                 for(i=0;i<8;i++)                                        //7  显示‘年’
  125.                 {
  126.                         LcdWriteCom(0x70+i);
  127.                         LcdWriteData(nian[i]);
  128.                         //Delay(100);
  129.                 }
  130.                 LcdWriteCom(0x80+6);
  131.                 LcdWriteData(0x06);

  132.                 for(i=0;i<8;i++)                                        //8  显示‘月’
  133.                 {
  134. ……………………

  135. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
LCD1602自定义显示.zip (975.29 KB, 下载次数: 346)


评分

参与人数 2黑币 +80 收起 理由
jz573079513 + 30 回帖助人的奖励!
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:104838 发表于 2017-8-19 21:34 | 只看该作者
好东西,51有你更精彩
回复

使用道具 举报

板凳
ID:183659 发表于 2017-8-20 23:36 | 只看该作者
谢谢大佬分享
回复

使用道具 举报

地板
ID:44037 发表于 2017-8-21 07:07 | 只看该作者
谢谢分享   非常好的学习参考   谢谢
回复

使用道具 举报

5#
ID:73182 发表于 2018-6-30 16:24 | 只看该作者
汉字取模,什么取得漂亮还真得好好研究下,感谢分享
回复

使用道具 举报

6#
ID:52915 发表于 2018-12-3 14:03 | 只看该作者
很详细,非常好!正在学习LCD1602显示汉字,很有帮助。谢谢LZ!
回复

使用道具 举报

7#
ID:438302 发表于 2018-12-3 16:40 | 只看该作者
感谢分享,买了佛人
回复

使用道具 举报

8#
ID:437741 发表于 2018-12-3 18:36 | 只看该作者
学习啊
回复

使用道具 举报

9#
ID:447263 发表于 2018-12-27 16:36 | 只看该作者
感谢啊!
回复

使用道具 举报

10#
ID:357520 发表于 2019-1-1 16:47 | 只看该作者
学习了
回复

使用道具 举报

11#
ID:383374 发表于 2019-1-22 01:24 来自手机 | 只看该作者
有空学学
回复

使用道具 举报

12#
ID:528378 发表于 2019-5-6 11:40 | 只看该作者
谢谢分享啊
回复

使用道具 举报

13#
ID:512926 发表于 2019-8-15 11:04 | 只看该作者
谢谢分享
回复

使用道具 举报

14#
ID:646343 发表于 2019-11-24 11:48 | 只看该作者
感谢楼主的分享。
回复

使用道具 举报

15#
ID:767832 发表于 2020-6-2 20:26 | 只看该作者
太厉害了
回复

使用道具 举报

16#
ID:795761 发表于 2020-7-2 15:42 | 只看该作者
很详细,非常好!正在学习LCD1602显示汉字
回复

使用道具 举报

17#
ID:652804 发表于 2021-3-1 08:22 | 只看该作者
谢谢分享   非常好的学习参考   谢谢
回复

使用道具 举报

18#
ID:105115 发表于 2023-3-1 16:57 | 只看该作者
这种屏幕取字模还真的不好取
回复

使用道具 举报

19#
ID:824664 发表于 2023-3-14 08:50 | 只看该作者
指引方向,开阔视野,谢谢分享。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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