基于98C51单片机的汇编语言的全自动洗衣机系统设计【课程设计】 .docx_第1页
基于98C51单片机的汇编语言的全自动洗衣机系统设计【课程设计】 .docx_第2页
基于98C51单片机的汇编语言的全自动洗衣机系统设计【课程设计】 .docx_第3页
基于98C51单片机的汇编语言的全自动洗衣机系统设计【课程设计】 .docx_第4页
基于98C51单片机的汇编语言的全自动洗衣机系统设计【课程设计】 .docx_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

单片机课程设计 全自动洗衣机系统的设计目 录摘要3任务设计要求3前言4设计分析与方案论证4软件程序的设计6调试11总结20参考文献20附录20摘 要单片机又称微控制器,或称嵌入式控制器。而现在的智能家电无一例外是采用微控制器来实现的,所以家用电器是单片机应用最多的领域之一。它是家用电器实现智能化的心脏和大脑。 本设计采用led和数码显示管显示洗衣机所处在的模式和水位,所处的的洗衣状态,水温,以及完成洗衣的剩余时间。实现不同模式下水位的选择一共三种模式(标准,轻柔,快洗),四种水位,当洗衣机启动后,上水电磁阀打开注水,当水到达设定的限位时,上水电磁阀断电,注水过程停止,启动电机全自动控制洗衣操作,整个过程的进行按时间控制,时间自定。液位检测和控制:使水位限定在某一个给定的液位范围内,当水位越限时进入超水位中断报警提示并打开下水电磁阀放水,不启动洗衣过程,待满足要求后,投入运行。当投入洗衣量大于洗衣机额定容量时,控制系统应报警,不启动洗衣过程。待满足要求后,投入运行关键字 智能家电 洗衣机 汇编语言89c51设计任务要求1.功能介绍 全自动洗衣机是常见的家用电器。它能够按照预设模式自动地完成衣物的洗涤、漂洗和脱水,也可以单独地进行洗涤、漂洗和脱水操作,这些过程一般按时间进行控制。通常在给定的模式下,根据衣物多少允许用户设置不同的水位,当洗衣机启动后,上水电磁阀打开注水,当水到达设定的限位时,上水电磁阀断电,注水过程停止,启动电机,即可开始洗衣操作,为了提高洗衣效率,电机一般先正转若干秒,然后再反转若干秒。另外,每个洗衣机都有容量限制,当洗衣量大于它的额定容量容量时,控制系统报警并且不启动。2.设计参数(1)电机 100w 220v ac(2)洗衣容量 5 kg(3)电力供应:220v ac3.设计要求(1)实现3种模式选择:标准、轻柔和快洗,被选中的模式用led显示器表明。(2)实现不同模式下的洗衣过程,根据衣物多少允许用户设置4种的水位,被选中的水位用led显示器表明。当洗衣机启动后,上水电磁阀打开注水,当水到达设定的限位时,上水电磁阀断电,注水过程停止,启动电机全自动控制洗衣操作,整个过程的进行按时间控制,时间自定(3)液位检测和控制:使水位限定在某一个给定的液位范围内,当水位越限时打开下水电磁阀放水,不启动洗衣过程,待满足要求后,投入运行。(4)当投入洗衣量大于洗衣机额定容量时,控制系统应报警,不启动洗衣过程。待满足要求后,投入运行。(5)显示工作模式、状态和剩余时间,每个动作完成时,通过声光报警提示。(6)测量并显示水的温度。4.扩充功能(1)pwm调节电机转速(2)同一模式下,不同水位的选择。前言单片机又称微控制器,或称嵌入式控制器。而现在的智能家电无一例外是采用微控制器来实现的,所以家用电器是单片机应用最多的领域之一。它是家用电器实现智能化的心脏和大脑。 由于家用电器体积小,故要求其控制器体积更小以便能嵌入其结构之中。而家用电器品种多,功能差异也大,所以又要求其控制器有灵活的控制功能。单片机以微小的体积和编程的灵活性而产生多种控制功能,完全可以满足家用电器的需求。波轮式全自动洗衣机是家用电器领域的重要一员,在全自动洗衣机市场中占有很大的比例,其中绝大多数品是用单片机来实现的。at89c51单片机是atmel公司8位单片机系列产品之一,是一种20引脚双列直插式芯片。它内含4kb可反复烧录的flash存储器,ram字节也有128个,15个i/o口,5个中断,2个定时,已经可以满足程序的需要,指令也和51系列兼容,基于上述特点,选择它来设计一台智能洗衣机,完全可以达到以下的功能:1、洗衣程序功能:手动模式:用户可以选择单独的单洗,漂洗,长脱水;自动模式:用户可以根据需求通过键盘选择以下模式:即标准洗衣程序、轻柔洗衣、快洗每种模式下又可以选择四种水位;再上电后如果不进行任何操作一段时间后洗衣机便进入默认模式进行洗衣。 2显示功能:显示选择的模式,水位,正在进行的洗衣操作(状态),水温,完成洗衣过程的剩余时间。3、特殊功能:超水位报警并自动放水,达到要求后结束报警开始洗衣;超容量报警,待用户排除后结束报警开始洗衣。设计分析与方案论证本设计用98c51单片机实现洗衣机的控制,通过对拨码开关和键盘的操作实现手动自动模式的选择,以及水位得选择,也可以进行任何操作进入默认模式。当选择好模式后进入该模式设置该模式下的参数,然后再次扫描键盘,去选择水位,选定水位后,进入该水位模式设置水位参数。在p1.4为低电平是进入手动模式,手动模式下若p1.5为低电平则进入单洗过程,单洗完成声光报警提示用户此过程完成;若p1.5为高电平检查p1.6若为低电平进去漂洗程序进行漂洗,漂洗完成声光报警提示用户漂洗结束。柔p1.6为高电平则检查p1.7若为低电平就进入长脱水程序,进行长脱水,长脱水结束声光报警提示用户操作完成;若p1.7为高电平则从p1.5重新检查直到检查到低电平为止。在p1.4为高电平时不是手动模式,则去扫描键盘,第一次扫描键盘为选择标准,轻柔,快洗模式,待选择好模式设定好参数后,再次扫描键盘选择水位,选择好水位后设置参数,然后进入洗衣过程。如果15秒内没有扫描到模式的按键,则进入默认模式。单洗衣程序包括单洗、漂洗、长脱水三个过程。自动模式下的三个模式都包括单洗、漂洗、长脱水三个过程,只是在不同模式和水位下的参数不同罢了;洗衣过程:进入洗衣程序开定时器开始倒计时,根据选择的水位进水,进水完成后,在没有超出要求水位的情况下,进入单洗过程,电动机开始正反转过程根据所选模式中设置的正反转次数以及不同模式下正反转的时间自动洗衣;待单洗完成就进入排水过程,排水时间由水位模式设置,排水结束后进入漂洗过程。漂洗过程:先进行段脱水,脱水结束再进水,进水完成再进行短洗,短洗时间为四分钟,短洗完成在排水,然后重复上述过程一次即完成漂洗过程,漂洗完成进入长脱水过程,长脱水时间为四分钟,电机高速旋转,长脱水结束,整个洗衣过称也结束,此时声光报警提示用户洗衣完成。标准模式下的单洗过程,电机正反转36次,每次正转十八秒,停两秒,再反转十八秒,停两秒;轻柔模式下单洗过程,电机正反转36次,每次正传是三秒停两秒,再反转是三秒,停两秒;快洗模式下但系过程,电机正反转24次,每次正转十八秒,停两秒,再反转十八秒,停两秒;三种模式下的漂洗过程相同见下面漂洗过程分析;每个模式下的长脱水都是相同的,都是电机正传四分钟。进排水由时间控制,每个水位下设置好了进排水的时间,进水时p3.4置一,表示开进水阀,进水完成时p3.4置0表示关进水阀;排水是p3.5置1表示开排水阀,排水完成是p3.5置0表示管排水阀。在显示时开始考虑的是通过按键实现交替显示,但是这样就必须时刻扫描键盘,这使程序进入了扫描键盘的死循环,无法进行其他的工能,在多次考虑后发现在进排水,电机动作时没有其他的要求,可以利用这段时间去驱动数码管显示模式,水位,状态,温度,以及剩余时间等,剩余时间单独显示,其他的一起显示,这样就只需要显示两次,每次十秒,交替显示,单洗是短洗时电机正传是显示十秒的模式,水位,状态,温度,然后数码管熄灭十秒或五秒,电机反转时显示十秒的剩余时间,再熄灭十秒或五秒,这样循环进行;在脱水或进排水时两种显示一十秒每次交替显示,这样在整个过程中多有显示,很好地解决了显示与洗衣同时进行的问题了。电机的正反转实现方式:当p3.6为1,p3.7为0时电机正转,当p3.6和p3.7都为0时电机停转,当p3.6为0,p3.7为1时电机反转。电机正反转用led灯模拟,红灯亮表示正传,绿灯亮表示反转,两灯都熄灭表示电机停转。自动模式下,数码管右边第一为表示模式,b表示标准模式,q表示轻柔模式,3表示快洗模式,第二位表示水位分别用1、2、3、4表示四种水位;中间两位表示正在进行的动作即状态,7h表示进水,dh表示短脱水,dd表示短洗,ch表示长脱水ph表示排水;左边两位显示的是水的温度。在显示模式2下用四个数码管显示剩余时间。在手动模式下的单洗,漂洗,长脱水需要单独设置参数,具体设置见附录的程序中;单洗时,模式水位显示位显示的是d7表示手动下的单洗;漂洗是显示p7表示漂洗,长脱水时显示ch表示长脱水;手动下单洗为28分钟,漂洗为18分钟,长脱水为4分钟。默认模式下调用的是标准模式下水位2的洗衣程序,显示也完全相同;另外每一个动作完成时都有一秒钟的蜂鸣提示。软件程序的设计:汇编语言程序设计并不很难,但要编出质量高,可读性好且执行速度快的优秀程序并不容易,欲达此目的,除应娴熟掌握所依托的指令系统外,还应掌握程序设计的基本方法和技巧,熟悉汇编语言源程序的分类方法和特点。洗衣机的一次洗衣过程控制过程比较简单,主要为顺序控制,如先进水、洗涤(电机正转反转)、再排水脱水,难点在于过程选择,如不同的衣物所用的洗涤、漂洗、电机正转反转时间不同,如果为每个过程单独编一套指令,则指令系统变得很庞大,效率低,为此,把脱水、洗涤、排水、短洗、漂洗、进水单独编为一个子程序,由主程序根据过程选择,不断调用,由些减少源程序的长度,不同的洗衣过程,三大动作的时间不同,这可以通过建立数据表格,通过查表的方式获得每个洗衣过程所需时间。此外,还需编出显示子程序,延时子程序供主程序不断调用,而且在每一个模式和水位下设置了不同参数,这样通过对子程序的调用,就实现了同一模式下不同水位的选择这一扩展功能,仅仅在自动模式下就有3*4=12种小模式了。水位1每一次进排水时间都为130秒,水位2为120秒,水位3为110秒水位4为100秒自动模式下各个小模式的总时间如下:标准模式水位一:55分钟标准模式水位二:54分钟标准模式水位三:53分钟标注模式水位三:52分钟轻柔模式水位一:49分钟轻柔模式水位二:48分钟轻柔模式水位三:47分钟轻柔模式水位三:46分钟快洗模式水位一:43分钟快洗模式水位二:42分钟快洗模式水位三:41分钟快洗模式水位四:40分钟各个流程的框图如下:开始 初始化等待5s供选择模式p1.3=0?扫描键盘 n 有键按下? y进入默认模式并工作至结束进入手动模式并工作至结束 n进入自动模式并工作至结束 y 结束并蜂鸣报警主程序框图p1.4=0进入手动模式p1.5=0?进入单洗进入漂洗p1.6=0?进入长脱水p1.7=0?手动模式框图开始再次扫描扫描键盘读出键盘特征码读出键盘特征码比较并选择水位比较并选择模式进入选择好的水位设置该水位下的参数进入选择好的模式设置该模式下的参数开始洗衣自动模式下模式水位的选择开始开始进水单洗长洗漂洗排水长脱水retret洗衣流程单洗流程开始开始短脱水开排水阀进水完否短洗n排水y停止脱水短脱水关排水阀完否nretyret长脱水流程漂洗流程开始开始开排水阀开进水阀完否完否关排水阀关进水阀retret进水流程排水流程开始时间到?电机正转n时间到?ny电机停转电机停转y时间到?时间到?时间到?nnyy电机反转ret电机正反转流程进入中断保护现场报警关进水阀开排水阀水位达到要求?ny关蜂鸣报警关排水阀恢复现场中断返回超水位报警并自动排水流程调试:先在软件中仿真再在板子上演示1. 选择手动模式将拨码开关1号键拨至左侧即选择的是手动模式,2号键拨过去选择单洗,此时仿真图以及实际图如下:手动的单洗进水仿真图:d7表示手动的单洗,7h表示进水,29是温度手动单洗实际图:右边的d7表示手动下的单洗,中间的d7表示状态为单洗23表示温度2. 选择手动模式将拨码开关1号键拨至左侧即选择的是手动模式,3键拨过去选择漂洗,此时仿真图以及实际图如下:手动模式下漂洗的单洗的仿真截图:p7表示手动的漂洗,dd表示短洗,29表示温度是29度 手动漂洗仿真图:p7代表漂洗,dh代表短脱水,27表示温度3. 选择手动模式将拨码开关1号键拨至左侧即选择的是手动模式,4键拨过去选择长脱水,此时仿真图以及实际图如下:手动长脱水仿真截图:右边的ch表示手动的长脱水,中间的ch表示当前状态是手动长脱水实图:右边的ch手动的长脱水,中间的ch状态是长脱水,23表示温度4. 选择标准模式,将拨码开关1号键拨至右侧,等待15秒按下键盘的一号键即选择好标准模式,再按下4号键即选择水位一,然后进入标准模式的水位一开始工作,此时仿真图以及实际图如下:仿真截图:标准水位2的单洗状态,最右边的b表示标准模式,2表示水位2,d7表示单洗,29是温度标准模式实图:b表示标准模式,2表示水位2,d7表示单洗状态,22表示温度仿真截图:标准水位2的长脱水状态,最右边的b表示标准模式,2表示水位2,ch表示长脱水,29是温度5. 选择轻柔模式,将拨码开关1号键拨至右侧,等待15秒按下键盘的2号键即选择好轻柔模式,再按下5号键即选择水位二,然后进入标准模式的水位一开始工作,此时仿真图以及实际图如下:轻柔水位2的进水,q表示轻柔模式,2表示水位2,7h表示进水,29是温度轻柔水位4实图:q表示模式是轻柔,4表示水位4,dd表示状态是短洗,27表示温度轻柔水位2的排水,q表示轻柔模式,2表示水位2,ph表示排水,29是温度6. 选择快洗模式,将拨码开关1号键拨至右侧,等待15秒按下键盘的3号键即选择好标准模式,再按下6号键即选择水位三,然后进入标准模式的水位一开始工作,此时仿真图以及实际图如下:快洗模式水位3的截图,最右边的3表示快洗,第二个3表示水位,dh表示单洗快洗水位2实图:右边的3表示模式是快洗,7h表示状态是进水,30表示温度7. 超水位与超超容量的中断调试,进入中断后数码管完全熄灭,并有声光报警提示,其中超水位报警为两秒的蜂鸣,一秒的绿灯如此循环直到中断解除;超容量报警为一直的蜂鸣报警,直到中断解除;超水位为高优先级,调试时遇到的问题是进入高优先级在还回时低优先级的报警没有进行了,在多次测试并检测程序后发现是高优先级中没有保护低优先级的状态,修改程序后这一问题得到解决。8. 显示时间的调试时发现时间不准确,经过仔细阅读程序发现没有把每个动作完成时的两秒的提示时间计算进去,使时间不准确,修改参数后这一问题得到解决表示剩余时间为3分36秒表示剩余时间是3分56秒总结在本次设计中遇到了很多问题,但是最终还是完成了基本的要求实现了标准、轻柔、快洗三种模式,四种水位的选择,显示所选择的模式、水位、洗衣机的状态、水温、以及剩余时间的显示。实现了水位的检测和控制:使水位限定在某一个给定的液位范围内,当水位越限时声光报警并打开下水电磁阀放水,不启动洗衣过程,待满足要求后,投入运行,实现了超容量的报警,待满足要求后投入运行,实现了每个动作完成的声光提示。完成了同一模式下不同水位的选择这一扩展功能。本设计还存在诸多不足,比如由于时间有限没有用pwm技术实现电机的调速。实现这一要求还得使用继电器,双向晶闸管,二极管等部件,利用脉宽调制技术实现电机的调速。 能够顺利完成本次设计还得感谢段晨东老师的指导,以及李朝、乔红磊、肖世涛,薛周舟等同学的帮助。参考文献:1.段晨东 单片机原理即接口技术 清华大学出版社 北京 20082.张毅刚 单片机应用设计 哈尔滨工业大学出版社 哈尔滨 20023.周润景 基于proteus的电路与单片机设计与仿真 北京航空航天大学出版社 北京 20104.李宇 vision2单片机应用程序开发指南 科学出版社 北京 2005附录:1.洗衣机系统的汇编程序flag equ 45h ;ds18b20是否存在标志 dq equ p1.3 ;dq引脚由p2.5控制 org 0000hljmp startorg 0003hljmp pint0org 0013hljmp pint1org 001bhljmp p_t1org 0030hstart: mov sp,#60hclr p3.4 ;关进水阀 clr p3.5;关排水阀 clr p3.6;电机不转动 clr p3.7 ;电机不转动 mov ip,#01h;inti为高优先级 setb ea;cpu允许中断 setb it0;跳变触发方式 setb it1;跳变触发方式 mov th1,#3chmov tl1,#0b0hmov 40h,#20;1s定时 mov tmod,#10hsetb ex1;允许int1中断 setb ex0;允许int0中断 setb et1;允许定时器t1中断 mov 4dh,#05 ;等待5秒,供用户选择手动还是 dendai:lcall dl1s ;自动,若选择手动并设置自动模式下的哪种 djnz 4dh,dendai ;工作方式,单洗,单漂,长脱水 mov p1,#0f6hlcall dl1smov p1,#0ffhmov 4fh,#250back:jb p1.4,kssm1;p1.4为1即使自动模式,转到扫描键盘 jnb p1.5,todanxi ;p1.5为0即为选择单洗,转到单洗 jnb p1.6,topx;p1.6为0即为选择漂洗,转到漂洗 jnb p1.7,tocts;p1.7为0即为选择长脱水,转到长脱水 jmp back;没有检测到手动选择的是什么,换回重新检测;*手动单洗程序* todanxi:setb tr1mov 30h,#07 ;状态显示参数,显示7 mov 31h,#13 ;状态显示参数,显示d,d7代表单洗 mov 2ah,#18h ;电机动作24分钟 mov 2ch,#05h ;进排水4分钟 mov 25h,#36;设正反转次数 mov 26h,#08;转动8+10s mov 27h,#02;停2秒 mov 28h,#40;进排水2分钟,40+20x4 lcalldjsczlcall danxijnb p1.6,topxljmp thend;*手动漂洗程序* topx:setb tr1mov 30h,#07 ;状态显示参数,显示7 mov 31h,#18 ;状态显示参数,显示p,p7代表漂洗 mov 2ah,#0eh ;电机动作14分钟 mov 2ch,#05h ;进排水4分钟 mov 28h,#40;进排水2分钟,40+20x4 lcall djsczlcall pxjnb p1.7,toctsljmp thend;*手动长脱水* tocts:setb tr1mov 30h,#16;状态显示参数,显示h mov 31h,#12;状态显示参数,显示c,ch代表长脱水 mov 2ah,#04h ;脱水4分钟 mov 2ch,#00hlcalldjsczlcall ctsljmp thend ;*键盘扫描1*kssm1:mov p2,#0f0h ;置p2.0p2.3为输出,p2.4p2.6为输入mov a,p2anl a,#0f0hxrl a,#0f0hjz no_key1 ;a为0则无按键lcall dl20ms ;延时消抖mov a,p2anl a,#0f0h ;重读键盘xrl a,#0f0hjz no_key1 ;a为0则无按键mov r2,#11110111b ;列扫描初值lsm1:mov a,r2mov p2,amov a,p2anl a,#11110000bmov r3,acjne a,#0f0h,key1;有键按下则跳转mov a,r2rr amov r2,axrl a,#01111111bjnz lsm1no_key1:ljmp next3key1:mov a,r2anl a,#0fhorl a,r3mov r4,ashifang1: mov a,p2anl a,#0f0hxrl a,#0f0hjnz shifang1lcall dl20msmov a,p2anl a,#0f0hxrl a,#0f0hjnz shifang1mov a,r4cjne a,#0d7h,next1ljmp fangshi1next1:cjne a,#0dbh,next2ljmp fangshi2next2:cjne a,#0ddh,next3ljmp fangshi3next3: djnz 4fh,kssm1 ljmp morenmoshi;跳到默认模式 ;*实际键盘扫描2*kssm2:mov p2,#0f0h ;置p2.0p2.3为输出,p2.4p2.6为输入mov a,p2anl a,#0f0hxrl a,#0f0hjz no_key2 ;a为0则无按键lcall dl20ms ;延时消抖mov a,p2anl a,#0f0h ;重读键盘xrl a,#0f0hjz no_key2 ;a为0则无按键mov r2,#11110111b ;列扫描初值lsm2:mov a,r2mov p2,amov a,p2anl a,#11110000bmov r3,acjne a,#0f0h,key2;有键按下则跳转mov a,r2rr amov r2,axrl a,#01111111bjnz lsm2no_key2:ljmp kssm2key2:mov a,r2anl a,#0fhorl a,r3mov r4,ashifang2: mov a,p2anl a,#0f0hxrl a,#0f0hjnz shifang2lcall dl20msmov a,p2anl a,#0f0hxrl a,#0f0hjnz shifang2mov a,r4cjne a,#0b7h,next4ljmp shuiwei1next4: cjne a,#0bbh,next5ljmp shuiwei2next5:cjne a,#0bdh,next6ljmp shuiwei3next6:cjne a,#77h,next7ljmp shuiwei4next7: ljmp kssm2 ;*默认模式* morenmoshi: mov 2ah,#2ah;设置时间1的参数42分钟 mov 30h,#0bh;显示方式为b代表标准 mov 25h,#36;正反转次数 mov 26h,#08;转动8+10s mov 27h,#02mov 2ch,#0dh;时间2,为13分钟 mov 31h,#01;显示水位为1 mov 28h,#50;进排水时间,50s+80s lcall xychxret ;*自动情况下方式一即为标准模式* fangshi1 : mov 2ah,#2ah;设置时间1的参数42分钟 mov 30h,#0bh;显示方式为b代表标准 mov 25h,#36;正反转次数 mov 26h,#08;转动8+10s mov 27h,#02;停两秒 lcall kssm2;调用键盘扫描程序,选择水位ljmp thend;*自动情况下方式二,即为轻柔模式* fangshi2: mov 2ah,#24h;设置时间1的参数24分钟 mov 30h,#25;显示方式为q代表轻柔 mov 25h,#36;正反转次数 mov 26h,#03;转动3+10s mov 27h,#02;停两秒 lcall kssm2;调用键盘扫描程序,选择水位ljmp thend;*自动情况下方式三,即为快洗模式* fangshi3: mov 2ah,#1eh ;设置时间1的参数30分钟 mov 30h,#03;显示方式为3代表快洗 mov 25h,#18;正反转次数 mov 26h,#08;转动8+10s mov 27h,#02;停两秒 lcall kssm2;调用键盘扫描程序,选择水位ljmp thend;*水位一* * shuiwei1: mov 2ch,#0dh;时间2,为13分钟 mov 31h,#01;显示水位为1 mov 28h,#50;进排水时间,50s+80s lcall xychxret;*水位二* shuiwei2: mov 2ch,#0ch;时间2,为12分钟 mov 31h,#02;显示水位为2 mov 28h,#40;进排水时间,40s+80s lcall xychxret ;*水位三* shuiwei3: mov 2ch,#0bh;时间2,为11分钟 mov 31h,#03;显示水位为3 mov 28h,#30;进排水时间,30s+80s lcall xychxret ;*水位四* shuiwei4: mov 2ch,#0ah;时间2,为10分钟 mov 31h,#04;显示水位为4 mov 28h,#20;进排水时间,20s+80s lcall xychxret;*洗衣程序* xychx: setb tr1;开定时器 lcall danxi;调单洗程序 lcall px;调漂洗程序 lcall cts;调长脱水程序 ret ;*单洗程序 * danxi: lcall djscz ;倒计时初值 lcall jsh;调进水程序 goon2: mov 32h,#07mov 33h,#13lcall zfz;调正反转程序 djnz 25h,goon2;循环几次 lcall psh;排水 ret;*漂洗程序 * px:mov 29h,#02;循环2次 lcall dts;短脱水 goon3: lcall jsh;进水 lcall dxd;短洗涤 lcall psh;排水 lcall dts;短脱水 djnz 29h,goon3ret ;*长脱水程序(4分钟) * cts:mov 32h,#16;状态显示查表参数,显示hmov 33h,#12;状态显示查表参数,显示c,表示长脱水 mov 2bh,#12;设置调用延时显示程序的次数 setb p3.5;开排水阀 setb p3.6clr p3.7;开始脱水 lcall ysxs;延时并显示 clr p3.6;停止脱水 clr p3.5;关排水阀 lcall shgts;声光提示 ret;*进水程序* jsh:mov 32h,#16;状态显示查表参数显示h mov 33h,#07;状态显示查表参数显示7,7h代表进水 mov 24h,28h;进水时间参数 setb p3.4;开排进阀 lcall jpshys;延时并显示 clr p3.4;关进水阀 lcall shgts;声光提示 ret; *短脱水程序(2分钟)* dts: mov 32h,#16;状态显示查表参数,显示h mov 33h,#13;状态显示查表参数,显示d,dh代表短脱水 mov 2bh,#06;设置调用延时显示程序的次数 setb p3.5;开排水阀 setb p3.6clr p3.7;开始脱水 lcall ysxs;延时并显示 clr p3.6;停止脱水 clr p3.5;关排水阀 lcall shgts;声光提示 ret;*短洗程序 4分钟* dxd:mov 32h,#13;状态显示查表参数 mov 33h,#13;状态显示查表参数 mov 25h,#08h;正反转次数 mov 26h,#03h;3+10s mov 27h,#02h;停两秒 goon1:lcall zfzdjnz 25h,goon1;正反转8次 lcall shgts;声光提示 ret;*排水程序* psh:mov 32h,#16;状态显示查表参数,显示h mov 33h,#18;状态显示查表参数,显示p,ph代表排水 mov 24h,28h;进水时间参数 setb p3.5;开排进阀 lcall jpshys;延时并显示 clr p3.5;关进水阀 lcall shgts;声光提示 ret;*进排水延时并显示程序* jpshys:mov r7,#04h ;调4次显示,共80s go4:lcall t01 lcall t02djnz r7,go4;4次完没有 ret;*脱水延时显示 * ysxs:nop go3:lcall t01lcall t02djnz 2bh,go3ret ;*20ms延时子程序* dl20ms:mov 20h,#10 dely1:mov 21h,#250 dely2:nop nopnop nopnopnopdjnz 21h,dely2djnz 20h,dely1ret;*1s延时子程序 * dl1s:mov 22h,#50dely3:lcall dl20msdjnz 22h,dely3ret;*t0延时子程序* to:nop go5:lcall dl1s djnz 24h,go5ret;*1ms延时程序* dl1ms:mov 23h,#250dely4:nopnopdjnz 23h,dely4ret;*t01延时显示程序 * t01:mov 47h,#10go10:mov r6,#00 lcall do18b20 go1:lcall xscx1;调显示程序1 cjne r6,#01,go1djnz 47h,go10ret;*t02延时显示程序2* t02:mov r6,#00go2:lcall shjfllcall xscx2cjne r6,#10,go2ret;*正反转程序* zfz:mov 24h,26hsetb p3.6clr p3.7lcall t01;正转10秒 mov p1,#07hlcall to;正转8或3秒 clr p3.6;停 mov 24h,27h lcall to;停2秒 mov 24h,26hsetb p3.7lcall t02;反转十秒 mov p1,#07hlcall to;反转8或3秒 clr p3.7mov 24h,27h lcall to;停2秒 ret;*计算倒计时初值* djscz:mov a,2ahadd a,2chdec amov 42h,amov 41h,#60ret;*定时到中断* p_t1:push accpush pswmov th1,#3ch ;重置计时初值 mov tl1,#0bhdjnz 40h,todo1;到一秒使秒单元减一 mov 40h,#20inc r6dec 41hmov r2,41hcjne r2,#00,todo1mov r3,42hcjne r3,#00,todo2clr tr1ljmp todo1todo2:dec 42h ;到一分钟

温馨提示

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

评论

0/150

提交评论