- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.1数字温度及设计方案
在做数字温度计的单片机电路中,对信号采集是使用传感器DS18B20。此传感器直接读取被测温度值,进行转换。采集之后通过使用51系列单片机,可以对数据进行相应的处理,再有LED显示电路对其数据进行显示。
2.2系统设计框图
温度计电路设计总体设计方框图如图2.1所示,控制器采用单片机AT89S51,温度传感器采用DS1B20,用六位的LED数码管以串口传送数据实现温度显示。此外,还添加了报警系统,对温度实时监控。
三.硬件设计
3.1主控器AT89C51芯片
各引脚功能:
VCC:供电电源。
GND:接地。
P0~P3:输入/输出口线,P3每位还有特殊功能。
RST:复位输入。当振荡器复位器件时,要保持RST两个周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在flash编程期间,此引脚用于输入编程脉冲。
/PSEN:外部程序存储器的选通信号。
/EA/VPP:当/EA保持低电平时,则在此期间访问外部程序存储器。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡放大器的输出。
3.1.1时钟电路
80C51时钟有两种产生方式,及内部方式和外部方式。80C51中有一个构成内部振荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是该放大器的输入输出端。本次采用内部振荡电路,瓷片电容采用22PF,晶振为12HZ。
3.1.2复位电路
单片机系统的复位电路采用的是上电+按钮复位电路形式,其中电阻采用10KΩ的电阻值,电容采用10uF的电容值。
3.2温度传感器
DS18B20是DALLAS较新单线数字温度传感器,其体积更小,适合多重场合。其温度测量范围是-55~+125摄氏度,可编程9位~12位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM中,掉电后依然保存。
DS18B20内部结构主要有四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH、TL、配置寄存器。
DS18B20的管脚功能:
DQ:数据输入输出引脚。
GND:接地信号。
VDD:为可选择的VDD引脚。当工作再寄生电源时,此引脚接地。
DS18B20的初始化:
⑴ 先将数据线置高电平“1”;
⑵ 延时(该时间要求的不是很严格但是尽可能短一点);
⑶ 数据线拉到低电平“0”;
⑷ 延时750微秒;
⑸ 数据线拉倒高电平“1”;
⑹ 延时等待;
⑺ 若CPU读到了数据线上的低电平后,还要做延时,其延时时间从发出高电平起最少要480微秒;
⑻ 将数据线再次拉高到高电平后结束。
DS18B20的写操作:
⑴ 数据线先置低电平0;
⑵ 延时确定是15微秒;
⑶ 按从低位到高位的顺序发送字节(一次只发送一位);
⑷ 延时间为45微秒;
⑸ 将数据线拉到高电平;
⑹ 重复⑴到⑹的操作直到所有的字节全部发送完为止;
⑺ 最后将数据线拉高。
3.3显示电路
对于数字温度的显示,我们采用6位LED数码管。足够显示0 ~100中的个位数,并且还能显示一位小数部分。
3.4温度报警电路
当设备的温度超过我们所设定的温度值时,系统就会产生报警。我们就能更好对设备进行处理,避免造成不必要的损失。
当温度高于100度时,报警时由单片机产生一定频率的脉冲,由P3.7引脚输出,P3.7外接一只NPN的三极管来驱动扬声器发出声音,以便操作原来维护,从而达到报警的目的。其电路图如下所示:
当温度低于0度时,亮红灯报警,以便操作人员来维护,从而达到报警的目的。其电路图如下:
四、软件设计及调试
4.1主程序
主程序负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每隔一秒一次。这样可以在一秒之内测量一次被测温度。
4.3读出温度子程序
读出温度子程序读出RAM中的9个字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图4.2所示:
4.4温度转换命令子程序
温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换的时间为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。
4.5计算温度子程序
计算温度子程序将RAM值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图4.3所示。
五、系统调制及操作说明
六、总结
本次课程设计我们做了两方面的工作,一是单片机的学习与应用;二是新器件的学习。在这次课程设计中我们不仅巩固了平时所学的单片机的知识而,且通过不断查阅相关资料,学习新的知识。可以说通过这次单片机的实践学习,我们学到了很多,而且对单片机的有关知识以及其在现实生活中的多方面应用
文档评论(0)