数字湿度检测控制装置课程设计论文(编辑修改稿)内容摘要:

1U 9 A7 4L S 0 28910U 9 C7 4L S 0 2V C CGNDP 1. 2数字湿度检测控制装置 9 1/6。 本系统 AT89C51 主频是 12MHZ, ALE 信号频率为 2MHZ,使 AT89C51的 ALE 上信号经过 4 分频后接到 ADC0809 的 CLOCK 输入端,就可获得500KHZ 的 A/D 转换脉冲,当然, ALE 上脉冲会在 MOVX 指令的每个机器周期少出现一次,但通常情况下影响不大。 为了给 OE线分配一个地址,把 AT89C51RD 和 经或门和 OE 相连。 平时,使 OE 处于低电平封锁状态,在响应中断后, AT89C51 执行中断服务程序中如下两条指令就可以使 OE 变为高电平,从而打开三态输出锁存器,让 CPU 提取 A/D 转换后的数字量。 AT89C51 执行如下程序可以启动ADC0809 工作。 MOV DPTR , 7FF8H MOVX A , @DPTR。 OE 变为高电平,数字量送 A LED 显示 本设计显示采用 LED串行静态显示。 MCS51系列单片机的串行口 RXD,TXD为一个全双工串行通信口,当工作在方式 0下可作同步移位寄存器用,其数据由 RXD( ) 端串行输入或输出;而同步移位时钟由 TXD( )串行输出,在同步时钟的作用下,实现由串行到并行的数据通信。 在不需要使用串行通信的场合,利用串行口加外围芯片 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的并行输出口将送出保存在内部移位寄存器 中的 8位的段码给数码管,令数码管稳定地显示所需的字符。 74LS164 是 8 位串入并出移位寄存器。 A、 B 为串行输入端, QA~QH为串行输出端, CLK 为串行时钟输入端, RM 为串行输出清零端, VCC为 +5V电源输入端, GND 为接地端。 具体输入输出关系如表 21 所示。 X数字湿度检测控制装置 10 代表任意状态; QA0、 QB0~QH0 代表在稳态输入条件建立之前 QA、QB~QH 的输出状态; QAn、 QBn~QHn 代表在最近的时钟上升沿 ↑ 转换之前 QA、 QB~QH 的输出状态; H/L、 QAn~QBn 代表在最近的时 钟上升沿 ↑ 转换之后 QA、 QB~QH 的输出状态。 表 21 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 图 29 74LS164引脚如图 串行显示电 路属于静态显示,比动态显示亮度更大一些。 由于 74LS164在低电平输出时,允许通过的电流达 8mA,故不必添加驱动电路,亮度也比较理想。 与动态扫描相比较,无需 CPU 不停的扫描,频繁地为显示服务,节省了 CPU 时间,软件设计也比较简单。 由于本设计采用的是共阳极数码管,所以相应的亮段必须送 0,相应的暗段必须送 1。 原理图如图 210 所示: 1 2 3 4 5 6ABCD654321DCBAT i t l eN u m be r R e v i s i o nS i z eBD a t e : 1 8 J u n 2 0 07 S he e t o f F i l e : C : \ D o c u m e n t s a n d S e t t i n gs \ A d m i n i s t r a t o r \ M y D o c u m e nt s \硬件原理图 \温度控制硬件原理图 .d dbD r a w n B y:A1B2Q03Q14Q25Q36Q410Q511Q612Q713C L K8MR9U17 4L S 1 64R X DT X DA1B2Q03Q14Q25Q36Q410Q511Q612Q713C L K8MR9U27 4L S 1 64A1B2Q03Q14Q25Q36Q410Q511Q612Q713C L K8MR9U37 4L S 1 64A1B2Q03Q14Q25Q36Q410Q511Q612Q713C L K8MR9U47 4L S 1 64V C CT X D T X D T X DabfcgdeD P Y1234567abcdefg8dpdp99D S 1D P Y _7 S E G _D PabfcgdeD P Y1234567abcdefg8dpdp99D S 2D P Y _7 S E G _D PabfcgdeD P Y1234567abcdefg8dpdp99D S 3D P Y _7 S E G _D PabfcgdeD P Y1234567abcdefg8dpdp99D S 4D P Y _7 S E G _D PR11 0KR21 0KR31 0KR41 0K 图 210 LED串行静态显示 数字湿度检测控制装置 11 键盘接口 键盘的工作方式选取的原则是:既要保证能及时响应按键的操作,又不过多的占用 CPU 的工作时间。 键盘的工作方式有:查询方式(编程扫描 ,定时扫描方式)、中断扫描方式。 独立式按键接口就是各按键相互独立,每个按键单独占用一根 I/O 口线,每根 I/O 口线的按键工作状态不会影响其他 I/O 口线上的工作状态。 因此,通过检测输入线的电平状态可以很容易判断哪个按键被按下了。 优点 就是 电路配置灵活,软件结构简单 ;缺点就是每 个按键需占用一根 I/O口线,在按键数量较多时, I/O 口浪费大,电路结构显得复杂。 因此,此键盘是用于按键较少或操作速度较高的场合。 本设计中由于所用键盘不多,所以采用独立连接式的查询式键盘就能够满足设计要求。 在本次设计中采用了软件扫描的方法。 通过对键盘接口 和 的查询判断是否有键按下。 本次设计采用了软件去抖动的方法。 当有键按下时,按键的触点在闭合和断开时均会产生抖动,这时触点的逻辑电平是不稳定的,如果不妥善处理,将会使按键命令的错误执行和重复执行。 采用软件延时的方法来避开抖动阶段,这一延时过程一般大于5ms。 控制电路 在本设计中,被测温度信号经采样处理后,还需要通过单片机系统的 口输出用以控制温度,控制的方式主要有模拟量控制和开关量控制。 本系统采用的是开关量控制。 所谓的开关量控制就是通过控制设备的“开”或“关”状态的 时间来达到控制的目的。 由于输出设备往往需要大电压来控制,而单片机系统输出的为 TTL 电平,这种电平不能直接驱动外部设备的开启和关闭。 另一方面,许多外部设备在开关过程中会产生很强的电磁干扰信号,如果不隔离会使系统进行错误的处理。 因此在开关量的输出控制过程中要考虑到两个问题,一要隔离;二要放大。 本设计采用继电器作为控制电路的主要器件,继电器具有一定的隔离作用,在继电器前面加一个三极管用以放大输出信号就可以驱动继电器的数字湿度检测控制装置 12 闭合和断开,从而实现弱电控制强电的效果。 固态继电器和 MCS51 系列单片机组成的控制系统 , 具 有抗干扰性强、编程简单、系统兼容性好等特点。 继电器一般由通电线圈和触电组成。 当线圈通电时,由于磁场作用,使开关触电闭合。 当不通电时,则开关触点断开。 一般线圈可用直流低电压控制( +5V, +9V, +12V)。 继电器的特性参数包括输入和输出参数, 主要的参数为 额定输入电压 、 额定输出电流 、 浪涌电流。 根据输入电压参数值大小,可确定工作电压大小。 如采用 TTL 或 CMOS 等逻辑电平控制时,采用有足够带载能力的低电平驱动,并尽可能使 “0” 电平低于。 本设计就是采用直流驱动电压为 +5V的继电器。 触电输出部分可以直接与市 电连接。 继电器控制电路如图 211 所示。 211 继电器控制电路 本次单片机温控系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。 系统软件的功能又可分为两大类:一是监控软件,它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。 二是执行软件,它是用来完成各种实质性的功能如测量、显示等功能。 本系统程序设计包括温度采集子程序、显示数字湿度检测控制装置 13 开始 初始化温度参数 采样当前温度 当前温度和设定温度送显示缓冲 设定温度 当前温度 继电器闭合 继电器断开 维持状态 读键盘 键值。 向上键 向下键 设定温度减 1 设定温度加 1 无键按下 子程序、标度转换资程序、键盘子程序、控制子程序。 程序流程图如图31 所示。 小于 等于 2 大于等于 2 图 31 系统流程图 程序初始化 程序初始化部分根据系统硬件原理图及设计要求对单片机系统进行系统资源分配、参数的设置以及定义。 系统内部资源分配和参数设置如下: A/D 端口地址 ( ADPORT): 7FF8H 数字湿度检测控制装置 14 显示缓冲起始地址:( 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 ; CLK BIT 0B1H ; ORG 0000H LJMP START 主程序 主程序代码如下: START: MOV SETTEMP, 20 ;初始恒温值为 20℃ MLOOP: 数字湿度检测控制装置 15 CALL TESTKEY ;测试有无键入 JNZ KEYPRESSED ;更改设定值 CALL DISPLAYRESULT ;数制转换 CALL DISPLAYLED ;显示 CALL READTEMP ;读入温度 CONTROL: ...... ;控制子程序 KEYPRESSED: ...... ;键盘子程序 END A/D 转换子程序 根据系统硬件连接图可知,在系统中将 ADC0809 作为一个外部扩展并行 I/O 口,采用线选寻址。 由 和 RW 联合控制启动转换信号端( ATART)和 ALE 端,低三位地址线架到 ADC0809 和 ADDA, ADDB,ADDC 端,所以选中 ADC0809 的 IN0 通道的地址为 7FF8H。 启动 DAC0809 的工作过程是:先送通道号地址到 ADDA, ADDB,ADDC,由 ALE 信号锁存通道号地址,后让 ATART 有效,启动 A/D 转换 ,即执行一道“ MOVX @DPTR ,A”指令产生 RW 信号,使 ALE, START有效,锁存通道号并启动 A/D 转换, A/D 转换完毕后, EOC 端发出一正脉冲,申请中断。 在中断服务程序中,“ MOV A ,@ DPTR”指令产生 DR 信号,使 OE端有效,打开输出锁存器三态门, 8 位数据便读入到 CPU中。 A/D 转换子程序代码如下: READAD: MOV DPTR, ADPORT CLR A MOVX @DPTR, A ; START A/D JNB , $ MOVX A, @DPTR ;读入结果 RET 标度转换子程序 数字湿度检测控制装置 16 系统温度测量范围的计算原理:根据温度标定结果选取两个温度状态T1 T2,模拟输。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。