基于单片机的智能温度计的设计.doc

上传人:大张伟 文档编号:6059537 上传时间:2020-09-02 格式:DOC 页数:43 大小:1.27MB
返回 下载 相关 举报
基于单片机的智能温度计的设计.doc_第1页
第1页 / 共43页
基于单片机的智能温度计的设计.doc_第2页
第2页 / 共43页
基于单片机的智能温度计的设计.doc_第3页
第3页 / 共43页
基于单片机的智能温度计的设计.doc_第4页
第4页 / 共43页
基于单片机的智能温度计的设计.doc_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《基于单片机的智能温度计的设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的智能温度计的设计.doc(43页珍藏版)》请在三一文库上搜索。

1、目录1设计背景11.1课题背景11.2设计内容12智能温度计系统简介22.1方案选择22.2系统设计原理32.3系统组成43.系统硬件设计63.1DS18B20温度传感器63.1.1DS18B20介绍63.1.2温度传感器工作原理63.1.3DS18B20相关介绍83.1.4DS18B20使用中的注意事项93.2液晶显示器(1602液晶显示器)103.2.1液晶显示器的介绍103.2.2 1602LCD的特性113.2.3液晶模块简介113.2.3液晶显示部分与89C51的接口133.3 80C51单片机的介绍143.3.1 80C51单片机的主要特性153.3.2 80C51单片机管脚163

2、.3.3 80C51单片机的中断系统183.3.4 80C51单片机的定时/计数器183.3.5 80C51单片机的最小系统193.4系统总体电路图204.软件设计简介214.1 C语言简介214.2 程序设计215.电路仿真245.1 Proteus软件介绍7245.2智能温度计Ptoteus仿真25总结27参考文献28附录:源程序代码291设计背景温度控制广泛应用于人们的生产和生活中,人们使用温度计来采集温度,通过人工操作加热、通风和降温设备来控制温度,这样不但控制精度低、实时性差,而且操作人员的劳动强度大。即使有些用户采用半导体二极管作温度传感器,但由于其互换性差,效果也不理想。在某些行

3、业中对温度的要求较高,由于工作环境温度不合理而引发的事故时有发生。对工业生产可靠进行造成影响,甚至操作人员的安全。为了避免这些缺点,需要在某些特定的环境里安装数字温度测量及控制设备。本设计由于采用了新型单片机对温度进行测量,以其测量精度高,操作简单。可运行性强,价格低廉等优点,特别适用于生活,医疗,工业生产等方面的温度测量。本设计是一个智能温度测量,能测柜内的温度,并能在超限的情况下进行控制、调整,并报警。1.1课题背景随着科技的不断进步,在工业生产中温度是常用的被控参数,而采用单片机来对这些被控参数进行控制已成为当今的主流。采用数字温度传感器DS18B20,因其内部集成了A/D转换器,使得电

4、路结构更加简单,而且减少了温度测量转换时的精度损失,使得测量温度更加精确。1.2设计内容本次课程设计模拟工业现场,对温度进行测量,并实时显示出来,并且可以设定温度的上下限,当温度达到上下限时 系统自动报警。控制系统主控制器采用51单片机,温度测量采用DS18B20,设定温度后,当温度达到设定限时,可以通过闪彩灯和响蜂鸣器报警提示,并且实时显示在1602液晶显示器上。2智能温度计系统简介2.1方案选择该系统主要由温度测量和数据采集两部分电路组成,实现的方法有很多种,下面将列出两种在日常生活中和工农业生产中经常用到的实现方案。方案一:采用热电偶温差电路测温,温度检测部分可以使用低温热偶,热电偶由两

5、个焊接在一起的异金属导线所组成,热电偶产生的热电势由两种金属的接触电势和单一导体的温差电势组成。通过将参考结点保持在已知温度并测量该电压,便可推断出检测结点的温度。数据采集部分则使用带有A/D 通道的单片机,在将随被测温度变化的电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。热电偶的优点是工作温度范围非常宽,且体积小,但是它们也存在着输出电压小、容易遭受来自导线环路的噪声影响以及漂移较高的缺点,并且这种设计需要用到A/D 转换电路,感温电路比较麻烦。系统主要包括对A/D0809 的数据采集,自动手动工作方式检测,温度的显示等,这几项

