优先级状态记录,并跳转到0000H完成完整的复位操作。
本程序使用一个C51函数完成了完整的包含两次RETI在内的复位操作,消除了所有已知隐患,只需在应用程序中包含此reset_best()函数,在需要软复位时调用即可。2.1节中所列汇编语言的子程序也可使用本节分析时所用汇编代码代替。
结 语
本文对MCS-51单片机的“软复位”进行了深入讨论,给出了分别基于51asm的汇编子程序和基于C5l的函数。使用本文所述的“软复位”方法,无论是5lasm程序还是C51程序,所需的资源消耗都很小,只占用二三十个字节的程序存储器,使用也非常简单,不会增加编程负担。当具体应用系统还需进行特殊功能寄存器的复位以度程序跑飞前状态的恢复时,在此基础上也很容易实现。特别是当单片机所接外设严格依附于单片机口线的时序,须尽量避免硬件复位对口线的复位操作或系统不具备硬件看门狗时,对于提高单片机系统的抗干扰能力有较大的实用价值。实际应用表明,这种软复位方法是非常有效的
本新型的数字化温度传感器其精度、稳定性、可靠性及抗干扰能力都优于模拟的温度传感器。数字温度传感器也越来越的到广泛的应用[4]。
温度检测的方法根据敏感元件和被测介质接触与否,可以分为接触式与非接触式两大类。接触式检测的方法主要包括基于物体受热体积膨胀性质的膨胀式温度检测仪表;基于热电效应的热电偶温度检测仪表。非接触式检测方法是利用物体的热辐射特性与温度之间的对应关系,对物体的温度进行检测,主要有亮度法、全辐射法和比色法等。接触式测温是使测温敏感元件与被测介质接触,当被测介质与感温元件达到热平衡时,感温元件与被测介质的温度相等。这类传感器结构简单、性能可靠、精度高、稳定性好、价格低、应用十分广泛,因此,本方案采用接触式测温法,选用相关类型的传感器。
由单片机组成的温度测控系统,通过在单片机外部添加各种接口电路,可构成单片机最小系统,用以实现对温度控制对象的温度的显示和控制。同时也能根据实际情况实现多路巡回检测、数据处理、报警及记录,对各个参数以一定的周期进行检查和测量,检测的结果经计算机处理后再进行显示、打印和报警,以提醒操作人员注意或直接用于生产控制[5]。
1.4课题设计的主要内容
本温度控制系统是一个闭环反馈控制系统,它用温度传感器将检测到的温度信号经放大,A/D转换后送入单片机中进行数据处理并显示当前温度值,用当前温度值与设定温度值进行比较[6]。根据比较的结果得到控制信号用以控制继电器的通断,实现对加热器的控制。通过这种控制方式实现对保温箱的温度控制。本课题设计的内容主要包括硬件设计和软件设计两部分。系统功能由硬件和软件两大部分协调完成,硬件部分主要完成主机电路、数据采集电路、键盘显示电路、控制执行等电路的设计。软件程序编写主要用来实现对温度的检测、标度转换、LED显示、继电器控制等数据处理功能。
2 系统总体方案设计
本次设计采用MCS-51单片机作为控制芯片,采用半导体集成温度传感器AD590采集温度信号。通过温度传感器将采集的温度信号转换成与之相对应的电信号,经过放大处理送入A/D转换器进行A/D转换,将模拟信号转换成数字信号送入到控制芯片进行数据处理。通|<< << < 1 2 3 4 5 6 7 8 9 10 > >> >>| 过在芯片外围添加显示、控制等外围电路来实现对保温箱温度的实时检测和控制功能。
本系统功能由硬件和软件两大部分协调完成,硬件部分主要完成传感器信号的采集处理,信息的显示等;软件主要完成对采集的温度信号进行处理及显示控制等功能。系统结构框图如图2.1所示:
图2.1 系统结构框图
2.1系统硬件设计方案
单片机应用系统的硬件电路设计就是为本单片机温控系统选择合适的、最优的系统配置,即按照系统功能要求配置外围设备,如键盘、显示器、打印机、A/D转换器、设计合适的接口电路等。系统设计应本着以下原则:
(1) 尽可能选择典型电路,并符合单片机常规用法。本设计采用了典型的显示电路、A/D转化电路,为硬件系统的标准化、模块化打下良好的基础。
(2) 硬件结构应结合应用软件方案一并考虑。软件能实现的功能尽可能由软件实现,以简化硬件结构。由软件实现的硬件功能,一般响应时间比硬件实现长,且占用CPU时间。由于本设计的响应时间要求不高,所以有一些功能可以用软件编程实现,如键盘的去抖动问题。
(3) 系统中的相关器件要尽可能做到性能匹配。系统中所有芯片都应尽可能选择低功耗产品。
本系统的硬件电路主要包括模拟部分和数字部分,从功能模块上来分有主机电路、数据采集电路、键盘显示电路、控制执行电路。系统硬件包括:温度传感器、信号调理电路、A/D转换器件、MCS-51单片机、键盘输入、LED温度显示器、温度控制电路。
2.1.1 芯片选择
单片机就是在一块硅片上集成了微处理器、存储器和各种输入输出接口电路的微型计算机,简称单片机。单片机以其较高的性能价格比受到了人们的重视和关注。它的优点就是体积小、重量轻、抗干扰能力强、对环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。单片机根据其基本操作处理的位数可分为4、8、16、32位单片机,应用最为广泛的是八位单片机。根据本次设计的实际情况和要求,在本次设计中采用AT89C51作为系统的控制芯片。AT89C51是一种低功耗、高性能CMOS 8位微控制器,具有4K的系统可编程Flash 存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
2.1.2 温度检测
本课题设计的温度控制范围为25-80摄氏度,温度传感器采用采用AD590半导体集成温度传感器。A/D590具有较高的精度和重复性,不需辅助电源,线性好,使用方便,便于微机系统测控。被测温度信号为一路由AD590测得的代表温度的电压信号,经温度调理电路放大后使其在0-5V范围内,使其适合于A/D转换器的输入电压范围。
2.1.3 A/D转换电路
A/D转换电路的种类很多,例如,计数比较型、逐次逼近型、双积分型等等。选择A/D转换器件主要从转换速度、精度和价格上考虑。逐次逼近型A/D转换器,在精度、速度和价格上都比较适中,是最常用的A/D转换器。双积分A/D转换器,具有精度高、抗干扰性好、价格低廉等优点,但转换速度慢。近年来在微机应用领域中也得到了广泛的应用。本次设计采用八路模拟输入通道的逐次逼近型的八位A/D转换器ADC0809。采用ADC0809作为与单片机的接口电路,它的结构比较简单,转换速度较高。采用ADC0809作为A/D转换器具有与单片机连接简单的优点,它是八位的转换器可以与八位的单片机直接连接,这样就简化了系统的连接电路也有利于系统软件的编写。
2.1.4 键盘输入
键盘可分为编码式键盘和非编码式键盘,键盘上闭合键的识别由专用的硬件译码器实现,并产生键编号和键值的称为编码式键盘;靠软件识别的为非编码式键盘。在单片机组成的测控系统中,用得最多的是非编码键盘。在这里采用的就是非编码式键盘。键盘的连接方式采用独立连接式,这种连接方式能够简化程序的|<< << < 1 2 3 4 5 6 7 8 9 10 > >> >>| 编写。
2.1.5 LED显示
在单片机应用系统中使用的显示器主要有发光二极管显示器(LED)和液晶显示器(LCD)。采用LED作为系统的数据显示器具有价格低、性能稳定和响应速度快等特点。LED显示方式有静态显示、动态显示和串口显示。为了节省系统本身的硬件资源,在这里LED的显示方式采用串行静态显示方式。利用串口可以工作在移位寄存器方式,驱动LED静态显示。这样就可以充分的利用并行口,并将并行口用到最需要的地方去,同时主程序不需要扫描显示器,使
它有更多的时间处理其他事情。这种显示方法用于显示位数少、显示亮度大的地方能够达到很好的显示效果。
2.1.6 控制电路
控制电路作为单片机系统的后向通道,他是将单片机处理后的数字控制信号用输出口输出,并将该数字信号用于对控制对象的控制。由于单片机的输出信号电平很低,无法直接驱动外围设备进行工作,因此在单片机的后向通道中需要外围设备的驱动、信号电平的转换以及隔离放大等技术。本次设计采用继电器作为控制电路的主要器件,通过继电器可以实现直流信号控制交流负载的功能,从而实现单片机系统的控制功能。
2.2系统软件设计方案
系统的软件设计采用模块化设计,采用模块化设计可以简化系统软件的编写,使软件编写思路更加简单明了。系统软件主要由三大模块组成:主程序模块、功能实现模块和运算控制模块。主程序模块用于实现各个子程序间的跳转。功能实现模块主要由A/D转换子程序、键盘处理子程序、显示子程序、继电器控制程序等部分组成。运算控制模块涉及标度转换子程序等。
3 系统硬件设计
3.1 中央处理器
MCS-51系列单片机是8位增强型,其主要的技术特征是为单片机配置了完善的外部并行总线和具有多级识别功能的串行通讯接口(UART),规范了功能单元的SFR控制模式及适应控制器特点的布尔处理系统和指令系统。属于这类单片机的芯片有许多种,如8051、8031、80C51等等。由于单片机具有较高的性能比,国内MCS-51系列单片机应用最广,易于开发、使用灵活、而且体积小、易于开发、抗干扰能力强,可以工作于各种恶劣的条件下,工作稳定等特点。本设计本着实用性和适用性的要求,选择AT89C51单片机作为中央处理器。
3.1.1 AT89C51简介
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的具有低电压,高性能CMOS 的8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。如图3.1为AT89C51的内部结构框图。
图3.1AT89C51的内部结构框图
AT89C51单片机与MCS-51系列单片机兼容, AT89C51内部有4K字节可编程闪烁存储器, 128*8位内部RAM,两个16位定时器/计数器, 5个中断源, 32可编程I/O线及串行通道。闪烁存储器是一种可编程又可擦除只读存储器(EEPROM),给用户设计单片机系统和单片机系统带来很大的方便,深受广大用户的欢迎。AT89C51有片内振荡器和时钟电路 ,具有低功耗的闲置和掉电模式,在空闲方式下,CPU停止工作,但允许内部RAM、定时器/计数器、串行口和中断系统继续工作。在掉电方式下,能保存RAM的内容,但振荡器停止工作,并禁止所有其他部件工作。还具有三级程序存储器锁定, 全静态工作频率0Hz-24Hz, 数据保留时间可长达10年。
3.1.2管脚说明
如图3.2为AT89C51引脚图,各引脚功能说明如下[7]:
● VCC: 电源
● GND: 地
● P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式|<< << < 1 2 3 4 5 6 7 8 9 10 > >> >>| 下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。
图3.2 AT89C51引脚图
● P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)
● P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
● P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89C51特殊功能(第二功能)使用,如表3-1所示。
表3-1 AT89C51引脚号第二功能 P3.0
RXD(串行输入)
P3.1
TXD(串行输出) P3.2
INT0(外部中断0)
P3.3
INT0(外部中断0) P3.4
T0(定时器0外部输入)
P3.5
T1(定时器1外部输入) P3.6
WR(外部数据存储器写选通) P3.7
RD(外部数据存储器读选通)
RST: 复位输入,晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。
● ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
● PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89C51从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。
● EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP电压。
● XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。
● XTAL2:振荡器反相放大器的输出端。
3.1.3特殊功能存储器
在单片机内高128B RAM中,由有21个特殊功能寄存器(AFR),它们离散的分布在80H-FFH的RAM空间中,访问特殊功能寄存器只允许使用直接寻址方式。表3-2为AT89C51单片机
特殊功能寄存器及其相应地址[7]。
表3-2 专用寄存器名称,功能及对应的RAM地址
名称 简单描述 地址 ACC
累加器(专门用于存储算术和逻辑运算的结果) 0E0H
B
B寄存器(专门用于乘/除法运算) 0F0H
PSW
程序状态寄存器 0D0H SP
推栈指针寄存器 81H DPTR
16位数据指针寄存器。CPU访问外部RAM时地址指针,由两个8位寄存器DPH(83H)、DPL(82H)组成且可单独访问。 P0
端口0状态寄存器(初始值为0FFH) 80H
P1
端口1状态寄存器(初始值为0FFH) 90H P2
端口2状态寄存器(初始值为0FFH) 0A0H P3
端口3状态寄存器(初始值为0FFH) 0B0H
IP
中断优先级控制寄存器 0B8H IE
中断允许控制寄存器 0A8H
TMOD
定时器/计数器方式控制寄存器 89H
TCON
定时器/计数器控制寄存器 88H
TH0
定时器/计数器0高字节 8CH TL0
定时器/计数器0低字节 8AH TH1
定时器/计数器1高字节 8DH
TLI
定时器/计数器0低字节 8BH
SCON
串行控制寄存器 98H SBUF
串行数据缓冲器 99H PCON
电源控制寄存器 87H
3.1.4芯片擦除
整个EPROM阵列电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦除操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
3.1.5复位电路的设计
复位使单片机处于起始状态,并从该起始状态开始运行。AT89C51的RST引脚为复位端,该引脚连续保持2个机器周期(24个时钟振动周期)以上高电平,则可使单片机复位。内部复位电路在每一个机器周期的S5P2期间采样斯密特触发器的输出端,该触发器可抑制RST引脚的噪声干扰,并在复位期间不产生ALE信号,内部RAM处于不断电状态。其中的数据信息不会丢失,也即复位后,只影响SFR中的内容,内部RAM中的数据不受影响。外部复位有上电复位和按键电平复位。由于单片机运行过程中,其本身的干扰或外界干扰会导致出错,此时我们可按复位键重新开始运行。为了便于本设计运行调试,复位电路采用按键复位方式。按键复位电路如图3.3所示[8]。
图3.3 复位电路
3.1.6时钟电路设计
时钟电路是单片机的心脏,它控制着单片机的工作节奏。MCS-51单片机允许的时钟频率是因型号而异的,其典型值为12MHZ。AT89C51内部有一个反相振荡放大器,XTAL1 和 XTAL2分别是该反向振荡放大器的输入端和输出端。该反向放大器可配置为片内振荡器,石晶振荡和陶瓷振荡均可采用。本设计采用的晶振频率为12MHZ。其时钟电路如图3.4所示。51系列单片机还可使用外部时钟。在使用外部时钟时,外部时钟必须从XTAL1输入,而XTAL2悬空。
图3.4 时钟电路
3.2温度传感器AD590
温度传感器的应用范围很广,它不仅用于日常生活中,而且也大量应用于自动化和过程检测控制系统。温度传感器的种类很多,根据现场使用条件,选择恰当的传感器类型才能保证测量的准确可靠,并且同时达到增加使用寿命和降低成本的目的。AD590温度传感器不但实现了温度转化为线性电量测量,而且精度高、互换性好。AD590测量热力学温度、摄氏温度、两点温度差、多点最低温度、多点平均温度的具体电路,广泛应用于不同的温度控制场合。
由于AD590精度高、价格低、不需辅助电源、线性好,常用于测温和热电偶的冷端补偿。本设计采用AD590作为温度传感器,它只需要一个电源即可实现温度到电流的线性变换,然后再终端使用一只取样电阻,即可实现电流到电压的转换。它使用方便,并且具有较高的精度。图3.5为AD590的封装形式和基本应用电路。
图3-5 AD590封装形式和应用电路
AD590集成温度传感器是将温敏电阻晶体管与相应的辅助电路集成在同一块芯片上,能直接给出正比于绝对温度的理想线形输出,一般用于-55℃~+150℃之间的测量温度。温敏晶体管在管子的集电极电流恒定时,其基极发射极电压与温度成线形关系,由于生产厂家生产时采用激光微调来校正集成电路内的薄膜电阻,使其在摄氏零度(对应绝对温度为273.2K),输出电流微273.2uA,灵敏度微1uA/K。当其感受的温度升高或者降低时,则其电流就以1u|<< << < 1 2 3 4 5 6 7 8 9 10 > >> >>| A/K的速率增大或减小,从而将被测电流转换为电压,则可以用电压来表示其温度大小。为克服温敏晶体管vb电压产生时的离散性,采用了特殊的差分电路。集成温度传感器具有电压型和电流型两种。因此,它不容易受接触电阻、引线电阻、电压噪音的干扰,具有很好的线性特性。
AD590主要特性如下:
● 流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数,即:
(3-1)
式中:Ir为流过器件(AD590)的电流,单位为mA;
T为热力学温度,单位为K。
● AD590的测温范围为-55℃~+150℃。
● AD590的电源电压范围为4V~30V。电源电压可在4V~6V范围变化,电流 变化mA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。
● 输出电阻为710MW。
● 精度高。AD590共有I、J、K、L、M五档,其中M档精度最高,在-55℃~+150℃范围内,非线性误差为±0.3℃。
AD590温度传感器作为一个恒流源,在本设计的温度检测电路中在AD590的输出端接一取样电阻可将输出电流信号变化转换为电压信号变化。由于AD590温度传感器温度每变化1℃其输出电流变化1mA。所以在接上10K的取样电阻的情况下,温度每变化10℃,输出电压就将变化0.1V。
3.3 信号调理电路
经过温度传感器采集输出的电压信号一般来说是非常微弱的,因此,在送往单片机处理之前应对该信号进行放大。本系统所采用的A/D转换器为ADC0809,由于ADC0809的输入信号应在0~5V之间,因此,经过放大电路放大的信号进入A/D转换器的电压信号应控制在0~5V之间,根据此原则可设计合适的放大倍数。
信号调理电路主要由运算放大器0P07等组成。为了使温度检测电路的输出电压能够适合于A/D转换器的参考电压,利用超低温漂移高精度运算放大器0P07将温度电压信号进行放大到0~5V的范围之内,便于A/D进行转换,以提高温度采集电路的可靠性。
本设计中,信号调理电路部分由集成运放OP07分别构成一个电压跟随器,电压比较器和一个同相输入放大器用于对AD590输出的小电压信号进行放大处理[9]。信号调理电路如图3.6所示
图3.6 温度检测电路
在该放大电路中,电压跟随器起阻抗匹配的作用。反馈电阻为零时,放大倍数为1,电压跟随器的输入电压等于输出电压
电压比较器用于对输出电压小信号电压进行调零,在上述电路图中的电压比较器部分由于R2=R4 R3=R5 可得电压比较器的输出电压 根据电压跟随器的输出电压调节电位计R9就改变电压比较器的输入电压。使得当温度为温度测量下限时电压比较器的输出电压为零。
起放大作用的是同相输入放大器OP07。其放大倍数: 因此放大器的输出电压
3.4温度标定
本设计的温度标定是在室温环境条件下标定的。由于温度传感器输出与温度变化有良好的线性。根据温度调理电路,输出电压和温度变化也具有一定的线性关系。根据实验测得的电压和温度数据,在此我们可以采用一元线性回归的
方法求得温度和电压的线性方程。
一元线性回归是处理两变量之间的关系,即两个变量X和Y之间若存在一定的关系,则可通过试验,分析所得数据,找到两者之间的关系的经验公式。假如两变量之间的关系是线性的则称为一元线性回归。由于变量测量中存在随机误差,一元线性方程回归可用最小二乘法处理求得一元线性回归方程。最小二乘原理指出,最可信赖值应在使残余误差平方和最小的条件下求得[10]。
根据实验测量结果可得,在一定温度x下的电压输出值 y,得到如下表所示。|<< << < 1 2 3 4 5 6 7 8 9 10 > >> >>| 表3-3 x/℃ 22 30 40 50 60 70 80 y/V 0 0.42 1.06 1.68 2.26 2.86 3.45
根据表3-3所得的数据,我们可以知道电压输出范围在0-5V之间,适合A/D转换参考电压的电压范围。为了了解输出电压 y与温度x之间的大致关系,把数据表示在坐标图上,如图3-7所示,这种图叫散点图。
从散点图可以看出,输出电压 y与温度x大致成线性关系。因此,我们假设 x与 y之间的内在关系是一条直线,有些点偏离了直线,这是试验过程中其他随机因素的影响而引起的。这样就可以假设这组测量数据有如下结构形式:
, t=1,2,„, N (3-2)
式中的 ,,„,分别表示其他随机因素对电压测得值 , ,„, 的影响,一般假设它们是一组相互独立、并服从同一正态分布的随机变量,式(3-2)就是一元线性回归的数学模型。此例中 N=7。
我们用最小二乘法来估计式(3-2)中的参数、。
设 b0和b分别是参数和的最小二乘估计,便可得到一元线性回归的回归方程
(3-3)
式中的b0和b是回归方程的回归系数。对每一个实际测得值与这个回归值 之差就是残余误差:
, t=1,2,„, N (3-4)
应用最小二乘法求解回归系数,就是在使残余误差平方和为最小的条件下求得回归系数b0和b的值。用矩阵形式,令
, , ,
则式(3-2)的矩阵形式为
(3-5)
假定测得值的精度相等,根据最小二乘原理,回归系数的矩阵解为
(3-6)
代入数据后:
,
求解线性方程系数:
因此 b0=-1.34 b=0.06
线性方程为: (3-7)
3.5 A/D转换
ADC0809是一种8位逐次逼近式A/D转换器,其内部有一个8位“三态输出锁存器”可以锁存A/D转换后的数字量,故它本身既可看作一种输入设备,也可以认为是并行I/O接口芯片。故ADC0809可以和微机直接接口,本设计就是用AT8951和ADC0809直接相连的。
ADC0809采用双列直插式封装,图3.8为ADC0809引脚图,共有28条引脚,主要引脚功能为:
● IN0~IN7: 为八路模拟电压输入线,用于输入被转换的模拟电压。
● ALE: 为地址锁存允许输入线,高电平有效。
● ADD-A、ADD-B和ADD-C: 为地址输入线,用于选择IN0~IN7上那一路模拟电压送给比较器进行A/D转换。ADDA、ADDB和ADDC对IN0~IN7的选择如表3-4所列:
● START: 为“启动脉冲”输入线,上升沿清零SAR,下降沿启动ADC0809工作。
● EOC:为转换结束输出线,该线上高电平表示A/D转换已结束。 &nbs|<< << < 1 2 3 4 5 6 7 8 9 10 > >> >>| p;
● OE:为“输出允许”线,高电平时能使2~2引脚上输出转换后的数字量。
图3.8 ADC0809引脚图
表3-4 8位模拟开关功能表
被 选 模 拟 电 压 ADDC ADDB ADDA IN0 0 0 0 IN1 0 0 1 IN2 0 1 0 IN3 0 1 1 IN4 1 0
0 IN5 1 0 1 IN6 1 1 0 IN7 1 1 1
本AT89C51与ADC0809的连接方法如图3.9所示,AT89C51通过地址线P2.7和写控制信号线用一个或非门联合控制启动转换信号端(START)和地址锁存信号端(ALE)。地址线P2.7和读控制信号线用一个或非门联合控制输出允许控制端(EOC)。低三位地址线加到ADC0809的ADDA、ADDB、ADDC端,所以选中ADC0809的IN0通道的地址为7FF8H。转换结束信号EOC通过一个反相器接到INT1。
图3.9 AT89C51与ADC0809连接图
AT89C51和ADC0809连接通常可以采用查询和中断两种方式。本系统采用中断方式传送数据,EOC线作为CPU的中断请求输入线。CPU线响应中断后,应在中断服务程序中使OE线变为高电平,以提取A/D转换后的数字量。
其中和START的逻辑关系分别为:
对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上输入的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指令的每个机器周期少出现一次,但通常情况下影响不大。ADC0809时序图如图3.10所示。
图3.10 ADC0809时序图
从时序图可以看出,在启动ADC0809后,EOC约在10us后才变为低电平,EOC线经过反相器和AT89C51线相连,这即是AT89C51采用中断方式来和ADC0809传送A/D转换后的数字量的。为了给OE线分配一个地址,把AT89C51RD和P2.7经或门和OE相连。平时,使OE处于低电平封锁状态,在响应中断后,AT89C51执行中断服务程序中如下两条指令就可以使OE变为高电平,从而打开三态输出锁存器,让CPU提取A/D转换后的数字量。AT89C51执行如下程序可以启动ADC0809工作。
MOV DPTR , # 7FF8H
MOVX A , @DPTR; OE变为高电平,数字量送A
3.6 LED显示
单片机应用系统中使用的显示器主要有发光二极管显示器,简称LED;液晶显示器,简称LCD。前者价廉,配置灵活,与单片机接口方便;后者可进行图形显示,但接口复杂,成本较高。结合本设计的特点,在这里系统的显示采用发光二极管作为显示器件。
单片机中使用7段LED构成字形“8”,另外,还与一个小数点发光二极管用以显示数字、符号及小数点。这种显示器有共阴极和共阳极两种,如图3.11所示。发光二极管的阳极连在一起称为共阳极显示器,阴极连在一起的称为共阴极显示器。一位显示器由八个发光二极管组成,其中,7个发光二极管构成字形“8”的各个笔划(段)a-g,另一个小数点为dp发光二极管。当|<< << < 1 2 3 4 5 6 7 8 9 10 > >> >>|
因篇幅问题不能全部显示,请点此查看更多更全内容