【Proteus仿真】数字温度计,利用 Mega16 控制 DS18B20 ,若温度达到设定阈值,即可报警提醒(用串口控制停止报警、用键盘输入改变报警阈值)

(代码在文末)

工程文件和代码下载链接如下(求求下载前点个赞支持一下吧QAQ,博主自己做出来这个也hin累的)

链接: https://pan.baidu.com/s/1-aRZjyRZodzLcw83yx64kA  密码: og0w

一、实验目的 

设计实现一个简易数字温度计,利用 Mega16 控制 DS18B20 获取室内环境温度,并显示。 

若温度达到设定阈值,即可报警提醒。 

二、实验项目与具体要求 

(1) 实验项目:简易数字温度计。 

(2) 具体要求: 

1.液晶屏(

LCD1602/ LCD12864)或数码管显示当前的温度; 

2.利用按键设置温度上限; 

3.当温度超过上限时,进行报警。 

4.通过 PC 机“串口助手软件”向单片机发送命令字符串,控制报警蜂鸣器的关闭。 

三、实验方案设计 

1. 实验的方案的论述和分析 

①在 proteus 中搭建电路图。 

选择 mega16 单片机,液晶屏显示器,PC 机,RN1 排阻,温度传感器,蜂鸣器,三极管,电 

阻若干,按键若干,并连接硬件图。其中 PC 机的 RXD 和 TXD 接口分别接在单片机的 PD 

接口;单片机的 PA 口为输出端口直接与显示器相连,PC 口设置为输入端口与按键区相连; 

三极管基极通过电阻连接单片机 PD 口,发射极接地,集电极连接蜂鸣器,以放大电流,达 

到报警效果。 

②在 ICCV7 中建立新程序、文件,编写程序。首先对在代码中经常需要调用的命令进行简化, 

将命令语句定义为简单的语句。然后对通信端口和部分功能进行初始化,以便后续功能使用。 

然后分别对 DS18B20、LCD1602 等功能元件编写自定义函数指令,方便后续调用的逻辑清晰 

和正确性。最后将其总结在 main 函数中,使用 while 语句进行语句的循环执行。

2.硬件电路原理图(proteus 仿真图)

 

3.软件流程图、重要数据结构、重要控制参数设计等 

①软件流程图:

完整代码如下 

#include<iom16v.h>
#include<math.h>
#define uchar unsigned char
#define uint unsigned int
#define rs_h (PORTB|=0x01)
#define rs_l (PORTB&=0xfe)
#define rs_o (DDRB|=0x01)
#define rw_h (PORTB|=0x02)
#define rw_l (PORTB&=0xfd)
#define rw_o (DDRB|=0x02)
#define en_h (PORTB|=0x04
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bill-Besti

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值