6、功能的信号通过输入输出电路经单片机处理。此外还有复位电路,晶振电路,启动电路等。故现场输入硬件有手动复位键、A/D 转换芯片,处理芯片为51 芯片,执行机构有4 位数码管、报警器等。系统框图如图2.1 所示。图2.1 热电偶温差电路测温系统框图方案二:采用数字温度芯片DS18B20 测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0100 摄氏度时,最大线形偏差小于1 摄氏度。DS18B20 的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89S51构成的温度测

7、量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大。采用51 单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC 机通信上传数据,另外AT89S51 在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。该系统利用AT89S51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。该系统扩展性非常强,它可以在设计中加入时钟芯片DS1302以获取时间数据,在数据

8、处理同时显示时间,并可以利用AT24C16芯片作为存储器件,以此来对某些时间点的温度数据进行存储,利用键盘来进行调时和温度查询,获得的数据可以通过MAX232芯片与计算机的RS232接口进行串口通信,方便的采集和整理时间温度数据。从以上两种方案,容易看出方案一的测温装置可测温度范围宽、体积小,但是线性误差较大。方案二的测温装置电路简单、精确度较高、实现方便、软件设计也比较简单,故本次设计采用了方案二。2.2系统设计原理利用温度传感器DS18B20可以直接读取被测温度值,进行转换的特性,模拟温度值经过DS18B20处理后转换为数字值,然后送到单片机中进行数据处理,并与设置的温度报警限比较,超过限

9、度后通过扬声器报警并且指示灯闪烁。同时处理后的数据送到LCD中显示。2.3系统组成本课题以是80C51单片机为核心设计的一种智能温度测试系统,系统整体硬件电路包括:传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等组成。系统框图主要由主控制器、单片机复位、报警按键设置、时钟振荡、LED显示、温度传感器组成。系统框图如图2.2所示。图2.2 系统基本方框图主控制器单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。显示电路液晶显示器是一种将液晶显示器件,连接器件,集成电路,PCB

10、线路板,背光源,结构器件装配在一起的组件。根据显示内容和方式的不同可以分为,数显LCD,点阵字符LCD,点阵图形LCD在此设计中我们采用点阵字符LCD,这里采用常用的2行16个字的1602液晶模块。温度传感器温度传感器采用美国DALLAS半导体公司生产的DS18B20温度传感器。DS18B20输出信号全数字化。便于单片机处理及控制,在0100 摄氏度时,最大线形偏差小于1 摄氏度,采用单总线的数据传输,可直接与计算机连接。用AT89S51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。获得的数据可以通过MAX232芯片与计算机

11、的RS232接口进行串口通信,方便的采集和整理时间温度数据。3.系统硬件设计3.1DS18B20温度传感器3.1.1DS18B20介绍 图 3.1 图3.2 图3.3DALLAS 最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。DALLAS 半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。温度测量范围为-55+125 摄氏度,可编程为9位12 位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM 中,掉电后依然保存。被测温度用符号扩展的1

12、6位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个DS18B20可以并联到3 根或2 根线上,CPU只需一根端口线就能与诸多DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。图3.1是DS18B20的一种封装形式,图3.2是DS18B20的一种常用接法。图3.3是仿真软件的封装形式。3.1.2温度传感器工作原理 DS18B20测温原理:低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡

13、率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。DS18B20功能特点:1. 采用单总线技术,与单片机通信只需要一根I/O线,在一根线上可以挂接多个DS18B20。2. 每只DS18B20具有一个独有的,不可修改的64位序列号,根据序列号访问地应的器件。3. 低压供电,

14、电源范围从35V,可以本地供电,也可以直接从数据线上窃取电源(寄生电源方式)。4. 测温范围为-55+125,在-1085范围内误差为0.5。5. 可编辑数据为912位,转换12位温度时间为750ms(最大)。6. 用户可自设定报警上下限温度。7. 报警搜索命令可识别和寻址哪个器件的温度超出预定值。8. DS18B20的分辩率由用户通过EEPROM设置为912位。9. DS18B20可将检测到温度值直接转化为数字量,并通过串行通信的方式与主控制器进行数据通信。DS18B20有4个主要的数据部件:1. 光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位

