基于单片机的制冷系统及智能控制_第1页
基于单片机的制冷系统及智能控制_第2页
基于单片机的制冷系统及智能控制_第3页
基于单片机的制冷系统及智能控制_第4页
基于单片机的制冷系统及智能控制_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

--word.zl-1引言温度是与人类的生活和工作关系最密切的物理量,也是各门学科与工程研究设计中经常遇到和必须准确测定的物理量。从工业炉温、环境气温到人体温度;从空间、海洋到家用电器等各个技术领域都离不开测温和控温。因此,测温、控温技术开展最快,围最广。1.1本课题的意义在人类的生活环境中,温度扮演着极其重要的角色。温度是工业生产中常见的工艺参数之一,任何物理变化和化学反响过程都与温度密切相关,因此温度控制是生产自动化的重要任务,对于不同生产情况和工艺要求下的温度控制,所采用的加热方式,燃料,控制方案也有所不同。无论你生活在哪里,从事什么工作,无时无刻不在与温度打着交道。自18世纪工业革命以来,工业开展对是否能掌握温度控制有着绝对的联系。在冶金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎80%的工业部门都不得不考虑着温度的因素。温度是一个系统经常需要测量、控制和保持的量,而温度是一个模拟量,不能直接与单片机交换信息,采用适当的技术将模拟的温度量转化为数字量在原理上虽然不困难但本钱较高,还会遇到其它方面的问题。随着国民经济的开展,人们需要对各中加热炉,热处理炉,生化温室中温度进展监测和控制。温度监控系统广泛应用于社会生活的各个领域,如家电、汽车、材料、电力电子等,和人们的日常生活息息相关,例如微波炉,冰箱,热水器等都需要对温度进展控制,而开发一个智能的温度控制系系统显着尤为重要,而如今随着科技的进步,已经开发出很多不同用途的智能温度控制系统,大大方便了人们的日常生活,为经济的发战做出了奉献。温度测量和控制在工业控制领域也有着广泛的应用,温度控制充当了一个很重要的角色,所以说温度控制在整个国民经济的开展中都有着重要的意义。1.2国外开展状况目前,国的大型冷库大多采用仪表控温.人工手动的定值方式。对于大型多种类型库房的冷库,这种控制方式往往无法满足冷库温度控制的要求。为此,我们在设计大型冷库温度控制系统时。采用AT89C52单片机为核心设计系统的控制器。通过对各库房多点测温点的检测。分析库温度场的分布情况,然后根据对库温的各种具体要求,控制制冷系统的运行。我国冷库自建国以来经历了从小到大、从少到多、从单一到综合、从一般到先进的开展历程。冷库的开展离不开对制冷技术的依托,而制冷技术的开展又离不开自动控制的应用。自动控制在我国冷库制冷装置及其系统的应用始于六十年代,从自控元件仪表自主开发研制和试点工程,到大量工程应用和开展;整个装置系统的引进和应用,直至电子技术的广泛应用,经历了从无到有、从初级到高级的不断开发、拓展的历程。当今我国冷库制冷装置及其系统的自动控制技术己日趋成熟并得以广泛应用和开展;可以这样说,当今制冷技术的开展已越来越离不开自动控制的支撑;当今电子技术、PLC和CPU的应用已越来越深入于冷库自动控制的容;当今自动控制的实施在平安、经济和节能等领域亦越来越表达其无可替代的重要地位。由于计算机技术的应用,使制冷系统的自动控制上升了一个很大的台阶,做到了常规控制难以做到的控制容。例如库房温度排序、氨压缩机列队、当前负荷和制冷量计算、蒸发温度设定、库房温度设定、系统最正确运行、冷凝水泵动态调节、事故处理、数据采集打印和随机查询等功能的实现,就是计算机技术应用的成果。自行设计的冷库自动控制与以往相比,最大的不同是可以选用的自控元件仪表品种多了、质量也高了,其结果就是克制了长期以来“头脑灵活而手脚不灵〞的为难局面,使冷库自动控制成了十分必要而且实用的技术。吴径冷库1000吨高温库的工程,以通用PLC为核心,采用相关元件和仪表,编制控制中国制冷学会第十七次团体会员大会暨第五届全国食品冷藏链大会论文集程序,取得了可编程序控制器在制冷系统应用的成功,还获得了市科技成果应用的证书。新加坡在中国投资的清溪和龙口冷库,用国产制冷设备和进口自控元件实现了高温库和高、低温两用库的自动控制。600()吨山力冷库是民营企业,在该工程中选用了进口螺杆制冷压缩机、国产辅机和进口制冷自控元件,实现了采用顶墙排管低温库(包括制冰和冰库)的自动控制。在这些冷库的自动控制中,螺杆式制冷压缩机的机电一体化是一个很大的特点,采用微电脑或PLC组成的主机控制屏不但提高了对本机自控的程度,还有专用通讯接口,可以与系统建立联络和纳入整个系统的控制;通过该控制屏的人机界面不但能了解当时运行工况和相关参数,还能根据运行要求对这些参数进展设定,满足实际控制需要。国外引进冷库的自控特点一些企业从国外引进的冷库、制冷设备和制冷系统,其特点之一就是技术先进自动化程度高。这些工程根本上都采用带微电脑控制的螺杆制冷压缩机和各种自控元件,结合制冷对象的特点,实现制冷设备及其系统的自动控制。该时期的坪山冷库、外高桥冷库、二十一世纪冷库和福乐冰琪淋食品公司等工程的自动控制都各具特点。1)螺杆压缩机不但能根据实际负荷的变化作相应的能量调节,还能根据运行工况变化作相应的容积比调节。2)在高、低温多蒸发温度的制冷系统中,实现了中冷带负荷系统的配置和自动调节,使制冷压缩机的配置数量最少、投入运行的效率最高、对制冷对象变化的适应最灵活。3)实现了重力供液系统的自动控制,还同样做到了中冷带负荷的控制,使较为传统的重力供液系统焕发了新春,在省去液泵的同时,减少了制冷装置的功率消耗和日常维修。通过这些工程的设计、安装和调试,还拓展了视野、丰富了经历、加快了与国际接轨的步伐从以往冷库自控的开展,可以明显地看到,自控元件仪表的制造、制冷系统的控制是和电子技术的开展互为依托、相互促进的。从最早的继电器回路、到由分立原件组成的程序控制器、再到集成电路的可变程序控制器。1.3温度监控系统常用的两种装置1.3.1PLC控制系统由温度传感器、PLC系统(含键盘和液晶显示)、加热设备几局部组成。利用PLC把传感器采集的有关参数(如温度)转换为数字信号,并把这些数据暂存起来,与给定值进展比拟,经控制算法后,给出相应的控制信号进展控制。系统还可以经过串行通信接口将数据送至上位机,从而完成数据管理、智能决策、历史资料统计分析等更为强大的功能,并可以对数据进展显示、编辑、存储及打印输出。传感器把与环境有关的参量转换为电压信号,经运算放大器组成的信号处理电路变换成压频转换器(V/F)需要的电压信号。其中温度传感器的输出电流与绝对温度成正比,且具有温度响应快、线性度好及高阻抗电流输出等特点,适于长距离传输,可把-5~55℃的温度转换成1~4V的电压;测湿调理电路是将湿度传感器测试到的10%~90%的相对湿度转换成4~20mA的电流输出信号。监控系统的执行机构包括遮阴帘、电磁阀等设备。系统工作时,PLC通过温度传感器来测量温室的温度并与设定值相比拟,如果温室的温度超出了设定围的上下限值,PLC就输出指令,控制接通相应的设备;当温室的温度和湿度都在围时,PLC就输出指令,切断设备的电源。1.3.2单片机控制温度监控系统采用单片机进展控制,由温度检测电路、显示电路、A/D转换电路、执行机构、控制电路和单片微处理器等组成。用单片机作为控制器,可对执行机构发出指令,实现温度参数调节,具有上下位机直接设置温度围,温度实时显示等功能。系统下位机由传感器检测模块,键盘显示模块和执行机构模块三大局部构成。2系统框图和数学模型2.1控制要求1〕冷库的温度要保证在适于放置冷藏物品的温度,这主要在控制程序设计中考虑。温度控制围为-15℃~-25℃,升温、降温阶段的温度控制精度要求为0.5图2.1温度控制曲线2〕微机自动调节正常情况下,系统投入自动。3〕模拟手动操作当系统发生异常,投入手动操作。4〕微机监控功能显示当前被控量的设定值、实际值,控制量的输出。2.2受控对象的数学模型控制的温度是影响冷库性能的重要因素。本系统要求长时间监视冷库的温度,并对当前的温度进展控制。本控制对象为冷库,采用继电器进展控制。ATAT89C52加热控制电路高阻抗加热丝降温控制电路半导体降温片冷库温度传感器A/D转换电路显示电路上位机键盘报警电路图2.2温度控制系统整体构造框图2.2.1系统整体构造框图冷库温度检测控制系统主要由AT89C52为核心,构造框图如图2.2所示。2.2.2系统整体工作过程本系统的一大特点是用户可以通过下位机中的键盘输入温度的上、下限值,也可以通过上位机对温度的上、下限值进展输入,从而实现上位机对培养容器温度检测控制的远程操作。系统下位机设在冷库里,下位机中的温度传感器可以将环境中的温度非电量参数转化成电量信号,再将这些信号进展处理后送至下位机中的单片机,单片机读取数据后将数据送到缓冲区,通过LED数码管进展实时显示,同时与原来部设定的上、下限值进展比拟,单片机可以根据比拟的结果对温度控制电路的继电器发出相应的通断信号,并通过继电器的吸合状态去控制相应的设备进展操作,调节冷库的温度状态。用户直接通过键盘对温度的上、下限值进展设置后,如果环境的实时参数超越上、下限值,系统自动启动执行机构调节冷库温度状态,直到温度状态处于上下限值围为止。下位机LED显示局部可以直接实现温度值的实时显示。上位机可通过通信接口模块接收下位机传送过来的温度值,可以直接设置温度值并通过单片机去控制执行机构对冷库进展相关操作。由于通常的PC机都配有RS-232C的串行通讯接口,有效通讯距离较短。为了实现长距离通讯,不得不将RS-232C接口转化成RS-485接口。因此上下位机之间通过符合串行总线RS-485标准的通信通道以事先约定的协议进展通信。2.2.3温度控制系统的组成框图采用典型的反响式温度控制系统,组成局部见图2.3。其中数字控制器的功能由单片机实现。冷库温度的传递函数为,其中τ1为电阻加热的时间常数,为电阻加热的纯滞后时间,为采样周期。A/D转换器可划归为零阶保持器,所以广义对象的传递函数为〔2.1〕图2.3温度控制系统的组成框图广义对象的Z传递函数为〔2.2〕所以系统的闭环Z传递函数为(2.3)系统的数字控制器为=〔2.4〕写成差分方程即为〔2.5〕令,,得〔2.6〕式中——第次采样时的偏差;——第次采样时的偏差;——第次采样时的偏差。3系统硬件设计考虑到尽量降低本钱和防止复杂的电路,此系统所用到的元器件均为常用的电子器件。主控器采用单片机AT89C52;温度传感器采用AD590;采用控制端TTL电平,即可实现对继电器的开关,使用时完全可以用NPN型三极管接成电压跟随器的形式驱动;单片机所需要的+5V工作电源是通过220V交流电压通过变压、整流、稳压、滤波得到。实时控制的显示器、键盘通过单片机来完成键盘扫描与输出动态显示。下面对硬件电路作具体的设计。3.1单片机AT89C52单片机介绍AT89C52是美国ATMEL公司生产的低压,高性能CMOS8位单片机,期间采用ATMEL公司的高密度、非易失性存储技术生产,因此,功能强大的AT89C52单片机适合于许多较为复杂的控制应用场合。AT89C52提供以下标准功能:8K字节Flash闪速存储器,256字节部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断构造,一个全双工串行通讯口,片振荡器及时钟电路。同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式,空闲方式停顿CPU的工作,但允许RAM,定时/计数器,串行通讯口及中断系统继续工作。掉电方式保存RAM中的容,但振荡器停顿工作并制止其他所有部件工作直到下一个硬件复位。AT89C52的引脚如图3.1所示。[1]图3.1AT89C52引脚构造图3.1.1单片机的引脚功能描述下面对AT89C52各引脚的功能进展较为详细的介绍:1)电源引脚Vcc和VssVcc(40脚):电源端为+5VVss(20脚):接地端。2)时钟电路引脚XTAL1和XTAL2XTAL2(18脚):接外部晶体和微调电容的一端。在单片机部它是振荡电路反向放大器的输出端,振荡电路的频率就是晶体固有频率。假设需采用外部时针电路时,该引脚输入外时钟脉冲。要检查89C52的振荡电路是否正常工作,可用示波器查看XTAL2端是否有脉冲信号输出。XTAL1(19脚):接外部晶体和微调电容的另一端。在片,它是振荡电路反向放大器的输入端。在采用外部时钟时,该引脚必须接地。3)控制信号脚RSTALEPSEN和EA。RST(9脚):RST是复位信号输入端,高电平有效。在此输入端保持两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。ALE/PROG〔30引脚〕:地址锁存允许信号端。当AT89C52上电正常工作后,ALE引脚不断向外输出正脉冲信号。此频率为振荡器频率fosc的1/6,当CPU访问片外存储器时,ALE输出信号作为锁存低8位地址的控制信号。在CPU访问片外数据存储时,每取值一次〔一个机器周期〕会丧失一个脉冲。平时不访问片外存储时,ALE端也以1/6的振荡频率固定输出正脉冲,因而ALE信号可以用作对外输出时钟或定时信号。如果你想看一下AT89C52芯片的好坏,可用示波器查看ALE端是否有脉冲信号输出,如有脉冲信号输出,那么AT89C52根本上是好的。ALE的负载驱动能力为8个LS型TTL〔低功耗高速TTL〕。PSEN〔29脚〕;程序存储允许输出信号引脚,在访问片外程序存储器时,此端定时输出负脉冲作为读片外存储器的选通信号。此引脚接ERROM的OE端。PSEN端有效,即允许读出ERROM/ROM中的指令码。CPU在从外部ERROM/ROM取指令期间,每个周期PSEN两次有效。不过,在访问片外RAM时,要少产生两次PSEN负脉冲信号。要检查一个AT89C52小系统上电后CPU能否正常到ERROM/ROM中读取指令码,也可用于示波器看PSEN端有无脉冲输出。如有,说明根本上工作正常。EA/VPP〔31脚〕:外部程序存储器地址允许输入端/固化编程电压输入端。当EA引脚接高电平时,CPU只访问片ERROM/ROM并执行部程序存储器中的指令。但在PC〔程序计数器〕的值超过OFFFH〔对8751/8051为4k〕时,将自动转向执行片外存储器的程序。当出入信号EA引脚接低电平〔接地〕时,CPU只访问外部ERROM/ROM并执行外部程序存储器中的指令,而不管是否有片程序存储器。对于无芯片的ROM的8031或8032,须外扩ERROM,此时必须将EA引脚接地。如果使用有片ROM的AT89C52,外扩ERROM也是可以的,但也要使EA接地。4)I/O〔输入/输出端口,P0,P1,P2,P3〕P0口:P0口是一个漏极开路的8位准双向I/O端口。P1口:8位准双向I/O端口。P2口:即可以做地址总线输出地址高8位,也可以做普通I/O用,〔此时为准双向口〕。P3口:双功能口,即可以做普通I/O口用〔此时为准向口,也可以按每位定义实现第二功能操作〕。见表3.1。表3.1P3口的第二功能表引脚第二功能P3.0RXD〔串行输入口〕P3.1TXD〔串行输出口〕P3.2INT0〔外部中断0〕P3.3INT1〔外部中断1〕P3.4T0〔定时器0外部中断〕P3.5T1〔定时器1外部中断〕P3.6WR〔外部存储器写选通〕P3.7RD〔外部存储器读写通〕3.12时钟电路AT89C52的时钟方式有两种,一种是部时钟方式,另一种是外部时钟方式。本设计从简化电路方面考虑,采用部时钟方式。AT89C52单片机有一个高增益的反相放大器,其输人端〔XTAL1〕和输出端〔XTAL2〕用于外接石英晶体和微调电容构成振荡器,对外接电容的值虽然没有严格的要求,但电容的大小会影响振荡器频率的上下、振荡器工作的稳定性,起振的难易程度及温度稳定性,一般电容值在20pF~40pF时,振荡器有较高的稳定性。本设计用于交流电参数的测量,数据计算又软件实现,需要稳定的振荡时钟来保证测量与计算的精度,所以选择电容值为33pF,晶振频率为12MHz。电路如图3.12所示。图3.12时钟电路3.13复位电路复位电路常采用上电复位和按钮复位两种方式,其工作原理为:上电瞬间,RC电路充电,RESET引脚端出现正脉冲,只要RESET端保持10ms以上的高电平,就能使单片机有效地复位。当时钟频率选用12MHz时,C取22µF,R约为10KΩ。除了上电复位外,有时还需要人工按钮复位。考虑到系统在实际运行中可能会出现死机的情况,自动复位不能实现,于是就采用了上电复位与按钮复位兼有的复位电路,确保系统平安运行。如图3.13所示。图3.13复位电路3.28155芯片的简介8155是带RAM和定时器/计数器的可编程并行接口芯片。用8155可作LED显示接口。如图3.2所示:图3.28155引脚图1〕8155各引脚功能说明如下:RST:复位信号输入端,高电平有效。复位后,3个I/O口均为输入方式。AD0~AD7:三态的地址/数据总线。与单片机的低8位地址/数据总线〔P0口〕相连。单片机与8155之间的地址、数据、命令与状态信息都是通过这个总线口传送的。:读选通信号,控制对8155的读操作,低电平有效。:写选通信号,控制对8155的写操作,低电平有效。:片选信号线,低电平有效。IO/:8155的RAM存储器或I/O口选择线。当IO/=0时,那么选择8155的片RAM,AD0~AD7上地址为8155中RAM单元的地址〔00H~FFH〕;当IO/=1时,选择8155的I/O口,AD0~AD7上的地址为8155I/O口的地址。ALE:地址锁存信号。8155部设有地址锁存器,在ALE的下降沿将单片机P0口输出的低8位地址信息及,IO/的状态都锁存到8155部锁存器。因此,P0口输出的低8位地址信号不需外接锁存器。PA0~PA7:8位通用I/O口,其输入、输出的流向可由程序控制。PB0~PB7:8位通用I/O口,功能同A口。PC0~PC5:有两个作用,既可作为通用的I/O口,也可作为PA口和PB口的控制信号线,这些可通过程序控制。TIMERIN:定时/计数器脉冲输入端。TIMEROUT:定时/计数器输出端。VCC:+5V电源。2〕用8155作显示接口芯片的连接电路:其中C口为输出口〔位控口〕,以PC5-PC0输出位控线。由于位控线的驱动电流较大,8段全亮时约40-60mA,因此PC口输出加74LS06进展反相和提高驱动能力,然后再接各LED显示器的位控端。B口也为输出口〔段控口〕,以输出8位字型代码〔段控线〕。段控线的负载电流约为8mA,为提高显示亮度,通常加74LS244进展段控输出驱动。3.3温度传感器检测电路设计集成温度传感器是利用晶体管PN结的电流、电压特性与温度的关系,把感温PN结及有关电子线路集成在一个小硅片上,构成一个小型化、一体化的专用集成电路片。集成温度传感器具有体积小、反响快、价格低等优点。AD590是集成温度传感器中常用的芯片。它是AD公司利用PN结正向电流与温度的关系制成的电流输出型两端温度传感器。由于该器件具有良好的线性特性和互换性,因此测量精度高,并具有消除电源波动的特性。AD590传感器有三个引脚,在使用时“+〞极引脚接电源,“-〞极接一电阻到地,“NC〞悬空即可。它可接的工作电压为4V~30V,可检测的温度围为-55℃~+150℃,有非常好的线性输出性能。温度每降低1℃,电流就增加1uAAD590检测电路接线图如图3.3所示。使用时,运算放大器OPA1为电压跟随器,主要为了稳定信号的输入,调节变阻器使0℃时运放OPA2的输入为:2.73-2.73=0V,而-25℃时,OPA2的输入为2.73运放OPA2为放大倍数为10的反相比例运算放大器。这样,-25℃图3.3温度检测放大电路设计表3.2AD590温度与电流的关系温度AD590电流经10KΩ电压0273.2uA2.732V-283.2uA2.832V-293.2uA2.932V-298.2uA2.982V-303.2uA3.032V-313.2uA3.132V-323.2uA3.232V-333.2uA3.332V-373.2uA3.732V通过两个运放后,电路所送出的电压值的大小就能反映相应的温度值了。为了换算方便,本设计中采用的参考电压为5.1V,即8位模数转换器ADC0809模拟量输入为+5.1V时,ADC0809的数字量为0FFH,即255。温度显示围设定为-51~0℃,那么系统采样分辨率为51/255=0.2℃在软件设计中,只要将输出的数字量乘以0.2℃/LSB就能换算成实际的温度值[3]表3.3各温度与2个运放及ADC0809输入输出间的关系温度值经OPA1后经10KΩ后零位调整后经OPA2后ADC输入ADC输出0273.2uA2.732V0V0V0V0-283.2uA2.832V0.1V1V1V50-293.2uA2.932V0.2V2V2V100-303.2uA3.032V0.3V3V3V150-313.2uA3.132V0.4V4V4V200-323.2uA3.232V0.5V5V5V2503.4ADC0809的简单介绍及其与单片机和传感器的连接3.4.1ADC0809的简单介绍ADC0809是8位A/D转换芯片,它是采用逐次逼近的方法完成A/D转换的。ADC0809由单一的+5V电压供电;片带有锁存功能的8路模拟多路开关,可对8路0~5V的输入模拟电压信号分时进展转换,完成一次转换大约需要100μS;片带有多路开关的地址译码器和锁存电路、高阻抗斩波器、稳定的比拟器,256R电阻T型网络和树形电子开关以及逐次逼近存放器。输出具有TTL三态锁存缓冲器,可以直接接到单片机数据总线上。它是28脚双列直插式封装,其引脚图如图3.4所示,各引脚的功能如下:D7~D0:8位数字量输出引脚。IN0~IN7:8位模拟量输入引脚。REF〔+〕:参考电压正端。REF〔-〕:参考电压负端。ALE:地址锁存允许信号输入端。START:A/D转换启动信号输入端。CLK:时钟信号输入端。EOC:转换完毕信号输出引脚,开场转换时为低电平,转换完毕时为高电平。OE:输出允许控制端,用于翻开三态数据输出锁存器。图3.4ADC0809引脚图A、B、C:地址输入线,经译码后可以选通IN0~IN7八通道中的一个通道进展转换。3.4.2ADC0809与单片机的连接ADC0809与AT89C52的接线图如下列图3.5所示。由于ADC0809片无时钟,可以利用AT89C52提供的地址锁存允许信号ALE经D触发器二分频后获得,ALE脚的频率是AT89C52单片机时钟频率的1/6。此系统中单片机时钟频率采用6MHz,那么ALE脚的输出频率为1MHz,再经过二分频后为500KHz,恰好符合ADC0809对时钟频率的要求。由于ADC0809具有输出三态锁存器,其8位数据输出引脚可以直接与数据总线相连。地址译码引脚A、B、C分别与地址总线的低三位A0、A1、A2相连,以选通IN0~IN7中的一个通路。将P2.7作为片选信号,在启动A/D转换时,由单片机的写信号和P2.7控制ADC的地址锁存和转换启动,由于ALE和START连在一起,因此,ADC0809在锁存通道地址的同时,启动并进展转换。在读取转换结果时,用低电平的读信号和P2.7脚经过一个或非门后,产生的正脉冲作为OE信号,用以翻开三态输出锁存器,因此,P2.7应该设置为低电平。ADC0809与AT89C52的中断方式接口电路只需要将0809中的EOC脚经过一个非门连接到AT89C52的INT0脚即可。采用中断方式可以大大节省CPU的时间,当转换完毕时,EOC图3.5ADC0809与单片机AT89C52的接线图发出一个脉冲向单片机提出中断申请,单片机响应中断请求,由外部中断的效劳子程序读取A/D转换的结果,并启动下一个转换。外部中断采用边沿触发方式。3.5键盘输入电路的设计一般情况下,键盘是由一组规那么排列的按键组成,一个按键实际上是一个开关元件。其主要功能是把机械上的通断转换为电气上的逻辑关系〔0和1〕。常见的种类有:独立式键盘和矩阵式键盘。独立式键盘的特点是每个按键单独占用一根I/O口线,每个按键工作不会影响其他I/O口线的状态,多用于所需按键不多的场合。在本系统中,所需按键较多,应采用矩阵式键盘。4×4键盘构造如下列图3.6所示。图中所示的列线通过电阻接+5V,当键盘上没有键闭合时,所有的行和列线断开,列线呈高电平。当键盘上某个键闭合,该键所对应的行和列线短路[4]。例如,当6号键闭合时,行线PA.1与对应的列线PA.6短路,此时PA.6的电平由PA.1电平决定,如果把列线接到微机的输入口,行线接到微机的输出口,那么在微机的控制下,使行线PA.0的输出为低电平,其余三根PA.1、PA.2、PA.3都为高电平然后微机通过输入口读列线的状态,如果PA.4、PA.5、PA.6、PA.7都为高电平,那么PA.0这一行上没有闭合键,如果读出的行线状态不全为高电平,侧为低电平的列线和PA.0的相交的键处于闭合状态;图3.64×4键盘构造图94图94×4矩阵键盘构造3.6电源电路电源电路可分为三大块:变压局部、整流滤波局部、稳压局部。电源电路如图3.7所示。图3.7电源电路1〕电源变压器:变压器作用是将220V的交流电压变换成我们所需的电压9V。然后再送去整流和滤波。2〕整流滤波电路:电路将交流电压变成单相脉动的直流电压;滤波电路用来滤除整流后单向脉动电压中的交流成份,合之成为平滑的直流电压。滤波电路常见的有电容滤波电路、电感滤波电路。一般的整流有全波整流、单相半流整流、桥式整流、及变压整流。3〕稳压电路:这的稳压电路中我使用的是“三端固定输出集成稳压器〞,稳压电路的作用是当输入交流电源电压波动、负载和温度变化时,维持输出直流电压的稳定。集成稳压器、使用方便、性能稳定、更重要的是考虑到它的价格低廉。3.7显示电路的设计前面介绍了单片机系统人机交流输入设备——键盘输入的电路设计,解决了用户进展状态和参数输入的问题。现在将介绍单片机的输出设备——LED显示器,满足用户观察结果的要求。下面先了解LED显示的构造和原理[5]。LED数码管主要用于显示单片机的输出数据和状态。其中七段LED显示器是发光器件最常用的一种数码管,部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组合成字符。按部发光二极管的接线形式可以分为共阴极和共阳极两种。每段发光二极管需要5~10mA的驱动电流才能正常发光,一般需要加限流电阻控制电流的大小。用单片机驱动LED数码管显示有很多方法,按显示方式可以分为静态显示和动态显示两种。所谓静态显示,就是当显示器显示某一个字符时,相应的发光二极管恒定的导通或是截止,例如7段显示器a、b、c、d、e、f导通,g截止,显示0。这种显示方式每一位都需要一个8位输出口控制。静态显示时,较小的电流能得到较高的亮度而且字符不闪烁,可以用8155H的输出口直接驱动。在单片机串行口方式0应用中,也是采用静态显示方法。当显示位数较少时,采用静态显示的方法是适合的。当位数较多时,用静态显示所需要的I/O口太多,一般采用动态显示方法。所谓动态显示就是一位一位的轮流点亮显示器各个位〔扫描〕,对于显示器的每一位,每隔一段时间点亮一次。利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和时间参数,可以实现亮度较高较稳定的显示。假设显示器的位数不大于8位,那么控制显示器公共极电位只需要一个I/O口〔称为扫描口〕,控制显示器的各位显示的字符也需要一个8位口〔称为段数据口〕。本设计中采用4位LED动态显示,8155的C口作为扫描口,经反向驱动器74F04接显示器公共极,B口作为段数据口,接显示器的各个极,如下列图3.8所示[6]。图3.8显示电路的设计常用的LED显示器有7段和“米〞字段之分。这种显示器有共阳极和共阴极两种。共阴极LED的发光二极管的阴极连接在一起,通常此公共阴极接地。当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。同样,共阳极LED显示器的发光二极管的阳极连接在一起,通常此公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。LED数码管的a~g七个发光二极管,加正电压的发光,加零电压的不能发光,不同亮暗的组合就能形成不同的字符,这种组合称为字型码。共阴极和共阳极的字型码是不同的,如下表3.4所示。表3.4LED字型显示代码表显示段符号十六进制代码dpgfedcba共阴极共阳极0001111113FHC0H10000011006HF9H2010110115BHA4H3010011114FHB0H40110011066H99H5011011016DH92H6011111017DH82H70000011107HF8H8011111117FH80H9011011116FH90H3.8上位机实现远程控制的电路设计芯片有一个全双工的串行口,具有四种工作方式,并具有多机通讯的特点,该串行口不仅可以和终端、系统主机等进展通讯,而且也可以作为AT89C系列单片机之间的通讯口。大的串行口和其他标准串行接口芯片一样,输入、输出均为TTL高电平。这种以TTL电平传输数据的方式,抗干扰能力差、传输距离短。为了提高串行通讯的可靠性,增大通讯距离,在实际应用中一般采用标准串行接口,如RS-232C,RS-422A,RS-485等标准串行接口。RS-232C是异步串行通信中应用最广泛的标准总线,它包括了按位串行传输的电气和机械方面的规定。其机械指标规定:RS-232C接口通向外部的连接器〔插针插座〕是一种“D〞型25插头。在微机通讯中,通常被使用的RS-232C接口信号只有九根引脚,如上图中RS-232C所示。在这九个引脚常只使用三个:TXD〔发送数据〕、RXD〔接收数据〕、RTS〔请求发送〕。在电气特性规定中,RS-232C采用负逻辑,即:逻辑“1”表示-3V~-15V;逻辑“0”表示+3V~+15V。因此,RS-232C不能直接与TTL电平直接相连,使用时必须加上适当的转换电路才能不使TTL电路烧毁虽然RS-232C应用广泛,而且一般的PC机也均有RS-232C的标准接口,但由于其信号传输的最大电缆长度为30米,最高传输速率为20KB/S,有效传输距离较短,数据图3.9PC上位机RS-232C至RS-485的转换电路及其与单片机AT89C52的连接速低,因此一般情况下不得不将RS-232C接口转换为RS-485接口进展操作。RS-485为半双工的一种多发送器的电路标准,它允许双导线上一个发生器驱动32个负载设备。负载设备可以是发生器、接收器和收发器。RS-485标准没有规定在何时控制发送器发送或者接收器承受数据。其驱动器输出电平在-1.5以下时为逻辑“1”,在+1.5以上时为逻辑“0”;接收器输入电平在-0.2以下时为逻辑“1”,在+0.2以上时为逻辑“0利用单片机的串行口,可以实现单片机与PC机之间的点对点串行异步通信。图3.9中所示为RS-232C转换为RS-485的接口电路,同样RS-485也不能直接与AT89C52相连,必须进展电平的转换。在本设计中,利用75176将RS-485的电平转换为TTL电平,这样就可以通过RS-485标准协议实现PC机与AT89C52的通信。3.9执行机构的控制3.9.1继电器在本设计中,参数温度检测出来后送单片机并与其中存放的通过键盘〔上位机〕设定好的上、下限相比拟,如果检测出来的参数在设定的上、下限围,系统那么不动作,继续通过传感器检测;如果参数越限,那么单片机发出控制信号,通过继电器线圈的吸合去控制相应的执行机构动作。其电路接线图如上图3.10所示。在此系统中,继电器选用过电流继电器。一般的过电流继电器所需要的驱动电流为安级,几十到几百安不等。而从单片机I/O口出来的电流为mA级,大多数为几百毫安左右。因此在单片机发出控制信号后应再经一个三极管放大去驱动继电器的衔铁吸合。三极管的放大倍数选为100即可,这样就可以实现温度的自动控制调节。3.9.2半导体降温片及电阻加热丝半导体制冷器是根据热电效应技术的特点,采用特殊半导体材料热电堆来制冷,能够将电能直接转换为热能,效率较高。其工作原理如图3.10所示。半导体制冷片由许多N型和P型半导体之颗粒互相排列而成,而NP之间以一般的导体相连接而成一完整线路,通常是铜、铝或其他金属导体,最後由两片瓷片像夹心饼乾一样夹起来,瓷片必须绝缘且导热良好,通上电源之后,冷端的热量被移到热端,导致冷端温度降低,热端温度升高。本控制系统是对冷库进展温度监控,在本系统中采用的是高阻抗小功率加热电阻丝进展温度的小围调节。图3.10半导体降温片工作原理图图3.11执行机构和单片机的连接3.10报警电路的设计采用模拟声音集成芯片KD29561报警。它有多种不同的声音(机枪、警笛、救护车、消防车声),用户可以自主选择自己喜爱的声音。图3.12声光报警电路声光报警电路(如图3.12示)与AT89C52的P1.0口相连接,当温度在设定的温度围时,P1.0为高电平,通过74LS04转换为低电平,声光报警电路不工作,发光二极管光显为绿色,当温度在设定温度围外时,那么为低电平,通过74LS04转换为高电平,声光报警电路中的发光二极管发光为红色、鸣叫,发出声光报警信号。总原理图见附图4系统软件设计系统硬件电路设计完成之后,就要进展软件的设计和调试。如果没有软件来控制硬件电路和外围设备,系统仍然是不完善的。在监控系统中,软件的编制需要符合以下根本要求:1)易理解、易维护。通常是指软件系统容易阅读和理解,容易发现和纠正错误,容易修改和补充。由于检测控制系统的复杂性,设计人员很难在短时间就对整个系统理解无误,应用软件的设计和调试不可能一次就完成,有些问题是在运行中逐步暴露出来的,这就要求编制的软件容易理解和完善。2)实时性。实时性是监测控制系统的普遍要求,既要求系统及时相应外部事件的发生,并及时给出处理结果。3)可测试性。检测控制系统软件的可测试性具有两方面的含义:其一是指比拟容易地制定出测试准那么,并根据这些准那么对软件进展测定;其二是指软件设计完成后,首先在模拟环境下运行,经过静态分析和动态仿真运行,证明准确无误后才可以投入实际运行。4)准确性。准确性对检测控制系统具有重要意义。系统中要进展大量运算,算法的正确性和准确性对控制结果有直接影响,应次在算法的选择、位数选择方面要适合要求。5)可靠性。可靠性是检测控制软件最重要的指标之一,它要求两方面的意义:一试运行参数环境变化时,软件都能可靠运行并给出正确结果,也就是要求软件具有自适应性;二是工业环境极其恶劣,干扰严重,软件必须保证在严重干扰条件下也能可靠运行,这对检测控制系统尤为重要。4.1开发语言和开发环境单片机的编程语言常用的有两种,一种是汇编语言,一种是C语言。本设计中采用汇编语言编程,下面了解其根本概念和主要优点。汇编语言是单片机设计的根底语言。它的特点是使开发人员能够充分的对单片机硬件资源进展管理和操作。所谓汇编语言就是用助记符、符号和数字等来表示指令的程序语言,容易理解和记忆,与机器语言是一一对应的。它是为了弥补机器语言不易记忆,不易查错和不易修改而产生的一种低级语言。所谓程序设计就是用计算机能够识别的语言,把需要解决的问题的步骤描述出来单片机不像其他微型计算机有自己的系统软件,所有的单片机程序均需要用户自己设定程序。到目前为止,虽然已经有绝大局部的单片机都能够在一些高级语言环境下编程,但汇编语言也有许多优点是其他高级语言所不具有的。如:程序构造紧凑、占用的存和CPU资源少;程序简短、执行速度快;与计算机部硬件构造严密、能充分发挥硬件的作用;实时性强、适用于实时检测控制系统[9]。汇编语言的程序设计步骤主要包括:分析问题、确定思路、画流程图、编写程序、程序调试。这些步骤在软件设计中将一一表达。4.2系统软件资源分配和各芯片端口地址在系统软件设计中,充分考虑了与硬件电路有机结合,利用单片机的优异特性实现对温度检测控制。系统采用模块化设计,在主程序下分成假设干彼此独立的功能模块,如温度采集模块,键盘输入模块,显示输出模块,继电器控制执行机构输出模块,串行口通讯模块等[10]。在各模块设计中,首先应考虑系统资源的分配和各芯片端口地址。由硬件接线图可以得到如下地址:1〕8155既可以用来做扩展的I/O口使用,也可以用作RAM使用,在本系统中,8155用作I/O口来使用,各端口地址如下:控制口地址:7E00HPA端口地址:7E01HPB端口地址:7E02HPC端口地址:7E03H2〕通过键盘设定的温度上限放在:46H,下限放在:47H3〕ADC0809通道0为温度转换口,其地址为:7FF8H4〕ADC0809的转换结果存放在:40H。转换的数字量再经过处理得到温度值所对应的BCD码,最终结果存放在:42H。再将个位和十位依次别离,放要显示的结果到存单元。温度十位放在:30H,个位存放在:31H4.3主程序模块系统的主程序系统初始化,中断优先级设定以及判断调用各模块程序的先后顺序,即要实现个模块程序之间的。在本设计中,温度上、下限的设定值可以通过键盘设置,也可以通过PC机设置,从而实现对冷库的远程控制[11]。因此,在系统初始化完成后,根据条件选择所需要的过程即可。如图4.1所示。PC机远程控制PC机远程控制调执行机构控制程序调显示子程序调温度转换子程序调中断子程序调A/D转换子程序需重新设定吗?调温度设定子程序调键盘输入子程序写入初始化程序开场NY调报警子程序图4.1主程序框图4.4初始化子程序模块程序的初始化模块在任何硬件系统中都是必不可少的一局部。程序初始化是对系统中所使用到的模块进展初始设置,其目的就是为了让硬件模块符合在控制软件中的使用要求。对硬件所使用到的部资源和外部资源,必须一一进展初始化设置,同时还需要对单片机的一些外围电路进展初始化设置。在此系统中,用到了两次中断。一次是在A/D转换完毕后采用了一次中断,用来读取转换结果和启动下一次转换,还有就是PC上位机远程控制用到了另一个中断[12]。8155的初始化的流程框图如下4.2所示。开场开场完毕将控制字送8155的控口写控制字并送累加器A完毕将控制字送8155的控口写控制字并送累加器A图4.28155的初始化4.5键盘输入子程序模块在本设计中,键盘采用扫描法得到键码值,与前面相对应的键盘键码值如下:〔从左向右,从上向下〕:01111110101111101101111011101110011111011011110111011101111011010111101110111011110110111110101101110111101101111101011111100111另外,在键盘程序中编写了延时去抖子程序,因此硬件中就不用再考虑,简化了硬件图。N开场N开场键盘初始化抗干扰子程序有按键码?去抖动调用被按键的功能子程序返回Y图4.3键盘子程序流程框图4.6显示电路子程序模块显示选用2位动态显示,2位显示温度,均不用显示小数点。由于位信号开场为1110,即数码管对应的位信号是低电平时表示该位选通并显示出来。因此,在依次显示4位数码管时,只需要将R2中的位选通信号依次左移,直到R2左移为0000,说明此时4位数码管均已显示,然后返回主程序即可。如图4.4所示。开场开场取出要显示值的BCD码给显示缓冲区地址赋值位选通信号放入R2中查表得出被显示码对应的代码段送出要显示的代码段和位信号缓冲区地址加1左移R2一位并调用延时是否显示完毕?返回NY图4.4显示子程序流程框图4.7温度转换为显示码子程序模块从温度传感器AD590采集过来的实际温度值经过ADC0809转换后[13],只是得到了与此温度相对应的数字量,因此,根据实际温度与数字量之间的线性关系可以得到实际温度值。然后先需要将此温度转换为BCD码存入单片机,再将此码别离得到要显示温度的十位和个位放入指定的存单元即可,如图4.5所示。开场开场读40H单元送到A用A除以5得到实际温度送42H42H中的内容除以10的商A为温度的十位,余数B为个位将A送30H,B送31H返回图4.5温度转换为显示码子程序流程框图4.8继电器控制执行机构输出子程序模块温度参数采集过来后经过一系列转换后存入单片机,与由键盘设定的温度上、下限比拟。单片机可以根据比拟的结果对电流继电器线圈发出相应的信号〔从单片机出来的电流很小,必须经过三极管放大才能取驱动电流继电器线圈〕,并通过电流继电器衔铁的吸合去控制相应的电流继电器进展动作。衔铁是否吸合可以通过单片机I/O口的上下电平去控制,然后通过继电器去控制诸如降温泵、加热器等执行机构去操作,以此来调节培养容器温度的状态,使其控制在设定的围之。由于培养容器温度变化不是特别快,系统要求的精度也不是特别高,可以不用控制算法去准确计算,只用上下电平来控制即可[14]。其流程框图如图4.6所示。NN开场有越限吗?执行机构越限处理返回响应的继电器衔铁吸合Y图4.6继电器控制执行机构输出子程序流程框图4.9PC上位机串行通讯子程序模块在实际应用的PC机系统中,经常用到异步通讯适配器的核心芯片IN8250。其可编程能力非常强,它的可编程能力主要表达在:1〕传输速率可以在50~9600波特围编程选择。传输的数据格式可以选择5、6、7或8位字符,奇校验、偶校验或无校验位,1、1.5、或2位停顿位。2〕具有控制MODEM功能和完整的状态报告功能。3〕具有线路隔离、故障模拟等部诊断功能。4〕具有独立的中断优先控制能力。IN8250主要是和调制解调器相配合实现远距离通讯。利用8250进展通讯,首先要对其初始化,即设定波特率、通讯采用的数据格式、是否使用中断、是否自测试操作等。在此系统中,PC机键盘输入的字符发送给单片机,单片机接收到PC机发来的数据后,回送同一数据给PC机,并在其屏幕上显示出来。双方约定:波特率:2400波特信息格式:8个数据位,一个停顿位传送方式:PC机采用查询方式接收数据,单片机采用中断方式接收信息[15]。下面分别编写这两局部的软件流程。4.9.1IBM-PC机通讯软件通讯软件采用8088汇编语言编写,程序流程图如下列图4.7所示。8250初始化8250初始化在屏幕上显示字符清空承受存放器在屏幕上显示读承受存放器内容开场有键输入吗?N取键盘字符发送存放器为空向单片机发送字符收到答复?NNYYY正确?NY图4.7IBM-PC机通讯程序框图4.9.2AT89C系列单片机通讯软件AT89C系列单片机通过中断方式接收IBM-PC机发送过来的字符,并回送给主机[16]。程序约定如下:波特率设置:定时器T1工作在方式2,计数常熟为0F3H,波特率为2400波特。串行口的初始化:方式1,允许接收。中断效劳程序入口:0023H。程序流程框图如下列图4.8所示。只要屏幕上所显示的字符与所键入的字符一样,即可说明PC机与单片机之间的通讯是正常的。这局部只是替代了原主程序中的键盘输入子程序,然后就可以通过接下来的主程序对系统完成调节,实现远程控制[17]。开场开场定时器T1初始化开中断启动定时器串行口初始化返回中断效劳子程序关中断开中断保护现场将数据送到PC机承受PC机发来的数据保护现场清空承受中断标志R1返回图4.8AT89系列单片机通讯软件框图5.0报警电路子程序模块越限报警是通过比拟当前读数与设定限度值来实现的。如当前读数在温度设定值围报警器不动作;如当前读数在温度设定值外,那么报警器动作。如下列图4.9所示子程序入口子程序入口设置模式NYYYYN设定限度X围值读取温度值越限报警?报警子程序出口Y图4.9报警电路子程序方框图结论本次设计采用单片机进展控制,由温度检测电路、显示电路、A/D转换电路、执行机构、控制电路、报警电路和单片机微处理器等组成。用单片机作为控制器,可对执行机构发出指令,实现温度参数调节,具有上下位机直接设置温度围,温度实时显示等功能,能够较好地对冷库进展实时的控制。经过几年学习的积累,在已经掌握相关专业知识及其它各方面知识的情况下,我认真的完成了我的毕业设计。本课题的重点、难点是:1〕初次接触温度传感器,要对传感器的原理、构造、应用等各方面从零学起;2〕考虑从非电量信号到电量信号的电路实现原理以及与单片机的接口问题;3〕显示电路的设计思路;4〕在绘制电路图时考虑各个模块的连接和合理布局;5〕讲究调整电路的实现过程以及怎么样通过单片机来间接的控制;6〕通信模块的设计和原理。通过做本课题,我了解并掌握了传感器的根本理论知识,更深入的掌握单片机的开发应用和汇编编程控制,为以后从事单片机软硬件产品的设计开发、软件开发打下了良好的根底。但由于我的能力有限,设计中还有许多问题没有得到解决,例如怎样提高温度的检测精度和怎样实现节能,还有仿真也没成功等等,我仍需要继续学习相关专业知识以待提高,希望各位教师给予指导,我不胜感谢,从而使我在单片机的专业知识和开发方面的能力有所增强。致本论文是在于静教师的精心指导和亲切关心下完成的。从论文的选题、研究容方案确实定到整个工作的进展以及最后论文的整个撰写过程,于教师都亲临指导,提出意见并指正。在论文完成之时,特向于教师表示衷心的感和敬意。大学几年期间,我的各位任课教师以他们渊博的知识,广阔的视野和具有前瞻性的敏锐的观察力把我引入电气领域——这一具有广阔开展前景、对科学技术开展具有重大意义的科学领域,并帮助我不断提高独立获取知识、分析问题和解决问题的能力,培养我独立从事科学研究的精神。在此,向他们表示深深的敬意。在设计过程中,还得到了其他许多位教师的指点和无私地帮助,还有同学的大力支持,对他们的关心和热心帮助,在此表示深深的意。同时,在我大学的学习和生活中,得到了同班很多同学的热心关心和无私帮助,也向他们表示深深的感!参加本论文评审和辩论的所有教师!参考文献1何立民.单片机应用系统设计系统配置与接口技术.:航空航天大学,19902许志详.D590集成温度传感器的应用.利水文自动化,2000〔1〕:58~593何希才,薛勇毅.传感器及其应用实例.:机械工业,20044徐爱钧.单片机高级语言C51应用程序设计.:电子工业,20025自美.电子线路设计(第二版).:华中科技大学,20006江国强.现代数字逻辑电路.:电子工业,20027樊昌信.通信原理(第五版).:国防工业,20018勇.PROTEL99S电路设计技术入门与应用(第一版).:电子工业,20029晓荃.单片机原理与应用.:电子工业,200010和平.单片机原理及应用.:大学,200211宏建,蒙建波.自动检测技术与装置.:化学工业,200412胜利.现代高频开关电源实用技术.:电子工业,200113GeorgeS,Srzednicki,RuiliHou,RobertHDriscollDevelopmentofacontrolsystemforin-storedryingofpaddyinNortheastChinaJournalofFoodEngineering77〔2006〕368~37714N.DeBelie,M.Richardson,C.R.Braam,B.Svennerstedt,J.J.Lenehan,B.SonckDurabilityofBuildingMaterialsandponentsintheAgriculturalEnvironmentJ.agric.EngngRes75〔2000〕225~24115SimchaFinkelman,ShlomoNavarro,MiriamRindner,RefaelDiasEffectoflowpressureonthesurvivalofTrogodermagranariumEverts,Lasiodermaserricorne(F.)andOryzaephilussurinamensis(L.)at30℃16喜源,谭晓军,曲春波.单片机应用设计.工业大学,200317永生.电力半导体电路原理.:机械工业,1995附录程序清单1〕IBM-PC机通讯程序清单:STACKSEGMENTPARASTACK‘STACK’;定义堆栈段DB256DUP(0);堆栈段完毕STACKENDSCODESEGMENTPARAPUBLIC‘CODE’ASSUMECS:CODE,SS:STACK;定义代码段STARTPROCFAR;主程序局部PUSHDBMOVAX,0PUSHAXCLIINITOUTMOVDX,3FBH;通讯线控制存放器第7位置以便设置波特率MOVAL,80HOUTDX,ALMOVDX,3F8H;设置除数锁存器低位MOVAL,30HOUTDX,ALMOVDX,3F9H;设置除数锁存器高位MOVAL,0OUTDX,ALMOVDX,3FBH;设置数据格式,8个数据位,一个停顿位,无校验MOVAL,03HOUTDX,ALMOVDX,3FCH;设置MODEM控制信号MOVAL,03HOUTDX,ALMOVDX,3F9H;制止所有8250中断〔四种类型〕MOVAL,0OUTDX,ALFOREVER:MOVDX,3FDH;发送保持存放器不空,那么循环等待INAL,DXTESTAL,20HJZFOREVERWAIT:MOVAL,1;检查键盘缓冲区,无符号那么循环等待INT16HJZWAITMOVAH,0;假设有,取键盘字符INT16HSENDCHAR:MOVDX,3F8H;发送键入的字符OUTDX,ALRECEIVE:MOVDX,3FDH;检查接收数据是否准备好,未准备好的继续查询INAL,DXTESTAL,01HJZRECEIVETESTAL,1AH;判断接收的数据是否出错,有错那么转错误处理JNZEFFORMOVDX,3F8H;从接收存放器中读取数据INAL,DXANDAL,7FH;去掉无效位,得到数据PUSHAXMOVBX,0;显示接收到的字符MOVAH,14INT10HPOPAXCMPAL,0DH;得到的数据假设不是回车符那么返回JNZFOREVERMOVAL,0AH;是回车符那么回车换行INT10HJMPFOREVERERROR:MOVDX,3F8H;读接收存放器,去除错误字符INAL,DXMOVAL,‘?’;功能调用,显示‘?’号MOVBX,0MOVAH,14IN10HJMPFOREVER;继续循环STARTEDNSCODEENDSENDSTART2)MCS-51单片机主程序清单ORG0000HAJMPSTART;上电复位,开场初始化程序ORG0003HLJMPINT0;外部中断0入口地址ORG0013HLJMPINT1;外部中断1入口地址ORG0023HLJMPSERVE;串行口中断效劳程序入口START:MOVTMOD,#20H;定时器T1初始化MOVTH1,#0F3HMOVTL1,#0F3HMOVSCON,#50H;串行口初始化MOVPCON,#80H;SMOD=1SETBTR1;启动定时器T1SETBEA;开中断SETBEX0;外部中断0允许中断SETBES;允许串行口中断MOVDPTR,#7E00H;8155H控制口地址MOVA,#3EH;控制字送入AMOVXDPTR,A;控制字送入控制口*******************************键盘子程序**********************************KEY:MOVA,#0F0H;键盘的初始化MOVDPTR,#7E01HMOVDPTR,AKEYON:MOVDPTR,#7E01H;抗干扰子程序MOVA,#0F0HANLA,#0F0HCJNEA,#0F0H,HAVEAJMPKEYONHAVE:MOVA,#0FEH;扫描键盘,扫描码置初值NEXT:MOVB,A;扫描码暂存于BMOVPA,A;输出扫描码READ:MOVA,PA;读键盘MOVA,#0F0H;判断PA.4-PA.7是否全为1CJNEA,#0F0H,YES;不全为1,那么说明有键按下MOVA,B;没有就准备查下一行RLA;置下一行扫描码CJNEA,#0EFH,NEXT;未扫描到最后一行那么一直循环YES:ACALLDELAY;去抖动L4:CJNEA,#0EEH,AERDMOVA,PA;再读键盘ANLA,#0F0H;保存列码MOVR2,A;暂存列码MOVA,BANLA,#0FH;取行扫描码ORLA,R2;合并键码DELAY:MOVR5,#14H;1DL1:MOVR4,#19H;1DL2:DJNZR4,DL2;2×25DJNZR5,DL1;2RET;延时计算:1+〔1+2×25+2〕×20+2≈1msL1:CJNEA,#7EH,L2AJMPK1L2:CJNEA,#0BEH,L3AJMPK2L3:CJNEA,#0DEH,L4AJMPK3L4:CJNEA,#EEH,L5AJMPK4L5:CJNEA,#7DH,L6AJMPK5L6:CJNEA,#0BDH,L7AJMPK6L7:CJNEA,#0DDH,L8AJMPK7L8:CJNEA,#0EDH,L9AJMPK8L9:CJNEA,#7BH,L10AJMPK9L10:CJNEA,#0BBH,L11AJMPK10L11:CJNEA,#0DBH,L12AJMPK11L12:CJNEA,#0EBH,L13AJMPK12L13:CJNEA,#77H,L14AJMPK13L14:CJNEA,#0B7H,L15AJMPK14L15:CJNEA,#0D7H,L16AJMPK15L16:CJNEA,#0E7H,KEYAJMPK16K1:MOVA,#01HMOVR0,A;键值为1K2:MOVA,#02HMOVR0,A;键值为2K3:MOVA,#03HMOVR0,A;键值为3K4:MOVA,#04H

温馨提示

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

最新文档

评论

0/150

提交评论