数字湿度检测控制装置毕业论文

上传人:仙*** 文档编号:27879993 上传时间:2021-08-21 格式:DOC 页数:35 大小:562.51KB
返回 下载 相关 举报
数字湿度检测控制装置毕业论文_第1页
第1页 / 共35页
数字湿度检测控制装置毕业论文_第2页
第2页 / 共35页
数字湿度检测控制装置毕业论文_第3页
第3页 / 共35页
点击查看更多>>
资源描述
郑州轻工业学院 课 程 设 计 任 务 书 题目 数字温度检测控制装置 专业 学号 姓名 主要内容、基本要求、主要参考数据等: 主要内容: 1、查阅与课题设计内容相关的科技文献数据; 2、熟悉数字温度检测控制装置的结构、功能和工作过程; 3、确定系统硬件及软件设计方案 ; 4、进行电气原理图的绘制和微控制器内部程序的编写; 5、完成课程设计说明书一份。 基本要求: 1、设计方案符合课题要求、结构严谨、功能完善; 2、系统结构模型绘制规范、标注简约明确; 3、系统控制电气原理图绘图准确、布局合理; 4、微控制器内部程序主要功能基本调试通过; 5、课程设计说明书严格按照“课程设计报告撰写格式”书写。 主要参考数据 1、 单片微型计算机原理及应用 ,西安电子科技大学出版社,张毅坤 主编; 2、 单片机原理与接口技术 ,北京邮电大学出版社,马淑华等编着; 3、 现代传感器集成电路 ,人民邮电出版社,赵负图主编; 4、 单片机典型外围器件应用实例 ,人民邮电出版社,求是科技编着。 完 成 期 限 : 2011 年 12 月 19 日-2012 年 1 月 9 日 指 导 教 师 签 名 : 课 程 负 责 人 签 名 : 数字湿度检测控制装置 I 目 录 1概述 1 1.1 设计题目的意义及简介 1 1.2 系统组成总体结构 1 2系统硬件设计 2 2.1 单片机最小系统设计 2 2.1.1 单片机选择 2 2.1.2 时钟电路设计 2 2.1.3 复位电路设计 2 2.2 温度采集电路设计 2 2.2.1 AD590 温度传感器 2 2.2.2 测温电路的设计 2.2.3 信号调整电路 2.3 LED 显示 2 2.4 键盘接口 2.5 控制电路 3系统软件设计 3.1 程序初始化 3.2 主程序 3.3 A/D 转换子程序 3.4 标度转换子程序 3.5 显示子程序 3.6 控制子程序 3.7 键盘子程序 4结论 参考文献 附录 A 系统硬件原理图 附录 B 程序清单 数字湿度检测控制装置 1 摘要 本次设计是采用单片机中的 STC89C52 和 DHT11 构成的低成本的湿度 的检测控制系统。单片机 STC89C52 是一款有强大的功能、低消耗,高效 率的单片机,因此在很多领域都是用它。DHT11 是一款复合型温湿度传 感器,并且含有以校准好的数字输出。 ,DHT11 传感器包括一个电阻式感 湿原件和一个 NTC 测温元件,该产品具有超快响应、品质卓越、抗干扰 能力强、性价比极高等优点。本设计主要包括系统软件的设计和硬件电 路的设计。 硬件电路主要包括单片机、湿度传感器、显示模块、报警器以及控 制设备等 5 部分。其中由 DHT11 温湿度传感器及 1602 字符型液晶模块构 成系统显示模块;用户根据需要预先输入预设值,当实际测量的温湿度 不符合预设的温湿度标准时,发出报警信号(蜂鸣器蜂鸣) ,动相应控制。 软件部分包括了主程序、显示子程序、测湿度子程序。 关键词:STC89C52; DHT11; 湿度传感器。 数字湿度检测控制装置 2 1.概述 1.1 设计题目的意义及简介 随着生活的不断发展,人们对环境的要求也不断的提高,居住的环 境成为人们关心的话题。为了满足人们对适宜适宜环境要求,设计一种 低成本、高性能、简单、便于提醒和控制湿度的装置。人们可以根据季 节和天气的需要进行湿度的调节,使人居住在一个更加舒适的环境。此 设计不仅可以应用到家庭中,也可应用到工厂中,这样大大减少了看护 和相应的人工费用。此设计有点在于成本低,操作简单、相应快,并且 当超出人们设定值时可自动报警。 1.2 系统组成总体结构 本次的数字湿度控制器主要是由单片机系统组成,其系统组成框图 如图 1-1 所示。 湿度采集 A/D 转换 单片机 显示 反馈 信号处理 图 1-1 系统总体框图 其工作流程为湿度传感器采集湿度信号,湿度信号被信号转换器转 换成系统所能识别的电信号,采集信号被送入单片机后经过单片机的控 制进行分析整理,根据设定值进行湿度调节,再经过湿度反馈环节做进 一步调整。 数字湿度检测控制装置 3 2.系统硬件设计 2.1 单片机最小系统设计 2.1.1 单片机选择 STC89C52是一种带8K字节闪烁可编程可擦除只读存储器的低电压, 高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失 存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。 由于将多功能8位CPU和闪烁存储器组合在单个芯片中,stc的stc89c52是 一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉 的方案。STC89C52引脚如图所示 图 2-1 STC89C52 单片机引脚 数字湿度检测控制装置 4 2.1.2 时钟电路设计 单片机是在统一的脉冲信号控制下工作的。这个脉冲就是时钟电路 产生的。时钟电路选择晶振为 12Mhz,两个电容选择 60pf 作为 CPU 的内 部时钟电路,其电路图如下所示: 图 2-2 由晶振构成时钟电路 2.1.3 复位电路设计 复位电路可以让单片机初始化,也可以使死机状态下的单片机重新 启动,因此非常重要。该设计采用的是按键复位和上电自动复位电路。 这样 数字湿度检测控制装置 5 图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 的主特性参数如下: 工作电压:430V。 工作温度:55150。 正向电压:44V。 反向电压:20V。 输出电阻为 710M。 数字湿度检测控制装置 6 精度高。AD590 共有 I、J、K、L、M 五档,其中 M 档精度最高, 在-55+150范围内,非线性误差为0.3。 AD590 的工作原理:在被测温度一定时,AD590 相当于一个恒流源, 把它和 530V 的直流电源相连,并在输出端串接一个 1k 的恒值电阻, 那么,此电阻上流过的电流将和被测温度成正比,此时电阻两端将会有 1mVK 的电压信号。 2.2.2 测温电路的设计 在设计测温电路时,首先应将电流转换成电压。由于 AD590 为电流 输出元件,它的温度每升高 1K,电流就增加 1A。当 AD590 的电流通过 一个 10k 的电阻时,这个电阻上的压降为 10mV,即转换成 10mVK, 为了使此电阻精确,可用一个 9.6k 的电阻与一个 1k 电位器串联,然 后通过调节电位器来获得精确的 10k。图 2-6 所示是一个电流电压和 绝对摄氏温标的转换电路,其中运算放大器 A1 被接成电压跟随器形式, 以增加信号的输入阻抗。而运放 A2 的作用是把绝对温标转换成摄氏温标, 给 A2 的同相输入端输入一个恒定的电压(如 1.235V) ,然后将此电压放 大到 273V。这样,A1 与 A2 输出端之间的电压即为转换成的摄氏温标。 图2-6 绝对摄氏温标转换电路 将 AD590 放入 0的冰水混合溶液中,A1 同相输入端的电压应为 2.73V,同样使 A2 的输出电压也为 2.73V,因此 A1 与 A2 两输出端之间 的电压:2.732.730V 即对应于 0。 数字湿度检测控制装置 7 2.2.3 信号调整电路 单片机处理的信号是数字信号,因此,在送往单片机处理之前应对 该信号进行放大转换。本系统所采用的 A/D 转换器为 ADC0809,由于 ADC0809 的输入信号应在 05V 之间,因此,经过放大电路放大的信号进 入 A/D 转换器的电压信号应控制在 05V 之间,根据此原则可设计合适的 放大倍数。 信号调整电路主要由运算放大器 0P07 等组成。为了使温度检测电路 的输出电压能够适合于 A/D 转换器的参考电压,利用超低温漂移高精度 运算放大器 0P07 将温度电压信号进行放大到 05V 的范围之内,便于 A/D 进行转换,以提高温度采集电路的可靠性。 本设计中,信号调理电路部分由集成运放 OP07 分别构成一个电压跟 随器,电压比较器和一个同相输入放大器用于对 AD590 输出的小电压信 号进行放大处理。信号调整电路如图 2-7 所示 在该放大电路中,电压跟随器起阻抗匹配的作用。反馈电阻为零时, 放大倍数为 1,电压跟随器的输入电压等于输出电压。 电压比较器用于对输出电压小信号电压进行调零,在上述电路图中 的电压比较器部分由于 R2=R4 R3=R5 可得电压比较器的输出电压 根据电压跟随器的输出电压 调节电位计 R9 就改变电压120iiU 2iU 比较器的输入电压 。使得当温度为温度测量下限时电压比较器的输出1i 电压为零。 起放大作用的是同相输入放大器 OP07。其放大倍数: 761RA 因此放大器的输出电压 iA*0 ADC0809 是一种 8 位逐次逼近式 A/D 转换器,其内部有一个 8 位 “三态输出锁存器”可以锁存 A/D 转换后的数字量,故它本身既可看作 一种输入设备,也可以认为是并行 I/O 接口芯片。故 ADC0809 可以和微 机直接接口,本设计就是用 8051 和 ADC0809 直接相连的。 AT89C51 与 ADC0809 的连接方法如图 2-8 所示,AT89C51 通过地址线 P2.7 和写控制信号线 用一个或非门联合控制启动转换信号端(START)_WR 和地址锁存信号端(ALE)。地址线 P2.7 和读控制信号线 用一个或非_RD 数字湿度检测控制装置 8 门联合控制输出允许控制端(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、P0.1、P0.2=0 0 0;又 P2.7=0 时才能启动 ADC0809 工作和使 AT89C51 从 ADC0809 接收 A/D 转换 电压的数字量。故确定 ADC0809 其中一个地址为: 0111 1111 1111 1000B=7FF8H ,其中“_ ”表示固定量。 ADC0809 的 IN0 和变送器输出端线连,故 IN0 上输入的 0V5V 范 1 2 3 4 5 6 A B C D 654321 D C B A Title Number RevisionSizeB Date: 18-Jun-2007 Sheet of File: C:Documents and SettingsAdministratorMy Documents件件件件件件件件件件件件件件.ddbDrawn By: IN-0 26msb2-121 2-220 IN-1 272-319 2-418 IN-2 282-58 2-615 IN-3 12-714 lsb2-817 IN-4 2EOC7 IN-5 3ADD-A25 IN-6 4ADD-B24 ADD-C23 IN-7 5ALE22 ref(-) 16ENABLE9 START6 ref(+) 12CLOCK10 U8 ADC0809 D03 Q0 2D14 Q1 5 D27 Q2 6D38 Q3 9 D413 Q4 12D514 Q5 15 D617 Q6 16D718 Q7 19 OE1 LE11 U6 74LS373 EA/VP31 X119 X218 RESET9 RD17 WR16 INT012 INT113 T014 T115 P101 P112 P123 P134 P145 P156 P167 P178 P00 39P01 38 P02 37P03 36 P04 35P05 34 P06 33P07 32 P20 21P21 22 P22 23P23 24 P24 25P25 26 P26 27P27 28 PSEN 29ALE/P 30 TXD 11RXD 10 U5 AT89C51 D0D1 D2D3 D4D5 D6D7 D0D1 D2D3 D4D5 D6D7 D0D D2D3 D4D5 D6D7 CLKDIN CLK3 D2 SD 4 CD 1 Q 5 Q 6 U7A 74LS74 CLK11 D12 SD 10 CD 13 Q 9 Q 8 U7B 74LS74 VCC VCC VCC 5 6 4 U9B 74LS02 2 3 1 U9A 74LS02 8 910 U9C 74LS02 VCCGND P1.2 数字湿度检测控制装置 9 围的模拟电压经 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 变为高电平,数字量送 A 2.3 LED 显示 本设计显示采用 LED 串行静态显示。MCS-51 系列单片机的串行口 RXD,TXD 为一个全双工串行通信口,当工作在方式 0 下可作同步移位寄 存器用,其数据由 RXD(P3.0)端串行输入或输出;而同步移位时钟由 TXD(P3.1)串行输出,在同步时钟的作用下,实现由串行到并行的数据 通信。在不需要使用串行通信的场合,利用串行口加外围芯片 74LS164 就可以构成一个或多个并行输入/输出口,用于显示器 LED 驱动。波特率 (每秒传输的位数)固定在 fosc/12,即当晶振为 12MHZ 时,波特率为 1MBPS。在 CPU 将数据写入 SBUF 寄存器后,立即启动发送。待 8 位数据 输完后,硬件将状态寄存器的 TI 位置 1,TI 必须由软件清零。单片机与 4 片串入并出移位寄存器 74LS164 相连。其中,RXD 作为 164 的数据输入, TXD 作为 4 片 164 的同步时钟。程序运行时,单片机将 4 个数码管的段 码(4 个字节)连续发送出来,通过串行口送给 164。4 位字型码送完后, TXD 保持高电平。此时每片 164 的并行输出口将送出保存在内部移位寄 数字湿度检测控制装置 10 存器中的 8 位的段码给数码管,令数码管稳定地显示所需的字符。 74LS164 是 8 位串入并出移位寄存器。A、B 为串行输入端, QAQH 为串行输出端, CLK 为串行时钟输入端, 为串行输出清零RM 端,VCC 为+5V 电源输入端,GND 为接地端。具体输入输出关系如表 2-1 所示。 X 代表任意状态;QA0、QB0QH0 代表在稳态输入条件建立 之前 QA、QBQH 的输出状态; QAn、QBnQHn 代表在最近的时钟上 升沿转换之前 QA、QBQH 的输出状态;H/L、QAnQBn 代表在最近 的时钟上升沿转换之后 QA、QBQH 的输出状态。 表 2-1 74LS164 输入输出关系如所示 输入 输出 清除 时钟 A B QA QB QH L X X X H L X X H H H H L X H X L L L L QA0 QB0 QH0 H QAn QGn L QAn QGn L QAn QGn 图 2-9 74LS164 引脚如图 串行显示电路属于静态显示,比动态显示亮度更大一些。由于 74LS164 在低电平输出时,允许通过的电流达 8mA,故不必添加驱动电路, 亮度也比较理想。与动态扫描相比较,无需 CPU 不停的扫描,频繁地为 显示服务,节省了 CPU 时间,软件设计也比较简单。由于本设计采用的 是共阳极数码管,所以相应的亮段必须送 0,相应的暗段必须送 1。原理 图如图 2-10 所示: 数字湿度检测控制装置 11 1 2 3 4 5 6 A B C D 654321 D C B A Title Number RevisionSizeB Date: 18-Jun-2007 Sheet of File: C:Documents and SettingsAdministratorMy Documents件件件件件件件件件件件件件件.ddbDrawn By: A1 B2 Q0 3Q1 4 Q2 5Q3 6 Q4 10Q5 11 Q6 12Q7 13CLK8 MR9 U1 74LS164 RXD TXD A1 B2 Q0 3Q1 4 Q2 5Q3 6 Q4 10Q5 11 Q6 12Q7 13CLK8 MR9 U2 74LS164 A1 B2 Q0 3Q1 4 Q2 5Q3 6 Q4 10Q5 11 Q6 12Q7 13CLK8 MR9 U3 74LS164 A1 B2 Q0 3Q1 4 Q2 5Q3 6 Q4 10Q5 11 Q6 12Q7 13CLK8 MR9 U4 74LS164 VCC TXD TXD TXD a bf cgde DPY12 34 56 7 ab cd ef g8 dp dp 9 9 DS1 DPY_7-SEG_DP a bf cgde DPY12 34 56 7 ab cd ef g8 dp dp 9 9 DS2 DPY_7-SEG_DP a bf cgde DPY12 34 56 7 ab cd ef g8 dp dp 9 9 DS3 DPY_7-SEG_DP a bf cgde DPY12 34 56 7 ab cd ef g8 dp dp 9 9 DS4 DPY_7-SEG_DP R110K R210K R310K R410K 图 2-10 LED 串行静态显示 2.4 键盘接口 键盘的工作方式选取的原则是:既要保证能及时响应按键的操作, 又不过多的占用 CPU 的工作时间。键盘的工作方式有:查询方式(编程 扫描,定时扫描方式) 、中断扫描方式。 独立式按键接口就是各按键相互独立,每个按键单独占用一根 I/O 口线,每根 I/O 口线的按键工作状态不会影响其他 I/O 口线上的工作状 态。因此,通过检测输入线的电平状态可以很容易判断哪个按键被按下 了。优点就是电路配置灵活,软件结构简单;缺点就是每个按键需占用 一根 I/O 口线,在按键数量较多时,I/O 口浪费大,电路结构显得复杂。 因此,此键盘是用于按键较少或操作速度较高的场合。 本设计中由于所用键盘不多,所以采用独立连接式的查询式键盘就 能够满足设计要求。在本次设计中采用了软件扫描的方法。通过对键盘 接口 P1.0 和 P1.1 的查询判断是否有键按下。本次设计采用了软件去抖 动的方法。当有键按下时,按键的触点在闭合和断开时均会产生抖动, 这时触点的逻辑电平是不稳定的,如果不妥善处理,将会使按键命令的 错误执行和重复执行。采用软件延时的方法来避开抖动阶段,这一延时 过程一般大于 5ms。 2.5 控制电路 在本设计中,被测温度信号经采样处理后,还需要通过单片机系统 数字湿度检测控制装置 12 的 P1.2 口输出用以控制温度,控制的方式主要有模拟量控制和开关量控 制。本系统采用的是开关量控制。所谓的开关量控制就是通过控制设备 的“开”或“关”状态的时间来达到控制的目的。 由于输出设备往往需要大电压来控制,而单片机系统输出的为 TTL 电平,这种电平不能直接驱动外部设备的开启和关闭。另一方面,许多 外部设备在开关过程中会产生很强的电磁干扰信号,如果不隔离会使系 统进行错误的处理。因此在开关量的输出控制过程中要考虑到两个问题, 一要隔离;二要放大。 本设计采用继电器作为控制电路的主要器件,继电器具有一定的隔 离作用,在继电器前面加一个三极管用以放大输出信号就可以驱动继电 器的闭合和断开,从而实现弱电控制强电的效果。固态继电器和 MCS-51 系列单片机组成的控制系统, 具有抗干扰性强、编程简单、系统兼容性 好等特点。继电器一般由通电线圈和触电组成。当线圈通电时,由于磁 场作用,使开关触电闭合。当不通电时,则开关触点断开。一般线圈可 用直流低电压控制(+5V,+9V,+12V) 。 继电器的特性参数包括输入和输出参数,主要的参数为额定输入电 压、额定输出电流、浪涌电流。根据输入电压参数值大小,可确定工作 电压大小。如采用 TTL 或 CMOS 等逻辑电平控制时,采用有足够带载能力 的低电平驱动,并尽可能使“0”电平低于 0.8V。本设计就是采用直流 驱动电压为+5V 的继电器。触电输出部分可以直接与市电连接。继电器 控制电路如图 2-11 所示。 数字湿度检测控制装置 13 开始 初始化温度参数 采样当前温度 当前温度和设定温度送显示缓冲 设定温度-当 前温度 继电器闭合继电器断开 维持状态 读键盘 键值? 向上键向下键 设定温度减 1 设定温度加 1无键按下 2-11 继电器控制电路 3.系统软件设计 本次单片机温控系统的功能是由硬件电路配合软件来实现的,当硬 件基本定型后,软件的功能也就基本定下来了。系统软件的功能又可分 为两大类:一是监控软件,它是整个控制系统的核心,专门用来协调各 执行模块和操作者的关系。二是执行软件,它是用来完成各种实质性的 功能如测量、显示等功能。本系统程序设计包括温度采集子程序、显示 子程序、标度转换资程序、键盘子程序、控制子程序。程序流程图如图 3-1 所示。 小于等于-2 大于等于 2 数字湿度检测控制装置 14 图 3-1 系统流程图 3.1 程序初始化 程序初始化部分根据系统硬件原理图及设计要求对单片机系统进行 系统资源分配、参数的设置以及定义。系统内部资源分配和参数设置如 下: 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 0 HIGHTEMP EQU 107 ;A/D 255 SETTEMP EQU 50H ;设定温值 CURTEMP EQU 51H ;测量温度 DIN BIT 0B0H ;P3.0 CLK BIT 0B1H ;P3.1 数字湿度检测控制装置 15 ORG 0000H LJMP START 3.2 主程序 主程序代码如下: START: MOV SETTEMP, #20 ;初始恒温值为 20 MLOOP: CALL TESTKEY ;测试有无键入 JNZ KEYPRESSED ;更改设定值 CALL DISPLAYRESULT ;数制转换 CALL DISPLAYLED ;显示 CALL READTEMP ;读入温度 CONTROL: ;控制子程序 KEYPRESSED: ;键盘子程序 END 3.3 A/D 转换子程序 根据系统硬件连接图可知,在系统中将 ADC0809 作为一个外部扩展 并行 I/O 口,采用线选寻址。由 P2.7 和 联合控制启动转换信号端RW (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 转RW 换完毕后,EOC 端发出一正脉冲,申请中断。 在中断服务程序中, “MOV A , DPTR”指令产生 信号,使 OEDR 端有效,打开输出锁存器三态门,8 位数据便读入到 CPU 中。 A/D 转换子程序代码如下: 数字湿度检测控制装置 16 READAD: MOV DPTR, #ADPORT CLR A MOVX DPTR, A ;START A/D JNB P3.3, $ MOVX A, DPTR ;读入结果 RET 3.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下所测量的电压输出 1.6V 和 2.2V 为计算温度测量范围的参数,根据上式可得: TL=50-(1.68-0)(50-40)/(2.26-1.68)=21 TH=50-(1.68-5)(50-40)/(2.26-1.68)=107 所以 A/D 转化的极限范围为 21-107之间,而根据系统要求温度 的控制范围为 25-80之间,符合系统要求。 程序中温度的计算原理:首先用温度范围除以 0 到 256(即每个十 六进制数的温度增长率) ,然后乘以模拟转换的数字量,即得到升高的温 度,再和最低温度相加,就可以得到实际的温度值。其公式为: TL+AX(TH-TL )/256 TL:显示的最低温度 TH:显示的最高温度 AX:模拟电压所转换的数字量 标度转换代码如下: READTEMP: CALL READAD 数字湿度检测控制装置 17 MOV B, #(HIGHTEMP-LOWTEMP) ;温度值计算 MUL AB MOV A, B ; /256 ADD A, #LOWTEMP MOV CURTEMP, A RET 3.5 显示子程序 显示模块包括数制转换和 LED 串口静态显示两部分。显示内容包括 当前温度和设定温度两个参数。在数制转换程序中将十六进制数的数据 转换为十进制数数据,各分为十位数和个位数。在编写显示程序时,先 送高位再送低位。显示模块程序流程图如图 3-2 所示 数制转换子程序代码如下: DISPLAYRESULT: MOV A, CURTEMP ;实际值 MOV B, #10 DIV AB MOV DPTR, #LEDMAP ;显示码首址 MOVC A, A+DPTR ;取显示码 MOV LEDBUF, A ;存显示缓冲 MOV A, B MOVC A, A+DPTR MOV LEDBUF+1, A MOV A, SETTEMP ;设定的恒温值 MOV B, #10 DIV AB MOV LEDBUF+2, A MOV A, B MOV LEDBUF+3, A RET 数字湿度检测控制装置 18 N 地址指针设置 取段码 段码左移一位 输出一位段码 输出一个移位脉冲 N 开 始 取段码结束 取段码结束 Y Y 显示子程序代码如下: DISPLAYLED: ;显示子程序 MOV R0,#LEDBUF ;置存储区首地址 MOV R1,#TEMP ;置缓冲区首地址 MOV R2,#4 ;制段码字节数 DP10: MOV DPTR, #LEDMAP ;表头地址 MOV A,R0 MOVC A,A+DPTR ;查表指令 MOV R1,A INC R0 INC R1 DJNZ R2 , DP10 MOV R0,#TEMP ; 段码地址指针 MOV R1,#4 ;段码字节数 DP12: MOV R2,#8 ;输出子程序 MOV A,R0 ;取段码 DP13: RLC A ;段码左移图 MOV DIN,C ;输出一位段码 CLR CLK ;输出移位脉冲 SETB CLK DJNZ R2,DP13 INC R0 DJNZ R1,DP12 图 3-2 显示流程 RET 3.6 控制子程序 本设计采用 P1.2 作为输出控制口。当设定温度比当前温度高 2以 数字湿度检测控制装置 19 上时,P1.2 置 1,使其输出高电平,用以驱动继电器,使继电器闭合, 保温箱开始加热。当设定温度比当前温度低 2以下时,P1.2 置零,使 继电器断开,保温箱停止加热。 CONTROL: MOV A, CURTEMP ;实际温度 CLR C MOV B, SETTEMP ;设定的恒温值 DEC B DEC B SUBB A, B ;实际值-( 恒温值-2) JNC GN2 ;判断实际值是否比恒温值低 2 SETB P1.2 ;是,开始加热 SJMP GN4 GN2: MOV A,CURTEMP SETB C MOV B, SETTEMP INC B INC B SUBB A, B JC GN4 ;判断实际值是否比恒温值高 2 CLR P1.2 ;是,停止加热 SJMP GN4 GN4: CALL DELAY1 SJMP MLOOP DELAY1: ;延时子程序 1 MOV R4, #0FFH AA1: 数字湿度检测控制装置 20 MOV R5, #0FFH AA: NOP NOP DJNZ R5, AA DJNZ R4, AA1 RET 3.7 键盘子程序 按键的触点在闭合和断开时均会产生抖动,这时触点的逻辑电平是 不稳定的,如不妥善处理,将会使按键命令的错误执行或重复执行。在 这里采用软件延时的方法来避开抖动阶段,这一延时程序一般大于 5ms。在第一次检测到有键按下时,执行一段延时子程序后,再确认电 平是否仍保持闭合状态电平,如果保持闭合状态电平,则确认真正有键 按下,进行相应处理工作,消除了抖动的影响。这种消除抖动影响的软 件措施是切实可行的。 键盘子程序程序代码如下: TESTKEY: ;测试有无键入子程序 MOV P1, #03H ;读键盘情况 MOV A, P1 RET KEYPRESSED: CALL GETKEY MOV B, A XRL A, #DOWN JNZ KEY0 ;判断是否减小键 MOV A, SETTEMP XRL A, #LOWLIMIT JZ KEY1 ;判断是否低于下限值 DEC SETTEMP 数字湿度检测控制装置 21 SJMP KEY1 KEY0: MOV A, B XRL A, #UP JNZ KEY1 ;判断是否增加键 MOV A, SETTEMP XRL A, #HIGHLIMIT JZ KEY1 ;判断是否高于上限值 INC SETTEMP KEY1: SJMP MLOOP KEYTABLE: ;键码定义 DB 0EEH, 0DEH, 0BEH, 07EH DB 0EDH, 0DDH, 0BDH, 07DH DB 0EBH, 0DBH, 0BBH, 07BH DB 0E7H, 0D7H, 0B7H, 077H GETKEY: ;取键值 MOV R6,#10 ACALL DELAY MOV A,P1 ANL A,#03H ;高六位不用 CJNE A,#03H,K01 ;确有键按下 LJMP MLOOP K01: MOV R3,#2 ;2 个键 MOV R2,#0 ;键码 MOV B,A ;暂存键值 MOV DPTR,#KEYTABLE K02: 数字湿度检测控制装置 22 MOV A , R2 MOVC A , A+DPTR ;从键值表中取键值 CJNE A , B, K04 ;键值比较 MOV A , R2 ;得键码 INC A RET K04: INC R2 ;不相等,到继续访问键值表 DJNZ R3 , K02 MOV A , #0FFH ;键值不在键值中,即多键同时按下 LJMP MLOOP DELAY: ;延时子程序 MOV R7 , #0 DELAYLOOP: DJNZ R7 , DELAYLOOP DJNZ R6 ,DELAY RET DELAY1: ;延时子程序 1 MOV R4, #0FFH AA1: MOV R5, #0FFH AA: NOP NOP DJNZ R5 , AA DJNZ R4 , AA1 RET 数字湿度检测控制装置 23 4.结论 本设计本着方便、实用性、易于扩展的指导思想,采用AT89C51为 中央处理器加上各种外围电路构成了整个单片机控制系统。在设计中运 用温度传感器采集温度,通过转换、处理与设定值进行比较,得到控制 信号用以控制保温箱的温度,实现了保温箱温度显示和控制功能。本次 设计的具体步骤如下: 1、系统整体设计,根据设计要求,选择合理可行的设计总体方案, 实现系统功能。 2、元件选择,根据需求分析选择电子元器件,以达到设计的目的。 3、硬件设计,用Protel软件画好电路原理图,生成PCB板图,制作 成电路板。 4、软件设计,画好程序流程图,设计主程序和子程序。 5、焊接电路板,把电子元件焊接到做好的电路板上,对电路进行检 查。 6、在仿真器上对系统进行软、硬件调试,修改错误或改进缺陷,找 出硬件错误。 7、对整个系统进行联合调试,使系统达到本次设计的设计要求。 由于个人的能力有限,本次设计中还有许多可以改进的地方,能使 系统达到更优的控制效果。系统还有很多可以应用的资源没有充分的得 数字湿度检测控制装置 24 到利用,例如ADC0809的输入通道还没有完全开发,系统的I/O资源还没 有完全利用。在设计上还有很多潜力挖掘。保温箱的加热控制可以采用 控制效果更好的输出脉宽调制PWM调节加热器的加热功率,使控制精度 更高。 本次设计是对我大学四年里所学的知识进行了综合利用。在设计中 涉及到得知识涵盖了大学所学的所有知识,包括单片机、自动控制控制、 电工电子技术、传感器等多领域知识。通过这次设计学会了查找问题、 分析问题、处理问题的方法,可以说为今后的工作、学习都打下了比较 坚实的基础。 参考文献 1、 单片微型计算机原理及应用 ,西安电子科技大学出版社,张毅坤编; 2、 单片机原理与接口技术 ,北京邮电大学出版社,马淑华等编着; 3、 现代传感器集成电路 ,人民邮电出版社,赵负图主编; 4、 单片机典型外围器件应用实例 ,人民邮电出版社,求是科技编着。 数字湿度检测控制装置 25 附录 A 系统硬件原理图 数字湿度检测控制装置 26 附录 B 程序清单 ORG 0000H JMP START1 ; 1 2 3 4 ABCD 4 3 2 1 D C B A Title Numb er Revisi on Size A4 Date: 19-Ma y-200 7 Sheet of File: C:Do cumen ts and Setin gsAd minist ratorM y Doc ument s件件件 件件件 件件件 件件件 件件.d db rawn B y: IN-0 26 msb2- 1 21 2-2 20 IN-1 27 2-3 19 2-4 18 IN-2 28 2-5 8 2-6 15 IN-3 1 2-7 14 lsb2-8 17 IN-4 2 EOC 7 IN-5 3 ADD-A 25 IN-6 4 ADD-B 24 ADD-C 23 IN-7 5 ALE 22 ref(-) 16 ENAB LE 9 STAR T 6 ref(+) 12 CLOC K 10 U8 ADC0 809 D0 3 Q0 2 D1 4 Q1 5 D2 7 Q2 6 D3 8 Q3 9 D4 13 Q4 12 D5 14 Q5 15 D6 17 Q6 16 D7 18 Q7 19 OE 1 LE 11 U6 74LS3 73 EA/VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE/P 30 TXD 11 RXD 10 U5 AT89C 51 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 D0 DD2 D3 D4 D5 D6 D7 S1 UP S3 RES S2 DOWN R5 10KR6 10K C120pF C220pF R7 100 C3 10uF R81K VCCA 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9U 1 74LS16 4 DIN CLK CLKDIN A 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9U 2 74LS16 4 A 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9U 3 74LS16 4 A 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9U 4 74LS16 4 VCC CLK CLK CLK a bf cg deDPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp9 9 DS1 DPY_ 7-SEG _DP a bf cg deDPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp9 9 DS2 DPY_ 7-SEG _DP a bf cg deDPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp9 9 DS3 DPY_ 7-SEG _DP a bf cg deDPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp9 9 DS4 DPY_ 7-SEG _DP Y1 XTAL CLK 3 D 2 SD4 CD 1Q 5 Q 6U7A 74LS74 CLK 11 D 12 SD10 CD 13Q 9 Q 8U7B 74LS74 VCC ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds31 ds32 ds33 ds34 ds35 ds36 ds37 ds38 ds31 ds32 ds33 ds34 ds35 ds36 ds37 ds38 ds41 ds42 ds43 ds44 ds45 ds46 ds47 ds48 ds41 ds42 ds43 ds44 ds45 ds46 ds47 ds48 VCC VCC 5 6 4 U9B 74LS0 2 2 3 1 U9A 74LS0 2 89 10 U9C 74LS0 2 R1 10K R2 10K R3 10K R4 10K P1.2 2 3 7 4 6 1 8U1 OP07 2 3 7 4 6 1 8U2 OP07 2 3 7 4 6 1 8U3 OP07 R5 100K R7 100K R6 100K R4 100K R8 100K R9 100K R10 20K +15 +15 R1 10K 1 1 22 3 3 R3 100K + -1 2J1 AD 590 +15 +15 -15+15 -15 -15 VCC D1 1N400 1 R2 10K R11 200Q 1 9013 K1 12J4 PW VCC P1.2 件件件 件件件 件件件 件件 数字湿度检测控制装置 27 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 WAIT ADC: MOVX A,R0; 将转换好的值送入 A LCALL L1; LCALL DISP; JMP START L1: 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 进行十进制调整 数字湿度检测控制装置 28 MOV 20H,A; MOV A,21H; ADDC A,21H MOV 21H,A; MOV A,R2; DJNZ R2,NEXT; R2-10 循环计数 L2: MOV A,20H ADD A,20H; DA A; MOV 20H,A; MOV A,21H; ADDC A,21H; DA A; MOV 21H,A; RET DISP: 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,$; 是否显示完 RET SET0: LCALL DELAY; 数字湿度检测控制装置 29 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,#0FFH D2: MOV R6,#0FFH D1: 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; 数字湿度检测控制装置 30 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 RETURN DELAY: MOV R7,#60; 延时程序 D3: MOV R6,#248 DJNZ R6,$ DJNZ R7,D3 RET TABLE: DB 20H,21H,22H,23H,24H; DB 25H,26H,27H,28H,29H DB 30H,31H,32H,33H,34H END 说 明 1、课程设计进行期间,学生应按教学计划,将每天的学习情 数字湿度检测控制装置 31 况(包括学习内容、遇到问题及解决办法、心得体会等)如 实进行记录。 2、结束时,根据课程设计内容和学习记录书写报告。 3、指导教师应综合考虑学生的学习态度、报告内容和实际操 作情况等,给出评语和成绩。 课程设计报告撰写格式 1、课程设计说明书用纸一律采用 16 开幅面,有条件最好 打印。打印正文用宋体小四号字;版面页边距:上 2.5cm,下 2.5cm,左 3cm,右 2cm;页码用小五号字底端居中;左边装订。 2、课程设计报告一般由以下几部分组成:A任务书; B目录; C正文; D参考文献;E.附录。 3、报告正文撰写的题序层次格式: 第一种 第二种 第一章(居中、小二号黑体字) 1 (居中、小二号黑体字、 ) 第一节(顶格、小三号黑体字) 11(顶格、小三号黑体字) 一(顶格、四号黑体字) 111 (顶格、四号黑体字) (一) (顶格、小四号黑体字) 课程设计成绩评定表 评定专案 内 容 满分 评分 总分 学习态度 学习认真,态度端正,遵守纪律。 10 数字湿度检测控制装置 32 答疑和设 计情况 认真查阅资料,勤学好问,提出的问题 有一定深度,分析解决问题的能力较强。 40 说明书质 量 设计方案正确、表达清楚;设计思路、 实验(论证)方法科学合理;达到课程 设计任务书规定的要求;图、表、文字 表达准确规范,上交及时。 40 回答问题 情况 回答问题准确,基本概念清楚,有理有 据,有一定深度。 10 总成绩 采用五级分制:优、良、中、及格、不 及格 指导教师评语: 签名: 年 月 日 补充: 1. 论文正文部分汉字字体一律使用
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!