15、光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。2. DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。3. DS18B20温度传感器的存储器 DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发

16、器 TH、TL和结构寄存器。4. 配置寄存器。DS18B20内部结构及功能:DS18B20的内部结构如图3.4所示。主要包括:寄生电源,温度传感器,64位ROM和单总线接口,存放中间数据的高速暂存器RAM,用于存储用户设定温度上下限值的TH和TL触发器,存储与控制逻辑,8位循环冗余校验码(CRC)发生器等7部分图3.4 DS18B20内部结构及功能3.1.3DS18B20相关介绍温度的读取:DS18B20在出厂时以配置为12位,读取温度时共读取16位,所以把后11位的2进制转化为10进制后在乘以0.0625便为所测的温度,还需要判断正负。前5个数字为符号位,当前5位为1时,读取的温度为负数;当

17、前5位为0时,读取的温度为正数。(1)DS18B20的初始化:1. 先将数据线置高电平“1”。2. 延时(该时间要求的不是很严格,但是尽可能的短一点)。3. 数据线拉到低电平“0”。4. 延时750微秒(该时间的时间范围可以从480到960微秒)。5.数据线拉到高电平“1”。6. 延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制7. 若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要48

18、0微秒。8.将数据线再次拉高到高电平“1”后结束。(2)DS18B20的写操作:1. 数据线先置低电平“0”。2. 延时确定的时间为15微秒。3. 按从低位到高位的顺序发送字节(一次只发送一位)。4. 延时时间为45微秒。5. 将数据线拉到高电平。6. 重复上(1)到(6)的操作直到所有的字节全部发送完为止。7. 最后将数据线拉高。(3)DS18B20的读操作:1. 将数据线拉高“1”。2. 延时2微秒。3. 将数据线拉低“0”。4. 延时15微秒。5. 将数据线拉高“1”。6. 延时15微秒。7. 读数据线的状态得到1个状态位,并进行数据处理。8. 延时30微秒。3.1.4DS18B20使用

19、中的注意事项DS18B20 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:1. DS18B20 从测温结束到将温度值转换成数字量需要一定的转换时间,这是必须保证的,不然会出现转换错误的现象,使温度输出总是显示85。2. 在实际使用中发现,应使电源电压保持在5V 左右,若电源电压过低,会使所测得的温度精度降低。3. 较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS

20、1820操作部分最好采用汇编语言实现。4. 在DS18B20的有关资料中均未提及单总线上所挂DS18B20 数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此,当单总线上所挂DS18B20 超过8 个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。5. 在DS18B20测温程序设计中,向DS18B20 发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20 接触不好或断线,当程序读该DS18B20 时,将没有返回信号,程序进入死循环,这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视。3.2液晶显示

21、器(1602液晶显示器)3.2.1液晶显示器的介绍显示器是人与机器沟通的重要界面,早期以显像管(CRT/Cathode Ray Tube)显示器为主,但随着科技不断进步,各种显示技术如雨后春笋般诞生,近来由于液晶(LCD)显示器具有轻薄短小、耗电量低、无辐射危险,平面直角显示以及影像稳定不闪烁等优势,在近年来价格不断下跌的吸引下,逐渐取代CRT之主流地位,显示器明日之星架势十足。液晶是一种既具有液体的流动性又具有光学特性的有机化合物,它的透明程度和呈现的颜色受外加电场的影响,利用这特点便可做成字符显示器。液晶显示器(LCD)英文全称为Liquid Crystal Display,它一种是采用了

22、液晶控制透光度技术来实现色彩的显示器。和CRT显示器相比,LCD的优点是很明显的。由于通过控制是否透光来控制亮和暗,当色彩不变时,液晶也保持不变,这样就无须考虑刷新率的问题。显示接口用来显示系统的状态,命令或采集的电压数据。本系统显示部分用的是LCD液晶模块,采用一个162的字符型液晶显示模块。1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形(用自定义CGRAM,显示效果也不

23、好)1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。图3.5 1602液晶显示器一种接法3.2.2 1602LCD的特性(1)+5V电压,对比度可调(2)内含复位电路(3)提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能(4)有80字节显示数据存储器DDRAM(5)内建有160个5X7点阵的字型的字符发生器CGROM(6)8个可由用户自定义的5X7的字符发生器CGRAM字

