找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9393|回复: 20
收起左侧

Proteus+stm32f103+DHT11+LCD1602显示程序Proteus仿真

  [复制链接]
ID:736707 发表于 2020-4-29 16:56 | 显示全部楼层 |阅读模式
本人新学proteus,经过网上搜索,找到了一些代码。然后经过修改。变成了现在的文件。可以实现在LCD1602上显示温湿度。但是通过串口显示的数据确是乱码。之后附上文件代码,希望各位大佬能够给我一些建议。万分感谢。因为代码一样是从网上下载的。如果有哪些代码有异议,请联系我,谢谢。ps:proteus上面的dht11,最好使用我文件里面的那个。我之前用的是proteus8.8里面的dht11,一直不显示数据。不知道原因。

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei.png

单片机源程序如下:
  1. #include "stm32f10x.h"
  2. #include "bsp-lcd1602.h"
  3. #include "delay.h"
  4. #include "led.h"
  5. #include "sys.h"
  6. #include "DTH11.h"
  7. #include "stdlib.h"
  8. #include "stdio.h"
  9. #include "usart.h"
  10. int main(void)
  11. {
  12.          u8 temperature,humidity;
  13.         unsigned char display[10] ;
  14.                 RCC_ClocksTypeDef     RCC_Clocks;
  15.         u8 a=7,b=8;
  16.         RCC_Configuration();
  17.         
  18.   RCC_GetClocksFreq(&RCC_Clocks);

  19.         USART1_Init(9600);
  20.   LCD1602_Init();
  21.         delay_init();
  22.         LED_Init();
  23.         DHT11_Init();
  24.         LCD1602_ShowStr(2,0,"stm32f103R6",11);
  25.         delay_s(10);
  26.         LCD1602_Clear();
  27.         while(1)
  28.         {
  29.                 DHT11_Read_Data(&temperature,&humidity) ;
  30.                
  31.                 sprintf((char *)display,"temp:%d ",temperature) ;        
  32.                                  LCD1602_ShowStr(0,0,display,11) ;
  33.                
  34.                 sprintf((char *)display,"humi:%d ",humidity) ;        
  35.                                  LCD1602_ShowStr(1,1,display,11) ;
  36.                
  37.                 printf("temp:%c \r\n",temperature);
  38.                 printf("humidity:%c \r\n",humidity);
  39.                 LED0 = 0;
  40.                 LED1 = 1;
  41.                 delay_s(2);
  42.                 LED0 = 1;
  43.                 LED1 = 0;
  44.                 delay_s(2);
  45.                 USART1_printf("STM32 %d %d ",a,b);
  46.         }
  47.         
  48. }
复制代码
51hei.png
所有资料51hei提供下载:
LCD+LED+USART.7z (221.02 KB, 下载次数: 699)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:710460 发表于 2020-5-25 15:29 | 显示全部楼层

错误纠正

错误纠正


楼主的程序,有些问题。
        sprintf((char *)display,"T:%d ",temperature) ;          这种函数还是不要在  protues这种虚拟方正中出现;
按照图片上的更改,老老实实的单个字符显示,
温湿度显示改变困难的bug ,即可解决
回复

使用道具 举报

ID:711436 发表于 2020-4-30 19:24 | 显示全部楼层
老哥,无法显示温湿度啊,显示都是0
回复

使用道具 举报

ID:736707 发表于 2020-5-1 15:43 | 显示全部楼层
nishis 发表于 2020-4-30 19:24
老哥,无法显示温湿度啊,显示都是0

你看一下你的芯片晶振选的是多少,当时8M的时候可以显示正常温湿度,如果是其他的就显示的是0
回复

使用道具 举报

ID:736707 发表于 2020-5-1 15:47 | 显示全部楼层
之前忘记说了,当芯片晶振是8M的时候,才可以显示正确的温湿度数据,但串口输出的数据不对;40M的时候,串口可以显示正常的数据,但dht11读取数据有问题。原因别问我,我自己也是小白。如果有大佬能够解决这个问题,望不吝留言。谢谢
回复

使用道具 举报

ID:711436 发表于 2020-5-2 08:03 | 显示全部楼层
_q_zj 发表于 2020-5-1 15:43
你看一下你的芯片晶振选的是多少,当时8M的时候可以显示正常温湿度,如果是其他的就显示的是0

就是8M,方便留个联系方式请教一下吗‘
回复

使用道具 举报

ID:70490 发表于 2020-5-3 17:38 | 显示全部楼层
这么好的东西一定要下载保存,同时谢谢作者。
回复

使用道具 举报

ID:737395 发表于 2020-5-7 23:25 | 显示全部楼层
加大了时钟频率   HT11  延时delay要加大,我调试lcd1602的时候就遇见了类似问题,8M能正常显示,频率加大就不行了,后来把通讯时序delay加大就可以了,你可以试试!
回复

使用道具 举报

ID:545497 发表于 2020-5-8 18:50 | 显示全部楼层
你好  为啥你的程序和仿真图我都不能打开
回复

使用道具 举报

ID:736707 发表于 2020-5-9 14:06 | 显示全部楼层
sygg 发表于 2020-5-8 18:50
你好  为啥你的程序和仿真图我都不能打开

你好,这个问题我也不知道。我在我的电脑上是可以的。我用的软件是keil5还有proteus8.8。
回复

使用道具 举报

ID:368810 发表于 2020-5-14 10:29 | 显示全部楼层
楼主是说lcd显示正确但是传感器读取的有问题吗
回复

使用道具 举报

ID:406255 发表于 2020-5-19 17:15 | 显示全部楼层
找了好久的资料,希望可以下载,
回复

使用道具 举报

ID:729149 发表于 2020-5-19 21:01 | 显示全部楼层
十分感谢楼主分享,加了一点判断循环,变成了温度检测
回复

使用道具 举报

ID:720649 发表于 2020-5-19 23:01 | 显示全部楼层
楼主你好,DHT11可以改成DHT22吗
回复

使用道具 举报

ID:720649 发表于 2020-5-19 23:09 | 显示全部楼层
我用的Proteus8.9为啥打不开呀
回复

使用道具 举报

ID:720649 发表于 2020-5-19 23:29 | 显示全部楼层
weiai123 发表于 2020-5-19 21:01
十分感谢楼主分享,加了一点判断循环,变成了温度检测

我的为啥打不开呢?我用的Proteus8.9
回复

使用道具 举报

ID:720649 发表于 2020-5-21 16:08 | 显示全部楼层
sygg 发表于 2020-5-8 18:50
你好  为啥你的程序和仿真图我都不能打开

我也打不开,不知道咋回事,我用的Proteus8.9好像不行
回复

使用道具 举报

ID:130743 发表于 2020-5-23 22:27 | 显示全部楼层
我设置了8M,但是温湿度还是现实0,不知道什么问题 啊
回复

使用道具 举报

ID:731917 发表于 2020-6-16 14:52 | 显示全部楼层
各位大佬们     LED等和按键是干嘛的
回复

使用道具 举报

ID:790478 发表于 2020-6-26 20:22 | 显示全部楼层
我也在综合学习,感谢楼主
回复

使用道具 举报

ID:903904 发表于 2021-5-13 17:06 | 显示全部楼层
为什么仿真发打不开呢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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