找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机+DHT11仿真不成功,找不出来问题

查看数: 4561 | 评论数: 8 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-12-26 11:30

正文摘要:

本帖最后由 151huh 于 2019-12-26 11:41 编辑 使用的元件有stc89c52,npn三极管,四位一体共阴数码管,DHT11. 代码文件#include <reg52.h> #define duanxuan P0 #define weixuan P2 sbit Data = P1^0; ...

回复

ID:1042651 发表于 2022-8-22 17:15
延时函数的问题
ID:1042651 发表于 2022-8-22 17:15
void delay_ms(int shuzhi)//ms延时函数
void delay_us(int num)//us延时函数

可能是这两个延时函数的问题,导致不精准,优化下!
ID:312890 发表于 2019-12-30 13:23
P0口需要上拉电阻
ID:584814 发表于 2019-12-26 18:12
[/align][align=left]这些是什么鬼看得眼花
建议将
void main()//主函数
{
while(1)
{
  delay_ms(1500);  //DHT11上电后等待超过1s以越过不稳定状态
  DHT_receive();
}
}
调整成
void main()//主函数
{
delay_ms(1500);  //DHT11上电后等待超过1s以越过不稳定状态
while(1)
{
  DHT_receive();
}
}
试试。还有就是感觉在delay()里用while(1)也极罕见。
ID:202748 发表于 2019-12-26 15:13
你说是共阴数码管,但你这仿真图是共阳接法。
ID:532541 发表于 2019-12-26 12:24
DHT11、 18B20这类接口,出问题,有三个方面,第一时序,第二时间,第三口线的设置,第一个一般不出问,因为大家用的程序都是参考了调试通过的了例程,第二个是出问题最多的是时间,因为延时都是用程序循环实现的,而我们用的单片机,时钟频率分频系数和例程可能差别很大,比如用的例程是标准的51(89CAT52),而实际用的是STC12C5A60S2单片机,那延时的时间就差很多了,只要报延时的时间弄对了就ok了,低三就是口线的设置,如方向驱动能力等。
ID:396245 发表于 2019-12-26 12:05
P0口需要外部上拉。
ID:130230 发表于 2019-12-26 11:55
不要再while(1)里面延时,你的数码管刷不起来的。建议如果确实需要延时用定时器加标志做成时间片。

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

Powered by 单片机教程网

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