资源描述
- -
工程大学
计算机科学与工程学院
综合设计报告
设计名称: 根底硬件综合设计
设计题目:温度测量的系统设计
学生学号:
专业班级:网络工程02
学生:
学生成绩:
指导教师〔职称〕:
完成时间:2014-12-21
工程大学计算机科学与工程学院 制
说明:
1、报告中的第一、二、三项由指导教师在综合设计开场前填写并发给每个学生;四、五两项〔中英文摘要〕由学生在完成综合设计后填写。
2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。
3、指导教师评语一栏由指导教师就学生在整个综合设计期间的表现、设计完成情况、报告的质量及辩论等方面,给出客观、全面的评价。
4、所有学生必须参加综合设计的辩论环节。凡不参加辩论者,其成绩一律按不及格处理。辩论小组成员应由2人及以上教师组成。
5、报告正文字数一般应不少于5000字,也可由指导教师根据本门综合设计的情况另行规定。
6、平时表现成绩低于6分的学生,其综合设计成绩按不及格处理。
7、此表格式为工程大学计算机科学与工程学院提供的根本格式〔适用于学院各类综合设计〕,各教研室可根据本门综合设计的特点及容做适当的调整,并上报学院批准。
辩论记录表
学生: 学号: 班级02
辩论地点:J423
辩论容记录:
辩论成绩
合计
分值
各项分值
评分标准
实际得分
合计得分
备注
25
10
在规定时间能就所设计的容进展阐述,言简意明,重点突出,论点正确,条理清晰。
15
在规定时间能准确、完整、流利地答复教师所提出的问题。
辩论小组成员〔签字〕:
年月日
成绩评定表
学生: 学号: 班级:02
类别
合计
分值
各项分值
评分标准
实际得分
合计得分
备注
平时表现
10
10
按时参加综合设计,无旷课、迟到、早退、违反实验室纪律等情况。
完成情况
30
20
按设计任务书的要求完成了全部任务,能完整演示其设计容,符合要求。
10
能对其设计容进展详细、完整的介绍,并能就指导教师提出的问题进展正确的答复。
报告质量
35
10
报告文字通顺,容翔实,论述充分、完整,立论正确,构造严谨合理;报告字数符合相关要求,工整规,整齐划一。
5
课题背景介绍清楚,综述分析充分。
5
设计方案合理、可行,论证严谨,逻辑性强,具有说服力。
5
符号统一;图表完备、符合规要求。
5
能对整个设计过程进展全面的总结,得出有价值的结论或结果。
5
参考文献数量在3篇以上,格式符合要求,在正文中正确引用。
辩论情况
25
10
在规定时间能就所设计的容进展阐述,言简意明,重点突出,论点正确,条理清晰。
15
在规定时间能准确、完整、流利地答复教师所提出的问题。
总评成绩
指导教师评语
指导教师:〔签字〕日期:年月日
一、综合设计目的、条件、任务和容要求:
设计目的:
l 本课程设计的目的是为了学生更好地稳固和加深对根底知识的理解,学会使用单片机设计小型数字系统的方法,独立完成调试过程,增强理论联系实际的能力,提高单片机编程和电路设计、分析的能力。
l 掌握单片机原理、数字系统的分析和设计方法;
l 利用Proteus仿真软件,Keil C编程环境,对电路和程序进展调试和改良;
l 通过实践教学引导学生在理论指导下对知识有所拓展,思路有所创新,动手能力和解决问题的能力有所提高,为后继专业课的学习和日后工程实践奠定根底。
设计条件:
计算机一台、Proteus仿真软件、Keil C;。
容和要求:
1.了解DS1302功能及读写时序。
2.在仿真软件Proteus里设计时钟电路。
3.在KeilC编程,在Proteus里进展联调。
4.改良和扩展〔系统可以设置四个方向的通行时间。
5.书写课程设计报告。
二、进度安排:
13 周:学生选题
15-16周:软件模拟、方案论证,、分析现象、解决问题、修正方案、得出结果。
17 周:辩论。
撰写综合设计报告并打印交予指导教师
三、应收集资料及主要参考文献:
[1]?单片机原理及接口技术?[M].毅刚主编.人民邮电.2021
[2]?数字逻辑与数字系统?[M].王永军 景华编.电子工业.2002
[3]?MCS-51单片机原理及实用技术?[M].振荣 晋明武 王毅平编著.人民邮电
[4]?数字逻辑?[M].欧阳星明主编.华中科技大学
[5]?传感器原理及应用?[M].郭爱芳主编.电子科技大学.2007.5
四、摘要:
单片机是一种体积小、多功能的微型计算机系统,被广泛应用于智能化、自动化的工业生产过程中。而在工业生产过程中,温度控制是一个重要的调控参数。由单片机构成的温度检测、温度控制系统可用于很多领域。单片机在工业控制、尖端武器、通信设备、信息处理、家用电器等各测控领域的应用中独占鳌头。它可以预防某些各种平安事件的发生,将被广泛的用到实际生活中。单片机AT89C51和温度传感器DS18B20组成了温度自动测控系统,可根据实际需要,任意设定温度值,并进展自动控制。同时,在此根底上可做进一步拓展,通过中端系统,实现多路温度测量的功能,可以扩大和缩小温度的侧脸围,也实现温度过高或温度过低报警功能,根据LED显示状况,来判断温度是过高还是管理,方便管理人员管理,做出相对解决措施。最后可以手动消除报警。
关键词: 单片机AT89C51; 温度传感器DS18B2; LED; 多路温度测量; 报警
五、Abstract:
SCM is a kind of small size, multi-function microputer system, is widely used in intelligent, automation in the process of industrial production.And in the process of industrial production, temperature control is an important control parameter.posed of single chip microputer temperature detection, temperature control system can be widely used in many fields.Single-chip puter in industrial control, sophisticated weapons, munications equipment, information processing, household appliances and so on various applications in the field of measurement and control.It can prevent the happening of the various security events, will be widely used in real life.Single-chip puter AT89C51 and the temperature sensor DS18B20 temperature automatic measurement and control system, can be arbitrarily set temperature, according to real need and automatic control. To further expand on the basic function, through the system in the end, realization of multi-channel temperature measurement function, can expand and shrink the side face of the temperature;Also realize the temperature too high or low temperature alarm function, according to the LED display condition, to determine the temperature is too high or management, convenient management personnel management, make the relative solutions.Finally can eliminate the alarm manually.
Keywords:AT89C51 ; DS18B20;LED; Multi-channel temperature measurement; alarm
- word.zl
- -
目录
摘要II
ABSTRACTIII
第一章绪论1
1.1设计背景1
1.2设计目的和意义1
第二章设计简介及设计方案论述2
2.1 proteus和keilC软件简介2
2.2 总体设计方案2
第三章详细设计3
3.1 数码管3
3.2 DB18B205
3.3 AT89C519
3.4报警11
3.5多路温度测量11
3.6 复位电路12
第四章设计结果及分析14
4.1 设计结果14
4.2 设计分析15
总结16
致17
参考文献18
附录主要程序代码19
摘要
单片机是一种体积小、多功能的微型计算机系统,被广泛应用于智能化、自动化的工业生产过程中。而在工业生产过程中,温度控制是一个重要的调控参数。由单片机构成的温度检测、温度控制系统可广泛应用于很多领域。单片机在工业控制、尖端武器、通信设备、信息处理、家用电器等各测控领域的应用中独占鳌头。它可以预防某些各种平安事件的发生,将被广泛的用到实际生活中。单片机AT89C51和温度传感器DS18B20组成了温度自动测控系统,可根据实际需要任意设定温度值,并进展自动控制。在此根底上做进一步拓展,通过中端系统,实现多路温度测量的功能,可以扩大和缩小温度的侧脸围,也实现温度过高或温度过低报警功能。根据LED显示状况,来判断温度是过高还是管理,方便管理人员管理,做出相对解决措施。最后可以手动消除报警。
关键词: 单片机AT89C51; 温度传感器DS18B2; LED; 多路温度测量; 报警
Abstract
SCM is a kind of small size, multi-function microputer system, is widely used in intelligent, automation in the process of industrial production.And in the process of industrial production, temperature control is an important control parameter.posed of single chip microputer temperature detection, temperature control system can be widely used in many fields.Single-chip puter in industrial control, sophisticated weapons, munications equipment, information processing, household appliances and so on various applications in the field of measurement and control.It can prevent the happening of the various security events, will be widely used in real life.Single-chip puter AT89C51 and the temperature sensor DS18B20 temperature automatic measurement and control system, can be arbitrarily set temperature, according to real need and automatic control. To further expand on the basic function, through the system in the end, realization of multi-channel temperature measurement function, can expand and shrink the side face of the temperature;Also realize the temperature too high or low temperature alarm function, according to the LED display condition, to determine the temperature is too high or management, convenient management personnel management, make the relative solutions.Finally can eliminate the alarm manually.
Keywords:AT89C51 ; DS18B20;LED; Multi-channel temperature measurement; alarm
- word.zl
- -
第一章绪论
1.1设计背景
单片机是一种体积小、多功能的微型计算机系统,被广泛应用于智能化、自动化的工业生产过程中。而在工业生产过程中,温度控制是一个重要的调控参数。由单片机构成的温度检测、温度控制系统可广泛应用于很多领域。单片机在工业控制、尖端武器、通信设备、信息处理、家用电器等各测控领域的应用中独占鳌头。它可以预防某些危险事件的发生,将被广泛的用到实际生活中。
1.2设计目的和意义
随着现代信息技术的飞速开展和传统工业改造的逐步实现,能够独立工作的温度检测和显示系统应用于诸多领域。无论是在工业方面,农业方面或者是平民群众的生活当中,我们都能看到温度计的身影。
利用新型温度传感器取代旧式的温度传感器是必然的趋势,新型的温度传感器的优势越来越得到表达,越来越普及。单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,成为自动化和各个测控领域中必不可少且广泛应用的器件,尤其在日常生活中也发挥越来越大的作用。
第二章 设计简介及设计方案论述
2.1 proteus和keilC软件简介
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2021年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、构造性、可读性、可维护性上有明显的优势,因而易学易用。Keil那么为其提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在的完整开发方案,通过一个集成开发环境〔uVision〕将这些局部组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。
2.2 总体设计方案
数码管显示
AT89C51
复位
报警灯
改变测量范围
DB18B20
图2.1 总体方案图
第三章 详细设计
3.1 数码管
3.1.1数码管的构造和原理
图3.1 数码管构造图
图3.2数码管显示原理图
我们最常用的是七段式和八段式LED数码管,八段比七段多了一个小数点,其他的根本一样。所谓的八段就是指数码管里有八个小LED发光二极管,通过控制不同的LED的亮灭来显示出不同的字形。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。而共阳极就是将八个LED的阳极连在一起。通常此公共阳极接正电压,当某个发光二级管的阴极接地时,发光二极管被点亮,相应的段被显示。
图3.3 LED原理图
为了使LED数码管显示不同的符号和数字,要把某些段的发光二极管点亮,这样要为LED数码管提供代码,因为这些代码可使LED相应的段发光,从而显示不同的字型,因此该代码也为段码。
3.12数码管的译码方式
图3.4 段码与字节中各位对应关系
按照上述格式,显示各种字符的8段LED数码管的段码如下表
图3.5 8段LED段码
右边的1234是位选
1对应的是最高位;2对应的是第二位数码管显示〔从左向右〕3对应的是第三位数码管显示;4对应的是小数点位显示。
3.2 DB18B20
3.21 DB18B20 介绍
图 3.6 DB18B20连线图
图3.7 DB18B20构造图
DS18B20 有三只引脚,VCC,DQ,和VDD。
3.22 工作原理
图3.8温度转换
DS18B20 的温度操作是使用16 位,也就是说分辨率是0.0625。BIT15~BIT11 是符号位,为了就是表示转换的值是正数还是负数。
图3.9 温度/数据关系
要求出正数的十进制值,必须将读取到的LSB 字节,MSB 字节进展整合处理,然后乘以0.0625 即可。
(1)当温度为大于0时
假设从,字节0 读取到0xD0 赋值于Temp1,而字节1 读取到0x07 赋值于Temp2,
然后求出十进制值。
unsigned int Temp1,Temp2,Temperature;
Temp1=0xD0; //低八位
Temp2=0x07; //高八位
(2)当温度有负数时
判断BIT11~15 是否是1,然后人为置一负数标志。Eg. 假设从,字节0 读取到0x90 赋值于Temp1,而字节1 读取到0xFC 赋值于Temp2,然后求出该值是不是负数,和转换成十进制值。
unsigned int Temp1,Temp2,Temperature;
unsigned char Minus_Flag=0;
Temp1=0x90; //低八位
Temp2=0xFC; //高八位
//Temperature = (Temp1 + Temp2 *256) * 0.0625;
//Temperature=64656
//很明显不是我们想要的答案
if(Temp2&0xFC) //判断符号位是否为1
{Minus_Flag=1; //负数标志置一
Temperature = ((Temp2<<8 ) | Temp1 ) //高八位第八位进展整合
Temperature= ((~Temperature)+1); //求反,补一
Temperature*= 0.0625; //求出十进制
} //Temperature=55;
else
{Minus_Flag=0;
Temperature = ((Temp2<<8 ) | Temp1 ) * 0.0625;
}
〔3〕遇到小数位的情况
假设从,字节0 读取到0xA2 赋值于Temp1,而字节1 读取到0x00 赋值于Temp2,
然后求出十进制值,要求连同小数点也求出。
unsigned int Temp1,Temp2,Temperature;
Temp1=0x90; //低八位
Temp2=0xFC; //高八位
//实际值为10.125
如以上的例题,我们可以先将0.0625 乘以10,然后再乘以整合后的Temperature 变量,就可以求出后面一个小数点的值〔求出更多的小数点,方法都是以此类推〕。得出的结果是101,然后再利用简单的算法,求出每一位的值。
uchar A1,A2,A3,A4;
A1 = temp/1000; //百位
A2 = temp%1000/100; //十位
A3 = temp%100/10; //个位
A4 = temp%10; //小数
求出负数的思路也一样,只不过多出人为置一负数标志,求反补一的动作而已。
单片机DS18B20
DS18B20 一般都是充当从机的角色,而单片机就是主机。单片机通过一线总线
DS18B20 的话,需要经过以下几个步骤:
1.DS18B20 复位。
2.执行ROM 指令。
3.执行DS18B20 功能指令〔RAM 指令〕。
补充一下。一般上我们都是使用单点,也就是说单线总线上仅有一个DS18B20 存在而已。所以我们无需刻意读取ROM 里边的序列号来,然后匹配那个DS18B20?而是更
直接的,跳过ROM 指令,然后直接执行DS18B20 功能指令。
DS18B20 复位,在某种意义上就是一次DS18B20 的开场,或者可说成是开场信号。
ROM 指令,也就是,搜索,匹配,DS18B20 个别的64 位序列号的动作。在单点情况下,可以直接跳过ROM 指令。而跳过ROM 指令的字节是0xCC。
DS18B20 功能指令有很多种,我就不一一的介绍了,数据手册里有更详细的介绍。这里仅列出比拟常用的几个DS18B20 功能指令。
0x44:开场转换温度。转换好的温度会储存到暂存器字节0 和1。
0xEE:读暂存指令。读暂存指令,会从暂存器0 到9,一个一个字节读取,如果要停顿的话,必须写下DS18B20 复位。
DB18B20初始化
void Init_Ds18b20(void) //DS18B20初始化send reset and initialization mand
{
DQ = 1; //DQ复位,不要也可行。
delay(1); //稍做延时
DQ = 0; //单片机拉低总线
delay(250); //准确延时,维持至少480us
DQ = 1; //释放总线,即拉高了总线
delay(100); //此处延时有足够,确保能让DS18B20发出存在脉冲。
}
DB18B20读字节
uchar Read_One_Byte() //读取一个字节的数据read a byte date
//读数据时,数据以字节的最低有效位先从总线移出
{
uchar i = 0;
uchar dat = 0;
for(i=8;i>0;i--)
{
DQ = 0; //将总线拉低,要在1us之后释放总线
//单片机要在此下降沿后的15us读数据才会有效。
_nop_(); //至少维持了1us,表示读时序开场
dat >>= 1; //让从总线上读到的位数据,依次从高位移动到低位。
DQ = 1; //释放总线,此后DS18B20会控制总线,把数据传输到总线上
delay(5); //延时7us,此处参照推荐的读时序图,尽量把控制器采样时间放到读时序后的15us的最后局部
if(DQ) //控制器进展采样
{
dat |= 0x80; //假设总线为1,即DQ为1,那就把dat的最高位置1;假设为0,那么不进展处理,保持为0
}
delay(29); //此延时不能少,确保读时序的长度60us。
}
return (dat);
}
DB18B20写字节
void Write_One_Byte(uchar dat)
{
uchar i = 0;
for(i=8;i>0;i--)
{
DQ = 0; //拉低总线
_nop_(); //至少维持了1us,表示写时序(包括写0时序或写1时序)开场
DQ = dat&0x01; //从字节的最低位开场传输
//指令dat的最低位赋予给总线,必须在拉低总线后的15us,
//因为15us后DS18B20会对总线采样。
delay(29); //必须让写时序持续至少60us
DQ = 1; //写完后,必须释放总线,
dat >>= 1;
delay(1);
}
}
3.3 AT89C51
AT89C51是一种带4K字节FLASH存储器〔FPEROM—Flash Programmable and Erasable Read Only Memory〕的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图3.10。
图3.10
引脚功能
VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
P1口:P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P2口:P2口为一个部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流。
P3口:P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
/EA/VPP:当/EA保持低电平时,那么在此期间外部程序存储器〔0000H-FFFFH〕,不管是否有部程序存储器。注意加密方式1时,/EA将部锁定为RESET;当/EA端保持高电平时,此间部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源〔VPP〕。
XTAL1:反向振荡放大器的输入及部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。
3.4报警
当温度过低,蓝灯亮;当温度在正常围,绿灯亮;当温度过高红灯亮和电动机转动。
图3.11报警设计电路图
相应代码如下
int Lab()
{
if(Minus_Flag==1) //判断温度正负
{if(temp>E) //低于设置的温度
{P1=0xfe; //蓝灯亮
delay(20);
}
else
{ P=0xfd; //绿灯亮
delay(20);}
}
else
{if(temp>F) //高于设定温度
{P1=0xfb; //红灯亮
delay(20);
}
else
{P1=0xfd; //绿灯亮
delay(20);
}
}
}
3.5多路温度测量
通过中断函数来改变温度的测量围当按下上面的BUTTON时正常温度的围为-10度~35度。按下下面的BUTTON时,温度的测量围为-15~40度。
图3.12 温度的测量围线路图
相应的代码
void intrupt()
{
EA=1;
EX0=1;
IT0=1;
IT1=1;
EX1=1;
E=50;
F=300;
}
void int0(void) interrupt 0 //外部中断0
{
E=100,F=350;
}
void int1(void) interrupt 2 //外部中断1
{ E=150,F=400;
}
3.6 复位电路
当改变温度的报警的围后,可以通过复位键来恢复原来的测量围
图3.13复位电路图
第四章 设计结果及分析
4.1 设计结果
温度测量电路如下
图4.1 当报警温度围为-5~30度
图4.2 温度测量围为-10~35度
图4.3当温度围为-15~40度
4.2 设计分析
当温度在正常围时,绿灯亮;当低于设定的温度,蓝灯亮;当温度高于设定温度,红灯亮,电动机转动。通过外部中断,改变温度报警为。可以通过手动开关,解除警报。通过复位,复原到原来的设定的温度设定围。本设计的温度计与传统的温度计相比,具有读数方便,测温围广,测温准确,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。其输出温度采用数字显示,主要用于对测温比拟准确的场所,或科研实验室使用,测温传感器使用DS18B20,LCD以串口传送数据,实现温度显示能准确到达以上要求。同时计时器的应用,使得温度计在使用时能够提示运行时间,设置报警时间等。
总结
温度系统的设计,让我们更加的熟悉proteus和keilc的使用,对数码管的构造和原理有了新的了解。这局部知识是自学的,使我们的自学能力有一定的提升。当然这个学习过程少不了同学的帮助。最难的当然是会使用DB18B20,它是本次设计最重要一个元件。通过教师给的资料,我们知道了,它如何感应温度和怎样译码。最后如何将温度反响到数码管上。如果掌握了数码管和DB1820的使用。这个设计算是完成了一半。实现了测量温度的根本功能。但是还是要进一步人性化。因此我们设计了报警功能,复位功能,以及扩大温度的测量围等。
本次设计同学给我讲了数码管的如何使用。让我茅塞顿开。在其他功能设计时能自己一个人完成。在此过程中我体味到了设计未成功之时的疑惑和焦急。以及成功后的愉悦。当然本次设计存在缺乏,当拿到课题的时候,没有好的思路,没有信心能将其做出来。同时我发现自己对课本知识的理解不够。我应在以后的学习中关注每个细节,把知识点连接好。这样才能随意自如的设计自己想要的东西。
致
感王教师精心的设计课题,让我们进一步熟悉课本知识,让我们学会了如何灵活运用它。感教师的监视,让我们更加的认真仔细。感同学的细心讲解,让我在遇到问题的时候能较快的解决。没有教师和同学的帮助,我很难很快的完成设计。
参考文献
[1]?单片机原理及接口技术?[M].毅刚主编.人民邮电.2021
[2]?数字逻辑与数字系统?[M].王永军景华编.电子工业.2002
[3]?MCS-51单片机原理及实用技术?[M].振荣 晋明武 王毅平编著.人民邮电
[4]?数字逻辑?[M].欧阳星明主编.华中科技大学
[5]?传感器原理及应用?[M].郭爱芳主编.电子科技大学.2007.5
展开阅读全文