毕业设计论但文(烘箱温度控制系统的设计)_第1页
毕业设计论但文(烘箱温度控制系统的设计)_第2页
毕业设计论但文(烘箱温度控制系统的设计)_第3页
毕业设计论但文(烘箱温度控制系统的设计)_第4页
毕业设计论但文(烘箱温度控制系统的设计)_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、摘 要随着电子技术的飞速发展,自动控制、智能仪器、智能家电的广泛应用,给社会带来 了巨大改变。单片机技术的发展给智能仪器、智能家电注入了新的活力。单片微型计算 机的功能不断增强,许多高性能的新型机种不断涌现出来。单片机以其功能强、体积小、 可靠性高、造价低和开发周期短等优点,称为自动化和各个测控领域中广泛应用的器件, 在工业生产中称为必不可少的器件,而温度是工业对象中主要的控制参数之一。现代工 业设计、工程建设及日常生活中常常需要用到温度控制,早期温度控制主要应用于工厂 中,例如钢铁的水溶温度,不同等级的钢铁要通过不同温度的铁水来实现,这样就可能 有效的利用温度控制来掌握所需要的产品了。设计中

2、介绍了以 at8951单片机为核心的烘箱的温度控制系统的工作原理和软件设计 方法。设计中详细介绍了软件设计部分,在这里采用模块化结构,主要模块有: 主程序、 中断服务程序、采样程序、报警程序,、键盘/显示程序以及 pid 计算程序等。此外,设计 中还介绍了该系统的所用到的主要芯片,如 at8951单片机,a/d 转换芯片 adc0809 等等。 由于设计具有很强的通用性,所以本设计也可用于其它的温度控制系统。全文分四个部 分:一、at89c51 单片机主要功能以及它的概述:二、控制系统的硬件电路组成部分: 三、系统的软件控制程序,四、系统抗干扰相关措施。整个电路包括主机、模拟输入输 出通道、a

3、/d 转换电路、键盘和显示电路。在温度传感器和 a/d 转换器的选择方面,分 别采用了旧x6675 传感器和 adc0809 转换器。在硬件设计方面,此设计中从单点温度控 制引申到多点温度开关控制进行了详细的介绍,并最终利用 at89c51 单片机实现了烘箱 的温度控制。关键字: 单片机;温度; a/d 转换;pid ; adc0809 ; max667526目录第一章引言. 41.1 技术指标 .41.2 控制方案设计.4第二章川89c51 单片机主要功能及它的概述. 52.1 单片机的基本组成和内部结构.52.2 at89c51单片机引脚图及各引脚的功能 .72.2.1 正在片机主控电路的

4、主要元件 at 89c51引脚阁.72.2.2 at89c51 正在片机各引脚功能. 7第三章控制系统的硬件电路组成部分 . 103.1 烘箱温度控制系统的工作原理及它的组成部分. 103.1.1 烘箱温度控制系统的工作原理.103.1.2 烘箱温度控制系统的组成部分. 103.2 温度控制电路.口3.3 捏t度检测电路.123.3.1 温度检测和变送器.123.3.2 接口电路的设计.13第四章系统的软件控制程序 . 154.1软件的总体设计.154.1.1 程序设"Þi原则 .154.1.2 各个功能模块的功能说明. 154.1.3 参数传递 .154.2 温度检测电路

5、的设计.154.3 主程序清单.194.4 中断服务程序设计.224.5 显示子程序设计.·.244.6 键盘扫描处理程序.254.7 定时中断子程序.264.8 数据字节与位定义.27第五章系统抗干扰相关措施 . 285.1 单片机系统中硬件抗干扰设计.285.1.1 抑制干扰源常用措施.285.1.2 切断干扰传播途径措施. .285.1.3 提高敏感器件的抗干扰性能.295.2 单片机系统软件的抗干扰.295.2.1 模拟输入信号抗干扰.295.2.2 "死机" 现象的克服. 305.3 系统复位特征.315.3.1 上电标志的设定方法.315.3.2 软件