24、符型LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚)(图3.5是1602液晶显示器的一种接法)3.2.3液晶模块简介LM016L的结构及功能:LM016L液晶模块采用HD44780控制器,hd44780具有简单而功能较强的指令集,可以实现字符移动,闪烁等功能,LM016L与单片机MCU通讯可采用8位或4位并行传输两种方式,hd44780控制器由两个8位寄存器,指令寄存器(IR)和数据寄存器(DR)忙标志(BF),显示数RAM(DDRAM),字符发生器ROMA(CGOROM)字符发生器RAM(CGRAM),地址计数器RAM(

25、AC)。IR用于寄存指令码,只能写入不能读出,DR用于寄存数据,数据由内部操作自动写入DDRAM和CGRAM,或者暂存从DDRAM和CGRAM读出的数据,BF为1时,液晶模块处于内部模式,不响应外部操作指令和接受数据,DDTAM用来存储显示的字符,能存储80个字符码,CGROM由8位字符码生成5*7点阵字符160中和5*10点阵字符32种.8位字符编码和字符的对应关系,可以查看参考文献(30)中的表4.CGRAM是为用户编写特殊字符留用的,它的容量仅64字节,可以自定义8个5*7点阵字符或者4个5*10点阵字符,AC可以存储DDRAM和CGRAM的地址,如果地址码随指令写入IR,则IR自动把地

26、址码装入AC,同时选择DDRAM或CGRAM但愿,LM016L液晶模块的引脚图如图3.7所示。图3.7 1601引脚图LM016L引脚介绍:Vss(1脚):一般接地。Vdd(2脚):接电源。Vee(3脚):液晶显示器对比度调整端,接电源时对比度最弱,接地时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。RS(4脚):RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。R/W(5脚):R/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。E(6脚):E(或EN)端为使能(enable)端,下降沿使能。DB0(7脚):底4位

27、三态、双向数据总线 0位(最低位)。DB1(8脚):底4位三态、双向数据总线 1位。DB2(9脚):底4位三态、双向数据总线 2位。DB3(10脚):底4位三态、双向数据总线 3位。DB4(11脚):高4位三态、双向数据总线 4位。DB5(12脚):高4位三态、双向数据总线 5位。DB6(13脚):高4位三态、双向数据总线 6位。DB7(14脚):高4位三态、双向数据总线 7位(最高位)(也是busy flang)。寄存器选择控制如表3.8。表3.8 寄存器选择控制RSR/W操作说明00写入指令寄存器(清除屏等)01读busy flag(DB7),以及读取位址计数器(DB0DB6)值10写入数

28、据寄存器(显示各字型等)11从数据寄存器读取数据3.2.3液晶显示部分与89C51的接口如图3.9所示。用89C51的P0口作为数据线,用P2.2、P2.1、P2.0分别作为LCD的E、R/W、RS。其中E是下降沿触发的片选信号,R/W是读写信号,RS是寄存器选择信号本模块设计要点如下:显示模块初始化:首先清屏,再设置接口数据位为8位,显示行数为2行,字型为57点阵,然后设置为整体显示,取消光标和字体闪烁,最后设置为正向增量方式且不移位。向LCD的显示缓冲区中送字符,程序中采用2个字符数组,一个显示字符,另一个显示电压数据,要显示的字符或数据被送到相应的数组中,完成后再统一显示.首先取一个要显

