版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机应用(yngyng)系统设计课 题: 智能(zh nn)多点温度计的设计(shj) 姓 名: 姜远宁 班 级: BQ1204 学 号: 121008140413 指导老师: 田玉冬 日 期: 绪论(xln)传统的方法是用温度(wnd)计等测试器材,通过人工进行检测,对不符合温度要求的库房进行通风和降温等工作。这种人工测试方法费时费力、效率低,且测试的温度误差大,随机性大。防潮、防霉、防腐、防爆是仓库日常工作的重要内容,是衡量仓库管理质量的重要指标。首要问题是加强仓库内温度与湿度的监测工作。因此我们需要一种(y zhn)造价低廉、使用方便且测量准确的温湿度测量仪。方案传感器是实现测量与控制
2、的首要环节,是测控系统的关键部件,如果没有传感器对原始被测信号进行准确可靠的捕捉和转换,一切准确的测量和控制都将无法实现。工业生产过程主要依靠各种传感器来检测和控制生产过程中的各种参量,使设备和系统正常运行在最佳状态,从而保证生产的高效率和高质量。2.1 传感器的选择 (1)DSl8820的特点DSl8820是美国Dallas半导体公司继DSl820之后最新推出的一种改进型智能数字温度传感器。与传统的热敏电阻相比,它能够直接读出被测温度,并且可根据实际要求通过编程实现912位的数字值读数方式;可以分别在9375ms和75O ms内完成9位和12位的数字量;从DSl8820读出信息或写入DSl8
3、820信息仅需要1根口线(单线接口);温度变换功率来源于数据总线,总线本身也可以向所挂接的DSl8820供电,而无需额外电源。使用DSl8820可使系统结构更趋简单,可靠性更高。DSl8820在测温精度、转换时间、传输距离、分辨率等方面较DSl820有了很大的改进。(2)DSl8820内部结构及工作(gngzu)原理DSl8820的内部结构如图1所示,主要包括寄生电源电路、64位只读存储器(ROM)和单线接口、存储器和控制逻辑、存放(cnfng)中间数据的高速暂存存储器、温度传感器、报警上限寄存器TH、报警下限寄存器TL、配置寄存器和8位CRC(循环冗余校验码)发生器。22 AT89C51单片
4、机AT89C51单片机是ATMEL公司生产(shngchn)的高性能8位单片机,主要功能特性如下:兼容(jin rn)MCS-51指令系统;32个双向I/O口,两个(lin )16位可编程定时/计数器;1个串行中断,两个外部中断源;可直接驱动LED;低功耗空闲和掉电模式;4 kB可反复擦写(1 000次)FLASI ROM;该款芯片的超低功耗和良好的性能价格比使其非常适合嵌入式产品应用。第三章 系统总体设计1.硬件设计由DS18B20和Atmel公司推出的单片机AT89C51以及相关外围电路组成的高精度、多点温度测量系统的结构框图如图所示。系统采用8片DS18B20构成小型温度传感器网络3,通
5、过并行连接方式连接至单片机的通用I/O端口。单片机获得温度信息后,通过特定的算法,将处理后的温度信息通过LED显示出来,同时通过串行口送上位机处理。AT89C51温度采集模块电源模块LED显示模块RS232模块2.软件系统设计(shj)主程序先对各DS18B20进行初始化,然后重复调用(dioyng)写命令和读数据模块,最后将数据处理后送LED显示7。主程序执行(zhxng)流程如图3所示:/*数码管的显示 */void display(uint temp)uchar bai,shi,ge;bai=temp/100;shi=temp%100/10;ge=temp%100%10;dula=0;P
6、0=tablebai; /显示百位dula=1; /从0到1,有个上升沿,解除锁存,显示相应(xingyng)段 dula=0; /从1到0再次锁存 wela=0;P0=0 xfe;wela=1;wela=0;delay(1); /延时约2msP0=table1shi; /显示(xinsh)十位dula=1;dula=0;P0=0 xfd;wela=1;wela=0;delay(1);P0=tablege; /显示个位dula=1;dula=0;P0=0 xfb;wela=1;wela=0;delay(1);3.软件(run jin)仿真(fn zhn)调试结束语本系统具有(jyu)如下特点:
7、 a.结构简单(jindn),成本低廉,维护方便。b.直接将温度数据进行编码(bin m),可以只使用单根电缆传输温度数据,通信方便,传输距离远且抗干扰性强。 c.配置灵活、方便、易于扩展。可扩展多路下位温度采集子系统,将它们通过RS485与上位PC机组网,形成多点温度采集网络。也可在各子系统中有选择性地增减温度传感器。 d.适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。在大范围温度多点监控系统中具有十分诱人的应用前景。附录 主程序#include reg52.h#include intrins.h#define uchar unsigned char#de
8、fine uint unsigned intsbit ds=P22;sbit dula=P26;sbit wela=P27;uchar flag ;uint temp; /参数temp一定要声明为 int 型 uchar code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71; /不带小数点数字编码uchar code table1=0 xbf,0 x86,0 xdb,0 xcf,0 xe6,0 xed,0 xfd,0 x87,0 xff
9、,0 xef; /带小数点数字编码/*延时函数*/void TempDelay (uchar us)while(us-);void delay(uint count) /延时子函数uint i;while(count)i=200;while(i0)i-;count-;/*串口初始化,波特率9600,方式1 */void init_com()TMOD=0 x20; /设置定时器1为模式2TH1=0 xfd; /装初值设定波特率TL1=0 xfd;TR1=1; /启动定时器SM0=0; /串口通信模式设置SM1=1;/ REN=1; /串口允许接收数据PCON=0; /波特率不倍频/ SMOD=0
10、; /波特率不倍频 / EA=1; /开总中断 /ES=1; /开串行中断/*数码管的显示 */void display(uint temp)uchar bai,shi,ge;bai=temp/100;shi=temp%100/10;ge=temp%100%10;dula=0;P0=tablebai; /显示百位dula=1; /从0到1,有个上升沿,解除锁存,显示相应段 dula=0; /从1到0再次锁存 wela=0;P0=0 xfe;wela=1;wela=0;delay(1); /延时约2msP0=table1shi; /显示十位dula=1;dula=0;P0=0 xfd;wela=
11、1;wela=0;delay(1);P0=tablege; /显示个位dula=1;dula=0;P0=0 xfb;wela=1;wela=0;delay(1);void ds_reset(void)ds=1;_nop_(); /1usds=0;TempDelay(80); /当总线停留在低电平超过480us,总线上所以器件都将被复位,这里/延时约530us总线停留在低电平超过480s,总线上的所有器件都/将被复位。_nop_(); ds=1; /产生复位脉冲后,微处理器释放总线,让总线处于空闲状态,原因查/18b20中文资料TempDelay(5); /释放总线后,以便从机18b20通过拉低
12、总线来指示其是否在线, /存在检测高电平时间:1560us, 所以延时44us,进行 1-wire presence /detect(单线存在检测)_nop_();_nop_();_nop_();if(ds=0) flag=1; /detect 18b20 successelse flag=0; /detect 18b20 fail TempDelay(20); /存在检测低电平时间:60240us,所以延时约140us_nop_();_nop_();ds=1; /再次拉高总线,让总线处于空闲状态/*/bit ds_read_bit(void) /读一位bit dat;ds=0; /单片机(微
13、处理器)将总线拉低 _nop_(); /读时隙起始于微处理器将总线拉低至少1usds=1; /拉低总线后接着释放总线,让从机18b20能够接管总线,输出有效数据_nop_();_nop_(); /小延时一下,读取18b20上的数据 ,因为从ds18b20上输出的数据/在读时间隙下降沿出现15us内有效dat=ds; /主机读从机18b20输出的数据,这些数据在读时隙的下降沿出现/15us内有效 TempDelay(10); /所有读时间隙必须60120us,这里77usreturn(dat); /返回有效数据uchar ds_read_byte(void ) /读一字节uchar value,
14、i,j;value=0; /一定别忘了给初值for(i=0;i8;i+)j=ds_read_bit(); value=(j1); /这一步的说明在一个word文档里面return(value); /返回一个字节的数据void ds_write_byte(uchar dat) /写一个字节 uchar i; bit onebit; /一定不要忘了,onebit是一位 for(i=1;i1;if(onebit) /写 1ds=0;_nop_(); _nop_(); /看时序图,至少延时1us,才产生写时间隙ds=1; /写时间隙开始后的15s内允许数据线拉到高电平 TempDelay(5); /所
15、有写时间隙必须最少持续60uselse /写 0ds=0; TempDelay(8); /主机要生成一个写0 时间隙,必须把数据线拉到低电平并保持至少60s,这里64usds=1;_nop_(); _nop_(); void tem_change() ds_reset(); delay(1); /约2ms ds_write_byte(0 xcc); ds_write_byte(0 x44);unit get temperature() float wend; char a,b; ds_reset(); delay(1); /约2ms ds_write_byte(0 xcc); ds_write_byte(0 xbe); a=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2027届山东省泰安市新泰市第二中学物理高二第一学期期中统考模拟试题含解析
- 2027届江西省南昌县莲塘第一中学高三物理第一学期期中统考模拟试题含解析
- 安徽省六安市舒城干汊河中学2027届物理高一第一学期期中经典试题含解析
- 吉林省延边市第二中学2027届高二上物理期中联考模拟试题含解析
- 四川省成都市成都实验高级中学2027届物理高二第一学期期末学业质量监测试题含解析
- 2025年吉林省舒兰市实验小学校四年级数学下学期期中考试模拟试题(含解析)
- 2027届广西桂林,百色,梧州,北海,崇左五市物理高二上期中学业质量监测模拟试题含解析
- 2025年南陵县四年级数学第二学期期中监测试题含解析
- 2025年北海市铁山港区数学三年级下学期期末质量检测试题含解析
- 2027届河北省石家庄市晋州一中高一上物理期中经典试题含解析
- 2025-2026学年四川省凉山州七年级(下)期末数学试卷(含答案)
- 2026秋学期小学苏教版数学四年级上册教学计划
- 小学盲校英语三年级上册《Unit 3 This is my father》教学设计
- 社会责任RBA8.0 责任商业联盟行为准则课件
- 2026年公安监管场所辅警考试试题(附答案)
- 设备的维护保养及点检
- 大数据采集与预处理技术详解
- 2023-2024学年山东省青岛市高三(上)期初调研数学试卷
- 2026年泰安小升初数学小升初分班考卷:分班考全真模拟与附加题(重点高中联盟第1套)含参考答案、逐题解析与评分细则
- 2026年国家统一法律职业资格考试客观题试题及参考答案解析
- AI赋能银行风控:技术演进与实践路径
评论
0/150
提交评论