6、复位与中断激活标志.315.3.3 程序失控后恢复运行的方法.315.4眠抗干扰.32第六章结语. 33第一章引言随着集成电路技术的发展,在冶金、机械、食品加工、化工等工业生产过程中,广 泛使用的各种加热炉、热处理炉、反应炉等,都是要求对温度进行严格控制的。在日常 的生活中,电烤箱、微波炉、电热水器、烘箱等等电器也是需要进行温度的控制和检测 的。采用 mc-51 单片机对祖度进行控制,不仅具有控制方便、简单和灵活等优点,而且 可以大幅度的提高温度控制的技术指标。本次以烘箱的温度控制系统为研究课题,说明 单片机温度控制的技术原理和系统的设计方法。1.1 技术指标设计一个单片机温度控制系统,自动控

7、制一个烘箱的温度,要求烘箱的温度在室温 至 90 度内可以设置。温度的控制精度小于等于正负 2 度。当不能保证所要求的温度时, 发出声光警报信号。完成系统的硬件和软件设计。1.2 控制方案设计本系统是以 at89c51 单片机为核心,是一个典型的温度闭环控制系统,需要完成的 功能是温度的设定、温度的采集与显示以及温度的自动控制、报警等等。从技术指标可 以看出,系统对控制精度的要求不高,对升降温过程的线性也没有要求,因此,系统采 用最简单的开关通断控制方式,即当烘箱温度到达设置值时断开加热炉,当温度低于某 值时接通电炉开始加热,从而保持恒泪控制。第二章 at89c51单片机主要功能及它的概述at

8、89c51是一个低电压,高性能 cmos 8 位单片机,片内含 4k bytes 的可反复擦写的 只读程序存储器 (perom) 和 128 bytes 的随机存取数据存储器(阳m),器件采用 atnllil 公司的高密度、非易失性存储技术生产,兼容标准 mcs-51指令系统,片内置通用 8 位中 央处理器和 flash 存储单元,内置功能强大的微型计算机的 at89c51提供了高性价比的 解决方案。at89c51是一个低功耗高性能单片机,40 个引脚, 32 个外部双向输入/输出(i!o)端口,同时内含 2 个外中断口,2 个 16 位可编程定时计数器,2 个全双工串行通信口,at89c51

9、可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和flash 存储器结合在一起,特别是可反复擦写的 f ash 存储器可有效地降低开发成本。 此外,at89c51设有稳态逻辖,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,cpu 停止工作。但阳m,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存 ram 的内容并且冻结振荡器,禁 止所用其他芯片功能,直到下一个硬件复位为止。2.1 单片机的基本组成和内部结构(1) 一个 8 位的 cpu,负责运算与控制作用.(2) 128 字节数据存储器 ram.(3) 铅字节 flash 程序存储器 rom

10、.(4) 4 个 8 位并行 1/0 口,分别为 po、p、l(5) 3 个 16 位定时器.p2、p3.(6) 6 个独立中断源、4 个中断优先级和中断控制系统.(7) 一个可编程全双工通用异步接收发送器 uart(串行口).(8) 片内时钟振荡器电路.(9) 可寻址外部 64kb ram 和 rom 的总线扩展结构.ramj也址寄存然arvssrst ea ale psenxt丛1 日 rst ale 琵en因 2一 1 at89csl 系列单片机内部结构框图中断系统5中断源、2优先级popl p2p3回 2-2 at89c51 系列单片机内部结构简化框罔2.2 at89c51 单片机引脚

11、图及各引脚的功能2.2.1 单片机主控电路的主要元件 at 89c51 引脚图at89c51 单片机引脚如图 2-1 所示:p10pllp12p13p14p15p16p11一一刊13 i iintl12 i)iintoat8951tltoeanpx1mreset图 2-1at89c51 引脚图2.2.2 at89c51 单片机各引脚功能(1) 1/0 引脚 (4x8=32): po,p1.凹,的。1、po 口: po 口为一个 8 位漏级开路双向1/0 口,每脚可吸收 8口工 门流。当 pl 口 的管脚第一次写 1时,被定义为高阻输入。po 能够用于外部程序数据存储器,它可以被 定义为数据/地

