找回密码
 立即注册

QQ登录

只需一步,快速开始

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

LCD1602液晶屏显示I LOVE YOU

[复制链接]
跳转到指定楼层
楼主
ID:102668 发表于 2016-1-16 05:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  1. #include <reg52.H>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. uchar string1[]={"I LOVE YOU"};
  5. uchar string2[]={"FOR EVER! "};
  6. /****delay1ms***/
  7. /*函数功能:延时1ms
  8. 参数:count
  9. 返回类型:无
  10. */
  11. void delay1ms(unsigned int count)
  12. {
  13. unsigned int i,j;
  14. for(i=0;i<count;i++)
  15. for(j=0;j<120;j++);
  16. }
  17. /***lcd_busy***/
  18. /*函数功能:判断p0.7口是否为1,为1则为忙
  19. 参数:无
  20. 返回类型:p0.7的值
  21. ***/
  22. sbit rs = P2^7;
  23. sbit rw = P2^6;
  24. sbit en = P2^5;
  25. uchar lcd_busy(void)
  26. {uchar busy;
  27. rs=0;
  28. rw=1;
  29. en=1;
  30. delay1ms(1);
  31. busy=P0&0x80;
  32. delay1ms(1);
  33. en=0;
  34. return (busy);
  35. }
  36. /**lcd_write***/
  37. /*函数功能:向LCD中写数据和命令
  38. 参数:s=0 时向lcd写命令
  39.      s=1 时向lcd写数据
  40.      date 为要向lcd写入的数据
  41. 返回类型:无
  42. ***/
  43. #define cmd 0
  44. #define dat 1
  45. void lcd_write(uchar s,uchar date)
  46. {while (lcd_busy());
  47. rs=s;
  48. rw=0;
  49. en=1;
  50. delay1ms(1);
  51. P0=date;
  52. delay1ms(1);
  53. en=0;
  54. }
  55. /*****lcd_init****/
  56. /*函数功能:将lcd进行初始化处理
  57. 参数:无
  58. 返回类型:无
  59. ****/
  60. void lcd_init(void)
  61. {lcd_write(cmd,0x38);   //设置16X2显示,5X7点阵,8位数据接口
  62. lcd_write(cmd,0x0c); //开显示,不显示光标,无光标闪烁
  63. lcd_write(cmd,0x06); //AC累加,屏幕不移动
  64. lcd_write(cmd,0x01); //清屏
  65. }
  66. /***lcd_XY****/
  67. /***函数功能:实现位置定位
  68. 参数:X Y的值
  69. 返回类型:无
  70. ***/
  71. void lcd_xy(uchar x,uchar y)
  72. {
  73. if(y==0)   //表示在第一行显示
  74.    lcd_write(cmd,0x80|x);
  75. if(y==1) //表示在第二行显示
  76.    lcd_write(cmd,0x80|0x40|x);
  77. }
  78. /**lcd_print***/
  79. /*****函数功能:显示LCD数据
  80. 参数:*string
  81. 返回类型:无
  82. ***/
  83. void lcd_print(uchar *string)   //string 表示要显示的数据
  84. {
  85. while(*string!='\0')
  86.    {lcd_write(dat,*string);
  87.     string++;
  88. }
  89. }
  90. /***lcd_display()***/
  91. /*函数功能:显示
  92. 参数:无
  93. 返回类型:无
  94. */
  95. void lcd_display()
  96. {lcd_xy(3,0);
  97. lcd_print(string1);
  98. lcd_xy(4,1);
  99. lcd_print(string2);
  100. }
  101. /****主函数****/
  102. void main()
  103. {
  104. while(lcd_busy());
  105. lcd_init();
  106. while(1)
  107. {
  108.     lcd_display();
  109. }
  110. }
复制代码


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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