




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、通用室温控制系统的设计摘要:用PIC16C73 单片机实现的4路温度、湿度控制系统,包括系统硬件和软件设计,给出了详细的电路原理图。关键词:PIC单片机 温度湿度控制 A/D 转换 串行接口引 言随着生活水平的提高,在当今社会中,居室,写字楼等广泛使用着各式各样的室内温度调节系统。直流调速系统因其变流方式及控制方法简单,调速性能好,长期以来在调速传动中占统治地位。本论文设计的系统以单片机为控制核心,通过键盘设置各段运行参数,也可通过电脑设置下载到单片机。单片机输出二进制控制量,经D/A转换电路将对应模拟电压送到直流伺服放大器的设定值输入端。伺服放大器根据输入的模拟电压而输出对应的电压来控制直流
2、电机的转速。和直流电机同轴的光电编码器E输出A、B两路方波信号送到伺服放大器和整形电路,通过整形电路送到单片机用于测量转速。伺服放大器不断比较设定值和实际值,根据比较获得的误差调节伺服放大器的输出电压。采用霍尔电流传感器来测量电机转速,并通过单片机检测并显示。显示部分显示各段设定的时间值、转速值和测量的转速值。单片机主要完成参数设置、转速测量、参数显示和控制输出等功能。本设计采用模块化设计思想,进行了上位机软件设计,单片机程序编写,对系统主程序的流程进行了分析,说明各模块的功能,最后调试通过,实现了各部分功能。第1章 绪 论1.1 设计的系统功能和具体要求1.1.1 系统功能1)检测直流电动机
3、的转速、工作电压、工作电流及电网电压四个参数,用数码管显示各参数检测结果。2)若各参数检测结果超过上下限,实现报警。3)根据检测到的各参数,通过一定的控制算法后,输出控制值,作为晶闸管触发回路的输入电压,以控制电机的转速(模拟)。4)建立系统实时时钟,并用数码管显示时钟。5)通过按不同的功能键,进行人机对话,实现各种操作功能。1.1.2 系统的具体要求1)四路模拟信号经A/D转换,每隔10ms循环采样一次,采样满5次后进行中值滤波,经数据变换后,显示各参数实际值(工程量)。2)各参数测量范围、报警上下限及显示格式要求如下:转速:0-1000r/min 750-850r/min 1超限1#发光二
4、极管亮;反之,灭。工作电压:0-250V 200-240V 2超限2#发光二极管亮;反之,灭。工作电流:0-200A 90-110 A 3超限3#发光二极管亮;反之,灭。电网电压:0-500 V 330-430 V 4超限4#发光二极管亮;反之,灭。3)控制算法本应该采用PID算法,现用模拟程序处理。4)时钟用6位LED数码管显示。5)人机对话功能键设置如下:按“0”键,显示时钟;按“1”键,显示转速;按“2”键,显示工作电压;按“3键”,显示工作电流;按“4键”,显示电网电压;按“5键”,撤消报警;按“6键”,投入报警;其他键备用。1.2 直流电动机简介1.2.1 直流电动机分类直流电动机就
5、是将直流电能转换成机械能的电机。直流电机的励磁方式是指对励磁绕组如何供电、产生励磁磁通势而建立主磁场的问题。根据励磁方式的不同,直流电机可分为下列几种类型:1)他励直流电机励磁绕组与电枢绕组无联接关系,而由其他直流电源对励磁绕组供电的直流电机称为他励直流电机,接线如图1-1(a)所示。图中M表示电动机,若为发电机,则用G表示。永磁直流电机也可看作他励直流电机。2)并励直流电机并励直流电机的励磁绕组与电枢绕组相并联,接线如图1-1(b)所示。作为并励发电机来说,是电机本身发出来的端电压为励磁绕组供电;作为并励电动机来说,励磁绕组与电枢共用同一电源,从性能上讲与他励直流电动机相同。3)串励直流电机
6、串励直流电机的励磁绕组与电枢绕组串联后,再接于直流电源,接线如图1-1(c)所示。这种直流电机的励磁电流就是电枢电流。图1-1 直流电动机励磁方式接线图4)复励直流电机复励直流电机有并励和串励两个励磁绕组,接线如图1-1(d)所示。若串励绕组产生的磁通势与并励绕组产生的磁通势方向相同称为积复励。若两个磁通势方向相反,则称为差复励。1.2.2 直流电动机的特点1)调速性能好。所谓“调速性能”,是指电动机在一定负载的条件下,根据需要,人为地改变电动机的转速。直流电动机可以在重负载条件下,实现均匀、平滑的无级调速,而且调速范围较宽。2)起动力矩大。可以均匀而经济地实现转速调节。因此,凡是在重负载下起
7、动或要求均匀调节转速的机械,例如大型可逆轧钢机、卷扬机、电力机车、电车等,都用直流电动机拖动。1.2.3 直流调速系统发展概况近30多年来,由于以下三个方面的原因,推动了电力拖动控制系统的迅猛发展。第一是控制理论的发展,出现了最优控制、自适应控制、智能控制等,相应的拖动控制系统也在实践中逐步形成。其二是电子器件的发展,带来了拖动控制系统组成的重大变化。过去采用旋转变流机组(交流电动机带动直流发电机)来实现直流电动机的平滑调速,而直流发电机的励磁又采用交磁功率放大机、磁放大器进行控制;由于这样的系统存在一系列的缺点,因此在50年代又出现了水银整流器静止交流装置,但由于制造和维护上的麻烦,以后也被
8、淘汰了。到了60年代,出现了晶闸管整流装置,不仅在经济性和可靠性上有所提高,而且在技术性能上也显示了很大的优越性。另外,集成运算放大器和众多的电子模块的出现,不断促进了控制系统结构的变化。其三是80年代计算机技术和通信技术的发展,开创了拖动控制系统蓬勃发展的新时代。8位32位单片机的相继出现并应用于控制系统,使其结构更加简单,功能更强,可靠性更高。由于直流电动机具有良好的机械特性,能在大范围内平滑调速、起动、制动和正反转等,目前在传动领域中仍占有主要地位。现急需在以下几个方面提高我国直流电气传动装置的水平。1)提高传动的单机容量。我国现有容量为7000KW,国外则早已制成14500KW的传动装
9、置。2)提高电力电子器件的生产水平,增加品种。3)控制单元水平急需提高。目前国内的传动装置仍使用小规模集成运算放大器和组件,触发装置甚至还是用分离元件,国外的装置已实现完全数字化,采用16位或32位单片机,实现数字触发、数字调节、故障自诊断、参数自寻优、状态监视、保护及自复原等各种功能。4)应形成标准模块化的结构和一系列控制单元,便于工程设计人员选用。5)加强装置的功能,进一步提高可靠性,工艺要更加合理,维护方便。从传动系统来讲,虽然近几年来交流电机调速技术迅猛发展,在许多方面正向直流电机调速技术领域扩展,但是直流传动控制系统的一些理论仍然是交流传动的基础。对于直流传动系统来说,它也在不断地更
10、新和发展,如完全数字化的控制装置已成功地用于生产。以微机作为传动控制系统的核心部件,并具有控制、监测、监视、故障诊断及故障处理等多功能电气传动系统正在形成和不断完善。第2章 系统总体方案论证2.1 主体电路方案论证2.1.1 方案比较方案一:主机采用MCS-51系列的8031单片机。以74LS373作地址锁存器,以74LS138作译码器以选通各芯片。扩展的各部分如下:1)以74LS244芯片配合44矩阵式键盘,实现键盘扫描。74LS138的选通。2)扩展8155芯片,以其A口、B口连接ADC0809芯片。有B口提供ADC0809各采样通道的地址选通信号及启动信号。由A口连接ADC0809芯片的
11、DB0DB7,以读取A/D转换结果。另以8155C口的低4位(PC0PC3)控制4个报警灯,以实现各参数的超限报警。8255A芯片由74LS138的选通。3)扩展8255A芯片,通过A口、B口、C口作输出口和6个71LS48译码/驱动器,连接6个LED数码管构成显示电路。8255A芯片由74LS138的选通。4)扩展DAC0832芯片,以输出控制信号。方案二:主机采用MCS-51系列的AT89C51单片机,用8155芯片,8255A芯片扩展I/O口,74LS373芯片作为地址锁存,74LS138芯片。显示采用LCD液晶显示,并且配合44矩阵式键盘控制,实现人机对话。2.1.2 方案选择本设计检
12、测直流电机的转速、工作电压、工作电流和电网电压,程序较大,在ROM的选取方面选择扩展2716存储器,所以主芯片的ROM可以胜省略不用,为单片机节省I/O口。所以选择方案一作为主体电路的方案。2.2 转速检测方案论证2.2.1 方案比较方案一:采用位置测量元件。位置测量元件是闭环控制系统中的重要部件之一,它的作用是检测位移(角位移或线位移)并发出反馈信号,起着相当于人眼的作用。一个完善的闭环伺服系统,其定位精度和测量精度主要由测量元件决定,因此,高精度伺服系统对测量元件的质量要求相当高。光电编码器是现代伺服系统中必不可少的一种数字式速度和位置测量元件,被广泛应用于微处理器控制的闭环控制系统中。所
13、以采用光电编码器来计算电动机的转速。方案二:电机测速采用的是测速发电机。测速发电机是模拟量的速度传感器,其输出电压可以用下式表示:UBLv (2-1)式中 v-机械转速(或速度);B-磁通密度;L-导线长度;直流测速发电机的输出电压为: (2-2)式中: n转速;Ke电动势系数;Ra内电阻;RL负载电阻;可以根据测得的电压,根据上述公式计算出电机的转速。2.2.2 方案选择在综合考虑系统设计的成本与可实现性,我们选择方案一,采用光电编码器来测量电动机转速。温度、湿度控制在工农业生产中应用很多。对于一个比较大的系统,人们往往采用微机进行控制,小一些的系统较多采用51 或96 等系列的单片机。然而
14、,不管是用哪一种,总要对系统进行扩展:扩展程序存储器、扩展并行口做键盘,还要有APD 转换,如果数据较多的话,还必须扩展数据存储器等。这对许多控制器来讲,成本太高,系统资源没有得到充分利用。为此,我们利用PIC16C73 型单片机设计了1 个4 路温度、湿度控制系统。1 PIC16C73 单片机简介PIC16C73 单片机是由美国Microchip 公司生产的8 位单片微机,采用Harvard 结构,这种结构使指令执行和取指操作重叠进行,因而可以达到很高的执行速度。它只有35条单字节指令,且除了跳转指令是2 周期外,其它指令都是单周期指令。这些特点使它相对于别的8 位单片机节省了1P2 的程序
15、空间,并具有4 :1 的速度优势。PIC16C73 在1 个芯片上集成了1 个8 位算术逻辑单元和工作寄存器,4KB 程序存储器,192 个数据寄存器,22 个IPO 口,3 个定时P计数器及2 个捕捉P比较PPWM模块,2 个串行口,APD 转换器具有5 路模拟量输入端,还有时钟、复位、看门狗定时器等。其中5 路模拟量输入通道共同复用1 个采样P保持和APD 转换器。管脚分配如图1 ,其中标了2 种以上功能的是复用端口。2 控制系统的硬件设计控制系统原理图如图2 所示。2. 1 硬件构成原理第3章 系统硬件电路设计3.1 中央处理部分3.1.1 主芯片8031简介AT89C52 是美国ATM
16、EL 公司生产的低电压,高性能CMOS 8 位单片机,片内含8k bytes 的可反复擦写的Flash 只读程序存储器和256 bytes 的随机存取数据存储器(RAM),器件采用ATMEL 公司的高密度、非易失性存储技术生产,与标准MCS-51 指令系统及8052产品引脚兼容,片内置通用8 位中央处理器(CPU)和Flash 存储单元,功能强大AT89C52 单片机适合于许多较为复杂控制应用场合。AT89C52芯片引脚如图3-1所示。在单片机的40条引脚中有2条专用于主电源的引脚,2条外接晶体的引脚,4条控制或与其它电源复用的引脚,32条输入/输出(I/O)引脚。下面按其引脚功能分为四部分叙
17、述这40条引脚的功能。 1)主电源引脚VCC和VSSVCC(40脚)接+5V电压;VSS(20脚)接地。2)外接晶体引脚XTAL1和XTAL2XTAL1(19脚)接外部晶体的一个引脚。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。当采用外部振荡器时,对HMOS单片机,此引脚应接地;对CHMOS单片机,此引脚作为驱动端。XTAL2(18脚)接外晶体的另一端。在单片机内部,接至上述振荡器的反相放大器的输出端。采用外部振荡器时,对HMOS单片机,该引脚接外部振荡器的信号,即把外部振荡器的信号直接接到内部时钟发生器的输入端;对XHMOS,此引脚应悬浮。图3-1 8031芯片引脚
18、图3)控制或与其它电源复用引脚RST/VPD、ALE/PROG、PSEN和EA/VPPRST/VPD(9脚)当振荡器运行时,在此脚上出现两个机器周期的高电平将使单片机复位。推荐在此引脚与VSS引脚之间连接一个约8.2k的下拉电阻,与VCC引脚之间连接一个约10F的电容,以保证可靠地复位。VCC掉电期间,此引脚可接上备用电源,以保证内部RAM的数据不丢失。当VCC主电源下掉到低于规定的电平,而VPD在其规定的电压范围(50.5V)内,VPD就向内部RAM提供备用电源。ALE/PROG(30脚):当访问外部存贮器时,ALE(允许地址锁存)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端
19、仍以不变的频率周期性地出现正脉冲信号,此频率为振荡器频率的1/6。因此,它可用作对外输出的时钟,或用于定时目的。然而要注意的是,每当访问外部数据存储器时,将跳过一个ALE脉冲。ALE端可以驱动(吸收或输出电流)8个LS型的TTL输入电路。PSEN(29脚):此脚的输出是外部程序存储器的读选通信号。在从外部程序存储器取指令(或常数)期间,每个机器周期两次PSEN有效。但在此期间,每当访问外部数据存储器时,这两次有效的PSEN信号将不出现。PSEN同样可以驱动(吸收或输出)8个LS型的TTL输入。EA/VPP(引脚):当EA端保持高电平时,访问内部程序存储器,但在PC(程序计数器)值超过0FFFH
20、(对851/8751/80C51)或1FFFH(对8052)时,将自动转向执行外部程序存储器内的程序。当EA保持低电平时,则只访问外部程序存储器,不管是否有内部程序存储器。4)输入/输出(I/O)引脚P0、P1、P2、P3(共32根)P0口:P0 口是一组8 位漏极开路型双向I/O 口, 也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8 个TTL逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash 编程时,P0 口接收指令字节,而在程序校验时,输
21、出指令字节,校验时,要求外接上拉电阻。P1口:P1是一个带内部上拉电阻的8 位双向I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51 不同之处是,P1.0 和P1.1 还可分别作为定时/计数器2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),参见表3.1-1。Flash 编程和程序校验期间,P1 接收低8 位地址。 表3.1-1 P1.0和P1.1的第二功能P2口:P2是一个带
22、有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16 位地址的外部数据存储器(例如执行MOVX DPTR 指令)时,P2 口送出高8 位地址数据。在访问8 位地址的外部数据存储器(如执行MOVX RI 指令)时,P2 口输出P2 锁存器的内容。Flash 编程或校验时,P2亦接收高位地址和一些控制信号。P3口:P3口是一组带有内部上拉电阻的8 位双向I/O
23、 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL)。P3 口除了作为一般的I/O 口线外,更重要的用途是它的第二功能,如下表3.1-2所示。表3.1-2 P3口第二功能此外,P3 口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号。3.1.2串口通讯电路设计8031有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须
24、有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。MAX232结构如图3-2所示:图3-2 MAX232结构图串口通信具体电路如图3-3所示:图3-3 MAX232串口通信电路我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对本设计来说已经足够使用了,电路如上图所示。通信线采用交叉接法,即两者信号线对应成为RT,TR。 具体连接电路如图3-4所示:图3-4 串口通信连接方式3.1.3 主芯片振荡电路CPU晶体振荡电路,本系统
25、采用外部12MHZ频率的晶体振荡器。具体电路如图3-5所示:图3-5 CPU晶体振荡电路3.1.4 主芯片复位电路复位是单片机的初始化操作,只要RST引脚处至少保持2个机器周期(24个振荡周期)的高电平就可实现复位。CPU复位电路原理图如图3-6所示,其采用的是图3-6 上电复位电路上电加按键的复位方式。上电瞬间RST/VPD端的点位与VCC相同,随着充电电流的减小,RST/VPD的电位逐渐下降。3.2 数据采集部分数据采集部分采用ADC0809芯片来对采集来的模拟信号转换成数字信号,并且传到中央处理器中处理,并且显示。3.2.1 A/D转换器芯片ADC0809简介 ADC0809是8路模拟信
26、号的分时采集芯片,片内有8路模拟选通开关,以及相应的通道抵制锁存用译码电路,其转换时间为100s左右。ADC0809的芯片引脚图如图3-7所示。图3-7 ADC0809引脚图3.2.2 ADC0809的内部逻辑结构图如图3-7所示,图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换,这是一种经济的多路数据采集方法。地址锁存与译码电路完成对A、B、C 3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连,如表3.2-1为通道选择逻辑。3.2.3 信号引脚ADC0809芯片为28引脚为双列直插式封
27、装,其引脚排列见图3-7。对ADC0809主要信号引脚的功能说明如下:IN7IN0模拟量输入通道ALE地址锁存允许信号。对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。START转换启动信号。START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持 低电平。本信号有时简写为ST. 表3.2-1 通道选择逻辑图3-8 ADC0809内部逻辑结构A、B、C地址线。 通道端口选择线,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。其地址状态与通道对应关系见表9-1。CLK时钟信号。ADC0809的内部没有时钟电路
28、,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500KHz的时钟信号EOC转换结束信号。EOC=0,正在进行转换;EOC=1,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。D7D0数据输出线。为三态缓冲输出形式,可以和单片机的数据线直接相连。D为最低位,D7为最高 OE输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。Vcc +5V电源。 Vref参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为+5V(Vref(+)=+5V, Vref(-)=-5V)
29、。3.2.4 单片机与ADC0809的连接ADC0809与单片机的连接如图3-9所示,电路连接主要涉及两个问题。一是8路模拟信号通道的选择,二是A/D转换完成后转换数据的传送。8路模拟通道选择如图2.3所示模拟通道选择信号A、B、C分别接最低三位地址A0、A1、A2即(P0.0、P0.1、P0.2),而地址锁存允许信号ALE由P2.0控制,则8路模拟通道的地址为0FEF8H0FEFFH.此外,通道地址选择以作写选通信号,这一部分电路连接如图3-9所示。图3-9 ADC0809与单片机的连接从图3-10和图3-11中可以看到,把ALE信号与START信号接在一起了,这样连接使得在信号的前沿写入(
30、锁存)通道地址,紧接着在其后沿就启动转换。启动A/D转换只需要一条MOVX指令。在此之前,要将P2.0清零并将最低三位与所选择的通道好像对应的口地址送入数据指针DPTR中。例如要选择IN0通道时,可采用如下两条指令,即可启动A/D转换:图3-10 ADC0809的部分信号连接图3-11 信号的时间配合MOV DPTR , #FE00H ;送入0809的口地址MOVX DPTR , A ;启动A/D转换(IN0)注意:此处的A与A/D转换无关,可为任意值。3.2.5 转换数据的传送A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,
31、才能进行传送。为此可采用下述三种方式。定时传送方式对于一种A/D转换其来说,转换时间作为一项技术指标是已知的和固定的。例如ADC0809转换时间为128s,相当于12MHz的MCS-51单片机共32个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。查询方式A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。因此可以用查询方式,测试EOC的状态,即可却只转换是否完成,并接着进行数据传送。中断方式把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。不管使用上述那种方式,只要一旦确定
32、转换完成,即可通过指令进行数据传送。首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。不管使用上述那种方式,只要一旦确认转换结束,便可通过指令进行数据传送。所用的指令为MOVX 读指令,仍以图9-17所示为例,则有MOV DPTR , #FE00HMOVX A , DPTR该指令在送出有效口地址的同时,发出有效信号,使0809的输出允许信号OE有效,而打开三态门输出,是转换后的数据通过数据总线送入A累加器中。这里需要说明的示,ADC0809的三个地址端A、B、C即可如前所述与地址线相连,也可与数据线相连,例如与D0D2相连。这是启动A/D转换的指令与上述类似,
33、只不过A的内容不能为任意数,而必须和所选输入通道号IN0IN7相一致。例如当A、B、C分别与D0、D1、D2相连时,启动IN7的A/D转换指令如下:MOV DPTR, #FE00H ;送入0809的口地址MOV A ,#07H ;D2D1D0=111选择IN7通道MOVX DPTR, A ;启动A/D转换以PIC16C73 单片机为运算和控制中心, 扩展1 片E2 PROM作为数据寄存器IC2 ,使数据在掉电后不丢失,IC3 为8 位串行输入并行输出移位寄存器, IC4 为8 位数据锁存器。单片机PIC16C73 的RA0RA3 为4 路模拟量输入端,RB0RB7 构成4 4 键盘及显示器数码
34、管的位选,RC6 用于8 位段码输出,RC3 、RC4 用于与E2 PROM接口,RC0RC2 、RC5 是4 路开关量输出,RC7 用于报警。2. 2 测温、测湿电路采用玻璃封装的开关二极管1N4148 作温度传感器,电路如图3 。R1 、R2 、D1 (1N4148) 、W1 组成测量电桥,其输出信号接差动放大器A1 ,经放大后的信号送APD 转换。电路的调整过程是:以冰水混合物作为0 的标准,以沸水作为100 的标准(用0100 的水银温度计校准) 。将传感器插入冰水中,调W1 使A1 输出电压为0V ,将传感器插入沸水中,调W2 使A1 输出电压为设计值(如2. 5V) ,再将传感器插
35、入冰水中,看输出是否仍为0V ,若不是,则调整W1 使之为0V ,然后再插入沸水中,看输出是否为2. 5V ,如此反复调整几次即可。湿度传感器采用电容式湿敏元件,变送电路如图4 。图3 温度变送电路图4 湿度变送电路2. 3 扩展E2 PROMPIC16C73 内部具有同步串行口(SSP) 模块,用于与其它外设或微处理器通信的接口,具有SPI 总线和I2C 总线2 种操作方式。这里选用I2C 总线工作方式与E2 PROM通信。PIC16C73 有2 个脚可用作数据传输。RC3 用作时钟信号,RC4 用作数据信号,见图2 。2. 4 控制系统的功能1. 控制键的设置。控制系统设有16 个键:09
36、 为10 个数字键;A 键显示各通道测量值;B 键显示、设定各通道上限值;C 键显示、设定各通道下限值;D 键为通道号加1 功能键;E 为显示、查看、修改结束键;F 键为小数点。2. 实测值的显示。控制器平时只显示0 号通道的温度测量值,当工作人员需要查看其它通道测量值时,按下A键,再按通道号即可。若继续查看下一通道,就按D键,查看完后按E 键返回。3. 上、下限值的设定。按下B(C) 键,再按通道号,显示该通道的上(下) 限值,此时若按数字键即认为是修改设定值;按下D 键进行下一通道的显示和设定,过程同上;按E 键返回。设定值和实测值存入E2 PROM。3 控制系统的软件设计3. 1 主程序
37、流程图由于篇幅限制,主程序只给出图5 所示的流程图。3. 2 APD 转换由于PIC16C73 单片机内含APD 转换器,因此模拟参考电压可由软件设置为器件的正电源电压或RA3 引脚的电压,这里采用电源电压作为参考电压。APD模块有3 个寄存器:APD转换结果寄存器(AD2RES) ,APD 控制寄存器0(ADCON0) 和APD 控制寄存器1(ADCON1) 。APD 控制寄存器0(ADCON0) :控制APD 模块的工作,寄存器的上电复位值是00H, 未用位执行读操作时为0 ,不能执行写操作,其他位均可读写。APD 控制寄存器1(ADCON1) : 只用了02 位, 这3 位是APD 转换
38、口配置位,这些位将模拟口配置成不同的工作方式,包括模拟量输入输出、数字量输入输出以及参考电压(RA3) 。以RA0 通道为例,可写出APD 转换程序如下:BSF STATUS ,RP0 ;选择页面1CLRF ADCON1 ;配置APD 输入BSF PIE1 ,ADIE ;使能APD 中断BCF STATUS ,RP0 ;选择页面0MOVLW 0XC1 ;时钟、APD 接通MOVWF ADCON0 ;BCF PIR1 ,ADIF ;清除APD 中断标志BCF INTCON ,PEIE ;使能外围功能BCF INCON ,GIE ;使能所有中断3.5.2矩阵键盘的工作原理矩阵键盘又称为行列式键盘,
39、它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是44个。这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。图3-19为ME300B矩阵键盘电路图,行线接P1.4P1.7,列线接P1.0P1.3。图3-19 矩阵键盘电路图第4章 系统软件设计本课题的程序设计分为两大部分:主程序和中段服务程序设计,下面分别说明:4.1 主程序设计主程序程序框图如图4-1所示。包括三个主要环节:一是实现各种初始化。包括设置堆栈指针、DAC0832芯片零输出、8255A芯片初始化、8155芯片初始化、定时器/计数器0初始化、时钟
40、初值输入、以及开中断、定时器/计数器启动等。二是实现显示(按照人际对话功能显示时钟或各种不同参数)。三是不断地进行键扫描,判断有键按下否?如无键按下,则返回显示;有键按下,则根据所按键实现相应的人机对话功能。程序见附录参考程序1。4.1.1 时钟初值输入子程序该子程序的功能是要求通过6次按键(0-9数字键),输入系统开机运行的时间。6次按键分别输入时钟的十时、时、十分、分、十秒以及秒值。该子程序需包括以下4个功能:一是通过键扫描和键分析得到每次输入的键号;二是将每次输入的键号送时钟缓冲区(70H-75H单元)保存;三是将时钟缓冲区的内容送显示缓冲区(以MCD子程序实现,把70 H-75H单元中
41、的6个非压缩BCD码,变成3个压缩BCD码,分别存显示缓冲区78H-7AH单元);四是调用显示子程序实现显示(每按一次键显示一次)。这里,特别要指出的是由于MCD子程序和显示子程序中均需用到R0寄存器,而时钟初值输入子程序本身也需要用到R0寄存器,故在调用该两子程序前需先将R0的内存赞送B寄存器保存,待执行完两个子程序后,再将B寄存器的内容送回R0寄存器。象这种各程序之间的相互照应回顾,在编制有一定规模的程序中必须充分予以注意,否则将影响程序的正常运行。4.1.2 显示子程序根据系统扩展图可知,要使6位LED数码管显示相应数据,只要将显示缓冲区78H-7AH单元中的6个压缩BCD码通过8255
42、A的A口、B口、C口分别输出即可,故该子程序的后半部分(自标号DIS2开始)即实现此功能。设置堆栈指针D/A零输出RAM区初始化时钟初值输入8155初始化8255A初始化定时器/计数器0初始化开中断、启动显 示键扫描,判有键按否延时20ms键扫描,判有键按否键分析、得键号转各处理程序NNYY图4-1 主程序程序框图由于系统中只有一组6个LED数码管实现显示,所以显示内容是由键盘控制的。故该子程序开始,先判键号暂存单元7BH单元的内容(7BH单元为0#-4#键)然后决定显示内容。若为0#键,则调MCD子程序,将时钟缓冲区的内容送显示缓冲区,后跳至DIS2实现时钟显示。若为0#-4#键则应显示相应
43、数据。根据课题要求,数据显示格式如图16-3所示。6位LED数码管,其中第1位(最高位)显示数据代码(1-4),第2位和第3位熄灭,第4-6位显示该号数据的3位有效数字。如1&996,表示显示1#数据,即电动机转速为996r/min。根据内存分配表可知,四个数据的转换结果存放的首地址68H,1#数据在68H-69H单元,2#数据在6AH-6BH单元,依次类推。1数据代码熄灭熄灭数据百位数据十位数据个位图4-2 数据显示格式每个数据占两个字节。高位字节为非压缩BCD码,存放数据十百位和个位。为实现按上述格式显示,查手册可知,对于译码器74LS48,若需使LED数码管熄灭,只要输入段码0FFH即可
44、。由此,程序设计流程为:首先将键号乘2,再加66H,得各数据存放单元的首地址,将该首地址暂存R1。后将7BH单元的内容(如设键号为1)送78 H单元(将该代码自8255A的A口输出,即可使数码管的第1位显示1,第2位熄灭)。然后,又将F0H和该号数据首址(即高位字节)的内容(存放数据百位)相加,得FH(表示数据百位),送79H单元(将该代码自8255A的B口输出,即可使数码管的第3位熄灭,第4位显示百位数)。最后,讲该号数据的 低位字节内容送7AH单元(将该内容自8255A的C端口输出,即可使数码管的第5位显示十位数,第6位显示个位数)。后再执行DIS2以后的各条指令,即可按预定要求实现显示。
45、显示子程序增加了第一部分内容后,也为数据的动态刷新创造了条件,当每次执行显示子程序时,均能将数据转换结果及时予以显示。4.1.3 键扫描子程序KEY和键分析子程序KAYA主程序的第三部分是通过判断按键实现相应的人机对话功能。主要由两个关键的子程序:键扫描子程序KEY和键分析子程序KAYA。1)KEY子程序的功能是判是否有键按下。其程序设计思想是:先选通与键盘相连的 74LS244芯片,并使矩阵式键盘4根行线(接P1.0-P1.3,详见系统扩展图)均为低电平,后读入列线信号,如有键按下,则四根列线中至少有一根列线信号为低电平;如无键按下,则4根列线读入的信号为全1码,即A累加器中的低4位为全1,
46、后再与F0H相或,A累加器的内容则为FFH,再将A累加器的内容求反,变为00H(若有键按下,则不是00H),即可通过判A内容是否为0,来确定是否有键按下。2) KAYA子程序的功能是确定所按键的键号。其程子序设计思想是:通过逐行扫描依次使矩阵式键盘的各条行线为低电平,后逐次读入列信号,判该行是否有键按下。其具体方法是将该列线信号依次右移至C标志,如C标志内容为0,则表示该行该列有按键。在程序中每右移一次,键号加1(键号暂存于R7当中),由此即可得到按键的键号。本程序中还有两点需加以说明。一是为确保每按一次键,程序只响应一次,程序中设计了等待键释放的程序段,即若键不释放,不会退出本程序。否则,由
47、于每按一次键要达数十秒,如不设置键释放的程序段,则该程序将会被执行多次(每执行一次至多不超过200us),这显然是不适宜的。另外一点要说明的是为配合显示,确定应该显示哪一号数据(或显示时钟),在本程序末尾将得到的键号送7BH保存。由于显示只跟0#-4#键有关,故凡是大于4#键,7BH中不作保存。3)在进行键扫描和键分析后,在主程序的末尾安排了一个查表程序。课题中设置了7个功能键,根据键分析所得到的键号,通过查表,找到该功能键所对应程序的首址,然后跳至相应的功能程序执行。对于1#-4#功能键,本应在相应的功能程序中编制不同的显示程序,但现在上述显示子程序中已作了妥善的处理,不管是要显示时钟还是要
48、显示各种数据,都能达到预期的效果,故相应的跳转地址上均只需安排一条LJMP LOP1指令即可实现预定的显示。对于5#、6#功能键,按课题要求应具有投入报警和撤销报警的功能,其程序设计思想是设置一个标志单元,当20H单元内容为00H时,则撤销报警;而当20H单元内容FFH时,则投入报警,故在功能程序中只需简单地将20H单元内容设置好,而在中断服务程序中执行报警子程序前先判20H单元内容,如为FFH,则执行报警子程序;如为00H,则跳过报警子程序即可(在5#键功能所对应的功能程序中,已调用报警灯全灭的子程序)。这种通过设置标志单元(或设置标志位),实现主程序和中断服务程序之间相互衔接是程序设计中常
49、用的方法之一。主程序中调用的子程序见附录参考程序2。4.2 中断服务程序中断服务程序的编写完全采用模块化结构。主要包括采样、数据处理、报警、控制算法及控制值输出(模拟)及时钟累进等环节,均以调用子程序实现,以使程序脉络清晰。中断服务程序框图如图4-3所示。每10ms执行一次。由于A累加器及DPTR寄存器的主程序和中断服务程序中均反复用到,故在进入中断服务程序后,首先要保护现场,即将A、DPTR寄存器的内容保护到堆栈中。用SETB PSW.3指令,更换工作寄存器组,即在子程序中使用工作寄存器组1,避免数据丢失,在中断服务程序结束要恢复现场,即恢复A、DPTR寄存器的内容。见附录参考程序程序3。4
50、.2.1 采样子程序(SAMP)根据课题要求,为使系统具有抗干扰能力,要求每10ms采样一组数据,一次采样电动机转速、转子工作电压、工作电流及电网电压4个参数,采样满5次后(共20个数据),进行中值滤波。据内存分配表可知,5次采样的结果分别存放在50H-63H共20个单元中,为便于下面进行数据处理,采样值的存放结构应如图4-3所示。第一组数据存放单元第二组数据存放单元50H55H5AH5FH图4-3 采样数据存放结构图第1组采样值分别存放在50H(转速)、55H(工作电压)、5AH(工作电流)及5FH(电网电压)中,第二组采样值应分别存放在51H、56H、5BH及60H中,余类推。当经过50m
51、s,进行5组数据采样后,20个单元均采集满。此时,50 H-54 H单元中为电动机转速的5次采样值,55 H-59 H单元中为工作电压的5次采样值即各数据的采样值在内存单元中均相对地集中在一起,为下面的数据处理创造了有利条件。为使程序简洁明了,4路数据采样均用一个采样子程序完成。4.2.2 采样子程序(SAMP)设计思路如下:以7CH作为每组采样数据中第一个采样值存放单元的首地址(初始时指向50 H),R0作为间址寄器,再设R1为10H(采样通道及启动信号),R2为循环计数器,初值为4(每组采样4个数据)。由系统扩展图可知,由于ADC0809连接在8155芯片上,其选通信号将由8155的B口提
52、供,当将10H从8155B口输出时,起到两个作用:一是使ADC0809的ADDC、ADDB、ADDA为000,即选通IN0通道。二是通过PB4 引脚(连接在ADC0809的START引脚上),给START引脚提供一个高电平,后再通过执行ANL A,#0EFH 及MOVXDPTR,A 两条指令,又给START引脚提供一个低电平,从而启动A/D转换,通过延时100us后,由8155的A 口读取A/D转换结果(见系统扩展图),并存放在 R0 所指向的地址单元。修改R0内容(加5),使R0指向存放第二个采样值的存放单元,接着又将R1的内容加1,指向下一个采样通道,如此循环4次,即完成一组数据(4个)的
53、采样。 值得强调的是采样子程序到此并未结束,还必须为下一组数据的采集作好准备。这里巧妙地将采样值首址记忆单元7CH的内容加1,使之指向下一组采样数据的首址。如此,5次进中断后即可完成20个数据的采集,为数据处理作好准备。但此时必须注意,采样满5次后,必须重新使7CH指向50H,为此,在程序化中以CJNE A,#55H,SA2指令判采样是否已满5次,若已满5次,首先使7CH置 50H,同时又使软件标志F0置1,为下面的数据处理程序提供信息,这种用标志位来实现程序和程序之间的相互衔接,是程序设计中又一种常用的方法。见附录参考程序4。4.2.3 数据处理子程序(PROC)数据处理子程序是整个程序中最
54、复杂的一个子程序。它包括中值滤波(排队)、中值传送、数据变换A(将采样值变换成二进制数工程量)、数据变换B(将二进制数工程量变换成十进制数工程量)4个子程序。每次进入数据处理子程序均先判F0是否为1,若为0,则不必执行数据处理子程序;若为1,则先将F0清零,后执行数据处理子程序。下面分别对各子程序作具体介绍:(1)中值滤波子程序(RANG) 中值滤波的目的是为排除干扰信号。将5次采样值进行排队,取中间值作为滤波结果。排队程序的设计思想是采用“沉底法”,自第1、2个数据开始,一次将挨近的两个数据进行比较,如前大后小,则交换;如前小后大,则不交换。通过第一次循环使最大的数“沉底”,通过第二次循环又
55、使次大的数“沉底”,以此类推,直至所有5个数据都按小到大排列。因此每组数据排队都需要经过两重循环,其中大循环计数器为R3(为4次),小循环计数器为R4,由4次逐渐减少至1次。另外,由于需对4组数据进行排队,所以又设置了第三重循环,循环计数器为R2(为4次)。当每组数据排序完后,将7CH的内容加5,使之指向下一组数据的首址,直至4组数据均排序完后,又将7CH单元重置50H。(2)中值传送子程序(LOAD) 该子程序较为简单,其目的是将分布在52H、57H、5CH及61H的4个中值滤波的结果传送到64H-67H(见图4.2-2),以便集中进行下一步的数据变换。(3)数据转换A子程序(CHAA) 该子程序的功能是将滤波结果(存64H-67H)转换成其所对应的二进制数的工作量(存68H-6FH)。现以电动机转速为例说明程序设计思想。设滤波结果为X,其变化范围为00H-FFH(为下面演算方便起见,设为00H-FFH ,误差小于千分之四),而设其转换结果为0-1000
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 稻谷加工设备智能化改造案例分析考核试卷
- 电动工具在太阳能光伏组件生产中的作用考核试卷
- 甘肃省收费公路运营服务质量(月度、年度)评价表
- 纸张的柔软度与舒适度考核试卷
- 站内安全防护系统升级与改造考核试卷
- 三年级数学口算天天练(可下载直接打印)
- 电机在电力行业能源资源开发与利用的应用考核试卷
- 社交心理学在品牌传播中的应用考核试卷
- 管道配件在农业灌溉系统的应用考核试卷
- 南京高三语文辅导作文
- 2024年地基基础(基桩静荷载试验)知识考试题库(供参考)
- 市级优质课一等奖《谁是最可爱的人》七年级语文下册同步备课课件(统编版)
- 2024全新第五版FMEA培训教材
- 电信电源专业应急预案
- 人工智能在智能工厂中的应用
- 上市公司固定资产减值研究 -以美的集团股份有限公司为例
- 运动会运营服务投标方案(技术标 )
- 雷达原理(第6版) 习题及答案汇总 丁鹭飞 ch01-ch09
- 完整版供应商质量审核检查评分表(供应商审核表)
- 公司接待流程图
- 常用急救技术-环甲膜穿刺、切开术(急救技术课件)
评论
0/150
提交评论