12、址的第八位。在 fiash 编程时,po 口作为原码输入口,当 fiash 进行校 验肘,po 输出原码,此时 po 外部必须被拉高。2、pl 口: pl 口是一个内部提供上拉电阻的 8 位双向 iio 口,pl 口缓冲器能接收输 出 4ttl 门电流。pl 口管脚写入 1 后,被内部上拉为高,可用作输入,pl 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 flash 编程和校验时,pl 口 作为第八位地址接收。3、p2口: p2 口为一个内部上拉电阻的 8 位双向 iio 口,p2 口缓冲器可接收,输出4 个 l 门电流,当 p2 口被写 "1" 时,其

13、管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或 16 位地址外部数据存储器进行存取肘,p2 口输出地址的高 八位。在给出地址(1" 时,它利用内部上拉优势,当对外部八位地址数据存储器进行读 写肘,p2 口输出其特殊功能寄存器的内容。p2 口在 且ash 编程和校验时接收高八位地 址信号和控制信号。4、p3 口: p3 口管脚是 8 个带内部上拉电阻的双向 jjo 口,可接收输出 4 个 1门 电流。当 p3 口写入 "1月后,它们被内部上拉为高电平,并用作输入。作为输入,由于

14、外部下拉为低电平,p3 口将输出电流(ill)这是由于上拉的缘故。p3 口也可作为 at89c51 的一些特殊功能口,如下表 2-2 所示:表 2-2p3 口的第二功能口管脚备选功能p3.0rxd串行输入口p3.1txd串行输出口p3.2 启叮o外部中断。p3.3 启叮1外部中断 1p3.4to记时器 外部输入p3.5 t1记时器 1外部输入p3.6 1wr外部数据存储器写选通p3.7 底d外部数据存储器读选通p3 口同时为闪烁编程和编程校验接收一些控制信号。( 2) 控制引脚 (4 个):1、ale 地址锁存便能。当访问外部存储器时,地址锁存允许的输出电平用于锁 存地址的地位字节。在 fla

15、sh 编程期间,此引脚用于输入编程脉冲。在平时,ale 端以 不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输 出的脉冲或用于定时目的。然而要注意的是: 每当用作外部数据存储器时,将跳过一个 ale 脉冲。如想禁止 ale 的输出可在 sfr8eh 地址上置 0。此时, ale 只有在执行 movx, movc 指令是 ale 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ale 禁止,置位无效。2、/psen外部程序,存储器 rom 的选通信号。在由外部程序存储器 rom 取指期间, 每个机器周期两次/psen 有效。但在访问外部数据存储器ram

16、 肘,这两次有效的/psen 信 号将不出现。3、/ea/vpp一一/ea 访问外部程序存储器控制信号。当/ea 保持低电平时,则在此期 间外部程序存储器 (ooooh-ffffh),不管是否有内部程序存储器。注意加密方式 1 时,/ea 将内部锁定为 reset ; 当/ea 端保持高电平时,此间内部程序存储器。在 flash 编程 期间,此引脚也用于施加 12v 编程电源 (vpp)。4、rse 复位。当晶振在运行中,只要复位管脚出现 2个机械周期高电平即可复位。内部有扩散电阻连接到 vss,仅需要外接一个电容到 vcc 即可实现上电复位。(3) 时钟晶体引脚:。)1、xtall一一反相振

17、荡放大器输入和内部时钟发生电路输入。2、xtal2一一反相振荡放大器输出。要使用外部时钟源驱动器件时,xtl2 可以不 连接而由 xtll 驱动。外部时钟信号无占空比的要求,因为时钟通过触发器二分频输入 到内部时钟电路。(4) 电源引脚 ( 2)1、vss一一一地。2、vcc一一电源。提供掉电、空闲、正常工作电压.。阶弟 一一一车早控制系统的硬件电路组成部分3.1 烘箱温度控制系统的工作原理及它的组成部分3.1.1 烘箱温度控制系统的工作原理根据烘箱控制的设定温度范围为 15.c至 90.c ,控制误差为土2 .c的这一要求,烘箱 的温度控制系统可采用开关控制方案,通过一个继电器隔离输出控制电