29、示的字符或数据送到LCD的显示缓冲区,程序延时2.5ms,判断是否够显示的个数,不够则地址加一取下一个要显示的字符或数据。图3.9 液晶与89C51的接口3.3 80C51单片机的介绍80C51单片机最初是由Intel 公司开发设计的,但后来Intel 公司把51 核的设计方案卖给了几家大的电子设计生产商,譬如 SST、Philip、Atmel 等大公司。如是市面上出现了各式各样的但均以51 为内核的单片机,倒是Intel 公司自己的单片机却显得逊色了。这些各大电子生产商推出的单片机都兼容51 指令、并在51 的基础上扩展一些功能而内部结构是与51 一致的。80C51有40个引脚,4个8位并行

30、I/O口,1个全双工异步串行口,同时内含5个中断源,2个优先级,2个16位定时/计数器。80C51的存储器系统由4K的程序存储器(掩膜ROM),和128B的数据存储器(RAM)组成。80C51单片机的基本组成框图见图3.10。图3.10 80C51单片机结构图由图3.10可见,8051单片机主要由以下几部分组成:cpu系统:8位cpu,含布尔处理器;时钟电路;总线控制逻辑。存储器系统 4K字节的程序存储器(ROM/EPROM/Flash,可外扩至64KB);128字节的数据存储器(RAM,可再外扩64KB);特殊功能寄存器SFR。I/O口和其他功能单元,4个并行I/O口;2个16位定时计数器:

31、1个全双工异步串行口;中断系统(5个中断源,2个优先级)。3.3.1 80C51单片机的主要特性1. 一个8 位的微处理器(CPU)。2. 片内数据存储器RAM(128B),用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据等,SST89 系列单片机最多提供1K 的RAM。3. 片内程序存储器ROM(4KB),用以存放程序、一些原始数据和表格。但也有一些单片机内部不带ROM/EPROM,如8031,8032,80C31 等。目前单片机的发展趋势是将RAM 和ROM 都集成在单片机里面,这样既方便了用户进行设计又提高了系统的抗干扰性。4. 四个8 位并行IO 接口P0P3,每个口

32、既可以用作输入,也可以用作输出。5. 两个定时器计数器,每个定时器计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。为方便设计串行通信,目前的52 系列单片机都会提供3 个16 位定时器/计数器。6. 五个中断源的中断控制系统。现在新推出的单片机都不只5 个中断源。7. 一个全双工UART(通用异步接收发送器)的串行IO 口,用于实现单片机之间或单机与微机之间的串行通信。8. 片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。最高允许振荡频率为12MHz。SST89V58RD 最高允许振荡频率达40MHz,因而大大的提高了

33、指令的执行速度。3.3.2 80C51单片机管脚图3.11 80C51单片机管脚时钟电路引脚XTAL1 和XTAL2:XTAL2(18 脚):接外部晶体和微调电容的一端;在8051 片内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体固有频率。若需采用外部时钟电路时,该引脚输入外部时钟脉冲。XTAL1(19 脚):接外部晶体和微调电容的另一端;在片内它是振荡电路反相放大器的输入端。在采用外部时钟时,该引脚必须接地。控制信号引脚RST,ALE,PSEN 和EA:RST/VPD(9 脚):RST 是复位信号输入端,高电平有效。当此输入端保持备用电源的输入端。当主电源Vcc 发生故障,降低到低

34、电平规定值时,将5V 电源自动两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。RST 引脚的第二功能是VPD,即接入RST 端,为RAM 提供备用电源,以保证存储在RAM 中的信息不丢失,从而合复位后能继续正常运行。ALE/PROG(30 脚):地址锁存允许信号端。当8051 上电正常工作后,ALE 引脚不断向外输出正脉冲信号,此频率为振荡器频率fOSC 的1/6。CPU 访问片外存储器时,ALE 输出信号作为锁存低8 位地址的控制信号。平时不访问片外存储器时,ALE 端也以振荡频率的1/6 固定输出正脉冲,因而ALE 信号可以用作对外输出时钟或定时信号。此引脚的第二功能PR

35、OG 在对片内带有4KB EPROM 的8751 编程写入(固化程序)时,作为编程脉冲输入端。PSEN(29 脚):程序存储允许输出信号端。在访问片外程序存储器时,此端定时输出负脉冲作为读片外存储器的选通信号。此引肢接EPROM 的OE 端。PSEN 端有效,即允许读出EPROMROM 中的指令码。EA/Vpp(31 脚):外部程序存储器地址允许输入端/固化编程电压输入端。当EA 引脚接高电平时,CPU只访问片内EPROM/ROM并执行内部程序存储器中的指令,但当PC(程序计数器)的值超过0FFFH(对8751/8051 为4K)时,将自动转去执行片外程序存储器内的程序。当输入信号EA 引脚接

