首页 电气课程设计

电气课程设计

举报
开通vip

电气课程设计电气课程设计TOC\o"1-3"\h\u1设计任务书12基于单片机消毒柜控制电路设计2系统的组成及工作原理2系统设计要求[2]2系统组成框图2系统工作原理[3]2硬件电路设计3方案论证3方案确定5单片机最小系统设计5温度转换与放大电路6数模转换电路11温度控制电路12显示模块13系统软件设计15系统软件设计原理[7]15中断服务程序设计[8]16系统子程序设计17仿真结果与分析22参考文献:26附录3:271设计任务书1.设计任务设计一台消毒柜控制系统2.设计要求(1)显示消毒柜温度、保持时间;(2)可以键盘设定消...

电气课程设计
电气课程 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 TOC\o"1-3"\h\u1设计任务书12基于单片机消毒柜控制电路设计2系统的组成及工作原理2系统设计要求[2]2系统组成框图2系统工作原理[3]2硬件电路设计3 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 论证3方案确定5单片机最小系统设计5温度转换与放大电路6数模转换电路11温度控制电路12显示模块13系统软件设计15系统软件设计原理[7]15中断服务程序设计[8]16系统子程序设计17仿真结果与分析22参考文献:26附录3:271设计任务书1.设计任务设计一台消毒柜控制系统2.设计要求(1)显示消毒柜温度、保持时间;(2)可以键盘设定消毒柜温度、定时时间;(3)可以实现实时中断功能;(4)消毒后自动关机;(5)测温误差:<℃:(6)定时误差:f<20s/月。2基于单片机消毒柜控制电路设计系统的组成及工作原理系统设计要求[2]A.设置三个功能键:消毒、保温、停止;B.按下消毒键,加热装置进行加热,当温度达到125度时,停止加热,其加热的时间可通过键盘设定;C.按下保温键,在50度以下接通加热器,达到70度关闭,一直持续工作,其加热的时间可通过键盘设定;D.按下停止键,就停止工作;E.采用的是PT-100铂热电阻测温,A/D转换采用的是ADC0809;F.采用的是7279芯片管理键盘显示。系统组成框图图2-1系统组成框图系统工作原理[3]本次设计采用铂热电阻PT-100温度传感器实现从温度到电阻值的转换,PT-100的温度每上升1度,其阻值就增大欧姆,电桥将PT-100电阻值的变化转换成电压变化、再经集成运放TL084放大成0-5V的电压(值不会超过5Ⅴ),然后经ADC0809转换成8位数字的信号送89C51单片机系统,89C51单片机对所采集的数据经滤波、变换等处理后送入7279显示模块中进行显示,从而完成对温度的采集。89C51单片机再对键盘的扫描结果和即时温度值的处理,实现对温度的控制,系统设计了加热,保温,停止三键,按下加热功能键时,单片机控制加热器,开始进行加热,当温度到达125度时停止加热,按下保温键时,温度小于50度,加热器开始加热,温度超过70度,停止加热,当按下停止键时,一切程序停止运作。在此基础上,设置了一个校时键,当按下校时键时,无论加热器加热与否,要到达设定的时间才停止工作。如此达到实验要求。完成实验。硬件电路 设计方案 关于薪酬设计方案通用技术作品设计方案停车场设计方案多媒体教室设计方案农贸市场设计方案 论证方案一:本方案采用的是新型的温度传感器LM35构成前端温度传感电路,LM35输出可以从0度开始,该器件采用的是塑料封装TO992,工作的电压4~30V。LM35前端电路直接与ADC0809温度采样电路相连接。系统采用的是以51单片机为核心的微电脑控制,主要通过单片机启动ADC0809电路,对前端电路直接进行采样,得到采样的数字值由单片机将其经数学变换处理,转换成真正的温度值。键盘控制则采用的是以HD7279为核心的键盘显示电路,由它来控制消毒、保温、停止等功能,并设置校时键,随时设置当前工作状态和需要保持的时间。7279键盘显示电路带有8个数码管,用来显示当前系统工作情况,如倒计时时间,实时温度等。加热器与单片机用继电器来隔开,继电器用来智能控制消毒柜的加热。本方案的特点是:前端温度电路直接采用LM35温度传感器,具有转换速度快,灵敏度高的特点,但是测量精度不够,抗干扰性能差的,受工作环境因素的影响较大。方案一电路原理图如下所示:图2-2方案一电路原理图方案二:在此次实验中也可以采用铂热电阻温度传感器PT-100,由含铂热电阻PT-100为桥臂的电桥,过程中其温度的变化将引起PT-100电阻值的改变,最终转变成电压的变化,但电桥输出的电压最多只能有几十毫伏,所以必须经ICL7650放大后才能输出0~5V的电压,达到实验所要求的电压,再经ADC0809转换成8位数字信号送至单片机。单片机开发系统对所采集的数据经过滤波、变换等处理后送到7279进行显示,以实现对温度的测量。测量出即时温度值之后要进行的就是根据温度的值和7279对键盘的扫描结果进行相应的处理,比如加热、保温、停止等,这些就需要靠软件程序来辅助完成,还要通过加热装置来进行相应的操作,从而完成此次设计的要求。加热器是由单片机控制, 安全管理 企业安全管理考核细则加油站安全管理机构环境和安全管理程序安全管理考核细则外来器械及植入物管理 加热器的启动与停止,加热装置将单片机核心系统与加热器隔离,防止加热器的高温对系统造成损伤,起到了以小电流控制大电流而安全控制的作用。方案确定由于设计要求最高的温度需要达到了125℃,而LM35系列传感器达不到要求的这个温度,而且价格也高。所以不采用这一方案。而在实验中已经采用过方案二,并且成功的测量出了温度值,因此对用PT-100测温的性能及参数都比较了解,做起来也是得心应手,对整个电路如何调试,分析,工作原理都比较熟悉,就算是出现了什么问题也能很好的得到解决,所以我最终决定采用方案二。单片机最小系统设计主控机系统采用了Atmel公司的89C51单片机,它包含有128字节数据存储器,内置4K的电可擦除FLASHROM,可以进行重复的编程,大小可以满足主控机软件系统设计,故不必再扩展程序存储器。复位电路和晶振电路是89C51工作所需的最简的外围电路。单片机最小系统电路图如图2-3所示。89C51的复位端是一个史密特触发输入,高电平有效,而系统中的时钟接口和CAN总线接口的复位信号都是低电平有效。在复位电路中,按一下复位开关就使在RS端出现一段时间的高电平,经过74LS14的一次反相整形,提供给单片机复位端。再经过一次反相整形,通过I/ORST端提供给外部接口电路。外接12M晶振和两个20P电容组成系统的内部时钟电路。图2-3单片机最小系统电路图温度转换与放大电路温度转换与放大电路模块如图2-4所示,它主要由电桥电路和放大电路构成。本电路主要采用的是以PT-100为核心的电桥电路,将当前温度的变化转换成电阻的变化,从而造成电桥的不平衡,使得电桥输出在一定范围的微小且精确电压,再由放大电路对这个微小电压进行放大,放大之后才送到ADC0809的IN0口进行采样转换。[4]图2-4温度转换与放大电路电桥电路如图2-5中所示,电桥电路中采用的是PT-100铂热电阻作为一条桥臂,构成温度传感器,PT-100铂热电阻是利用阻值随温度而变化的特性来测量温度,PT-100的温度每上升1度,其阻值相应增大欧姆,且在0℃~500℃范围内的电阻温度曲线的线性度都比较好。消毒柜要求的温度范围是0-130℃之间,在这范围之内PT-100的线性度是最好的,它有很好的稳定性和测量精度,测温范围比较宽。[5]图2-5电桥电路铂热电阻与温度之间的关系近似线性关系如下:在-200℃~0℃范围,温度为t℃时的阻值Rt的表达式为:(2-1)在温度为0℃~650℃范围内:(2-2)式中的分度常数为:A=×(1/℃) ,B=-×(1/℃),C=-422×(1/℃)是在0℃时阻值为100Ω。下面列出铂热电阻在0℃~100℃时的电阻值:表2-6铂热电阻与温度之间的关系表01234567890℃102030405060708090100电桥计算:   (2-3)设    (为100Ω)  (2-4)当T=0℃时,  即,电桥处于平衡(2-5)T>0℃时 ∵<<∴(2-6)取T=100℃时,=Ω,=10K,=100Ω,VDD=12V(2-7)所以,当温度T变化在0~100℃时,△U的变化范围是0~。测量放大电路三运放结构的测量放大器由两级组成,两个对称的同相放大器构成第一级,第二级为差动放大器—减法器,如图2-7所示。图2-7测量放大电路设加在运放A1同相端的输入电压为V1,加在运放A2同相端的输入电压为V2,若A1、A2、A3都是理想运放,则V1=V4,V2=V5(2-8)(2-9)(2-10)所以,测量放大器第一级的闭环放大倍数为:(2-11)整个放大器的输出电压为:(2-12)为了提高电路的抗共模干扰能力和抑制漂移的影响,应根据上下对称的原则选择电阻,若取R1=R2,R4=R6,R5=R7,则输出电压为:(2-13)第二级的闭环放大倍数:(2-14)整个放大器的闭环放大倍数为:(2-15)若取Rk=R5=R6=R7,则Vo=V6-V3,Af2=-1(2-16)由上可看出,改变电阻RG的大小,可方便的调节放大器的增益,在集成化的测量放大器中,RG是外接电阻,用户可根据整机的增益要求来选择RG的大小。此外,由上述推导可见,输出电压Vo与输入电压的差值是正比,所以在共模电压作用下,输出电压Vo为0,这是因共模电压作用在RG的两端不会产生电位差,故RG上不存在共模分量对应的电流,也就不会它的输出,即使共模输入电压发生了变化,也不会引起输出。因此,测量放大器具有比较高的共模抑制能力,通常选取R1=R2,其目的是为了抵消A1和A2本身共模抑制比不等造成的误差和克服失调参数及其漂移的影响。然而,对高流共模电压,一般接法的测量放大器不能完全抑制,在实际应用中,常采用驱动屏蔽技术来克服高流共模电压的影响。数模转换电路数模转换电路是以ADC0809为核心的A/D转换电路,如图2-8所示。图2-8数模转换电路在使用ADC0809进行模数转换时,应注意以下问题:A.ADC0809的零点不用调整。满刻度调整时,先给输入端加入电压,使满刻度所对应的电压值是:(2-17)式中VIN+表示实际输入电压值;Vmax表示输入电压的最大值;Vmin表示输入电压的最小值;当输入电压与VIN+值相当时,调整VREF2端电压值使输出码为FEH或者FH。B.参考电压的调节。在使用A/D转换器时,为保证其转换精度,要求输入电压满量程使用。如输入电压动态范围较小,则可调节参考电压,以保证小信号输入时ADC0809芯片8位的转换精度。C.接地。模数、数模转换电路中要特别注意到地线的正确连接,否则干扰很严重,以至影响转换结果的准确性。A/D、D/A及取样保持芯片上都提供了独立的模拟地(AGND)和数字地(DGND)的引脚。在线路设计中,必须将所有的器件的模拟地和数字地分别连接,然后将模拟地与数字地仅在一点上相连。其中:Vin(+)为模拟电压输入端,A-GND为模拟地,作为输入模拟电压和基准电压基地端的接地参考点。VREF为基准电压输入端,接MC1403提供稳定的参考电压。WR和RD接89C51的读写端。ADC0804在数据采集系统中的工作过程:采集数据时,首先微处理器执行一条传送指令,在该指令执行过程中,微处理器在控制总线的同时产生CS、WR低电平信号,启动A/D转换器工作,ADC0804经100us后将输入模拟信号转换为数字信号存于输出锁存器,并在等待转换结束后,通知微处理器可来取数。微处理器立即执行输入指令,以产生CS、RD低电平信号到ADC0804相应引脚,将数据取出并存入存储器中。整个数据采集过程中,由微处理器有序的执行若干指令完成。本次设计在AD采样部分电路设计没有选用中断方式,因为在加热装置选取的部分,选用的为小功率加热器,在一定时间内温度的变化不是很明显。在本系统实时要求不是很高情况下,采用延时方式对系统执行速度影响不是很大。温度控制电路图2-9温度控制电路本设计采用的是单片机利用PWM波来控制加热的温控电路,其电路图如图2-9所示,由两级三极管放大电路组成,第一级放大采用9014三极管,其放大倍数可达1000以上,而第二级采用大功率的达林顿管TIP122,当脚输出低电平时,三极管导通,控制加热器进行加热[6]。TIP122是大功率三极管,当Vce=3V,Ic=时,其放大倍数为Hfe=1000。其等效电路见图2-10。图2-10TIP122等效电路显示模块图2-11HD7279的管脚图HD7279是一种管理键盘和LED显示器的专用智能控制芯片。HD7279的管脚图如图2-11。DIG0~DIG7和SA~SG是64键盘的列线和行线端口,完成对键盘的监视,译码和键值的识别。在8×8阵列中每个键的键码是用十六进制表示的,可用读键盘数据指令读出,其范围是00H~3FH。HD7279与微处理器仅需4条接口线,其中CS为片选信号(低电平有效)。当微处理器访问HD7279(读键号或写指令)时,应将片选端置为低电平。DATA为串行数据端,当向HD7279发送数据时,DATA为输入端;当HD7279输出键盘代码时,DATA为输出端。CLK为数据串行传送的同步时钟输入端,时钟的上升沿表示数据有效。KEY为按键信号输出端,在无键按下时为高电平;而有键按下时此引脚变为低电平并且一直保持到键释放为止。RC引脚用于连接HD7279的外接振荡元件,其典型值R=Ω,C=15pF。RESET为复位端。该端口由低电平变成高电平并保持25ms即复位结束。通常,该端口接+5V即可。DIG0~DIG7分别为8个LED管的位驱动输出端。SA~SG分别为LED数码管的A段~G段的输出端。DP为小数点的驱动输出端。HD7279片内具有驱动电路,它可以直接驱动1英寸及以下的LED数码管,使外围电路变得简单可靠。A-G和DP为显示数据,分别对应7段LED数码管的各段。当对应的数据位为‘1’时,该段点亮,为‘0’时则不亮。此指令灵活,通过造字形表,可以显示用户所需的字符。字形码表如表2-12所示:表2-127279字形表显示字符显示码显示字符显示码07EH87FH130H97BH26DHg5FH379Ho1DH433Hd3DH55BHp67H65FHL16H770H熄灭码00HHD7279键盘显示电路如图附录2。系统软件设计系统软件设计原理[7]本程序中使用T0定时器启动A/D转换0809,用T0产生100ms的定时,晶振为6MHz,记数脉冲周期T=2us,设定时初值为X,(2^16-X)*2us=100ms,X=3CB0H,所以TH0=3CH,TL0=0B0H。用INT1中断处理,当0809转换完成后,从P0口读数、再转换成十进制数、送显缓区、再根据键盘扫描的结果对温度值进行比较判断,当按下的键是加热功能键时,系统要控制加热器,开始加热,当温度到达125度时停止加热,当按下保温键时,当温度低于50度时,加热器开始加热,当温度高于70度,停止加热,当按下停止键时;一切动作停止。通过在主程序里面设立标志,中断程序查询标志的方法实现温度与按键的统一和“同步”,实时的控制加热器的工作,以达到人们所要求达到的效果。主程序主要完成初始化、显示处理、送7279显示、键盘扫描以及键处理等功能,其中初始化又涉及内存单元,显缓区,堆栈,及各寄存器的初始化,其流程框图见图2-13。图2-13主程序框图中断服务程序设计[8]中断服务程序先保护现场后,再完成温度的采集与滤波,和加热器的控制,定时时间的控制,定时时间采用倒计时方式,使得定时时间易于控制。中断服务程序流程框图如图2-14。图2-14中断服务程序流程框图系统子程序设计本软件设计中,系统子程序的设计是整个程序设计的重中之重,子程序以模块化的方式实现各个独立功能,再通过主程序来调用功能子程序,使整个程序实现完整的功能。温度采样及滤波子程序温度采样及滤波子程序是先启动ADC0809并延时后对0通道采样,采样十次后,将采样值存放于以50H为首址的内存单元中。采样完成后,调用滤波子程序,先去最大值,去最小值,再求平均值,从而得到比较准确的采样值。其流程框图如图2-15所示。图2-15采样滤波子程序流程框图在滤波程序中,利用冒泡法,逐个比较找出最大值与最小值并去掉,将各个值移位到50H~57H中,再将50H~57H的8个采样值相加,求平均值,保存到5AH中,至此就得到了比较准确,消除了干扰后的稳定的温度采样值。显示处理子程序[9]显示处理主要完成将要显示的字符查表得到其字形码后送到7279显示模块显示出来。7279采用串行接口,每发送一位都要延时,且要对其初始化后才可能正确地显示。显示处理子程序流程框图如图2-16所示。图2-16显示处理子程序流程框图消毒子程序主要是将消毒标志置为1,将保温标志置为0,再点亮消毒指示灯,判断计时时间到达否,到达则关加热器,没到则开加热器。消毒子程序流程框图如图2-17所示。图2-17消毒子程序流程框图保温子程序主要用于当用户按下保温键时对系统进行保温。先点亮保温指示灯,置保温标志为1,再判断倒计时是否到0,若没到则再检测当前系统的温度是否在50-70度之间,大于70度时关加热器,小于50度时开加热器。若倒计时归零时,直接停止保温,其流程框图如图2-18所示。图2-18保温子程序流程框图停止子程序主要在用户按下停止键以后被调用,停止子程序运行后将消毒、保温标志置零,将消毒、保温指示灯熄灭,关闭加热器,再让键盘重新显示PGOOD。其流程图如图2-19所示。图2-19停止子程序流程框图键盘处理主要是不断的扫描7279模块中的键盘,若有键按下时,则根据得到的键值查表求出其键号,将键号存放于寄存器ACC中供主程序处理。其流程图如图2-20所示。图2-20键盘处理子程序流程图仿真结果与分析HD7279键盘显示电路电路原理图经过详细的硬件调试和软件调试之后,系统工作正常,7279模块8位数码管前三位实时显示当前温度在000-150范围内,第四位显示“-”,后四位倒计时显示分和秒。按下“消毒键”时,系统接通加热器,点亮加热指示灯,当温度到达到125度时,停止加热;按下“保温键”,当温度低于50度时,系统启动加热,当温度高于70度时,系统停止加热;按下“停止键”时,系统回到初始状态。若按下“校时键”,输入2位数字后,再按“确认键”,则系统启动定时,倒计时显示当前时间,当时间走到时,系统复位,停止消毒/保温。3参考文献:[1]张友德:单片微型机原理、应用与实验,上海复旦大学出版社,,P7-P21[2]陈黎娟、聂鹏程:单片微型计算机实验教程,南昌航空大学,,P17-P32[3]沈美明、温冬婵:IMBPC汇编语言程序设计,清华大学出版社,,P12-P22[4]吴金戍、郭庭吉:89C51单片机实践与应用,清华大学出版社,,P132-P143[5]王福瑞:单片微机测控系统设计大全,北京航空大学出版社,,P7-P15[6]何立民:单片机应用技术选编,北京航空航天大学出版社,2001,P18-P43[7]邬宽明:单片机外围器件实用 手册 华为质量管理手册 下载焊接手册下载团建手册下载团建手册下载ld手册下载 ,北京航空航天大学出版社,1998,P56-P76[8]鲍健等:用单片机直接驱动液晶显示器,量子电子学报,,P32-P42[9]王春林:中国电子报第四版.中国电子报社,,P43-P54附录3:源程序ORG0000H;主程序入口地址LJMPMAIN_1;跳入主程序ORG000BH;中断入口地址LJMPINT_T0;跳入中断子程序MAIN_1:MOVSP,#67H;堆栈段地址MOVR7,#50HMOVR0,#20HM_0:CLRAMOV@R0,AINCR0DJNZR7,M_0;清工作单元ACALLCHUSHI;调用初始化子程序MOVTMOD,#01H;定时器T0MOVTL0,#0B0HMOVTH0,#3CH;定时器赋初值MOVIE,#82H;开中断CLR;指示灯初始化CLRTR0;不启动定时MAIN_2:ACALLDIR_0;调显示处理子程序LCALLDIR;调显示程序LCALLHOT_NOT;调温度控制子程序LCALLA_D;调采样子程序LCALLKEY;调键盘扫描程序CJNEA,#0FFH,M_1;判断是否有键按下,若有则跳M_1SJMPMAIN_2;跳转到MAIN_2M_1:CJNEA,#0AH,M_2;判断键号是否与0A相等,不相则转M_2M_2:JNCM_3;键号大于0A转M_3ACALLSKEY;小于则调用数键处理程序SJMPMAIN_2;跳转到MAIN_2M_3:CJNEA,#0AH,M_4;判断键号是否与0A相等,不等则转M_4 ACALLMKEY_1;调用定时键子程序SJMPMAIN_2;跳转至MAIN_2M_4:CJNEA,#0BH,M_5;判断键号是否与0B相等,不等则转M_5ACALLMKEY_2;相等则调用确定键子程序SJMPMAIN_2;跳转到MAIN_2M_5:CJNEA,#0CH,M_6;判断键号是否与0C相等,不等则转M_6ACALLXIAODU;若相等则跳转到消毒子程序SJMPMAIN_2;跳转到MAIN_2M_6:CJNEA,#0DH,M_7;判断键号是否与0D相等,不等则跳转到M_7ACALLBAOWEN;若相等则调用保温子程序SJMPMAIN_2跳转到MAIN_2M_7:CJNEA,#0EH,M_8;判断键号是否与0E相等,不等则转到M_8ACALLSTOP;调用停止子程序M_8:SJMPMAIN_2;跳转到MAIN_2A_D: MOVR0,#50H;建立存放采样值单元首地址 MOVR7,#0AH;采样次数 MOVDPTR,#0A000H;0通道地址LP7: MOVX@DPTR,A;启动A/D转换MOVR6,#1EHDJNZR6,$;延时120微秒MOVXA,@DPTR;采样MOV@R0,A;采样值放R0所指单元INCR0;修改地址DJNZR7,LP7;采样10次ACALLFMAX;调用去最大值子程序ACALLFMIN;调用去最小值子程序ACALLAVG;调用求平均值子程序MOVA,5AH;滤波值存放于A中MOVB,#100;最高温度设为100度MULAB;0到100显示MOVA,BMOV60H,A;采集的温度值存放于A中LCALLER_SHI;二进制转化为十进制RET;返回ER_SHI:MOVA,60H;温度值送AMOVR0,#42H;显缓区首地址MOVR7,#3;循环次数为3LP:MOVB,#0AH;10送寄存器BDIVABXCHA,BMOV@R0,AXCHA,BDECR0;修改指针DJNZR7,LP;循环3次RETFMAX:MOVR7,#09H;循环次数为9MOVR0,#50H;滤波值放入以50H为首的单元LP11:MOVA,@R0;取第一个数放A中INCR0;指向第二个数CLRC;清进位标志SUBBA,@R0;第1、2个数比较JCDONE;若小于则转到DONEMOVA,@R0DECR0;修改指针XCHA,@R0;交换INCR0MOV@R0,ADONE:DJNZR7,LP11;循环比较RET;子程序结束FMIN:MOVR7,#08H;去最小值程序MOVR0,#50H;取数LP1:MOVA,@R0;第1个数放入A中INCR0;地址加1CLRC;清借位SUBBA,@R0;比较第1、2个数JNCDONE1;A中数大,没借位转MOVA,@R0;大数放A中DECR0;地址减1XCHA,@R0;大数放A中INCR0;地址再加1MOV@R0,ADONE1:DJNZR7,LP1;记数值不为零,继续比较RETAVG:MOVR7,#08H;求平均值子程序MOVR6,#03HMOVR0,#50H;取数MOVR3,#00H;清存放和的单元MOVR4,#00HLP2:MOVA,@R0;取第1个数ADDA,R4;把第1个数放R4中MOVR4,A;4中放和的底位MOVA,R3ADDCA,#00H;加进位MOVR3,A;和放入R3中INCR0;地址加1DJNZR7,LP2;记数器不为零,循环LP3:MOVA,R3RRCAMOVR3,AMOVA,R4RRCAMOVR4,ADJNZR6,LP3MOV5AH,R4RETCHUSHI:CLRMOVR6,#0CHDJNZR6,$MOVA,#0A4HACALLSTFSMOVR6,#2DJNZR6,$SETBMOV43H,#0AH;查"-"字符MOV44H,#0BH;查"good"字符MOV45H,#0AHMOV46H,#0DHMOV47H,#0EHMOV35H,#60H;初始化定时单元CLR;初始化加热指示灯RETDIR_0:JB01H,D_1;显示处理JNB02H,D_1CLR02HMOVR0,#44HMOVA,35HACALLA_R0MOVA,31HACALLA_R0D_1:RETA_R0:MOVR2,ASWAPAANLA,#0FHMOV@R0,AINCR0MOVA,R2ANLA,#0FHMOV@R0,AINCR0RETSKEY:JNB01H,S_2MOVR0,22HMOV@R0,A;A中放键值INC22H;指向下一个数码管MOVA,22HCJNEA,#46H,S_1S_1:JCS_2MOV22H,#44HS_2:RETSTOP:CLRTR0;停止定时CLR03H;停止加热CLR04H;停止保温CLR;指示灯熄灭SETB;加热膜停止加热CLRCLRMOV44H,#0BH;显示goodMOV45H,#0AHMOV46H,#0DHMOV47H,#0EHRETMKEY_1:SETBTR0SETB01HMOV22H,#44HRETXIAODU:SETB03H;键按下,执行消毒CLR04HCLRSETBSETBRETBAOWEN:SETB04H;保温键按下,执行保温CLR03HCLR05HSETBRETMKEY_2:JNB01H,ML0MOVR0,#44HMOVA,@R0ANLA,#0FHSWAPAMOVR2,AINCR0MOVA,@R0ANLA,#0FHORLA,R2MOV35H,ACLR01HDEC35HMOV31H,#59HSETBTR0ML0:RETINT_T0:PUSHACCPUSHPSWMOVPSW,#08H;换区MOVTL0,#0B0HMOVTH0,#3CHINC30H;中断次数加1MOVA,30HCJNEA,#0AH,L2L2:JCL6SETB02HMOV30H,#00HMOVA,31HADDA,#99H;秒减1DAAMOV31H,AJNZL6MOV31H,#59HMOVA,35HADDA,#99HDAA;分减1MOV35H,AJNZL6CLR02HMOV35H,#00HLCALLSTOPL6:POPPSWPOPACCRETIHOT_NOT:JB03H,LL0;加热标志为1则转LL0JB04H,LL2;保温标志为1则转LL2AJMPLL8;跳转到LL8LL0:MOVA,60H;温度值送ACJNEA,#50H,LL1;温度值与80度比较,不相等LL1LL1:JCLL9;小于则转LL9SJMPLL7;跳转到LL7LL2:MOVA,60H;温度值送ACJNEA,#3CH,LL3;温度值与60度比较,不相等转LL3LL3:JCLL4;小于则转到LL4SETB;置1,不加热CLR;置0,加热指示灯熄灭CLR05H;停止标志为0SJMPLL8;跳转到LL8LL4:MOVA,60H;温度值送ACJNEA,#28H,LL5;温度值与40度比较,不相等转LL5LL5:JNCLL6;温度大于40转LL6CLR;小于则执行加热CLR05HSETB;加热指示灯点亮SJMPLL8;跳转到LL8LL6:CLR05HSJMPLL8LL7:CLRSETBSJMPLL8LL9:CLRSETBLL8:RETKEY:ACALLKEY1;调用读键值子程序CJNEA,#0FFH,LPP1CLR00HRETLPP1:JB00H,LPP2SETB00HACALLKEYNUMRETLPP2:MOVA,#0FFHRET;读键值子程序KEY1:CLRMOVR6,#0CHDJNZR6,$MOVA,#15HACALLSTFSMOVR6,#6DJNZR6,$ACALLSTJSSETBRETSTJS:MOVR7,#08HS_0:SETBSETBMOVR6,#02HDJNZR6,$MOVC,RLCACLRMOVR6,#1DJNZR6,$DJNZR7,S_0RET;根据键值求键号KEYNUM:MOVB,AMOVR2,#00HMOVR7,#0FHKEY_0:MOVA,R2ADDA,#0AHMOVCA,@A+PCCJNEA,B,KEY_1SJMPKEY_2KEY_1:INCR2DJNZR7,KEY_0KEY_2:MOVA,R2RETTAB0:DB1CH,1DH,1EH,1FH,14HDB15H,16H,17H,0CH,0DHDB0EH,0FH,04H,05H,06HSTFS:MOVR6,#50DJNZR6,$MOVR7,#8ST_1:RLCAMOV,CSETBMOVR6,#2DJNZR6,$CLRMOVR6,#2DJNZR6,$DJNZR7,ST_1RETDIR:MOVR5,#08HMOVR0,#40HMOVR1,#97HDIR1:CLRMOVR6,#0C0HDJNZR6,$MOVA,R1ACALLSTFSMOVR6,#04HDJNZR6,$CJNER0,#45H,DIR2MOVA,@R0ADDA,#1CHAJMPDIR3DIR2:MOVA,@R0ADDA,#0DHDIR3:MOVCA,@A+PCACALLSTFSMOVR6,#02HDJNZR6,$SETBINCR0DECR1DJNZR5,DIR1RETTAB:DB7EH,30H,6DH,79H,33HDB5BH,5FH,70H,7FH,7BHDB01H,7BH,7EH,7EH,3DHDB0FEH,0B0H,0EDH,0F9H,0B3H,0DBH,0DFH,0F0H,0FFH,0FBHDB7EHENDCTRL+A全选可调整字体属性及字体大小-CAL-FENGHAI.NetworkInformationTechnologyCompany.2020YEAR电桥电路电压放大A/D功能键盘单片机数码显示加热装置有键按下否是加热键否是消毒键否是停止键否是校时键否开始初始化显示处理显示键盘扫描清保温标志,置消毒标志,启动加热器清加热标志,置保温标志清消毒、保温标志,关闭加热器rtrrtNNNYYYNN校正定时时间,并启动定时器YY中断入口保护现场,定时器初值重装,中断次数加1控制分和秒的倒计时温度采样,再滤波调消毒子程序倒计时是否已到消毒标志为1否保温标志为1否调保温子程序调停止子程序恢复现场中断返回NNNYYY开始启动AD0809的0通道找出最大值并去掉找出最小值并去掉9个采样值求和后再求平均值平均值保存至5AH中返回采样次数R7=10存放指针R0=50启动采样,采样值送@R0所指单元R7-1=0R0-1→R0NY开始显缓指针R0、显示码R1、循环次数R7初始化置CS为低电平,并延时50us延时8us,去除片选信号,修改R0和R1发显示码到7279,并延时25us@R0单元内容查表,将得到的字形码发送至7279R7-1=0返回YN开始消毒标志置为1,保温标志置为0置为1,点亮消毒指示灯计时到达否温度大于125度启动加热,置为低停止加热,置高关消毒指示灯返回YNYN开始返回启动加热,置为低温度小于50度关消毒指示灯停止加热,置高NY温度大于70度YNNY消毒标志置为0,保温标志置为1计时到达否置为1,点亮保温指示灯开始标志03H、04H置零,清除消毒、保温标志TR0置零,停止计时关指示灯和加热器6AH送R0,45H送R1,04H送R7@R0送@R1R7-1=0返回NY开始置7279的CS有效,并延时30us发送读键指令码15H到7279,并延时12us接收键值存于A中,CS信号置键标志00HA为FFH否清键标志00H由键值查键号返回NY
本文档为【电气课程设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥13.0 已有0 人下载
最新资料
资料动态
专题动态
机构认证用户
峰海资料库
希望这份文档帮到您
格式:doc
大小:968KB
软件:Word
页数:0
分类:
上传时间:2021-02-22
浏览量:11