18、热丝的通断。当 烘箱内的温度低于设定温度时,继电器就会闭合,电热丝接通,使烘箱开始加热温度升 高;反之则继电器断开,烘箱停上加热。本系统是以 at89c51 单片机为核心,组成的一 个集温度的采集、处理、显示、自动控制为一身的温度闭环控制系统,其原理框图见图3-1。图中硬件组成主要由以下几部分组成: 单片机信息处理、温度采集、信号转换、显 示、报警、键声及控制部分。 具体工作如下:利用集成温度传感器实现对温度的采集,然后信号通过运算放大器、保持器和 a / d 转换器将模拟量变为数字量送入单片机进行处理。我们预先从键盘输入一个温度范围 (上限报警值和下限报警值) ,通过温度采集系统检测出环境的

19、温度,由数字显示电路 显示出当时的实际温度,当温度高于或低于报警的上下限值时,报警器发声,提醒工作 人员此时温度太高或太低,以做出相应的措施。 其中:1、为使整个系统的运行更加完善,本系统在设计时匹配了矩阵式键盘以及由四位led 数码管组成的显示器以显示实际的温度值及预置温度值。2、为提高系统的抗干扰能力,在原有硬件的基础上设计了电源检测、报警等电路以 促进整个系统的功能更加完善。3.1.2 烘箱温度控制系统的组成部分温度传感器及 aid 转换器的选择。本系统采用热电偶作为温度传感器。烘箱内的温 度通过 k 分度热电偶和其专用的数字转换器 max6675 测得,它是 maxim 公司新近推出

20、的一个集成了热电偶放大器、y令端补偿、aid 转换器及 spi 串口的热电偶放大器与数字 转换器。该芯片的使用可使硬件电路大为简化,调试更加方便。微处理器:本系统选用 at89c51 单片机和 12阳e 的晶振,每个机器周期为 1us.显示及报警电路。显示电路用用六个数码管来显示当前的目标温度和实际温度。采 用直接驱动法驱动六个数码管,共需 6x8=48 个 jjo 线。而采用解码器驱动也要 4x6=24 个 jjo 线,很显然,我们的单片机没有这么多可用的 jjo 口资源,因此,在这里采用动态 扫描显示法以节省 jjo 线。报警电路通过p 1.4 驱动蜂呜器来实现。温度设定通过三个按键来完成

21、设定,一个作为功能键,另外两个分别用来增加和减小设定温度值,因此采用的独立式的键盘接口。在按键较多,一般采用行列式键盘接口, 以节省 1/0 线。驱动电路。本系统由三极管驱动继电器来控控制电热丝的通断。在单片应用系统中, 为防止现场强电磁的干扰或工频电压通过输出通道反串到测控系统,一般采用通道隔离 技术。输出通道的隔离最常用的是光电祸合器,简称光祸,常用的开关量输出接口除断 电器输出外,还有双向可控硅输出,固态断电器输出等。烘箱内温度经热电偶检测、测量放大、模数转换后送至单片机,由单片机调用显示 程序显示当前温度,并与设计定值相比较来决定电热丝的通断。功率驱动、输出继电器、 电热丝构成一个输出

22、通道,它与温度采集电路一起构成一个闭合回路,以保证箱内温度 恒定.在控制器检测到箱内温度超过极限值时,报警电路动作。单片机图 3-1 温度控制系统原理框图3.2 温度控制电路参数存储报警键盘8031 对温度的控制是通过可控硅的调功方式来实现,双向可控硅 scr 和加热丝串接在交流 220v、50hz 市电回路中。在给定周期 t 内,8031 只要改变可控硅管的接通时间 即可改变加热丝的功率,以达到调节温度的目的。可控硅接通时间可以通过可控硅控制极上触发脉冲控制。该触发脉冲由 8031 用软件在 p1.3 引脚上产生,在过零同步脉冲同步后经光电藕合管和驱动器输出送到可控硅的控制极上。3.3 温度