36、低电平(接地)时,CPU 只访问外部EPROM/ROM 并执行外部程序存储器中的指令,而不管是否有片内程序存储器。对于无片内ROM 的8031 或8032,需外扩EPROM,此时必须将EA 引脚接地。此引脚的第二功能是Vpp 是对8751 片内EPROM固化编程时,作为施加较高编程电压(一般12V21V)的输入端。输入/输出端口P0/P1/P2/P3:P0口(P0.0P0.7,3932 脚):P0口是一个漏极开路的8 位准双向I/O口。作为漏极开路的输出端口,每位能驱动8 个LS 型TTL 负载。当P0 口作为输入口使用时,应先向口锁存器(地址80H)写入全1,此时P0 口的全部引脚浮空,可作

37、为高阻抗输入。作输入口使用时要先写1,这就是准双向口的含义。在CPU 访问片外存储器时,P0口分时提供低8 位地址和8 位数据的复用总线。在此期间,P0口内部上拉电阻有效。P1口(P1.0P1.7,18 脚):P1口是一个带内部上拉电阻的8 位准双向I/O口。P1口每位能驱动4 个LS 型TTL 负载。在P1口作为输入口使用时,应先向P1口锁存地址(90H)写入全1,此时P1口引脚由内部上拉电阻拉成高电平。P2口(P2.0P2.7,2128 脚):P2口是一个带内部上拉电阻的8 位准双向I/O口。P1口每位能驱动4个LS 型TTL 负载。在访问片外EPROM/RAM 时,它输出高8 位地址。P

