《简易水温控制系统.doc》由会员分享,可在线阅读,更多相关《简易水温控制系统.doc(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 目录第1章 绪论2 前言2 方案设计与论证2第2章 硬件系统设计3 系统设计方案3 硬件系统各功能模块设计4 单片机最小系统4 温度检测电路5 键盘与显示电路8 串口通信接口电路10 可控硅调功控温电路11 掉电检测与保护电路13 本章小结:16第3章 系统软件设计16 系统开发工具软件介绍16 温度采集程序设计16 温度积分分离PID控制程序设计18 显示与键盘程序设计19 显示扫描程序设计19 键盘扫描程序设计20 单片机通信程序设计21 单片机串行口原理21 单片机串行口初始化22 单片机串行口发送子程序设计23 单片机串行口接收子程序设计24 本章小结24第4章 系统的硬件电路图26
2、简易水温控制系统第1章 绪论1.1 前言 温度控制是很多企业常见的控制装置,如机械行业的零件热处理、塑料制品的注塑机上,粉末冶金行业烧结炉、还原炉等都有温度控制问题,尤以热处理加热炉的温度控制最为典型。热处理加热炉是工厂热处理和高校热处理实验广泛使用的加热设备。现在所使用的炉温控制方法很多仍是陈旧的动圈式两位指示调节仪(如XCT101 型动圈式两位指示调节仪) 。这种炉温控制方法炉温波动范围大,保温时间靠人工计时,加热速度不能控制,温度不能全程动态跟踪显示。这样的控制和显示方式不能满足日益发展的工业需求。高校的发展同样要求用现代化手段提升现有的实验设备,为学生提供更多更好、更现代化的实验条件。
3、因此,我们就学校热处理实验用电阻加热炉进行现代化改革,将PC 机强大的软硬件资源、友好的人机界面和80C196单片机优秀的实时控制功能、灵活的编程能力有机的结合起来,开发出热处理微机控制系统,实现温度控制的自动化。不但能用于学校的实验教学及其它一些研究课题的开发,同样能用于工厂热处理、注塑机多点温度的控制,提高工业企业自动化水平。1.2 方案设计与论证根据题目的要求,我们提出了以下的两种方案:(1)、方案一:此方案是采用传统的模拟控制方法(方案框图如图1-1-1),选用模拟电路,用电位器设定给定值,反馈的温度值与给定的温度值比较后,决定加热或者不加热。器特点是电路简单,易于实现,但是系统所得结
4、果的精度不高并且调节动作频繁,系统静差大,不稳定。系统受环境的影响大,不能实现复杂的控制算法,而且不易实现对系统的控制及对温度的显示,人机交换性能差。 图1-1-1模拟控制框图(2)、方案二:采用单片机89s51为核心。采用了温度传感器DS18B20采集温度变化信号,并通过单片机处理后去控制温度,使其达到稳定。使用单片机具有编程灵活,控制简单的优点,使系统能简单的实现温度的控制及显示,并且通过软件编程能实现各种控制算法使系统还具有控制精度高的特点。比较两种方案,方案二明显的改善了方案一的不足及缺点,并具有控制简单、控制温度精度高的特点。因此本设计电路采用方案二。第2章 硬件系统设计2.1 系统
5、设计方案控制系统的总体硬件结构 水温装置AT89S51PC机DS18B20显示部分键盘图2-1控制系统的总体硬件结构图控制系统的总体硬件结构图如图2-1。本系统采用AT89S52单片机作为下位机,温度检测与控制。PC机为上位机,与单片机实时通信,实现参数显示、修改、报警等功能。2.2 硬件系统各功能模块设计2.2.1 单片机最小系统AT89S52是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4k bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器既可在线编程(ISP
6、)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。由于AT89S52是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器。器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决
7、方案。因此,本系统使用AT89S52单片机作为微处理器,AT89S52引脚图如图2-2。它主要具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 AT89S52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作掉电模式冻结振荡器,因而可以保存RAM的数据,停止芯片其它功能直至外中断激活或硬
8、件复位。下面列出了AT89S52的一些性能参数:与MCS-51产品指令系统完全兼容 4k字节在系统编程(ISP)Flash闪速存储器1000次擦写周期的工作电压范围全静态工作模式:0Hz33MHz三级程序加密锁1288字节内部RAM32个可编程IO口线2个16位定时计数器6个中断源全双工串行UART通道低功耗空闲和掉电模式中断可从空闲模唤醒系统看门狗(WDT)及双数据指针掉电标识和快速编程特性灵活的在系统编程(ISP字节或页写模式)图2-2 AT89S52引脚图图2-3微处理器电路图整个单片机系统接口分配情况如下:P0口复用于传输LED位数据以及。2.2.2 温度检测电路 DALLAS最新单线
9、数字温度传感器DS18B20简介新的“一线器件”体积更小、适用电压更宽、更经济 Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20、 DS1822 “一线总线”数字化温度传感器 同DS1820一样,DS18B20也 支持“一线总线”接口,测量温度范围为 -55C+125C,在-10+85C范围内,精度为0.5C。DS1822的精度较差为 2C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量
10、,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V5.5V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。 DS18B20、 DS1822 的特性 DS18B20可以程序设定912位的分辨率,精度为0.5C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20的性能是新一代产品中最好的!性能价格比也非常出色! DS1822与 DS18B20软件兼容,是DS18B20的简化版本。省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为2C,适用于对性能要求不高
11、,成本控制严格的应用,是经济型产品。 继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。 DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如下: 图2-4 DS18B20的管脚排列图 DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。 光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻RO
12、M的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。 DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以/LSB形式表达,其中S为符号位。表2-1 12位转化后得到的12位数据 这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的
13、数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。例如+125的数字输出为07D0H,+的数字输出为0191H,的数字输出为FF6FH,-55的数字输出为FC90H。温度检测控制电路图见图2-5。图2-5温度检测控制电路图DS1820使用中注意事项 DS1820虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题: (1)较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则
14、将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采用汇编语言实现。 (2)在DS1820的有关资料中均未提及单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个DS1820,在实际应用中并非如此。当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。 (3)连接DS1820的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常
15、通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS1820进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。 (4)在DS1820测温程序设计中,向DS1820发出温度转换命令后,程序总要等待DS1820的返回信号,一旦某个DS1820接触不好或断线,当程序读该DS1820时,将没有返回信号,程序进入死循环。这一点在进行DS1820硬件连接和软件设计时也要给予一定的重视。 测温电缆线建议采用屏蔽4芯双绞线,其中一对线接地线与信号线,另一组接VCC和地线,屏蔽层在源端单点接地。2.2.3 键盘与显示电路为了方便的修改控制参数,系统设计了键盘与显示
16、电路。显示器的扫描方式一般有静态显示和动态显示,对于多位LED数码显示器,通常采用动态扫描方法,即逐个地循环地点亮各位显示器。这样虽然在任一时刻只有1位显示器被点亮,但是由于人眼具有视觉残留效应,看起来与全部显示器持续点亮的效果基本一样(在亮度上要有差别)。静态显示显示多位LED时,硬件电路结构比较复杂,为简化电路结构,电路中没有采用译码器,直接用单片机程序进行编码输出,这样使硬件结构清晰。图2-6显示电路此电路中的LED数码显示器是8段共阳极接法,所以显示0、1、2、3、4、5、6、7、8、9时分别对应编码C0H、F9H、A4H、B0H、99H、92H、82H、F8H、80H、90H,要显示
17、小数点时,只需再将相应的编码的最高位置0。由于LED显示器的段电流为8mA左右,所以不能由单片机直接驱动,因此接上驱动器74LS245 八双向总线收发器,而LED显示器的公共端的驱动电流较大,8段全亮时需约4060mA。因此在单片机与LED的公共端之间接上三极管做为电流驱动器以提高驱动能力。此三极管采用的是PNP型。表2-2 74LS245输入与输出键盘采用非编码键盘结构,目的为了简化硬件电路,图27和2-8表示了此4*4行列式键盘的结构示意图。4*4表示有4根行线和4根列线,在每根行线和列线的交叉点上均匀分布1个单触点按键,共16个按键。其中定义09十个数字键,小数点,开/关键,显示参数键,
18、设定值键。 P1.5 P1.0 第一行P1.1 第二行P1.2 第三行P1.3 第四行第1列 第2列 第3列 第4列图27键盘示意图图2-8键盘电路2.2.4 串口通信接口电路图2-9 RS-232电平转换和PC机的接口电路单片机和PC机的串行通信一般采用RS-232、RS-422或B3-485总线标准接口,也有采用非标准的20nnJL电流环的。为保证通信的可靠,在选择接口时必须注意:(1)通信的速率;(2)通信距离:(3)抗干扰能力;(4)组网方式。本次设计采用RS-232接口与单片机通信的方法。图2-14为RS-232电平转换和PC机的接口电路。RS-232是早期为公用 网络数据通信而制定
19、的标准,其逻辑电平与ITLCMOS电平完全不同。逻辑“0”规定为+5+15V之间电平,逻辑“1”规定为-5-15V之间电平。由于RS-232发送和接收之间有公共地,传输采用非平衡模式,因此共模噪声会耦合到信号系统中,其标准建议的最大通信距离为15米但实际应用中我们在300bits的速率下可以达到300米。RS-232规定的电平和一般微处理器的逻辑电平不一致,必须进行电平转换,实现逻辑电平转换这里通过采用MCl488和MCl489芯片的转换接口 MCl488和MCl489芯片为早期的RS-232至TTL逻辑电平的转换芯片,如图2-9。2.2.5 可控硅调功控温电路可控硅调功控温具有不冲击电网,对
20、用电设备不产生干扰等优点,是一种广泛应用的控温方式。调功控温指的是在给定周期内控制可控硅的导通时间,从而改变加热功率来实现温度调节,设采取(控制)周期为T,在T 周期内工频交流电的半周波长为N ,如全导通时额定加热功率为PH,则实际平均加热功率P与T 周期内实际导通的半周波数n成正比,即P=n*PH/N.采用可控硅进行功率调节: 方案一:采用移相触发方式调节功率,它实际上是控制可控硅的导通角,达到调节功率的目的,此方式易造成电磁干扰且电路复杂。方案二:过零触发方式,它把可控硅导通的起始点限制在电源电压过零点,从而大大降低了谐波分量。因而本设计采用该方式。技术关键:获取工频交流电源的过零触发脉冲
21、,作为触发双向可控硅的同步脉冲;将控制算法得到的控制量变为可控硅在周期内的导通时间;隔离工频交流电源强电对单片机系统和控制电路弱电的干扰。可控硅调功控温电路如图2-10所示: 图210可控硅调功控温电路图中TL494为双端脉宽调制器,利用其脉宽调制功能构成脉冲形成及脉宽调制电路,其功能框图及引脚图如图2-11所示: 图211 TL494功能框图及引脚图将该芯片的5,6脚分别接振荡器的电阻,电容,通过改变电阻,电容的大小,即可调节振荡器频率。振荡器产生的锯齿形振荡波被送到PWM比较器的反相输入端,脉冲调宽电压送到PWM 比较器的同相输入端,通过PWM 比较器的比较,输出一定宽度的脉冲波,当调宽电
22、压变化时,TL494输出的脉冲宽度随之改变,从而改变开关管的导通时间,达到调节和稳定输出电压的目的。脉冲调宽电压可由3脚直接送入的电压来控制,也可以分别从两个误差放大器输入端送入,通过比较,放大,经隔离二极管输出到PWM 比较器的正相输入端,此时3脚应接RC网络,提高整个系统的稳定性,本设计将两个放大器的输入端和反馈接地,将3脚直接接控制电压,这时比较器A7输出为一定频率的脉冲信号,将13脚接地,则触发器不起作用,所以改变控制电压的大小即可改变10脚输出脉冲的宽度。 整个工作过程为:控制量经D/A转换,得到模拟信号送给调功器,调功器通过控制可控硅导通时间和通断时间的比例来调节输出功率。来自D/
23、A转换器的模拟控制信号经射随器传递到TL494的第3脚控制端并与TL494内部的锯齿波发生器产生的锯齿波信号进行比较,产生相应的脉宽信号,实现导通周波数控制,达到精确控温的目的,工作过程波形图如图2-12所示。 图212工作过程波形图新型器件MOC3041的使用使调功器电路变得非常简练,它集光电隔离,过零检测功能于一身,具有体积小,功耗低,抗干扰能力强,无噪声等优点,图2-13为其构成的可控硅基本驱动电路。IFT16R115TRSAC2过零检测4CS3RG RL图213可控硅基本驱动电路RS,CS为吸收电路,并接在功率可控硅的阳极与阴极之间,起保护作用。(负载若为感性,可控硅通断时会产生较大的
24、反电动势,可能引起可控硅的损坏,在相关电路上并联吸收电路后,就能削弱高的瞬时电压,从而保护可控硅)。 经验公式: CS=(24)*It*10-3(VF) RS=105O欧R11为触发器输出限流电阻,其电阻由交流电网电压峰值及触发器输出允许值重复冲击电流峰值(1A)决定,取51欧。RG:晶闸管的门极电阻,防止误触发,提高抗干扰能力,一般取300500欧。 2.2.6 掉电检测与保护电路在工业控制中,掉电事件可能产生严重后果,本系统能及时检测到交流电源下降,在电路动作的滞后时间内,将断点状态保护在后备电池供电的存储器内,来电后实现断点补偿运行。 (1)掉电检测电路采用LM311比较器,其引脚功能外
25、形结构如图1-14所示,它是一种应用较广泛的集成电压比较器,具有输入偏流小,电压范围宽(从标准的15V电源到单一的+5V电源均能正常工作)。 图114 LM311引脚功能外形结构整个掉电检测电路如图1-15所示,将LM311设为射极输出方式。以3V为临界,形成外部中断的触发脉冲,将输入电压与3V 参考电压相比较,当输入VI大于3V 时,输出为高电平;而当输入小于3V 时,输出为低电平。凌阳单片机的B口除具有常规的输入/输出功能外,还具有特殊功能,其中IOB2位可为外部中断源信号的输入,IOB2位根据输入的电平来判断是否发出中断请求。 图 115 掉电检测电路及其输出 (2)掉电保护电路该电路如
26、图1-16所示,当外部VCC=+5V时,比较器LM393反相端电压高于正相端,LM393输出低电平。故原片选信号低电平有效地加到6264的20脚,同时26脚为高电平,6264进行正常的读写操作,而当VCC下降到一定程度时,比较器反相端电压低于正相端时,LM393输出为高电平。故20脚为高电平,26脚为低电平,此时6264的VCC 由后备3V干电池供电,从而对所存数据进行保护。 图116掉电保护电路选用HITACHI HM6264B ,其静态RAM的容量为64K位,6264的引脚图如下:其中CS1,CS2都为片选信号,WE控制数据的写入,OE控制信号的输出,图117 6264引脚图其内部结构图及
27、控制表如下:图118 6264内部结构图表1-3 6264控制表WECS1CS2OEMODEVCC ,CurrentI/O PINHNOT SELECTED (POWER DOWN)Isb,Isb1HighZLNOT SELECTED (POWER DOWN)Isb,Isb1HighZHLHHOUTPUT DISABLEIccHighZHLHLREADIccDoutLLHHWRITEIccDinLLHLWRITEIccDin2.3 本章小结:本章介绍水温控制系统的硬件电路,其电路主要由五大部分组成:温度检测电路,可控硅调功控温电路,掉电检测与保护电路,键盘/显示电路,与上位机通讯电路。电路设计
28、遵循简单实用,易于实现,安全可靠等原则。第3章 系统软件设计由于系统的复杂性,在软件设计部分只设计了温度采集与控制模块、键盘与显示模块以及单片机通信模块的程序。3.1 系统开发工具软件介绍本系统软件即单片机程序设计开发工具采用Keil C51支持的C语言编写,Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译
29、后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。Keil C51并提供了强大的调试功能,uVision2允许用户在编辑时设置程序断点(甚至在源代码未经编译和汇编之前)。用户启动V2调试器之后,断点即被激活。断点可设置为条件表达式,变量或存储器访问,断点被触发后,调试器命令或调试功能即可执行。在属性框(attributes column)中可以快速浏览断点设置情况和源程序行的位置。代码覆盖率信息可以让你区分程序中已执行和未执行的,用户可以在编辑器中选中变量来观察其取值。双层窗口显示,可进行调整
30、当前函数的局部变量、用户在两个不同watch窗口页面上的自定义变量、堆栈调用(call stack)页面上的调用记录(树)(call tree) 、不同格式的四个存储区。由于此开发工具提供的诸多便利,可使开发周期缩短,因此选此工具做系统软件设计。3.2温度采集与控制程序设计。3.1.1 温度采集程序设计根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。当主机收到DS18B20的响应信号后,便可以发出操作命令,这些命令可以分为ROM
31、命令和RAM命令两种。CPU的操作过程如图3-1所示。由于DS18B20与单片机间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。操作时序主要有初始化时序、读时序和写0时序和写1时序四种,如图3-2所示。在温度测量仪表中,对DS18B20的操作主要是复位、读数据和写数据三种,而两种操作又都是按位进行的,所以首先应该按照DS18B20的时序要求,编写读、写时间片的程序,其流程图如图3-3所示。图3-1 DS18B20操作过程图3-2 DS18B20操作时序图3-3 DS18B20操作程序流程图3.1.2 温度积分分离PID控制程序设计在普
32、通PID控制中,引入积分环节的目的主要是为了消除静差,提高控制精度。但在过程启动、结束或大幅度增减设定时,短时间内系统输出有很大的偏差,会造成PID运算的积分积累,致使控制量超过执行机构可能允许的最大动作范围对应的极限控制量,引起系统较大的超调。积分分离是当被控量与设定值偏差较大是,取消积分作用,以免由于积分作用使系统稳定性降低,超调量增大;当被控量接近设定值时,引入积分控制,以便消除静差,提高控制精度。积分分离算法可表示为:式中,为采样时间,为积分项的开关系数:对于温度传递函数选择为,采样时间为20s,延迟4个采样时间,即80s, 程序流程图如图3-4所示。图3-4 温度单片机PID控制流程
33、图3.2 显示与键盘程序设计3.2.1 显示扫描程序设计根据硬件电路已知,P0作为LED位控制线输出,P2.0P2.5分别对应各LED公共场端输出。采用动态扫描显示的程序流程图见图2-5。扫描过程为:首先初始化LED标识index,将index设为第一个LED数码管,将index指向的数码管的显示编码从显示缓冲区bufferindex读出,并将这个值送入P0口即送入LED位控制线,然后将数字1按位左移index位并将其值送入P2口,即将index指向的LED数码管的公共场端置1,未指入的LED数码管的公共场端置0。然后等待1ms左右以将index指入的LED数码管点亮。这样一个数码管就已扫描好
34、了,由于有6个数码管,所以接着判断index是否已完成指向最后一个数码管,即判断index是否大于5,如果条件不成立,则将index加1,使其指向下一个LED数码管,并按以前的步骤点亮这个码管,直到条件成立。如果条件成立表示所有数码管已扫描了一遍,这次扫描工作已结束。图3-5 动态扫描显示的程序流程图3.2.2 键盘扫描程序设计键盘扫描过程为:首先调用全扫描子程序,检查有无闭合键,若无键闭合,则结束这次键盘扫描;若有键闭合,则先消抖。这里可通过执行其它子程序来达到延时消抖的目的。然后再次检查有无键闭合,若无键闭合,则结束这次键盘扫描;若有键闭合,则进行逐行扫描,以判别闭合键的具体位置。在找到闭
35、合键盘的具体位置以后,再求出所对应的键值。其计算方法通常有两种:一种是采用特定的计算公式,直接由闭合键的行号和列号求得其键值;另一种是先求出键的特征值,然后再通过查表求得键值。前者方法简单,速度较快,但键的排列位置固定,不能随意更改。后者速度较慢,但键的位置可任意设定。计算出闭合键的键值后,再判断键释放否?若键未释放,则等待;若键已释放,则再延时消抖,然后将键值写入键盘输入缓冲区以便其它子程序处理。流程图如图3-6。图3-6 键盘扫描程序流程图3.3 单片机通信程序设计3.3.1 单片机串行口原理单片机内部有1个功能很强的全双工串行口,可同时发送和接收数据。它有4种工作方式,可供不同场合使用。
36、波特率由软件设置,通过片内的定时/计数器产生。接收、发送均可工作在查询方式或中断方式,使用十分灵活。串行口有两个独立的接收、发送缓冲器SBUF(属于特殊功能寄存器)。1个用作发送,1个用作接收。发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,两者共享1个字节地址(99H)。串行口的结构如图3-7所示。在发送时,CPU由1条写发送缓冲器的指令把数据(字符)写入串行口的发送缓冲器SBUF(发)中,然后从TXD端1位1位地向外发送。与此同时,接收端RXD也可1位1位地接收数据,直到收到1个完整的字符数据后通知CPU,再用1条指令把接收缓冲器SBUF(收)的内容读入累加器。图3-7 单片机串行
37、口的原理结构图3.3.2 单片机串行口初始化图3-8单片机串行口初始化子程序流程图单片机在使用串行口通信时首先要先进行串口初始化工作,即首先设置串行口为工作方式1并允接收,根据串行口控制寄存器SCON的原理,设置SCON为0x50,即串行口被设置为波特率可变的8位异步通信接口,然后设置定时器T1为方式2,根据定时器工作方式寄存器TMOD的原理,设置TMOD为0x20,此时定时器T1已被设为可自动重装入的8位定时/计数器,接着设置串行口的波特率以便能与PC机在同一波特率下进行通信,初始时设置波特率为1200,因为在方式1下有:(1) 定时器T1的溢出率=波特率*32/2smod =1200*32
38、/20=38400(2) 定时器T1的初值X=2n-(fosc/(T1的溢出率*12))=28-( 11.0592*106/(38400*12))= 232=0xE8按此可分别计算出波特率为1200,2400,4800,9600时,分别对应定时器T1的初值为0x E8,0xF4,0Xfa,0xFD。设置完波特率之后开总中断和串行口中断并启动定时器T1,此时串行口已初始化完成,进入工作状态。流程图如图3-8。3.3.3 单片机串行口发送子程序设计图3-9单片机串行口发送子程序流程图根据原理图可知发送数据时将数据送入累加器A后,接着再将累加器A的传值送入发送缓冲器SBUF即可发送一个数据,发送一个
39、数据之后由于中断标志TI被置1,所以只要等发送中断标志TI是否被置1来判定发送缓冲器已向外输出数据完成,之后要清除发送中断标志TI。由于发送时一般是多个数据的发送,所以要检查是否全部数据已发送,如未完成则接着发送下一个数据,直到完成全部数据发送则结束这个子程序。流程图如图3-9。3.3.4 单片机串行口接收子程序设计图3-10单片机串行口接收子程序流程图接收数据是通过串口中断来实现,由于串口中断还可由发送中断引发,所以要判断是否为接收中断。当单片机接收缓冲器SBUF接收到数据后,由内部硬件使用RI置位,向CPU请求中断,进入中断服务程序。所以接收子程序只要从接收缓冲器SBUF把数据读入累加器,
40、之后将累加器的数据送入接收缓冲区buffer数组中给其它子程序处理,最后要清除接收中断标志,因为该标志不会由硬件自动清除,需软件清除。流程图如图3-10。3.4 本章小结本章借助Keil C51,对温度采集与控制模块、键盘与显示模块以及单片机通信模块的程序进行了设计,虽然在功能实现的过程中遇到了很多的困难,对一些算法还不是很熟悉,但基本实现了系统要求的各种功能。在设计程序时必须事先了解单片机的一些基本原理,比如它的输入输出端口以及各功能引脚的位置和所接的电位。只有在以上的基础上才有可能对单片机进行编程。因为是第一次使用KEIL C51,在使用KEIL C51软件的时候也会经常遇到一些困难,对文
41、件的生成机制不是很熟悉,对一些设置还不是很了解,还需要进一步的学习。第4章 系统的硬件电路图 总结 本文通过对水温的监测和控制的研究,基本上了解了该系统的实现过程。通过近三个月的学习,对工业上比较实用的一些工程软件有了一定的了解,同时也学到了一些简单的编者按:大地涵藏万物,孕育生命,被誉为人类的母亲。但是,近年来,伴随我国工业化的快速发展,大地不断遭到各种污染的伤害。仅仅因土壤污染防治不足、环境监管乏力,导致的食品药品安全事件就频频发生,2008年以来,全国已发生百余起重大污染事故。目前我国大地污染现状严峻,成因十分复杂,形成令人扼腕的“大地之殇”。经济参考报以此为主题,探寻大地污染背后所触及
42、的我国农业、工业、城市化进程中关于生存与发展的一系列深层矛盾与两难抉择,并以“大地之殇”系列报道的形式在“深度”版推出,敬请关注。大地之殇一黑土地之悲占全国粮食总产五分之一的东北黑土区是我国最重要的商品粮基地,但一个并不为多数人了解的严峻事实是,支撑粮食产量的黑土层却在过去半个多世纪里减少了50%,并在继续变薄,几百年才形成一厘米的黑土层正以每年近一厘米的速度消失。照此速度,部分黑土层或将在几十年后消失殆尽,东北这一中国最大粮仓的产能也将遭受无法挽回的损失。记者 孙彬 管建涛 连振祥 吉哲鹏 娄辰 李松南京 哈尔滨 兰州 昆明 济南 重庆报道毒土:GDP至上的恶果当前,我国土壤污染出现了有毒化
43、工和重金属污染由工业向农业转移、由城区向农村转移、由地表向地下转移、由上游向下游转移、由水土污染向食品链转移的趋势,逐步积累的污染正在演变成污染事故的频繁爆发。日益加剧的污染趋势可能还要持续30年“目前,我国土壤污染呈日趋加剧的态势,防治形势十分严峻。”多年来,中国土壤学会副理事长、中国农业科学院研究员张维理教授一直关注我国土壤污染问题“我国土壤污染呈现一种十分复杂的特点,呈现新老污染物并存、无机有机污染混合的局面。”“现在我国土壤污染比各国都要严重,日益加剧的污染趋势可能还要持续30年。”中国土壤学专家,南京农业大学教授潘根兴告诉经济参考报记者,这些污染包括随经济发展日益普遍的重金属污染、以
44、点状为主的化工污染、塑料电子废弃物污染及农业污染等。国土资源部统计表明,目前全国耕种土地面积的10%以上已受重金属污染。环保部南京环科所研究员单艳红说,华南部分城市约有一半的耕地遭受镉、砷、汞等有毒重金属和石油类有机物污染;长三角有的城市连片的农田受多种重金属污染,致使10%的土壤基本丧失生产力,成为“毒土”。农药化肥污染同样严重。张维理说,我国农药使用量达130万吨,是世界平均水平的2.5倍。黑龙江农业监测站杜桂德站长说:“目前,农药和化肥的实际利用率不到30%,其余70%以上都污染环境了。”云南农业大学测算,每年大量使用的农药仅有0.1%左右可以作用于目标病虫,99.9%的农药则进入生态系
45、统,造成大量土壤重金属、激素的有机污染。“不仅污染加重,而且还在转移扩散。”潘根兴说,当前,我国土壤污染还出现了有毒化工和重金属污染由工业向农业转移、由城区向农村转移、由地表向地下转移、由上游向下游转移、由水土污染向食品链转移的趋势,逐步积累的污染正在演变成污染事故的频繁爆发。2008年以来,全国已发生百余起重大污染事故,包括砷、镉、铅等重金属污染事故达30多起。其中浏阳镉污染事件不仅污染了厂区周边的农田和林地,还造成2人死亡,500余人镉超标。频繁爆发的污染事故损失惨重,不仅增加了环境保护治理成本,也使社会稳定成本大增,而土壤污染修复所需的费用更是天价。常州农药厂土壤修复需2亿元,无锡胡埭电镀厂重金属铬污染修复费用890万元,苏州化工厂需数亿至数十亿元。每年因土壤污染致粮食减产100亿公斤