23、检测电路温度检测电路就是由温度检测和变送器、接口电路等组成的。本系统的温度检测的 设计是以热电偶为检测元件的,相应的单片机温度控制系统电路原理图如图 3-2 所示。taii.'i电_因 3-2 单片机混度控制系统电路原理图3.3.1 温度检测和变送器温度检测元件及变送器的类型选择与被控温度的范围和精度等级有关。对于 o.c-1000 .c 的测量范围,采用镰锚/镶铝热电偶,分度号为 eu ,其相应的输出信号为omv-41.32mv。变送器由毫伏变送器和电流/电压变送器组成: 毫伏变送器用于把热电偶输出的omv-41.32mv 变换成 4ma-20ma 的电流;电流/电压变送器用于把毫伏

24、变送器输出的4ma-20ma 电流变换成 0-5v 的电压。 为了提高测量的精度,变送器可以进行零点迁移。例如:若温度测量范围为 500.c-1000.c,则热电偶输出为 20.6mv-41.32mv,使毫伏变送器零点迁移后输出 4ma-20ma 范围电流后,送入 adc0809 进入转换,由 8 位 ajd 转换器转换为相应的数字量送入单 片机。采取这种方案,能够使量化温度误差达到 1.96.c 以内,能够满足精度要求。3.3.2 接口电路的设计接口电路采用 mcs-51 系列单片机 8031,外国扩展并行接口 8155,程序存储器eprom2764,模数转换器 adc0809 等芯片。由图

25、 3-3 可见,在 p2.0=0 和 p2. 7=0 时,8155 选中它内部的 ram 工作:在 p2.0=1和 p2. 7=0 肘,8155 选中它内部的三个i!o 端口工作。相应的地址分配为:ooooh - ooffh8155 内部 ram0100h命令/状态口0101ha 口0102hb 口0103hc 口0104h定时器低 8 位口0105h定时器高 8 位口8155 用作键盘/led 显示器接口电路。图 3 中键盘有 30 个按键,分成六行 clo-l5) 五列 c ro-r4) ,只要某键被按下,相应的行线和列线才会接通。图中 30 个按键分三类: 一是数字键-9。,共 10 个

26、:二是功能键 18 个:三是剩余两个键,可定义或设置成复位 键等。为了减少硬件开销,提高系统可靠性和降低成本,采用动态扫描显示。a 口和所 有 led 的八段引线相连,各 led 的控制端 g 和 8155c 口相连,故 a 口为字形口,c 口为 字位口,8031可以通过 c 口控制 led 是否点亮,通过 a 口显示字符。图 3-3 8155 用作键盘/led 显示器接口电路第四章系统的软件控制程序系统的操作过程和工作过程在程序的设计过程中起着很重要的指导作用,因此在软 件设计之前应该首先分析烘箱的工作流程。4.1 软件的总体设计4.1.1 程序设计原则程序设计的总体原则是自上而下,采用模块

27、化的设计思路。温度控制程序的设计应 考虑如下:1)键盘扫描、键码识别和温度显示;2) 温度采样、数字滤波;3) 数据处理:4 ) 越限报警和处理; 5) pid 计算、温度标度转换。4.1.2 各个功能模块的功能说明根据对于工作流程的分析,系统软件可以分为一下几个功能模块: (1)显示程序,将设置祖度和当前的实际温度显示出来:(2) 键处理程序,扫描三个按键,改变设定温度值:(3) 定时采样程序,由于温度惯性大,采样周期定为 ls 是合适的:(4) 输出控制程序,根据给定值和当前实际温度值决定是否加热。4.1.3 参数传递4 个模块之间的参数传递较为简单,键处理程序输出给定值,给定值存放在内存