38、3口(P3.0P3.7,1017 脚):P3口是一个带内部上拉电阻的8 位准双向I/O口。P3口每位能驱动4个LS型TTL负载。P3口与其它I/O 端口有很大的区别,它的每个引脚都有第二功能,如下:P3.0:(RXD)串行数据接收。P3.1:(RXD)串行数据发送。P3.2:(INT0#)外部中断0输入。P3.3:(INT1#)外部中断1输入。P3.4:(T0)定时/计数器0的外部计数输入。P3.5:(T1)定时/计数器1的外部计数输入。P3.6:(WR#)外部数据存储器写选通。P3.7:(RD#)外部数据存储器读选通。3.3.3 80C51单片机的中断系统80C51系列单片机的中断系统有5个

39、中断源,2个优先级,可以实现二级中断服务嵌套。由片内特殊功能寄存器中的中断允许寄存器IE控制CPU是否响应中断请求;由中断优先级寄存器IP安排各中断源的优先级;同一优先级内各中断同时提出中断请求时,由内部的查询逻辑确定其响应次序。3.3.4 80C51单片机的定时/计数器在单片机应用系统中,常常会有定时控制需求,如定时输出、定时检测、定时扫描等;也经常要对外部事件进行计数。80C51单片机内集成有两个可编程的定时/计数器:T0和T1,它们既可以工作于定时模式,也可以工作于外部事件计数模式,此外,T1还可以作为串行口的波特率发生器。3.3.5 80C51单片机的最小系统单片机最小系统是单片机能工

40、作的最基本电路,接好最小系统对于做实物来说极其重要。如图3.123.12 单片机及其最小系统单片机最小系统如图所示,主要由以下六部分组成(1)AT89S52单片机:(2)I/O口:其中有4个双向的8位并行I/O端口,分别记作P0、P1、P2、P3,都可以用于数据的输出和输入,其中有些I/O口具有第二功能。(3)时钟电路:时钟电路用于产生MCS-52单片机工作所必须的时钟控制信号,内部电路在时钟信号的控制下,严格地按时序指令工作。(4)复位电路:MCS-51的复位是由外部的复位电路来实现。采用最简单的外部按键复位电路。按键自动复位是通过外部复位电路的来实现的.(5)EA脚:把EA脚接高电平,单片

41、机访问片内程序存储器。(6)单片机的第20和40引脚为单片机的GND和VCC,为单片机供电,必须接好3.4系统总体电路图总体电路图如仿真图3.13所示。温度传感器连接在P3.3口。K2为显示报警温度键,连接P1.4口。K1为正常显示温度,连接P1.7口。按下K1则显示器显示当前温度,按下K2则会显示所设定的温度上下限值。P2.3和P2.6分别为高温和低温闪烁,当所测得的结果高于或者低于所设置的温度上下限时就会闪烁报警,同时连接于P3.7的蜂鸣器就会报警。图3.13 总体电路图4.软件设计简介4.1C语言简介C语言是嵌入式系统中一种通用语言,其数据类型及运算符丰富,代码率高,较好的移植性及丰富的

42、功能函数,并具有良好的程序结构,适用于各种应用的程序设计,是目前嵌入式系统中使用较广泛的编程语言。嵌入式系统中的使用的C语言和ANSI标准的C语言比较,其语法规则是相同的,但由于它控制嵌入式应用系统硬件,而不同的嵌入式系统核心控制部件是不同的,因此,不同的嵌入式系统的C语言采用不同的C编译器。51单片机的语言采用51编译器。由C51产生的目标代码短并且运行速度快,所需空间小,符合C语言的ANSI标准,生成的代码遵循INTEL目标文件格式。应用C51编程具有以下优点:C51管理内部寄存器和存储器的分配,编程时,无须考虑不同存储器的寻址和数据类型等细节问题;程序由若干函数组成,具有良好的模块化结构

43、;有丰富的子程序库可直接引用,从而大大减少用户编程的工作量;C语言和汇编语言可以交叉使用,汇编语言程序代码短,运行速度快,但复杂编程耗时。如果用汇编语言编写与硬件有关的部分程序,用C语言编写与硬件无关的运算部分程序,就可以充分发挥两种语言的特长,可以提高开发效率。编写好的C语言程序编译成功后,生成HEX文件,通过ISP下载到单片机即可运行4.2 程序设计整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。二是执行软件(子程序),它是用来完成各

44、种实质性的功能如测量、计算、显示、通讯等。每一个执行软件也就是一个小的功能执行模块。这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义。各执行模块规划好后,就可以规划监控程序了。首先要根据系统的总体功能选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。主程序流程:初始化调用LCD初始化子程序调用设置温度报警值程序调用读取温度子程序延时K1,K2有无按下K1按下K2按下读取温度值读取温度值判断是否超温并报警jing警调用显示当前温度子程序调用显示报警上下限子程序图4.1 主程序流程图DS18B20初始化流程图:图4.2 DS18B2

45、0初始化流程图5.电路仿真5.1 Proteus软件介绍7Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件

46、、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。该软件的特点是:1. 实现了单片机仿真和SPICE电路仿真相结合,具有模拟电路仿真、数字电路仿真、各种单片机(51系列、AVR、PIG等常用的MCU)及其外围电路(如LCD、RAM、ROM、键盘、LED、A/D、D/A)组成的系统仿真。2. 提供了多种虚拟仪器。如示波器

47、、逻辑分析仪、信号发生器等,调试非常方便。3. 提供软件调试功能,同时支持第三方的软件编译和调试环境,如Keil等软件。4. 具有强大的原理图绘制功能。5. 独特的单片机协同仿真功能(VSM)支持主流的CPU类型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU类型随着版本升级还在继续增加,如即将支持CORTEX、DSP处理器。6.编译及调试:支持单片机汇编语言的编辑/编译/源码级仿真,内带8051、AVR、PIC的汇编编译器,也可以与第三方集成编译环境(如IAR、Keil和Hitech)结合,进行高级语言的源码级仿真和调试。7.绘制原理图:绘制原理图要在原理图编辑窗口中的蓝色方框内完成。原理图编辑窗口的操作是不同于常用的WINDOWS应用程序的,正确的操作是:用左键放置元件;右键选择元件;双击右键删除元件;右键拖选多个元件;先右键后左键

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1