郑州轻工业学院课 程 设 计 任 务 书题目 数字温度检测控制装置 专业 学号 姓名 主要内容、基本要求、主要参考数据等:主要内容:1、 查阅与课题设计内容相关的科技文献数据;2、 熟悉数字温度检测控制装置的结构、功能和工作过程;3、 确定系统硬件及软件设计方案 ;4、 进行电气原理图的绘制和微控制器内部程序的编写; 5、 完成课程设计说明书一份基本要求:1、设计方案符合课题要求、结构严谨、功能完善;;2、系统结构模型绘制规范、标注简约明确;3、系统控制电气原理图绘图准确、布局合理;4、微控制器内部程序主要功能基本调试通过;5、课程设计说明书严格按照“课程设计报告撰写格式”书写主要参考数据1、《单片微型计算机原理及应用》,西安电子科技大学出版社,张毅坤主编;2、《单片机原理与接口技术》,北京邮电大学出版社,马淑华等编着;3、《现代传感器集成电路》,人民邮电出版社,赵负图主编;4、《单片机典型外围器件应用实例》,人民邮电出版社,求是科技编着完成期限:2011年12月19日—2012年1月9日指导教师签名: 课程负责人签名: 31 / 33目 录1.概述 11.1设计题目的意义及简介ﻩ11.2系统组成总体结构ﻩ12.系统硬件设计 22。
1单片机最小系统设计 22.1.1 单片机选择 221.2 时钟电路设计ﻩ22.13复位电路设计 222温度采集电路设计 22.2.1 AD590温度传感器 222.2测温电路的设计ﻩ23 信号调整电路 2.3 LED显示ﻩ224 键盘接口 2.5 控制电路 3系统软件设计 3.1程序初始化ﻩ3.2主程序ﻩ3.3 A/D转换子程序 3.4 标度转换子程序ﻩ3.5 显示子程序ﻩ36控制子程序 3.7 键盘子程序 4.结论 参考文献ﻩ附录A 系统硬件原理图 附录B 程序清单ﻩ摘要本次设计是采用单片机中的STC89C52和DHT11构成的低成本的湿度的检测控制系统单片机STC89C52是一款有强大的功能、低消耗,高效率的单片机,因此在很多领域都是用它.DHT11是一款复合型温湿度传感器,并且含有以校准好的数字输出.,DHT11传感器包括一个电阻式感湿原件和一个NTC测温元件,该产品具有超快响应、品质卓越、抗干扰能力强、性价比极高等优点本设计主要包括系统软件的设计和硬件电路的设计. 硬件电路主要包括单片机、湿度传感器、显示模块、报警器以及控制设备等5部分其中由DHT11温湿度传感器及1602字符型液晶模块构成系统显示模块;用户根据需要预先输入预设值,当实际测量的温湿度不符合预设的温湿度标准时,发出报警信号(蜂鸣器蜂鸣),动相应控制。
软件部分包括了主程序、显示子程序、测湿度子程序.关键词:STC89C52; DHT11; 湿度传感器 1.概述11设计题目的意义及简介随着生活的不断发展,人们对环境的要求也不断的提高,居住的环境成为人们关心的话题.为了满足人们对适宜适宜环境要求,设计一种低成本、高性能、简单、便于提醒和控制湿度的装置.人们可以根据季节和天气的需要进行湿度的调节,使人居住在一个更加舒适的环境此设计不仅可以应用到家庭中,也可应用到工厂中,这样大大减少了看护和相应的人工费用.此设计有点在于成本低,操作简单、相应快,并且当超出人们设定值时可自动报警1.2系统组成总体结构本次的数字湿度控制器主要是由单片机系统组成,其系统组成框图如图1-1所示湿度采集A/D转换单片机显示反馈信号处理图1-1 系统总体框图其工作流程为湿度传感器采集湿度信号,湿度信号被信号转换器转换成系统所能识别的电信号,采集信号被送入单片机后经过单片机的控制进行分析整理,根据设定值进行湿度调节,再经过湿度反馈环节做进一步调整.2系统硬件设计2.1单片机最小系统设计2.1.1单片机选择STC89C52是一种带8K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机.该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS—51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,stc的stc89c52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案.STC89C52引脚如图所示图2—1 STC89C52单片机引脚2.1.2时钟电路设计单片机是在统一的脉冲信号控制下工作的.这个脉冲就是时钟电路产生的.时钟电路选择晶振为12Mhz,两个电容选择60pf作为CPU的内部时钟电路,其电路图如下所示:图2—2 由晶振构成时钟电路2.1.3复位电路设计复位电路可以让单片机初始化,也可以使死机状态下的单片机重新启动,因此非常重要该设计采用的是按键复位和上电自动复位电路这样图2—3 上电复位电路使用起来比较方便,即每当CPU通电时,CPU自动进行复位操作省去了人工操作的繁琐,当程序跑飞时,可以手动复位,按下按键后,使RESET端产生高电平,电路设计如图2-3(其中电阻为1K,电容为22uf)2.2温度采集电路设计2.2.1 AD590温度传感器温度采集元件采用AD590温度传感器,AD590 是美国模拟器件公司生产的单片集成两端感温电流源AD590具有线性优良、性能稳定、灵敏度高、无需补偿、热容量小、抗干扰能力强、可远距离测温且使用方便等优点。
可广泛应用于各种冰箱、空调器、粮仓、冰库、工业仪器配套和各种温度的测量和控制等领域AD590是电流型温度传感器,通过对电流的测量可得到所需要的温度值其电路外形如图2—4所示,它采用金属壳3脚封装,其中1脚为电源正端V+;2脚为电流输出端I0;3脚为管壳,一般不用集成温度传感器的电路符号如图2—5所示图2-4 AD590封装形式 图2—5 集成温度传感器电路符号AD590的主特性参数如下:● 工作电压:4~30V● 工作温度:-55~+150℃● 正向电压:+44V● 反向电压:—20V● 输出电阻为710MW● 精度高AD590共有I、J、K、L、M五档,其中M档精度最高,在-55℃~+150℃范围内,非线性误差为±0AD590的工作原理:在被测温度一定时,AD590相当于一个恒流源,把它和5~30V的直流电源相连,并在输出端串接一个1kW的恒值电阻,那么,此电阻上流过的电流将和被测温度成正比,此时电阻两端将会有1mV/K的电压信号2测温电路的设计在设计测温电路时,首先应将电流转换成电压由于AD590为电流输出元件,它的温度每升高1K,电流就增加1μA.当AD590的电流通过一个10kW的电阻时,这个电阻上的压降为10mV,即转换成10mV/K,为了使此电阻精确,可用一个9.6kW的电阻与一个1kW电位器串联,然后通过调节电位器来获得精确的10kW.图2-6所示是一个电流/电压和绝对/摄氏温标的转换电路,其中运算放大器A1被接成电压跟随器形式,以增加信号的输入阻抗。
而运放A2的作用是把绝对温标转换成摄氏温标,给A2的同相输入端输入一个恒定的电压(如1.235V),然后将此电压放大到2.73V这样,A1与A2输出端之间的电压即为转换成的摄氏温标图2—6 绝对摄氏温标转换电路将AD590放入0℃的冰水混合溶液中,A1同相输入端的电压应为273V,同样使A2的输出电压也为273V,因此A1与A2两输出端之间的电压:273—273=0V即对应于0℃2.2.3 信号调整电路单片机处理的信号是数字信号,因此,在送往单片机处理之前应对该信号进行放大转换本系统所采用的A/D转换器为ADC0809,由于ADC0809的输入信号应在0~5V之间,因此,经过放大电路放大的信号进入A/D转换器的电压信号应控制在0~5V之间,根据此原则可设计合适的放大倍数信号调整电路主要由运算放大器0P07等组成.为了使温度检测电路的输出电压能够适合于A/D转换器的参考电压,利用超低温漂移高精度运算放大器0P07将温度电压信号进行放大到0~5V的范围之内,便于A/D进行转换,以提高温度采集电路的可靠性本设计中,信号调理电路部分由集成运放OP07分别构成一个电压跟随器,电压比较器和一个同相输入放大器用于对AD590输出的小电压信号进行放大处理。
信号调整电路如图2-7所示在该放大电路中,电压跟随器起阻抗匹配的作用反馈电阻为零时,放大倍数为1,电压跟随器的输入电压等于输出电压电压比较器用于对输出电压小信号电压进行调零,在上述电路图中的电压比较器部分由于R2=R4 R3=R5 可得电压比较器的输出电压 根据电压跟随器的输出电压调节电位计R9就改变电压比较器的输入电压使得当温度为温度测量下限时电压比较器的输出电压为零.起放大作用的是同相输入放大器OP07其放大倍数:因此放大器的输出电压ADC0809是一种8位逐次逼近式A/D转换器,其内部有一个8位“三态输出锁存器"可以锁存A/D转换后的数字量,故它本身既可看作一种输入设备,也可以认为是并行I/O接口芯片故ADC0809可以和微机直接接口,本设计就是用8051和ADC0809直接相连的.AT89C51与ADC0809的连接方法如图2-8所示,AT89C51通过地址线P2.7和写控制信号线用一个或非门联合控制启动转换信号端(START)和地址锁存信号端(ALE)地址线P27和读控制信号线用一个或非门联合控制输出允许控制端(EOC)低三位地址线加到ADC0809的ADDA、ADDB、ADDC端,所以选中ADC0809的IN0通道的地址为7FF8H。
转换结束信号EOC通过一个反相器接到INT1图2-8 AT89C51与ADC0809连接图AT89C51和ADC0809连接通常可以采用查询和中断两种方式本系统采用中断方式传送数据,EOC线作为CPU的中断请求输入线CPU线响应中断后,应在中断服务程序中使OE线变为高电平,以提取A/D转换后的数字量对ADC0809地址的确定:根据系统硬件连接图可知所选定模拟电压路数为IN0,其对应的地址为ABC=000,即P0.0、P01、P02=0 0 0;又P27=0时才能启动ADC0809工作和使AT89C51从ADC0809接收A/D转换电压的数字量故确定ADC0809其中一个地址为: 0111 1111 1111 1000B=7FF8H ,其中“__ "表示固定量.ADC0809的IN0和变送器输出端线连,故IN0上输入的0V~+5V范围的模拟电压经A/D转换后可由AT89C51通过程序从P0口输入到它的内部RAM单元.ADC0809所需时钟信号可以由AT89C51的ALE信号提供.AT89C51的ALE信号通常是每个机器周期出现两次,故它的频率是单片机时钟频率的1/6本系统AT89C51主频是12MHZ,ALE信号频率为2MHZ,使AT89C51的ALE上信号经过4分频后接到ADC0809的CLOCK输入端,就可获得500KHZ的A/D转换脉冲,当然,ALE上脉冲会在MOVX指令的每个机器周期少出现一次,但通常情况下影响不大.为了给OE线分配一个地址,把AT89C51RD和P2。
7经或门和OE相连平时,使OE处于低电平封锁状态,在响应中断后,AT89C51执行中断服务程序中如下两条指令就可以使OE变为高电平,从而打开三态输出锁存器,让CPU提取A/D转换后的数字量.AT89C51执行如下程序可以启动ADC0809工作MOV DPTR , # 7FF8H MOVX A , @DPTR; OE变为高电平,数字量送A23 LED显示本设计显示采用LED串行静态显示MCS-51系列单片机的串行口RXD,TXD为一个全双工串行通信口,当工作在方式0下可作同步移位寄存器用,其数据由RXD(P30)端串行输入或输出;而同步移位时钟由TXD(P3.1)串行输出,在同步时钟的作用下,实现由串行到并行的数据通信.在不需要使用串行通信的场合,利用串行口加外围芯片74LS164就可以构成一个或多个并行输入/输出口,用于显示器LED驱动.波特率(每秒传输的位数)固定在fosc/12,即当晶振为12MHZ时,波特率为1MBPS在CPU将数据写入SBUF寄存器后,立即启动发送待8位数据输完后,硬件将状态寄存器的TI位置1,TI必须由软件清零.单片机与4片串入并出移位寄存器74LS164相连。
其中,RXD作为164的数据输入,TXD作为4片164的同步时钟程序运行时,单片机将4个数码管的段码(4个字节)连续发送出来,通过串行口送给1644位字型码送完后,TXD保持高电平.此时每片164的并行输出口将送出保存在内部移位寄存器中的8位的段码给数码管,令数码管稳定地显示所需的字符74LS164是8位串入并出移位寄存器A、B为串行输入端,QA~QH为串行输出端,CLK为串行时钟输入端,为串行输出清零端,VCC为+5V电源输入端,GND为接地端具体输入输出关系如表2—1所示X代表任意状态;QA0、QB0~QH0代表在稳态输入条件建立之前QA、QB~QH的输出状态;QAn、QBn~QHn代表在最近的时钟上升沿↑转换之前QA、QB~QH的输出状态;H/L、QAn~QBn代表在最近的时钟上升沿↑转换之后QA、QB~QH的输出状态.表2—1 74LS164输入输出关系如所示输入输出清除 时钟 A BQA QB ~ QHL X X XH L X XH ↑ H HH ↑ L XH ↑ X LL L ~ LQA0 QB0 ~ QH0H QAn ~ QGnL QAn ~ QGnL QAn ~ QGn图2-9 74LS164引脚如图串行显示电路属于静态显示,比动态显示亮度更大一些.由于74LS164在低电平输出时,允许通过的电流达8mA,故不必添加驱动电路,亮度也比较理想。
与动态扫描相比较,无需CPU不停的扫描,频繁地为显示服务,节省了CPU时间,软件设计也比较简单由于本设计采用的是共阳极数码管,所以相应的亮段必须送0,相应的暗段必须送1原理图如图2—10所示:图2—10 LED串行静态显示24 键盘接口键盘的工作方式选取的原则是:既要保证能及时响应按键的操作,又不过多的占用CPU的工作时间键盘的工作方式有:查询方式(编程扫描,定时扫描方式)、中断扫描方式.独立式按键接口就是各按键相互独立,每个按键单独占用一根I/O口线,每根I/O口线的按键工作状态不会影响其他I/O口线上的工作状态因此,通过检测输入线的电平状态可以很容易判断哪个按键被按下了优点就是电路配置灵活,软件结构简单;缺点就是每个按键需占用一根I/O口线,在按键数量较多时,I/O口浪费大,电路结构显得复杂因此,此键盘是用于按键较少或操作速度较高的场合本设计中由于所用键盘不多,所以采用独立连接式的查询式键盘就能够满足设计要求在本次设计中采用了软件扫描的方法.通过对键盘接口P10和P11的查询判断是否有键按下本次设计采用了软件去抖动的方法当有键按下时,按键的触点在闭合和断开时均会产生抖动,这时触点的逻辑电平是不稳定的,如果不妥善处理,将会使按键命令的错误执行和重复执行。
采用软件延时的方法来避开抖动阶段,这一延时过程一般大于5ms2.5 控制电路在本设计中,被测温度信号经采样处理后,还需要通过单片机系统的P1.2口输出用以控制温度,控制的方式主要有模拟量控制和开关量控制本系统采用的是开关量控制所谓的开关量控制就是通过控制设备的“开”或“关”状态的时间来达到控制的目的由于输出设备往往需要大电压来控制,而单片机系统输出的为TTL电平,这种电平不能直接驱动外部设备的开启和关闭另一方面,许多外部设备在开关过程中会产生很强的电磁干扰信号,如果不隔离会使系统进行错误的处理因此在开关量的输出控制过程中要考虑到两个问题,一要隔离;二要放大本设计采用继电器作为控制电路的主要器件,继电器具有一定的隔离作用,在继电器前面加一个三极管用以放大输出信号就可以驱动继电器的闭合和断开,从而实现弱电控制强电的效果.固态继电器和MCS-51系列单片机组成的控制系统, 具有抗干扰性强、编程简单、系统兼容性好等特点继电器一般由通电线圈和触电组成.当线圈通电时,由于磁场作用,使开关触电闭合.当不通电时,则开关触点断开一般线圈可用直流低电压控制(+5V,+9V,+12V)继电器的特性参数包括输入和输出参数,主要的参数为额定输入电压、额定输出电流、浪涌电流。
根据输入电压参数值大小,可确定工作电压大小如采用TTL或CMOS等逻辑电平控制时,采用有足够带载能力的低电平驱动,并尽可能使“0”电平低于0.8V本设计就是采用直流驱动电压为+5V的继电器触电输出部分可以直接与市电连接继电器控制电路如图2-11所示2-11 继电器控制电路3.系统软件设计本次单片机温控系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了系统软件的功能又可分为两大类:一是监控软件,它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系.二是执行软件,它是用来完成各种实质性的功能如测量、显示等功能本系统程序设计包括温度采集子程序、显示子程序、标度转换资程序、键盘子程序、控制子程序程序流程图如图3—1所示.开始初始化温度参数采样当前温度当前温度和设定温度送显示缓冲设定温度-当前温度继电器闭合继电器断开维持状态读键盘键值?向上键向下键设定温度减1设定温度加1无键按下 小于等于-2 大于等于2图3-1 系统流程图31程序初始化程序初始化部分根据系统硬件原理图及设计要求对单片机系统进行系统资源分配、参数的设置以及定义。
系统内部资源分配和参数设置如下:A/D端口地址(ADPORT): 7FF8H显示缓冲起始地址:(LEDBUF): 30H段码存储起始地址(TEMP): 40H设定温值存储地址(SETTEMP): 50h测量温度存储地址(CURTEMP):51H温度设定上限(HIGHLIMIT): 80温度设定下限(LOWLIMIT): 25温度测量上限(HIGHTEMP) 107温度测量下限(LOETEMP) 21初始化程序代码如下:ADPORT EQU 7FF8H ;A/D端口地址 LEDBUF EQU 30H ;显示缓冲TEMP EQU 40H ;段码存储UP EQU 1 ;增温DOWN EQU 2 ;减温LOWLIMIT EQU 25 ;设定值下限HIGHLIMIT EQU 80 ;设定值上限LOWTEMP EQU 21 ;A/D 0HIGHTEMP EQU 107 ;A/D 255SETTEMP EQU 50H ;设定温值CURTEMP EQU 51H ;测量温度DIN BIT 0B0H ;P3.0CLK BIT 0B1H ;P3.1 ORG 0000HLJMP START3.2主程序主程序代码如下:START:MOV SETTEMP, #20 ;初始恒温值为20℃MLOOP:CALL TESTKEY ;测试有无键入JNZ KEYPRESSED ;更改设定值CALL DISPLAYRESULT ;数制转换CALL DISPLAYLED ;显示CALL READTEMP ;读入温度CONTROL: .。
.. ;控制子程序KEYPRESSED: .. ;键盘子程序END3.3 A/D转换子程序根据系统硬件连接图可知,在系统中将ADC0809作为一个外部扩展并行I/O口,采用线选寻址7和联合控制启动转换信号端(ATART)和ALE端,低三位地址线架到ADC0809和ADDA,ADDB,ADDC端,所以选中ADC0809的IN0通道的地址为7FF8H启动DAC0809的工作过程是:先送通道号地址到ADDA,ADDB,ADDC,由ALE信号锁存通道号地址,后让ATART有效,启动A/D转换,即执行一道“MOVX @DPTR ,A”指令产生信号,使ALE,START有效,锁存通道号并启动A/D转换,A/D转换完毕后,EOC端发出一正脉冲,申请中断. 在中断服务程序中,“MOV A ,@ DPTR"指令产生信号,使OE端有效,打开输出锁存器三态门,8位数据便读入到CPU中A/D转换子程序代码如下:READAD: MOV DPTR, #ADPORTCLR AMOVX @DPTR, A ;START A/DJNB P3.3, $MOVX A, @DPTR ;读入结果RET3.4 标度转换子程序系统温度测量范围的计算原理:根据温度标定结果选取两个温度状态T1 T2,模拟输出电压V1 V2;根据0809的输入范围在0到5伏,即可计算出温度极限。
计算公式如下:0伏时对应的温度TL:T1—(V1-0)(T2-T1)/(V2—V1)5伏时对应的温度TH:T1-(V1—5)(T2—T1)/(V2-V1)根据所得结果采用在温度为50℃和60℃下所测量的电压输出16V和2.2V为计算温度测量范围的参数,根据上式可得:TL=50-(1.68-0)(50-40)/(226-168)=21TH=50-(1.68-5)(50-40)/(226-1.68)=107所以A/D转化的极限范围为21℃—107℃之间,而根据系统要求温度的控制范围为25℃-80℃之间,符合系统要求程序中温度的计算原理:首先用温度范围除以0到256(即每个十六进制数的温度增长率),然后乘以模拟转换的数字量,即得到升高的温度,再和最低温度相加,就可以得到实际的温度值其公式为:TL+AX(TH-TL)/256TL:显示的最低温度TH:显示的最高温度AX:模拟电压所转换的数字量标度转换代码如下:READTEMP:CALL READADMOV B, #(HIGHTEMP-LOWTEMP) ;温度值计算MUL ABMOV A, B ; /256ADD A, #LOWTEMPMOV CURTEMP, ARET3。
5 显示子程序显示模块包括数制转换和LED串口静态显示两部分显示内容包括当前温度和设定温度两个参数在数制转换程序中将十六进制数的数据转换为十进制数数据,各分为十位数和个位数在编写显示程序时,先送高位再送低位显示模块程序流程图如图3—2所示数制转换子程序代码如下:DISPLAYRESULT:MOV A, CURTEMP ;实际值MOV B, #10DIV ABMOV DPTR, #LEDMAP ;显示码首址MOVC A, @A+DPTR ;取显示码MOV LEDBUF, A ;存显示缓冲MOV A, BMOVC A, @A+DPTRMOV LEDBUF+1, AMOV A, SETTEMP ;设定的恒温值 MOV B, #10 DIV ABMOV LEDBUF+2, AMOV A, BMOV LEDBUF+3, ARET显示子程序代码如下:DISPLAYLED: ;显示子程序MOV R0,#LEDBUF ;置存储区首地址MOV R1,#TEMP ;置缓冲区首地址MOV R2,#4 ;制段码字节数DP10:MOV DPTR, #LEDMAP ;表头地址MOV A,@R0MOVCﻩ A,@A+DPTR ;查表指令N地址指针设置取段码段码左移一位输出一位段码输出一个移位脉冲N开 始取段码结束取段码结束YYMOV @R1,AINC R0INC R1DJNZﻩ R2 , DP10MOV R0,#TEMP ;段码地址指针MOVﻩ R1,#4 ;段码字节数DP12:MOVﻩ R2,#8 ;输出子程序MOV A,@R0 ;取段码DP13:RLC A ;段码左移图MOV DIN,C ;输出一位段码CLR CLK ;输出移位脉冲SETB CLKDJNZﻩ R2,DP13INC R0DJNZ R1,DP12 图3-2 显示流程RET 3。
6控制子程序本设计采用P1.2作为输出控制口当设定温度比当前温度高2℃以上时,P1.2置1,使其输出高电平,用以驱动继电器,使继电器闭合,保温箱开始加热当设定温度比当前温度低2℃以下时,P12置零,使继电器断开,保温箱停止加热CONTROL:MOV A, CURTEMP ;实际温度CLR CMOV B, SETTEMP ;设定的恒温值DEC B DEC BSUBB A, B ;实际值-(恒温值—2)JNC GN2 ;判断实际值是否比恒温值低2℃SETB P1.2 ;是,开始加热 SJMP GN4GN2: MOV A,CURTEMPSETB CMOV B, SETTEMPINC BINC BSUBB A, B JC GN4 ;判断实际值是否比恒温值高2℃CLR P12 ;是,停止加热SJMP GN4 GN4: CALL DELAY1SJMP MLOOPDELAY1: ;延时子程序1MOV R4, #0FFHAA1: MOV R5, #0FFHAA: NOPNOPDJNZ R5, AADJNZ R4, AA1RET3。
7 键盘子程序按键的触点在闭合和断开时均会产生抖动,这时触点的逻辑电平是不稳定的,如不妥善处理,将会使按键命令的错误执行或重复执行.在这里采用软件延时的方法来避开抖动阶段,这一延时程序一般大于5ms在第一次检测到有键按下时,执行一段延时子程序后,再确认电平是否仍保持闭合状态电平,如果保持闭合状态电平,则确认真正有键按下,进行相应处理工作,消除了抖动的影响.这种消除抖动影响的软件措施是切实可行的键盘子程序程序代码如下:TESTKEY: ;测试有无键入子程序MOV P1, #03H ;读键盘情况MOV A, P1 RETKEYPRESSED:CALL GETKEYMOV B, AXRL A, #DOWN JNZ KEY0 ;判断是否减小键MOV A, SETTEMPXRL A, #LOWLIMITJZ KEY1 ;判断是否低于下限值DEC SETTEMPSJMP KEY1KEY0: MOV A, BXRL A, #UPJNZ KEY1 ;判断是否增加键MOV A, SETTEMPXRL A, #HIGHLIMITJZ KEY1 ;判断是否高于上限值INC SETTEMPKEY1: SJMP MLOOP KEYTABLE: ;键码定义DB 0EEH, 0DEH, 0BEH, 07EH DB 0EDH, 0DDH, 0BDH, 07DHDB 0EBH, 0DBH, 0BBH, 07BHDB 0E7H, 0D7H, 0B7H, 077H GETKEY: ;取键值MOV R6,#10ACALL DELAYMOV A,P1ANL A,#03H ;高六位不用 CJNE A,#03H,K01 ;确有键按下LJMP MLOOPK01: MOV R3,#2 ;2个键MOV R2,#0 ;键码MOV B,A ;暂存键值MOV DPTR,#KEYTABLEK02: MOV A , R2MOVC A , @A+DPTR ;从键值表中取键值 CJNE A , B, K04 ;键值比较MOV A , R2 ;得键码INC A RETK04:INC R2 ;不相等,到继续访问键值表 DJNZ R3 , K02MOV A , #0FFH ;键值不在键值中,即多键同时按下LJMP MLOOPDELAY: ;延时子程序MOV R7 , #0DELAYLOOP:DJNZ R7 , DELAYLOOPDJNZ R6 ,DELAYRET DELAY1: ;延时子程序1MOV R4, #0FFHAA1:MOV R5, #0FFHAA: NOPNOPDJNZ R5 , AADJNZ R4 , AA1RET4.结论本设计本着方便、实用性、易于扩展的指导思想,采用AT89C51为中央处理器加上各种外围电路构成了整个单片机控制系统.在设计中运用温度传感器采集温度,通过转换、处理与设定值进行比较,得到控制信号用以控制保温箱的温度,实现了保温箱温度显示和控制功能。
本次设计的具体步骤如下:1、 系统整体设计,根据设计要求,选择合理可行的设计总体方案,实现系统功能.2、 元件选择,根据需求分析选择电子元器件,以达到设计的目的3、 硬件设计,用Protel软件画好电路原理图,生成PCB板图,制作成电路板4、 软件设计,画好程序流程图,设计主程序和子程序.5、 焊接电路板,把电子元件焊接到做好的电路板上,对电路进行检查6、 在仿真器上对系统进行软、硬件调试,修改错误或改进缺陷,找出硬件错误7、 对整个系统进行联合调试,使系统达到本次设计的设计要求 由于个人的能力有限,本次设计中还有许多可以改进的地方,能使系统达到更优的控制效果系统还有很多可以应用的资源没有充分的得到利用,例如ADC0809的输入通道还没有完全开发,系统的I/O资源还没有完全利用在设计上还有很多潜力挖掘保温箱的加热控制可以采用控制效果更好的输出脉宽调制PWM调节加热器的加热功率,使控制精度更高本次设计是对我大学四年里所学的知识进行了综合利用.在设计中涉及到得知识涵盖了大学所学的所有知识,包括单片机、自动控制控制、电工电子技术、传感器等多领域知识.通过这次设计学会了查找问题、分析问题、处理问题的方法,可以说为今后的工作、学习都打下了比较坚实的基础.参考文献1、《单片微型计算机原理及应用》,西安电子科技大学出版社,张毅坤编;2、《单片机原理与接口技术》,北京邮电大学出版社,马淑华等编着;3、《现代传感器集成电路》,人民邮电出版社,赵负图主编;4、《单片机典型外围器件应用实例》,人民邮电出版社,求是科技编着。
附录A 系统硬件原理图附录B 程序清单ORG 0000HJMP START1 ; ORG 000BH ; 定时器/计数器0溢出中断JMP TIM0 ; 转中断程序START1: MOV TMOD,#01H; 设定定时器0工作方式1 MOV TH0 , #HIGH(65536-50000); 设定初值 MOV TL0,#LOW(65536-50000); SETB TR0; 启动定时器0 MOV IE,#82H; 定时器0开放中断 MOV 24H,#0FFH; ANL P1,#00H; MOV R0,#14; 延时START: MOVX @R0,A; 启动A/D转换WAIT: JNB P2.1,SET0; 检测温度输入 JB P2。
0,ADC; 检测转换是否完成 JMP WAITADC: MOVX A,@R0; 将转换好的值送入ALCALL L1;LCALL DISP;JMP STARTL1: CLR C; 清0 MOV 20H,#00H; MOV 21H,#00H; MOV R3,#08H; 显示位数NEXT: RLC A; 将A的内容和Cy左移一位,显示准备 MOV R2,A; MOV A,20H; ADDC A,20H DA A; 对A进行十进制调整 MOV 20H,A; MOV A,21H; ADDC A,21H MOV 21H,A; MOV A,R2; DJNZ R2,NEXT; R2—1≠0 循环计数 L2: MOV A,20H ADD A,20H; DA A; MOV 20H,A; MOV A,21H;ﻩ ADDC A,21H;ﻩ DA A;ﻩ MOV 21H,A; RETDISP: MOV A,20H; 显示程序 ANL A,#0F0H SWAP A; 交换高低位 MOV 22H,A MOV A,21H; ANL A,#0FFH SWAP A ; ORL A,22H; MOV 23H,A MOV P1,A; MOV R7,#0FFH; DJNZ R7,$; 是否显示完 RETSET0: LCALL DELAY; JNB P2.1,$; 等待按键操作 LCALL DELAY; 消除按键抖动A2: CJNE R0,#0FFH,A1; MOV R0,#14; 延时A1: MOV A,R0; MOV DPTR,#TABLE ; 数据指针指向表头 MOVC A,@A+DPTR; 查表 MOV P1,A; MOV 24H,A; MOV R5,#4FH;D4: MOV R7,#0FFHD2: MOV R6,#0FFHD1: JNB P2.1,SET1; 有按键按下 转SET1 DJNZ R6,D1 DJNZ R7,D2 DJNZ R5,D4 JMP START; SET1: LCALL DELAY; JNB P2。
1,$; 等待按键操作 LCALL DELAY; 消除抖动 DEC R0; JMP A2;TIM0: PUSH ACC; 保护现场 PUSH PSW MOV TH0,#HIGH (65536 - 50000); 重装定时初值 MOV TL0,#LOW (65536 -50000) CLR C ; 进位标志清0 MOV A,24H; 比较温度 SUBB A,23H; JNC OFF; CLR C; MOV A,24H; SUBB A,23H; JNC OFF; CLR P3.0; 压缩机停止工作RETURN: POP PSW POP ACC RETI ; 中断返回OFF: SETB P3.0;驱动 压缩机开始工作 JMP RETURNDELAY: MOV R7,#60; 延时程序D3: MOV R6,#248 DJNZ R6,$ DJNZ R7,D3 RETTABLE: DB 20H,21H,22H,23H,24H; DB 25H,26H,27H,28H,29H DB 30H,31H,32H,33H,34H END说 明1、课程设计进行期间,学生应按教学计划,将每天的学习情况(包括学习内容、遇到问题及解决办法、心得体会等)如实进行记录。
2、结束时,根据课程设计内容和学习记录书写报告3、指导教师应综合考虑学生的学习态度、报告内容和实际操作情况等,给出评语和成绩课程设计报告撰写格式1、课程设计说明书用纸一律采用16开幅面,有条件最好打印打印正文用宋体小四号字;版面页边距:上2.5cm,下25cm,左3cm,右2cm;页码用小五号字底端居中;左边装订2、课程设计报告一般由以下几部分组成:A.任务书; B.目录; C.正文; D参考文献;E.附录 3、报告正文撰写的题序层次格式:第一种第二种第一章(居中、小二号黑体字)1.(居中、小二号黑体字、)第一节(顶格、小三号黑体字)1.1(顶格、小三号黑体字) 一(顶格、四号黑体字)1.1.1 (顶格、四号黑体字)(一)(顶格、小四号黑体字)课程设计成绩评定表评定专案内 容满分评分总分学习态度学习认真,态度端正,遵守纪律10答疑和设计情况认真查阅资料,勤学好问,提出的问题有一定深度,分析解决问题的能力较强40说明书质量设计方案正确、表达清楚;设计思路、实验(论证)方法科学合理;达到课程设计任务书规定的要求;图、表、文字表达准确规范,上交及时40回答问题情况回答问题准确,基本概念清楚,有理有据,有一定深度。
10总成绩采用五级分制:优、良、中、及格、不及格指导教师评语:签名: 年 月 日补充:1. 论文正文部分汉字字体一律使用宋体“小四”号字,英文为Times New Roman字体,字间距为标准,首行缩进2字符,行间距为固定值20磅.2. 页眉居中为设计报告题目,字号为五号宋体字,页眉之下有一下划线3. 目录应单独编排页码,采用从I开始的连续页码,格式为: I ,II,III……从论文主体部分开始,一律采用阿拉伯数字连续编排页码,小5号宋体,页码居中显示.4. 图的注释采用 “图2—1 XXXXXX”形式标注(表示第二章第1个图),放在图的下面,字体为五号宋体;表的注释采用 “表2-1 XXXXXX”形式标注(表示第二章第1个表),放在表的上面,字体为五号宋体图和表都以章为单位按顺序进行注释数学公式均用公式编辑器书写,注释为小四号宋体 5. 参考文献模版如下:[1] 缪家鼎,徐文娟. 光电技术[M] 杭州:浙江大学出版社,1994:112—156.[2] 李晓东,张庆红,叶瑾琳.气候学研究的若干理论问题[J].北京大学学报:自然科学版,1999,35。