温度数显表毕设论文.pdf_第1页
温度数显表毕设论文.pdf_第2页
温度数显表毕设论文.pdf_第3页
温度数显表毕设论文.pdf_第4页
温度数显表毕设论文.pdf_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

哈尔滨工业大学(威海)毕业设计(论文) - I - 摘要摘要 温度是工业控制中主要的被控参数之一, 温度测量在参数测量中占据 重要地位 关键词关键词单片机;数显表;热电阻 哈尔滨工业大学(威海)毕业设计(论文) - 2 - 1 1绪论绪论 1.11.1课题背景课题背景 温度数显表的使用广泛温度是工业控制中主要的被控参数之一,无论在工 业、农业、科学研究、国防和人们日常生活的各个方面,温度测量和控制都是极 为重要的课题 。随着社会的进步和工业技术的发展,人们越来越重视温度因素, 许多产品对温度范围要求都很严格。对于不同场所、不同工艺,所需温度高低范 围不同、精度不同,则采用的测温元件、测温方法以及对温度的控制方法也将不 同;产品工艺不同、控制温度的精度不同、时效不同,则对数据采集的精度和采 用的控制算法也不同,因而,对温度的测控方法多种多样。单片机在温度测量系 统中应用广泛,根据单片机系统设计要求的不同,温度测量系统的设计也有所不 同,有采用集成芯片的,也有采用恒流源器件和恒压源器件的。温度温度数显表 是在 20 世纪 90 年代中期问世的。它是微电子技术、计算机技术和自动测试技术 的结晶。目前,国际上已开发出多种智能温度传感器系列产品。智能温度数显表 内部都包含温度传感器、A/D 转换器、信号处理器、存储器(或寄存器)和接口电 路。有的产品还带多路选择器、中央控制器(CPU)、随机存取存储器(RAM)和只 读存储器(ROM)。智能温度数显表的特点是能输出温度数据及相关的温度控制 量,适配各种微控制器(MCU);并且它是在硬件的基础上通过软件来实现测试功 能的,其智能化程度也取决于软件的开发水平。 1.21.2题目简介题目简介 1.2.1 主要研究内容主要研究内容 设计一种基于 PT100 热电阻的温度数显表。具有实时显示当前温度的功能, 可设定温度上下限值并有超限报警,同时可以通过 RS485 与上位机通讯。 1、选用一款单片机; 2、设计信号检测电路; 3、对检测数据进行滤波等处理; 4、显示检测数据; 学生本人在该设计中具体完成的工作: 硬件设计包含了铂热电阻测量模块、A/D 转换模块、键盘模块、显示模块、通讯 模块及主控制模块等的设计原理及电路,软件编程与硬件设计相对应。 1.2.2 研究方案研究方案 哈尔滨工业大学(威海)毕业设计(论文) - 3 - 研究方案研究方案: 设计电桥将热电阻阻值的变化转化为电信号电压的变化,将电信号输出后 接入运算放大器, 然后再将放大后的信号输入到 A/D 转换电路, 然后接入单片机, 通过单片机在 LED 显示屏上显示数据。键盘模块与单片机相连,用于设置所用开 关键,并且用于设置温度上下限,此模块用电路搭建,并用 C 语言编程控制。选 择一款单片机后, 用 C 语言编程进行滤波和线性补偿并查表找到电压变化所对应 的温度值,输出。通讯模块用于将单片机通过 RS485 与 PC 机相连,通过 LED 显 示屏显示数据。 系统框图系统框图 图图 1-11-1 系统方框图系统方框图 温温度度信信号号采采集集 系系统统(桥桥电电 路路) 信信号号放放大大 AD转转换换模模 块块 单单片片机机 计计算算机机 键键盘盘 超超限限报报警警 LED显显示示 哈尔滨工业大学(威海)毕业设计(论文) - 4 - 2 2器件选型及介绍器件选型及介绍 2.12.1单片机的选型单片机的选型 2.1.12.1.1STC89C52RCSTC89C52RC 单片机介绍单片机介绍 STC89C51RC/RD+系列单片机是宏晶科技推出的新一代超强抗干扰/高速/ 低功耗的单片机,指令代码完全兼容传统 8051 单片机,12 时钟/机器周期和 6 时钟/机器周期可任意选择,最新的 D 版本内部集成 MAX810 专用复位电路。它 有以下特点: (1) 增强型 6 时钟/机器周期,12 时钟/机器周期 8051 CPU; (2) 工作电压:5.5V3.4V(5V 单片机) /3.8V2.0V(3V 单片机)本次设 计选用 5V 单片机; (3) 工作频率范围:040 MHz,相当于普通 8051 的 080MHz.实际工作频率可 达 48MHz; (4) 用户应用程序空间 4K / 8K / 13K / 16K / 20K / 32K / 64K 字节; (5) 片上集成 1280 字节 / 512 字节 RAM; (6) 通用 I/O 口 (32/36 个) , 复位后为:P1/P2/P3/P4 是准双向口/弱上拉(普 通 8051 传统 I/O 口)P0 口是开漏输出,作为总线扩展用时,不用加上拉 电阻,作为 I/O 口用时,需加上拉电阻; (7) ISP(在系统可编程)/IAP(在应用可编程) ,无需专用编程器/仿真器可 通过串口 (P3.0/P3.1)直接下载用户程序,8K 程序 3 秒即可完成一片; (8) EEPROM 功能; (9) 看门狗; (10)内部集成 MAX810 专用复位电路 (D 版本才有) ,外部晶体 20M 以下时, 可省外部复位电路; (11)共 3 个 16 位定时器/计数器, 其中定时器 0 还可以当成 2 个 8 位定时器使 用; (12)外部中断 4 路,下降沿中断或低电平触发中断,Power Down 模式可由外部 中断低电平触发中断方式唤醒; (13)通用异步串行口(UART),还可用定时器软件实现多个 UART; (14)工作温度范围:075 / -40+85; (15)封装: LQFP-44,PDIP-40,PLCC-44,PQFP-44,如选择 STC89 系列,本次 选择 PDIP-40 封装。 STC89C52RC 的引脚图如图 3-15 所示: 哈尔滨工业大学(威海)毕业设计(论文) - 5 - 图 1-2 STC89C52RC 的引脚图 STC89C52RC 具有 4 级 6 个中断源, 主要用于单片机的实时测控, 可以使单 片机及时的响应和处理单片机外部或内部事件所提出的中断请求。 外部中断有外 部中断 0 和外部中断 1 两类,它是由外部原因引起的中断。外部中断的触发有 2 种方式:电平触发方式和跳沿触发方式。电平触发方式适合于外部中断以低电平 输入而且中断服务程序能清除外部中断源的情况, 即外部中断输入电平又变为高 电平的情况。跳沿触发方式适合于以负脉冲形式输入的外部中断请求。定时器溢 出中断是为满足与时间技术相关的实际需要而设置的。在单片机芯片内部有 3 个定时器/计数器,这三个定时器/计数器都具有定时器和计数器两种工作方式。 计数功能是对外来脉冲进行计数, 每当计数器的计数输入引脚的脉冲发生负跳变 时,计数器加 1。定事功能也是通过计数器的计数来实现的,此时的计数脉冲来 自单片机内部,每个机器周期产生 1 个计数脉冲,也就是每经过 1 个机器周期的 时间计数器加 1。串行中断是为串行数据传送的需要而设置的。每当串行口接受 或发送完一组串行数据时均产生一个中断请求。 STC89C52RC 单片机与中断控制 有关的寄存器有:定时控制寄存器 TCON、中断允许控制寄存器 IE、中断优先 控制寄存器 EP、串行口控制寄存器 SCON 和定时器操作模式寄存器 TMOD。 STC89C52RC 单片机内部有一个功能强大的全双工的异步通信串行口。 串行 通信是指数据的所有位都按一定的顺序和方式,逐步通过串行输入/输出口进行 传输。异步通信是指收发双方没有统一的公共时钟,采用应答方式通信。 STC89C52RC 单片机串行口有两个在物理上独立的接受、发送缓冲器 SBUF,可 以同时发送、接收数据,发送缓冲器只能写入数据而不能读出,接受缓冲器则只 能读出数据而不能写入数据,两个缓冲器共用一个特殊功能寄存器 SBUF。串行 口工作模式由特殊功能寄存器 SCON 的 SMO, SM1 位定义,它的四个工作模式 如表 2 所示。 表 2 STC89C52RC 串行口工作模式表 SM0SM1MODE功能描述波特率 000移位寄存器fosc/12 哈尔滨工业大学(威海)毕业设计(论文) - 6 - 0118 位 UART波特率可变 1029 位 UARTfosc/64 或 fosc/32 1139 位 UART波特率可变 STC89C52RC 的特殊功能寄存器如表 3 所示。 表 3 STC89C52RC 特殊功能寄存器表 名称说明地址 ACC累加器E0H BB 寄存器F0H DPTR数据指针(双字节) DPH数据指针高字节83H DPL数据指针低字节82H IE中断使能A8H IP中断优先级B8H P0I/O 口 080H P1I/O 口 190H P2I/O 口 2A0H P3I/O 口 3B0H PCON电源控制87H PSW程序状态字D0H SBUF串口数据缓冲区99H SCON串行口控制98H SP堆栈指针81H TCON定时器控制88H T2CON定时器 2 控制C8H T2MOD定时器 2 模式控制C9H TH0定时器高字节 08CH TH1定时器高字节 18DH TH2定时器高字节 2CDH TL0定时器低字节 08AH TL1定时器低字节 18BH TL2定时器低字节 2CCH TMOD定时器模式89H 2.22.2 铂热电阻简介铂热电阻简介 铂热电阻是利用铂丝的电阻值随着温度的变化而变化这一基本原理设 计和制作的,按 0时的电阻值 R()的大小分为 10 欧姆(分度号为 Pt10) 和 100 欧姆(分度号为 Pt100)等,测温范围均为-200850.10 欧姆铂热 电阻的感温原件是用较粗的铂丝绕制而成,耐温性能明显优于 100 欧姆的 铂热电阻,只要用于 650以上的温区:100 欧姆铂热电阻主要用于 650 以下的温区,虽也可用于 650以上温区,但在 650以上温区不允许有 A 级误差。100 欧姆铂热电阻的的分辨率比 10 欧姆铂热电阻的分辨率大 10 倍,对二次仪表的要求相应地一个数量级,因此在 650以下温区测温应尽 量选用 100 欧姆铂热电阻。 哈尔滨工业大学(威海)毕业设计(论文) - 7 - 感温元件骨架的材质也是决定铂热电阻使用温区的主要因素,常见的 感温元件有陶瓷元件,玻璃元件,云母元件,它们是由铂丝分别绕在陶瓷 骨架,玻璃骨架,云母骨架上再经过复杂的工艺加工而成。由于骨架材料 本身的性能不同,陶瓷元件适用于 850以下温区,玻璃元件适用于 550 以下温区。近年来市场上出现了大量的厚膜和薄膜铂热电阻感温元件,厚 膜铂热电阻元件是用铂浆料印刷在玻璃或陶瓷底板上,薄膜铂热电阻元件 是用铂浆料溅射在玻璃或陶瓷底板上,再经光刻加工而成,这种感温元件 仅适用于-70500温区,但这种感温元件用料省,可机械化大批量生产, 效率高,价格便宜。 就结构而言,铂热电阻还可以分为工业铂热电阻和铠装铂热电阻。工 业铂热电阻也叫装配铂热电阻,即是将铂热电阻感温元件焊上引线组装在 一端封闭的金属管或陶瓷管内,再安装上接线盒而成;铠装铂热电阻是将 铂热电阻元件,过渡引线,绝缘粉组装在不锈钢管内再经模具拉实的整体, 具有坚实,抗震,可绕,线径小,使用安装方便等优点。 本题目选用的传感器为 PT100。 图 1-3 PT100 哈尔滨工业大学(威海)毕业设计(论文) - 8 - 3 3硬件电路的设计硬件电路的设计 该智能温度数显表主要具有温度显示,超限报警,用户自定义温度范围,控 制降温设备的继电器开关几项功能, 据此, 将其硬件电路划分为电源电路、 LM75A 的数据采集电路、LED 显示电路、键盘电路和超限措施电路五部分,下面将对其 一一进行介绍。 3.13.1温度信号的采集温度信号的采集电路的设计电路的设计 温度信号的采集使用桥电路原理: 电桥是在工业测量过程中进行电阻-电压转换的常用电路, 具有结构简单 及良好的动态品质特点,但存在的问题是桥臂电阻和电桥输出电压之间的非线 性。如图1 所示, 1 R, 2 R, x R, 3 R= 3 R/ 1 W构成桥电路。在桥臂电阻 x R产 生R的变化时,电桥输出电压变化为U,如式(1)所示; 3 12() x1 23 RRx U RR RR (1) 哈尔滨工业大学(威海)毕业设计(论文) - 9 - 图图 3-13-1 桥电路桥电路 3.23.2 信号放大器的选择信号放大器的选择 仪用放大器 AD620 是由三个放大器所共同组成,其的电阻 R 与 Rx需在放大器 的电阻用范围内(1k 10k )。我们可以调整 Rx来调整放大的增益值,其关系式如 式(1)所示,必须注意避免每个放大器的饱和现象(放大器最大输出为其工作电压 Vdc) 012 2 (1)() x R VVV R (1) 图 3-2 AD620 的基本特点为精确度高、 使用简易、 低噪声, 应用十分广泛, 表 1 为 AD620 的规格特性总览。 项目规格特性备注 增益范围11000只需一个电阻即可设定 电源供应范围2.3V18V 低耗电量max supply current =1.3mA可用电池驱动,方便应 用 于可携式器材中 精確度高40 ppm maximum nonlinearity; low offset voltage of 50V max.; offset drift of 0.6V/ max. 低噪声Low input voltage noise of 9nV/ Hz at 哈尔滨工业大学(威海)毕业设计(论文) - 10 - 1kHz 应用场合ECG 量测与医疗器材、 压力量测、 V/I 转换、 资料撷取系统等。 AD620 仪表放大器的脚位图如图 2 所示。其中 1、8 接脚要跨接一个电阻来调整 放大倍率(作用同式(1)中之 Rx) ,4、7 接脚需提供正负相等的工作电压,由 2、3 接脚 输入的放大的电压即可从接脚 6 输出放大后的电压值。接脚 5 则是参考基 准,如果接地则接脚 6 的输出即为与地之间的相对电压。AD620 的放大增益关系式 如式(2)、式 (3)所示,由此二式我们即可推算出各种增益所要使用的电阻值了。 49.4 1 G K G R (2) 49.4 1 G K G R (3) 图 3-3 哈尔滨工业大学(威海)毕业设计(论文) - 11 - 3.33.3 AD 转换电路的设计转换电路的设计 A/D 转换有很多方式,可以利用多谐振荡器实现 A/D 转换,而单片机 STC89C52RC 内部有一个模拟信号比较器 ,P1.0 和 P1.1 兼作模拟信号比较器 的同相输入端和反相输入端 ,模拟信号比较器的比较结果存入 P3.6 对应的寄 存器 ,P3.6 在 STC89C52RC 外部无引脚。利用这个模拟信号比较器和锯齿波 信号发生器电路就可以组成一个 A/D 转换电路 ,把 P1.1 输入的模拟信号转换 成数字信号。这次设计采用最常用的 ADC0809 作为 A/D 转换器。 ADC0809 是八位逐次逼近式 A/D 转换器,是一种单片 CMOS 器件,包括 8 位的模/数转换器、8 通道多路转换器和与微分处理器兼容的控制逻辑。8 通道多 路转换器能直接连通 8 个单端模拟信号中的任何一个。 ADC08909 设计时考虑到 了若干种模/数转换技术的长处,适用于过程控制和机床控制。ADC0809 的引脚 图如图 3-6 所示。它的片内带有锁存功能的 8 路模拟多路开关,可对 8 路 05V 的输入模拟电压信号分时进行转换,片内具有多路开关的地址译码和锁存电路、 比较器、256R 电阻 T 型网络、树状电子开关、逐次逼近寄存器 SAR、控制与时 序电路等。输出具有 TTL 三态锁存缓冲器,可直接连到单片机数据总线上。 ADC0809 的分辨率为 8 位,最大不可调误差小于1LSB,单一+5V 供电,模拟 输入范围为 05V, 具有锁存控制的 8 路模拟开关, 可锁存三态输出, 输出与 TTL 兼容。不必进行零点和满度调整,转换速度取决于芯片的时钟频率(由于单片机 STC89C52RC 外部晶振采用的是 12MHz 晶振,故需对频率进行四分频。 ADC0809 的引脚功能如下: IN0IN7:8 路输入通道的模拟量输入端口; START:为启动控制输入端口; ALE:为地址锁存控制信号端口,可以和 START 端口连接在一起,当通过 软件输入一个正脉冲,便立即启动模/数转换; EOC:为转换结束信号脉冲输出端口; OE:为输出允许控制端口,可以和 EOC 端口连接在一起表示转换结束。 OE 端的电平由低到高,打开三态输出锁存器,将转换结果的数字量输出到数字 总线上; REF(+) :参考电压输入端口; REF(-) :参考电压输入端口; Vcc:主电压输入端口; GND:接地端; CLK:时钟输入端; ADDA,B,C:8 路模拟开关的 3 位地址选通输入端,以选择对应得输入通道。 在本次设计中采用 8 路信号输入端,采集 8 路模拟信号,故 ADDA,B,C 应分别 接单片机的 3 个 I/O 口进行选择通道。 哈尔滨工业大学(威海)毕业设计(论文) - 12 - 图 3-6ADC0809 引脚图 ADC0809 的工作过程是:首先输入 3 位地址,并使地址锁存允许信号 ALE 为 1,将地址存入地址锁存器中,此地址经译码选通 8 路模拟输入之一。A/D 转 换启动信号 START 上升沿将逐次逼近寄存器复位。下降沿启动 A/D 转换,之后 A/D 转换结束信号 EOC 输出变低, 指示转换正在进行。 直到 A/D 转换完成, A/D 转换结束信号 EOC 变为高电平,指示 A/D 转换结束,结果数据已存入锁存器, 这个信号可用作中断申请。当数据输出允许信号 OE 输入高电平时,输出三态门 打开,转换结果的数字量输出到数据总线上。 ADC0809 与 STC89C52RC 的连接见图 3-7 所示, 虽然接的是中断口,但是 ADC0809 的工作方式采用为查询方式。 图 3-7ADC0809 与 STC89C52RD 的连接 3.3.2 74LS74 芯片 74LS74 是双上升沿 D 触发器(有预置、清除端)1CP、2CP 为时钟输入端, 1D、2D 为数据输入端,Q、/Q 为输出端,CLR 为直接复位端(低电平有效) ,PRE 为直接置位端(低电平有效) 。 哈尔滨工业大学(威海)毕业设计(论文) - 13 - 3.43.4显示电路的设计显示电路的设计 3.4.13.4.1LED 简介简介 发光二极管显示器是单片机应用产品中常用的廉价输出设备。 它是由若干个 发光二极管组成显示的字段。当二极管导通时相应的一个点或一个笔划发光,通 过控制发光二极管的亮暗的不同组合, 就可以显示出多种数字、 字母及其他符号。 本次设计采用的是由7段型发光二极管(ag7段)和1个圆点型发光二极管(常 以dp表示,主要用来显示小数点)组成的8段数码显示器。 LED 数码显示器有两种结构:将所有发光二极管的阳极连在一起,称为共阳 接法,公共端接高电平,当某个字段的阴极接低电平时,对应的字段就点亮;而 将所有发光二极管的阴极连在一起,称为共阴接法,公共端接低电平,当某个字 段的阳极接高电平时,对应的字段就点亮。发光二极管显示其外形及共阴极、共 阳极接法如图3-3所示。 图3-3LED显示器外形及共阴极、共阳极接法 为了显示各个数字或字符,就需要为 LED 提供相应的代码,因为这些代码是 用来控制各段发光二极管的亮或灭,供显示器显示字形的,所以称为字段码(也 可以称为段选码或字形码)。7 段发光二极管再加上 1 个小数点位,共计 8 段, 因此提供给 LED 显示器的字段码正好 1 个字节。各代码位的对应关系如表 3-1 所示。 表 3-1 代码位对应关系 D7D6D5D4D3D2D1D0 dpgfedcba 在单片机应用系统中,实际使用的 LED 显示器有多个,N 位 LED 显示器的显 示要从两个方面来控制:其一是控制 N 位的字段显示(即显示什么字符);其二 是控制字位(即哪一位到哪一位亮)。由 LED 的显示原理可知,要使某 N 位 LED 显示器的某一位显示某个字符, 就必须将此字符转换为对应的字段码来控制该位 的 8 个段,同时,该位的字位线也要控制有效,这要通过一定接口来实现。 点亮LED 显示器有静态和动态两种方法。所谓静态显示,就是显示某一字符 时, 相应的发光二极管恒定的导通或截止, 这种方法, 每一显示位都需要一个8 位 的输出口控制,占用的硬件较多,一般仅用于显示位数较少的场合。 而动态就是一位一位地轮流点亮各位显示器,对每一位显示器而言,每隔一 段时间点亮一次,利用人的视觉留感达到显示的目的。显示器的亮度跟导通的电 流有关,也和点亮的时间与间隔的比例有关。动态显示器因其硬件成本较低,而 得到广泛的应用。 3.4.23.4.2显示电路的设计显示电路的设计 由于 LM75A 测量温度的最大范围是-55+125, 在25100时它 提供2的测量精度,因此,采用四位 LED 即可满足显示要求。考虑到显示位 数较少,选择静态显示即可。 由 AT89C2051 单片机的串行口外接移位寄存器 74LS164 构成显示器接口, 单 哈尔滨工业大学(威海)毕业设计(论文) - 14 - 片机的串行口采用方式 0 的输出方式。P1.7 作为 TXD 引脚同步移位脉冲输出控 制线,P1.7=0 时,与门输出为 0,禁止同步移位脉冲输出。这种静态显示方式的 优点是亮度大,很容易做到显示不闪烁,且 CPU 不必频繁的为显示服务,因而主 程序可以不扫描显示器;软件设计比较简单,从而使单片机有更多时间处理其他 事务。具体电路图如图 3-4 所示。 图 3-4显示电路 3.53.5键盘电路及工作原理键盘电路及工作原理 3.5.13.5.1键盘工作原理键盘工作原理 键盘在单片机应用系统中用于实现向单片机输入数据、传输命令等功能,是 人工干预单片机的主要手段。 键盘实质上是一组按键开关的集合,每一个按键都被赋予一个代码,称为键 码。键的闭合与否,反映在行线输出电压上就是呈现高电平或低电平,通过对行 线电平高低状态的检测便可以确认按键是否按下。但是,按键的闭合和释放都要 经过一定的过程才能达到稳定, 这一过程是出于高低电平之间的一种不稳定的状 态,称为抖动。抖动持续时间的长短与开关的机械特性有关,为了避免多次处理 按键的的一次闭合,应采取措施消除抖动。消除抖动的方法有两种,一种是采用 硬件电路来实现,如滤波电路、双稳态电路等;另一种是利用软件来实现,即当 发现有按键按下时,延时 50ms 左右再查询是否有按键按下,若没有按键按下, 说明上次查询的结果为干扰或抖动;若有键按下,则说明闭合键已稳定,即可判 断其键码。 常用的键盘接口分为独立式和行列式两种, 当按键较少时一般采用独立式键 盘接口,此时 CPU 的相应方式可以是查询方式也可以是中断方式;而当按键比较 多时键盘接口多采用行列式,CPU 的响应方式此时一般是查询方式。 3.5.23.5.2键盘电路的设计键盘电路的设计 该智能温度数显表允许用户通过键盘设置或更改温度范围的上、下限,将最 终数值存入 LM75A 的相应寄存器中,并且在设置过更改过程中,输入的数值能在 LED 上显示出来。为实现上述功能,键盘电路的设计思想如下: 首先需要设置一个功能键,该键被按下后产生中断,以便用户对键盘进行下 一步操作。第一次按下功能键,LED 的第一位显示“H” ,第二位闪烁,用户此时 可以设置温度上限;第二次按下功能键,LED 的第一位显示“L” ,第二位闪烁, 用户此时可以设置温度下限;第三次按下功能键,LED 恢复正常显示状态,并将 更改后的上、下限数值送入 LM75A 相应的寄存器中,若上、下限没有更改,则不 必存入。 其次需要一个移位键。在正常显示状态下,按下移位键不起作用。当功能键 被按下一次或两次以后,LED 的第二位闪烁,此后每按下移位键一次,闪烁位向 后移动一次,用户即可对闪烁位进行相应操作。当 LED 第四位闪烁时,按下移位 键,第二位即开始闪烁。 哈尔滨工业大学(威海)毕业设计(论文) - 15 - 最后,要设置能更改相应位的数值的按键。考虑到每一位数从 0 逐次加一 至 9 后可以再回到 0,不需要进位功能,因此只需设置一个加一键即可满足更改 数值的要求。在正常显示状态下,按下加一键不起作用。当功能键被按下一次或 两次以后,按加一键即可对闪烁位进行数值的更改,每按一次,该位数值加一, 加至数字为 9 时,再按加一键,该位数值变为 0,但不向高位进位。 需要注意的是,在正常显示状态下,按下移位键或加一键是不起作用的;只 有在功能键被按下一次或两次后,进入设置状态,再按其他两键才能达到更改数 值的目的。此外,当功能键被按下时,CPU 给予中断响应,只有当功能键被按下 3 次才能恢复到正常显示状态,否则将一直处在中断中而不运行其他程序。 由于按键个数较少,只有三个键,因此采用独立式键盘即可。采用软件查询 和外部中断相结合的方式,当某个键按下时,低电平有效。键盘电路如图 3-5 所示。 图 3-5键盘电路 3.63.6报警电路的设计报警电路的设计 报警电路采用红色和绿色发光二极管分别作为超上限报警信号和超下限报 警信号,由单片机的 I/O 口直接驱动。即由单片机读取 LM75A 的温度寄存器、过 温关断寄存器和滞后寄存器的数值,将其进行比较,当温度值超过过温关断寄存 器数值(即上限值)时,P1.6 输出低电平,红色发光二极管点亮,上限报警; 反之,当温度值低于滞后寄存器数值(即下限值)时,P1.4 输出低电平,绿色 发光二极管点亮,下限报警。需要注意的是,由于发光二极管的导通电流不能太 大(小于 20mA) ,否则会损坏,因此使用它作为报警信号时应在电路中接限流电 阻,设计中使用的限流电阻是 510。 哈尔滨工业大学(威海)毕业设计(论文) - 16 - 4 4 系统软件设计系统软件设计 4.1 软件开发及应用平台 操作平台: Window98/2000/XP 开发工具: Keil uVision2C 语言 ISP 编程软件: PC 机端控制软件 STC-ISP-V3.1 4.2 工具介绍 4.2.1 Keil uVision2 简介 本软件采用 Keil uVision2 作为开发工具。现把它做一简单概述: KEILC51 标准 C 编译器为 8051 微控制器的软件开发提供了 C 语言环境,同 时保留了汇编代码高效,快速的特点。C51 编译器的功能不断增强, 使你可以更 加贴近 CPU 本身,及其它的衍生产品。C51 已被完全集成到 uVision2 的集成开 发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理 器,调试器。uVision2 IDE 可为它们提供单一而灵活的开发环境。 4.2.2 ISP 编程编程原理及注意事项 单片机彻底没电后给单片机上电复位,冷起动,单片机运行系统 ISP 监控程 序,若检测 P3.0/RxD 有合法下载命令流则下载用户程序进用户程序区。软复位 到用户程序区后即可运行用户程序。 若为检测到合法下载命令流则直接软复位到 用户程序区。 注意事项: (1) 外部手动复位,看门狗复位,单片机不会运行 ISP 程序; (2) 单片机运行 ISP 程序,检测有无合法下载命令流,占时几十 mS几百 mS, 如无合法下载命令流,则立即跑用户程序; (3) 如果已设置 P1.0/P1.1=0/0,才会判断是否下载用户程序,则冷启动后,如 P1.0/P1.10/0,则直接跑用户程序,只会占时 50uS,可忽略不计。若选 择 P1.0/P1.1 不同时为 0/0,则立即跑用户程序,跨过系统 ISP 监控程序; (4) PC 机端的控制软件必需先发下载命令流,再给单片机上电复位。 4.3主程序设计 本设计中采用 STC89C52RC 作为核心处理器件,软件设计部分需要实现以 下几部功能: (1) ADC0809 转换控制:采集输入信号中进行模数循环转换,将 ADC0809 的 输出数据进行数据处理,得到对应的线性数值; (2) 按键:通过按键控制可以设置系统允许对数值进行设置上下限操作,实现 系统当前工作状态的切换和电路复位; (3) 显示:4 位数码管动态显示; (4) 报警指示:将采集到被测当前数值与系统设置的数值上限值相比较,若当 前被测数值超出所设置的数值上下限范围,则产生报警指示并输出 24V 电压。 哈尔滨工业大学(威海)毕业设计(论文) - 17 - 4.3.1 主程序流程图设计 智能数显表主程序要初始化,然后开放 CPU 中断,启动定时器工作,进行 数据处理并在显示器和键盘管理子程序的重复执行, 当超过所设定的上限值时进 行报警处理。主程序工作流程图,如图 4-1 所示: 系统在开始工作后,当有确定键按下时系统开始采集 ADC 转换的数字量,然 后对其进行数据处理并用数码管显示出当前的线性对应的数值, 最后将确定键的 按键标志位 f4 置零。当有切换键按下时,跳转到切换程序,切换程序进行显示 界面的 P、H、L 之间的切换,对应的可执行数值显示和上下限值的设定。 4.2.1 4.3.2 主程序流程图设计解析 由于系统复位后,各寄存器都被置 1,因此,要对各工作寄存器清零。以便 以后的使用。另外,由于控制报警系统的 STC89C52RC 的 P2.7 引脚是用来控制 报警装置的, 若当前所得到的数值超过用户所设定的上限则把 P2.7 置 1, 此时硬 件会产生报警并输出 24V 直流电压。因此在系统复位后应立即把 P2.7 强行置为 低电平,这样才会避免误报警。初始化后主程序就进入了一个循环。对键盘进行 扫描,时刻监视是否有按键被按下。一旦某个按键被按下,则立刻判断是哪个按 键,继而执行相关操作,调相应的显示子程序。最后返回,再进行键盘分析作出 相应的处理。 图 4-1 主程序流程图 4.4键盘子程序设计键盘子程序设计 4.2.2 4.4.1 键盘扫描子程序 系统键盘采用中断方式。当有按键按下时,程序进入外部中断 1 子程序。设 哈尔滨工业大学(威海)毕业设计(论文) - 18 - 置变量 temp 采集 4 个按键接口的电平,然后通过判断变量 temp 的数值来确定 4 个按键中具体时哪一个被按下,同时把该按键的按键标志位置 1,跳出中断。当 f1=1 时表示切换键按下;当 f2=1 时表示平移键按下;当 f3=1 时表示循环键按 下;当 f4=1 时表示确定键按下。其流程图如图 4-2 所示。 图 4-2 定时器 1 T中断服务子程序流程图 键盘共有 4 个按键构成,分别为:KEY1 键状态切换键(用于系统工作状态 的切换,包括显示状态,上限制设定状态和下限值设定状态) ,KEY2 键平移键 (当进行数值设定时控制位数的平移) ,KEY3 键循环键(当按键按下时能进行 0-9 和“-”的数值设定) ,KEY4 键确认键用于保存数据。在按键电路中,因为 P3 口默认为高电平故不用加上拉电阻。当有按键按下时,电路导通使得 P3.4、 P3.5、P3.6、P3.7 某一口接地,为低电平。同时 74LS08 的 1、2、4、5 其中一口 哈尔滨工业大学(威海)毕业设计(论文) - 19 - 为低,使得单片机的外部中断 1(P3.3 口)为低,产生中断。当按键松开时,电 路断开,P3.4、P3.5、P3.6、P3.7 接高电平,74LS08 的 1、2、4、5 口为高,单 片机的外部中断 1 为高,无中断产生。 按键是一种机械弹性开关,当按键按下时闭合,松开时断开。因为有机械的 接触, 在触点闭合或断开的瞬间会出现电压抖动。抖动时间长短与键的键的机械 特性有关,一般为 510ms。而键盘的稳定闭合时间和操作者的按键动作有关, 大约为十分之几秒不等。为了避免输入的错误,必须进行键抖动的处理。本设计 采用软件处理方法采用时间延迟以躲避抖动(大约延时 1030ms) ,待触点状态 稳定之后,再进行输入。 4.4.2 KEY1KEY1 键状态切换键子程序键状态切换键子程序 该部分程序的主要功能是在显示状态,上限值设定状态,下限值设定状态 3 个状态之间实现切换。系统上电后,即进入显示状态。按 1 下切换键,系统切换 到上限值设定状态,再按 1 下切换键系统将进入下限值设定状态,再按 1 下切换 键系统将从新回到显示状态。其原理为当切换键被按下时,切换变量 num1 自加 1, 当 num1 大于 2 时归零。 然后通过判断 num1 的数值跳转到与数值相对应的显 示子程序、上限设定子程序或下限设定子程序,具体流程如图 4-3-1 所示。 哈尔滨工业大学(威海)毕业设计(论文) - 20 - 图 4-3-1 KEY1 键状态切换键子程序流程图 哈尔滨工业大学(威海)毕业设计(论文) - 21 - 图 4-3-2 设置上下限程序流程图 4.4.3 KEY2 键平移键子程序 该部分程序的主要功能是在系统分别进入上、下限值设定状态时,实现上下 限位的设定。 以上限值设定为例, 当系统进入上限值设定状态时, 按 1 下平移键, 数码管全部变黑,平移循环变量 num2 自加一,num2 大于 3 时数值自动归零。然 后通过 num2 数值的判断,跳转到与之相对应的百位、十位、个位、小数位设定 子程序,其流程图如图 4-4 所示。 哈尔滨工业大学(威海)毕业设计(论文) - 22 - 图 4-4KEY2 键平移键子程序流程图 4.4.4KEY3 键循环键子程序 该程序部分为平移程序所调用的程序, 平移程序功能的实现主要是以该程序 为基础。以百位值的设定为例,如果不设定,则默认值为 0,该位的数码管全部 变黑。如果按下确认键,表示设定完毕,此时 KEY3 键循环键已经失效。在确认 键未按下的前提下,按下 KEY3 键循环键,变量 num3 会自加一用于实现 09 以 及负号的设定,如果是设定百位 num3 大于 10 时则 num3 置 0,设定结束后将循 环键标志位置 0,调用下数组 LEDData1 = 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xbf 数组(数组中元素对应的字符含义依次为数字 09 及负号) 。但当设置十位、个 位和小数位时则调用 LEDData1 = 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xbf 哈尔滨工业大学(威海)毕业设计(论文) - 23 - 数组和 LEDData2 = 0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x02, 0x78, 0x00, 0x10数组 (数组中元素对应的字符含义依次为数字 0.9. )此时每按一下按下 KEY3 键 循环键,变量 num3 会自加一,当 num3 大于 9 时 num3 置 0。KEY3 键循环键的 具体程序流程如图 4-5、4-6 所示。 图 4-5 KEY3 键循环键子程序百位流程图图 4-6 KEY3 键循环键子程序其余位 流程图 4.5A/D 转换子程序设计 智能数显表的主体流程如图 4-1 所示。 在系统进行初始化之后判断是否有切 换键或者是确认键按下,如果没有则等待。否则若是有切换键按下则执行切换程 序,若是有确认键按下则进行 A/D 转换和数据处理等相关程序。在执行完各自 程序操作后返回,从新执行键盘扫描程序。ADC0809 转换流程图如图 4-7 所示。 哈尔滨工业大学(威海)毕业设计(论文) - 24 - 图 4-7 A/D 转换程序设计子程流程图 在进行A/D转换控制时, 必须严格按照ADC0809的工作时序完成A/D转换。 A/D 转换启动信号 START 下降沿启动 A/D 转换,之后 A/D 转换结束信号 EOC 输出变低, 指示模数转换正在进行。 直到 A/D 转换完成, A/D 转换结束信号 EOC 变为高电平,指示 A/D 转换结束。当数据输出允许信号 OE 为高电平时,转换结 果的数字量输出到数据总线上。ADDA,B,C:8 路模拟开关的 3 位地址选通输入 端,通过单片机选择对应得输入通道。 4.6显示子程序设计 显示子程序采用动态扫描法实现四位数码管的数值显示。测量所得的 A/D 转换数据放在数据段 NUM 的 4 字节存储单元, 测量数据在显示时需要转换为十进 制 BCD 码放在 BCD0BCD4 单元中,其中 BCD4 存放的是输入数据的路数。由 于 AD0809 是将模拟信号转换为数字信号,转换完的数字信号输入单片机 STC89C52RC 的 P1 口, 在单片机 STC89C52RC 内部将二进制数据先转换成十进 制数据(0255) ,由于显示范围为-99.9999.9,故还需做一次线性变换将数字信 号转换为对应的数值, 公式为 td*43.129+0.5 (d 为AD转换后对应的十进制数) , 哈尔滨工业大学(威海)毕业设计(论文) - 25 - 转换时保留整数位,再将数据转换为显示码就可以输出显示了。 显示子程序中调用了 BCD 码转换子程序和 4 位数据显示子程序,BCD 码转 换程序是将数据转换为 BCD 码值。4 位显示子程序是将每组数据输出,主要是 将对应的段码和位码输出。 图-显示子程序流程图 4.3 4.7 EEPROM 程序设计 4.3.1 4.7.1 设计思路 首先,把上限做一个标准,比如:在代码初始化的时候就设定上限为 40, 就是程序中的一个全局变量:unsigned char sx=40。然后,当测量的温度高于 40,系统就会自动报警。如果要设置上限的话,只要按了上限设置按纽,就会马 上把 sx 这个变量送到显示,这时候,数码管上面显示的是 0040,按移位键、循 环键和确认键,把新上限设定好了,那么的话 SX 的值也随即改变,即为新的上 限值。 把上面的新的 SX 值写到单片机的 EPROM 里面,在单片机下次启动的时候, 从 EPROM 里面把这个值读出来,替换掉 SX 里面的初始化值,这就实现了掉电保 存。 4.3.2 4.7.2STC89C52RC 的 EEPROM 介绍 ISP_DATA:ISP/IAP 操作时的数据寄存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论