28、单 元 taim 中。采样程序输出温度实际值,存放在内存单元 taiml 中。输出控制模块与温度 显示模块只需要使用 taim 与 taiml 的值。ls 定时由定时器完成,不涉及与其它模块进 行数据交换。4.2 温度检测电路的设计程序流程图如下:中断入口重置定时初值 保护现场动态扫描显示时间计数器减 1 no置采样标志位置 ls 定时记数初值开始4 个模块的程序都得由单片机来执行,通常采用定时中断的方法来合理分配程序执行的时机与时间。完成同样的功能,可以采用的方法很多。下面的程序流程图图 4-1 是 其中的一种方案。中断程序完成动态扫描显示以及 ls 的定时 ,键盘扫描、ls 时间到后 的温

29、度采样、输出控制都放在主程序,执行。主程序与中断程序利用一个标志位来传递 ls 定时到信息。主程序开始分配数据存储器地址 初始化 清标志位并采样滤 采样标志位为 1?输出控制 键盘扫描处理国 4-1 温度采集子程序,流程图温度采集采用了一块热电偶转换和接口芯片 max66750 max6675 采用 8 引脚 so 帖片封装。队x6675 的主要特性如下:简单的 spi 串行口混度值输出:ooc"-'+10240c的测温范围;12位 o.250c的分辨率:片内冷端补偿:高阻抗差动输入;热电偶断线检测:低功耗特性:工作温度范围-20.c"""&qu

30、ot;'+85 c;由于 at89c51 不具备 sp1 总线接口,故这里采用模拟 sp1 总线的方法来实现与max6675 的接口,在此给出据度采集子程序: 位定义sob1tpl.2csbit pl.1sckb1tpl.0:数据字节定义dat肚 data datal data tdat肚f datatdatal data30h ;读取数据高位31h ;读取数据低位32h ;温度高位33h ;温度低位: 读温度值子程序ready:clr cs ;停止转换并输出数据clrclk ;时钟变低movr2,#08h readh:movc,sorlca; 读 d15-d8 高 8 位数据setb

31、clk nopclrclkdnzr2,readhmovdatah,a; 将读取的高 8 位数据保存movr2,#08hreadl:movc,so ;读 d7-do 低 8 位数据rlcasetbclk nopclrclkdnzr2,readlmovdatal. a; 将读取的低 8 位数据保存setbcs; 启动另一次转换过程ret上面的程序读取的两个字节的数据并不直接温度值,我们将读取的 16 位数据去掉无 效位后转换成 12 位的温度值。4.3 主程序清单:程序使用 to 作为定时器sclkbit pl.3dinbit pl.4doutbit pl.5drdybit pl.6resetbi

32、t pl.7orgoh ljmpmain orgobg ljmp timeo org30hmain:movsp,#60h :程序初始化clrpsw. 3clr psw.4mov ro,#10h mov r,l #60h clramain1:movro,a incrodnz r,lmainlmov tmod,#olh :定时初始化mov tlo,#78h :晶振=12mhz,定时=5msmov tho,#oechsetb eto 设置 to 中断setb tro setbeamain2:lccall gei设定温度b p,l 2,main2 有运行健 setb 20h. o 运行健位 smp定时

33、器 to 中断timeto:push psw保护现场push accsetb psw.3 选工作寄存器组 1clrpsw.4clr tro重设定时时间常数mov a,tlo add a,#oe9h mov tlo,a mov a,tho addca,#obihmovtho. a setb troinc25h计数器+1mova,25hcne a,#50,time1mov25h,#o =250ms,改变显示jb20h. o.tnæ2mov30h,#oc1hlcalldisplay设定显示time1:l川f retu刚time2:lcallsamplemov30h,#oc1h;正式测量显示

