找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机智能热水器程序 1602第二行不显示?

[复制链接]
跳转到指定楼层
楼主
ID:461751 发表于 2019-1-12 16:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
温度传感器控制LCD1602显示温度,第二行不显示,仿真时调节温度传感器,代码LCD上显示当前温度应该如何写,感谢各位大佬了
  1. //宏定义
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. //LCD管脚声明
  5. sbit LCDRS = P1^1;
  6. sbit LCDEN= P1^2;
  7. //初始画时显示的内容
  8. uchar code Init1[]="Tp:00.0 C Ti:000";
  9. uchar code Init2[]=" Up:00  Down:00 ";
  10. /**************************************************************************************************
  11. *******************************液晶的基本操作程序**************************************************
  12. **************************************************************************************************/
  13. //LCD延时
  14. void LCDdelay(uint z)
  15. {
  16.   uint x,y;
  17.   for(x=z;x>0;x--)
  18.     for(y=10;y>0;y--);
  19. }
  20. //写命令
  21. void write_com(uchar com)
  22. {
  23.   LCDRS=0;
  24.   P0=com;
  25.   LCDdelay(5);
  26.   LCDEN=1;
  27.   LCDdelay(5);
  28.   LCDEN=0;
  29. }
  30. //写数据
  31. void write_data(uchar date)
  32. {
  33.   LCDRS=1;
  34.   P0=date;
  35.   LCDdelay(5);
  36.   LCDEN=1;
  37.   LCDdelay(5);
  38.   LCDEN=0;
  39. }
  40. /**************************************************************************************************
  41. *****************************1602初始化程序********************************************************
  42. **************************************************************************************************/
  43. //1602初始化
  44. void Init1602()
  45. {
  46.   uchar i=0;
  47.   write_com(0x01);//清屏
  48.   write_com(0x38);//屏幕初始化
  49.   write_com(0x0c);//打开显示 无光标 无光标闪烁
  50.   write_com(0x06);//当读或写一个字符是指针后一一位
  51.   write_com(0x80);//设置位置
  52.   for(i=0;i<16;i++)
  53.   {
  54.   write_data(Init1[i]);
  55.   }
  56.   write_com(0x80+0x40);//设置位置
  57.   for(i=0;i<16;i++)
  58.   {
  59.   write_data(Init2[i]);
  60.   }
  61. }
  62. /**************************************************************************************************
  63. ******************************************显示时间温度数据程序*************************************
  64. **************************************************************************************************/
  65. void Display_1602(uint aa,uchar dss,uchar sxx,uchar xxx)
  66. {
  67. //温度显示
  68. write_com(0x80+3);
  69. write_data('0'+aa/100);
  70. write_data('0'+aa/10%10);
  71. write_data('.');
  72. write_data('0'+aa%10);
  73. write_data(0xdf);
  74.     //定时显示
  75. write_com(0x80+13);
  76. write_data('0'+dss/100);
  77. write_data('0'+dss/10%10);
  78. write_data('0'+dss%10);
  79.     //上限显示
  80. write_com(0x80+40+4);
  81. write_data('0'+sxx/10%10);
  82. write_data('0'+sxx%10);
  83.     //下限显示
  84. write_com(0x80+40+13);
  85. write_data('0'+xxx/10%10);
  86. write_data('0'+xxx%10);

  87. }
  88. /**************************************************************************************************
  89. *********************************************字符显示程序********************************************
  90. **************************************************************************************************/
  91. void Display_wd()
  92. {
  93. //温度显示
  94. write_com(0x80);
  95. write_data('S');
  96. write_data('e');
  97. write_data('t');
  98. write_data(' ');
  99. write_data('s');
  100. write_data('t');
  101. write_data('a');
  102. write_data('t');
  103. write_data('e');
  104. }
复制代码



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

使用道具 举报

沙发
ID:454000 发表于 2019-1-12 20:00 | 只看该作者
又不传图又不上完整代码,按理说
//定时显示
write_com(0x80+13);
write_data('0'+dss/100);
write_data('0'+dss/10%10);
write_data('0'+dss%10);
    //上限显示
write_com(0x80+40+4);
write_data('0'+sxx/10%10);
write_data('0'+sxx%10);
    //下限显示
write_com(0x80+40+13);
write_data('0'+xxx/10%10);
write_data('0'+xxx%10);
这样显示的!谁知道你后面怎么写的没有的。看个病连病人都不知道在哪儿,谁能知道他犯的什么病。

评分

参与人数 2黑币 +30 收起 理由
钻牛尖滴刘尖尖 + 15
sheng7533967 + 15

查看全部评分

回复

使用道具 举报

板凳
ID:453974 发表于 2019-1-12 21:16 | 只看该作者
程序启动的代码不对,我记得是加18
回复

使用道具 举报

地板
ID:213173 发表于 2019-1-13 17:54 | 只看该作者
1.初始化显示程序没有错,第二行不显示可能是由于不查忙,延时过短造成不稳定,延时改1ms就正常显示了。
2.把需要更新显示的数据分解后保存在缓存数组中,按LCD相应位置变换为字符更新即可。
回复

使用道具 举报

5#
ID:461751 发表于 2019-1-16 16:43 | 只看该作者
累不死的狗 发表于 2019-1-12 21:16
程序启动的代码不对,我记得是加18

是温度显示那个加18吗,现在温度显示了,到十五就自动回零了,是什么原因?
回复

使用道具 举报

6#
ID:461751 发表于 2019-1-16 16:45 | 只看该作者
wulin 发表于 2019-1-13 17:54
1.初始化显示程序没有错,第二行不显示可能是由于不查忙,延时过短造成不稳定,延时改1ms就正常显示了。
2 ...

温度循环显示是什么原因?
回复

使用道具 举报

7#
ID:469365 发表于 2019-1-16 20:06 | 只看该作者
第二行不显示可能是由于不查忙,延时过短造成不稳定.
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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