- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
远程数字测温系统设计报告
远程数字测温系统
完成日期:2007-12-16
实验目的
1、了解电子系统的设计方法;
2、学习 DS18B20 数字温度传感器的测温原理;
3、掌握MCS-51单片机工作原理及其应用技术;
4、掌握串口通信协议及其编程方法;
5、学会用EDA软件(Protel99se或ORCAD)进行电路原理图和PCB图的绘制;
6、学习用PSPICE、 Multisim 8等仿真软件进行电路设计和仿真。
实验任务和要求
(一)实验任务
制作一个数字测温系统,包括主站和从站部分,主从站控制核心均采用AT89S51单片机。
基本部分:
从站单片机采用DS18B20数字温度传感器测量温度,数码管实时显示温度,测温范围:0°C~100°C,误差:±0.1°C。(25分)
主站能够接收从站传送过来的温度并同步显示。(15分)
主站能够设定一个阈值温度,当温度达到或超过此阈值温度时发出声光报警信号,并且能够手动解除报警。(10分)
发挥部分:
1. 从站可以检测多点温度,数码管顺序显示各点温度,显示时间≧3秒,并且能够设定报警温度范围,当某点温度低于温度下限时LED1亮,当某点温度高于温度上限时LED2亮。(10分)
2. 主从站之间采用485通信协议。(10分)
(二)实验要求
先在一周内交设计报告初稿(电路原理图,测温程序,串口通信程序),实验完成后交实验报告。分数:30分
审定之后开始制作电路进行调试。
基本部分:70分(包括布局:10分,提问:10分)
发挥部分:20分(附加)
元件名称 数量 元件名称 数量 单片机AT89S52 2 74LS04非门 2 数字温度传感器DS18B20 1 电阻5.1K/10k 2/10 数码管共阴4P-0.36’ 2 电容30pF/22uF 4/2 晶振24MHz 2 小按键 6 排阻470欧姆×8 2 单股导线 若干 实验仪器设备及元器件清单
方案设计过程及实验电路图:
实验主要分成两块:主片和从片。从片的主要功能是测温,显示,串口通讯;主片主要功能是通讯,设定门限温度,报警,显示温度。我们认为重点主要在各个功能的衔接上,对于单个功能,只要给出相应的工作程序即可。鉴于前面做过的单片机实验,显示依旧使用动态扫描,键盘由于只用了4个,所以动态扫描可以大大简化。门限温度报警比较简单,只要通过比较判断是否超过了门限而决定是否将相应的I/O口置高电平即可。
实验各部分流程图给定如下:
主片:*主程序(main):初始化——传输获取温度——显示温度——判断温度是否超过门限而报警。
*传输函数程序:等待发送联络信号——发送联络信号——接收数据。
*显示程序:轮流扫描位码——给出相应位码的段码。
*中断服务程序:判断是否有按键按下——给出相应的动作。
从片:*主程序:初始化——读出温度——显示温度——传输温度。
*传输函数程序:发送联络信号——等待发送联络信号——接收数据。
*显示程序:轮流扫描位码——给出相应位码的段码。
结合连接情况,最终得到如下电路图:
五、实验仿真:
本实验用proteus7 profesional进行仿真。其最终仿真图如下:
六、源程序:
主片:
#includereg51.h
#includeabsacc.h
#includeintrins.h
#includestring.h
sbit K1=P2^0; //温度上下限设置选择
sbit K2=P2^1; //温度加1
sbit K3=P2^2; //温度减1 //设置按键,用于设置上下限温度,手动解除报警
sbit K4=P2^3; //手动接触警报 //键盘按下有高电平
sbit ALERM=P2^7;
/*----------------------------全局变量--------------------------------*/
static unsigned char temp1,temp2; //温度值的整数部分和小数部分
static unsigned char high,low; //上下限温度
unsigned char code segtab[18] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x38,0x76}; //七段码段码表
// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,L,H
/*-----
文档评论(0)