34、lcalldisplay显刁t温度lcallkongzhi温度控制lcallbaoing:判温度范围return; popacc:恢复现场poppswretiend4.4 中断服务程序设计中断服务程序是温度控制系统的主体程序,用于启动数/模转换器、读入采样数据、 数字滤波、越限温度报警和越限处理、pid 计算和输出可控硅的触发脉冲等。pl.3 引脚 上输出的该同步触发脉冲宽度由t1计数器的溢出中断控制,8031 利用等待t1溢出中断 的空闲时间(形成 pl.3 输出脉冲顶宽完成把本次采样值转换成显示值而放入显示单元 缓冲区和调用温度显示程序。8031 从t1中断服务程序返回后即可恢复现场和返回

35、主程 序。下图 4-2为中断服务程序流程图。图 4-2中断服务程序流程图对于一般线性仪表来说,标度转换公式为:凡 -ectx=ao + (am-ao)v_ - v其中,ao 为一次测量仪表的下限;am为一次测量仪表的上限;vx 为实际测量值(工 程量);vm 为仪表上限对应的数字量; vo 为仪表下限对应数字量。4.5 显示子程序设计显示入口 关显示器取该位显示数据 转换成段码输出取位控码输出 指向下一位显示数据 6 位显示完? 显示数据初始化国 4-3 显示子程序流程图为保证显示的效果,该系统采用定时中断来控制动态扫描显示。显示子程序框图如 图 4-3 所示,定时器定时时间为 5ms,子程序

36、每执行一次刷新一位数码管的显示,因此 扫描周期是 30 ms,完全满足动态显示的要求。当 6 个数码管全部刷新显示一遍后,程序要进行显示数据的初始化。初始化的内容有 2 点: (1)将 taim 和 taiml 中的温度给定值、温度实际值的各位(百、十、个位 拆开并存放到显示缓冲区; (2) 将数据指针和位控码指向第一位显示数据。在主程序,初 始化肘,也要进行一次显示数据的初始化。4.6 键盘扫描处理程序键盘扫描可以采用中断方式或者查询方式,因为这一系统的程序并不长,因此这里 采用了查询的方式,即在每个主程序的执行周期里对键盘进行一次扫描。程序如下:scankey: 贝ffi p3. 3 ,s

37、ett; 有功能键按下,则跳转 贝ffi p3. 4 ,inct ; 有增加键按下,则跳转 川b p3. 5 ,dect;有减小键按下,则跳转jmp scankret sett:calldelay; 去抖动cpl setmark; 取反功能键标志位(按一次进入 set 状态,再按一次返回)川bp3. 3,$;检测按键是否松开call delay ; 去抖动则psc时 ret inct:calldelay; 去抖动川bsetmark,inctt; 如果不在 set 状态则返回inc taiminctt:川bp3. 4,$;检测按键是否松开call delay ; 去抖动jmpscankretde

38、ct:calldelay; 去抖动 27 nbsetmark,dectt; 如果不在 set 状态则返回dectaimdectt:jnbcallp3. 5,$;检测按键是否松开delay; 去抖动scankret: ret4.7 定时中断子程序由于烘箱内的温度变化比较慢,本系统每过一秒对烘箱内的温度进行十次采样并求 平均值滤波,本电路采用硬件定时的方法.以节省 cpu 资源,我们知道 89c51单片机内部 有 2 个 16 位定时/计数器,选用 121hz晶振,那么也就是说最大时间约为 65ms. 那么我 们怎样来实现 1 秒的定时呢?在这里因为显示刷新的原因,我们设置每次定时中断的时 间为

39、5ms,也就是说每 5ms 刷新一个 led 数码管显示器。用一个存储单元累计定时器中 断的次数,每到 200 次中断就置采样标志位并对该存储器单元重置定时计数值以开始下 一次计数。其程序结构如下所示:tlmero:movtho,#high(65536-5000) ;重置 5ms 定时器初值movtlo,#low (65536-5000) pushacc; 保护现场push pswcallscandisp; 调用动态扫描显示程序,dn2ticount,intret setb collectmarkmovticount,#200; 重置定时计数intret:reti4.8 数据字节与位定义在前面以编子程序中部分使用的数据字节与位定义如下:位定义sob1tpl.2csbit pl.1sckbit pl.0:数据字节定义dat肚iequ30h ;读取数据高位 datalequ31h ;读取数据低位 tdatahequ32h ;温度高位 tdatalequ33h ;温度低位tdatah2equ34h ;滤波后温度高位tdatal2equ35h ;滤波后温度低位d1spbuf equ40h;显示缓冲区首地址(40h-45h 为显示缓冲区)org ooooh川p ma

温馨提示

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

评论

0/150

提交评论