《单片机原理及应用》课程设计-全自动洗衣机综合设计.doc_第1页
《单片机原理及应用》课程设计-全自动洗衣机综合设计.doc_第2页
《单片机原理及应用》课程设计-全自动洗衣机综合设计.doc_第3页
《单片机原理及应用》课程设计-全自动洗衣机综合设计.doc_第4页
《单片机原理及应用》课程设计-全自动洗衣机综合设计.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

物联网工程学院单片机原理及应用课程设计设计题目: 全自动洗衣机综合设计 专 业: 通信工程1002 姓 名: 郑丽丽 学 号: 0702090202 指导教师: 王宪 2012年12月16日目录一 设计目标3二 设计任务3三 设计过程3四 设计结果 34.1 单元电路设计与分析44.2 PCB图的生成 7 4.3 程序流程框图 7五 设计体会 9六 附录:程序清单10一.设计目标:全自动洗衣机1结构:由电动程控器、水位开关、安全开关(盖开关)、排水选择开关、不排水停机开关、贮水开关、漂洗选择开关、洗涤选择开关等组成。 2工作原理:通过各种开关组成控制电路,来控制电动机、进水阀、排水电磁铁及蜂鸣器的电压输出,使洗衣机实现程序运转。二.设计任务1输入:水位开关,键盘(启动键、停止键、轻柔洗等)2输出:7段LED显示器, 进水阀,电机正转,电机反转,排水泵3功能:洗涤(轻柔洗、强烈洗)、漂洗、脱水三.设计过程设计一个基于单片机的洗衣机控制系统,洗衣机的工作流程由进水、洗衣、排水和脱水四个过程组成,并且能达到“正常运行”和“强制停止”两种控制要求,任务设计如下:1. 按下启动按钮,开始进水直到水满(即水位达到高水位)时停止进水开始洗涤。2. 洗涤时,正转30秒,停2秒;然后反转30秒,停2秒,如此循环5次,总共320秒开始排水。3. 水位下降到低水位时开始脱水并继续排水,脱水30秒。4. 开始清洗,重复(1)(4),清洗三遍。5. 清洗完成,报警3秒并自动停机。6若按下排水按钮,可实现手动排水。7若按下停止按钮,不管洗衣机工作在什么状态,洗衣机需停止工作。四.设计结果(电路图,PCB板图,仿真波形,程序框图、汇编语言程序清单)4.1 单元电路设计与分析一般情况下,8051具有很强的扩展功能,允许扩展各种外围电路以补充片内资源不足,适应特定应用的需要,扩展内容包括数据存储器、程序存储器、I/O接口等扩展结构如图1所示: 8051数据存储器I/O接口程序存储器图1 8051系统扩展结构图图2 +5V电源电路三端固定输出集成稳压器,它是一种串连调整式稳压器。它将全部电路集成在单块硅片上,整个集成稳压电路只有输入、输出和公共三个引出端,使用非常方便。典型的有78正电压输出系列,79负电压输出系列。当输入的电压VI、输出电流IO或温度变化时,输出电压VO可保持不变;另外,当输出短路。可使输出电流IO限制为一定值;若稳压器过热,则它就停止工作,以免稳压器遭到损坏。三端固定输出电压集成稳压器,因内部有过热、过流保护电路,因此它的性能优良、可靠性高。有因这种稳压器具有体积小、使用方便、价格低廉等优点,所以我们选用了这种芯片。直流电动机按励磁方式不同可分为他励、并励、串励和复励四种。本课程设计采用他励和并励电动机来实现全自动洗衣机的起动、反转和调速特性。图3 洗衣机电机控制输入: 水位开关,键盘(启动键、停止键、轻柔洗、。等)输出: 7段LED显示器, 进水阀,电机正转,电机反转,排水泵键盘接口:简单键盘,键数少,一般不超过8个。键可以锁住,也可以不锁;使用注意:键按下与弹出时有机械抖动。一般在程序中防止。扫描式键盘分行线与列线,行线微计算机输入线,列线为计算机输出线。设计方法:1.判别有无键输入;2.去抖动电路;3.防止重复输入。图4 I/O电路图在本系统设计的洗衣机控制系统中,采用单片机设计一个最小系统,为了增加单片机的驱动能力,系统中扩展一组上位排阻电路和一组数码管位驱动电路。显示器动态显示方式,在同一时刻,只能显示一位,轮流点亮显示器,称为扫描。显示器的亮度与导通电流有关,还与点亮的时间有关。图5 CPU电路图图6 12KByteROM和16KByteRAM拓展4.2 PCB图的生成图7 洗衣机控制系统控制PCB图4.2 程序流程图程序主流程图、洗涤、漂洗脱水等三个流程图见下图8图12所示。开始开始进水单洗长洗漂洗排水长脱水RETRET图8 洗衣流程图9单洗流程开始 初始化等待5S供选择模式扫描键盘P1.3=0? N 进入默认模式并工作至结束进入手动模式并工作至结束有键按下? Y N进入自动模式并工作至结束 Y结束并蜂鸣报警 图10主程序流程图20图11 洗涤过程图12 漂洗脱水过程五 设计体会通过本次设计,我巩固了以前所学知识,也进一步施展了我protel的画图功夫,为自己日后的工作打下了一点基础;但是画图只是一个工具,我真正要学会的应该是设计,我这方面真的是太过薄弱了,从这次短暂的课程设计就彻头彻尾的暴露出来了。在课程设计过程中,虽然有些知识未在实践中完全消化,但是这种理论联系实践的实习过程加深了我对知识理解,同时也感受到学习的快乐。由于时间和条件的限制,本设计还有许多方面的工作未能完善,还有待于实现更多的功能,如更精确的控制与要求等等。通过这段时间的设计,我从中受益匪浅,获得了一些实际的工程经验。在以往的学习中,我们只停留在一知半解、知其然而不知其所以然的水平。这次设计,使得我认真的研究了一些实用的技术,我不仅学到了知识和技能,更学会了设计的思想与思路。在此要感谢我的导师在我设计过程中给予的指导和帮助,以及对我们的严格要求。附录 ORG 0000H LJMP MAIN ORG 0030H;延迟IOms程序,使用R0,RlDELAY10MS: MOV R0,#100DDELAY10MS02: MOV R1,#23DDELAY10MS01: DJNZ R1,DELAY10MS01 DJNZ R0,DELAY10MS02 RET;显示子程序;20H.0闪烁标志位:=0不闪烁,=l在1内亮灭一次;2OH.1程序开始标志:=l开始,=0选择;显示缓冲:50H;经过的时间:53H,52H,5lH=分钟,秒,20ms的次数;总时间:TOTALTIME=4OH TOTALTIME EQU 40HDISPLAY: PUSH ACC PUSH PSW SETB RS0 JNB 20H.l,DISPLAY01 MOV A,50H;高位是否为零 CJNE A,#0AH,DISPLAY05DISPLAYO5: JNC DISPLAYO6 XRL A,#0F0H;高位为零不显示 MOV 50H,ADISPLAYO6: JNB 20H.0,DISPLAY01:是否需闪烁 MOV A,51H CJNE A,#25D,DISPLAY02;DISPLAY02: JC DISPLAY01 MOV 50H,#OFFH;暗显示(不亮)DISPLAYO1: MOV A,50H;显示低位 ANL A,#OFH; MOV DPTR,#DISPLAYTAB; MOVC A,A+DPTR; MOV P2,A; SETB P0.6 CLRP 0.7 LCALL DELAY10MS MOV A,50H;显示高位 SWAP A ANL A,#OFH; MOVD P1,R,#DISPLAYIAB; MOVC A,A+DPTR; MOV P2,A; CLR P0.6 SETB P0.7 LCALL DELAY10MS INC 51H;累计时间 MOV A,#50D; XRL A,51H; JNZ DISPLAY03;50次的20ms未到 MOV 51H,A; INC 52H;1s MOV A,#60D; XRL A,52H; JNZ DISPLAY03 MOV 52H,A; INC 53H;lminDISPLAY03: JNB 20H.0,DISPLAY04; Mov A,TOTALTIME;计算剩余时间 CLR C SUBB A,53H; MOV B,#10D;16进制转换到10进制 DIV AB SWAP A XRL A,B; MOV 50H,A;DISPLAY04: POP PSW POP ACC RETDISPLAYTAB: ;共阳数码管反向编码 DB03H,9FH,25H,0DH,99H;01234 DB49H,41H,1FH,01H,09H;56789 DB11H,OC1H,63H,85H,6lH;ABCDE DB OFFH;暗 ;重算时间,入口数据:A=总时间(分)CALUTIME: MOV TOTALTIME,A CLR A MOV 52H,A;秒 MOV 53H,A;经过的分钟 RET;鸣叫一下,时长120msPLAY: SETB P1.6 MOV R0,#12D;PLAY1: LCALL DISPLAY DJNZ R0,PLAY1 CLR P1.6 RET;鸣叫六下,时长24Oms*12ALARM: SETB Pl.6 MOV Rl,#1ID;ALARM2: MOV R0,#12D;ALARM3: LCALL DISPLAY DJNZ R0,ALARM3 CPL P1.6 DJNZ Rl,ALARM2 RET;洗涤用子程序,洗涤时暂停按键XDPAUSE: JB P0.0,XDPSO1 LCALL DISPLAY JB P0.0,XDPSO1 PUSH 52H PUSH 53H CLR 20H.0;不闪烁 MOV A,P1 PUSH ACC MOV Pl,#00H LCALL PLAYXDPS02: LCALL DISPLAY JNB P0.0,XDPS02:等待按键释放XDPS03: LCALL DISPLAY JB P0.0,XDPS03 LCALL DISPLAY JB P0.0,XDPS03 LCALL PLAYXDPS04: LCALL DISPLAY JNB P0.0,xDPs04;等待按键释放 POP ACC MOV P1,ACC SETB 20H.0 POP 53H POP 52HXDPS01: RET;洗涤时延迟0.32sDELAY320MS: MOV R2,#14D; SJMP XDELAY01;洗涤时延迟0.565XDELAY560MS: MOV R2,#28D SJMP XDELAY01;洗涤时延迟lsXDELAY1S: MOV R2,#50D SJMP XDELAY01;洗涤时延迟1.6sDELAY1600MS: MOV R2,#80DXDELAY01: LCALL DISPLAY LCALL XDPAUSE;暂停按键 LCALL IFINWATER;水位开关 DJNZ R2,XDELAY01 RET;洗涤前进水子程序INWATER: JNB P0.2,PIl; SETB P1.2 MOV A,53H; ADD A,#20D; MOV 59H,A;PI3: MOV A,53H; XRL A,59H; JNZ PI2 LCALL ERRORE4 SJMP INWATERPI2: JNB PO.2,PI4; LCALL DISPLAY LCALL XDPAUSE SJMP PI3PI4: CLR P1.2Pll: RET;洗涤时是否再进水IFINWATER: JNB P0.2,IF1; MOV A,P1; PUSH ACC MOV P1,#00H; LCALL INWATER;进水 POP ACC MOV Pl,A;IF1: RET;不能进水报警ERRORE4: PUSH 52H PUSH 53H CLR 20H.O MOV A,Pl; PUSH ACC MOV P1,#0OH; MOV 50H, #OE4H LCALL ALARM E4PK2: LCALL DISPLAY JNB P0.1, E4PK2; LCALL DISPLAY JNB P0.1, E4PK2E4PK3: LCALL DISPLAY JB P0.1, E4PK3 LCALL DISPLAY JB P0.1, E4PK3 SETB 20H.0 POP ACC MOV Pl, ACC; POP 53H POP 52H RET;排水时延迟IsDELAYl000MS: MOV R2, #50D;DLY51: LCALL DISPLAY LCALL XDPAUSE;暂停按键 DJNZ R2, DLY51; RET;排水子程序OUTWATER: CLR A SETB P1.3 JB P0.2, OUTW1 MOV R7, #60D OUTW2: LCALL DELAYl000MS JB P0.2, OUTW4 DJNZ R7, OUTW2 LCALL ERRORE1 SJMP OUTWATEROUTW4: CLR C MOV A, #60D SUBB A, R7OUTWl: ADD A, #60D MOV R7, AOUTW3: LCALL DELAYl000MS DJNZ R7, OUTW3 RET;不能排水报警ERRORE1: PUSH 52H PUSH 53H CLR 20H.0 MOV A, P1; PUSH ACC MOV P1, #00H; MOV 50H, #0ElH LCALL ALARMElPK2: LCALL DISPLAY JNB P0.1, EIPK2; LCALL DISPLAY JNB P0.1,ElPK2ElPK3: LCALL DISPLAY JB P0.1, ElPK3 LCALL DISPLAY JB P0.1,ElPK3 SETB 20H.0 POP ACC MOV P1, ACC; POP 53H POP 52H RET;脱水时暂停按键TPKEY: JB P0.0, TPKl; LCALL DISPLAY JB P0.0, TPK1; PUSH 52H PUSH 53H CLR 20H.0 LCALL PLAY MOV A, Pl; PUSH ACC JNB ACC.0, TPK6 CLR P1.0 MOV R0, #250;延迟5秒TPK5: LCALL DISPLAY DJNZ R0, TPK5TPK6: MOV P1, #00H;TPK2: LCALL DISPLAY JNB P0.0, TPK2;TPK3: LCALL DISPLAY JB P0.0, TPK3 LCALL DISPLAY JB P0.0, TPK3 LCALL PLAY SETB 20H.0 SETB P1.3 MOV R0, #250;延迟5秒TPK4: LCALL DISPLAY DJNZ R0, TPK4 POP ACC MOV Pl, ACC; POP 53H POP 52HTPK1: RET;脱水时一开盖,脱水时安全报警IFOPEN:ERRORE2: JNB P0.1, TTPK1; LCALL DISPLAY JNB P0.1, TTPKl; PUSH 52H PUSH 53H CLR 20H.0 MOV A, Pl; PUSH ACC LCALL ALARM JNB ACC.0, TTPK6 CLR P1.0 MOV R0, #250;延迟5秒TTPK5: LCALL DISPLAY DJNZ R0, TTPK5TTPK6: MOV P1, #00H; MOV 50H, #OE2HTTPK2: LCALL DISPLAY JB P0.1, TTPK2;TTPK3: LCALL DISPLAY JB P0.1, TTPK2 LCALL DISPLAY JB P0.1, TTPK3 SETB 20H.0 SETB P1.3 MOV R0, #250;延迟5秒TTPK4: LCALL DISPLAY DJNZ R0, TPK4 POP ACC MOV Pl, ACC; POP 53H POP 52HTTPKl: RET;脱水时延迟4sDELAY4S: MOV R2, #200D; DLY431: LCALL DISPLAY LCALL TPKEY;暂停按键 LCALL IFOPEN;安全开关 DJNZ R2, DLY431; RET;脱水时延迟3sDELAY3S: MOV R2, #1501); DLY321: LCALL DISPLAY LCALL TPKEY;暂停按键 LCALL IFOPEN;安全开关 DJNZ R2, DLY321; RET;主程序开始;选择程序:3011,程序开始2011.1=1MAIN: MOV SP, #60H; CLR 20H.0 CLR 20H.1 MOV A, #00H; MOV P1,A; MOV 50H, A; MOV 51H, A; MOV 52H, A; MOV 53H, A; MOV 30H, A;LP1: ;有无按键 LCALL DISPLAY JB P0.0, LP1; LCALL DISPLAY;按键去抖动 JB P0.0, LP I;LP3: INC 30H MOV A, #OAH;共有九种可选择 XRL A, 30H; JNZ LP2 MOV 30H, #01H;PROC3: MOV A, #42D LCALL CALUTIME SETB 20H.0 LCALL INWATER;进水 MOV A, #40D LCALL CALUTIME;洗15分钟 MOV R7,#8D;XIDI: SETB P1.0 LCALL DELAY1600MS CLR P1.0 LCALL XDELAY560MS SETB P1.1 LCALL DELAY1600MS CLR P1.1 LCALL XDELAY560MS DJNZ R7, XIDI;快速洗涤15秒 MOV R7, #11DQXIDI: SETB P1.0 LCALL DELAY320MS CLR P1.0 LCALL DELAY320MS SETB Pl.l LCALL DELAY320MS CLR P1.1 LCALL DELAY320MS DJNZ R7, QXIDI MOV A, #25D LCALL CALUTIME LCALL OUTWATER;排水 MOV A, #23D LCALL CALUTIME;第一次脱水 MOV R7, #04D;间隙脱水30秒TSl: SETB P1.0 LCALL DELAY4S CLR P1.0 LCALL DELAY3S DJNZ R7, TS 1 SETB P1.0;长脱水90秒 MOV R7, COD TS2: LCALL DELAY4S DJNZ R7, TS2 CLR P1.0 MOV R7, #250;延迟5秒TS25: LCALL DISPLAY DJNZ R7, TS25 CLR P1.3 MOV A, #20D LCALL CALUTIME;第一次漂洗 LCALL INWATER MOV A, #18D LCALL CALUTIME;洗涤2分钟 MOV R7, #08DXIDI1: SETB P1.0 LCALL DELAY1600MS CLR P1.0 LCALL XDELAY560MS SETB P1.1 LCALL DELAY1600MS CLR P1.1 LCALL XDELAY560MS DJNZ R7, XIDI1;快速洗涤15秒 MOV R7, #11DQXIDIl: SETB P1.0 LCALL DELAY320MS CLR P1.0 LCALL DELAY320MS SETB Pl.l LCALL DELAY320MS CLR Pl.l LCALL DELAY320MS DJNZ R7, QXIDII MOV A, #16D LCALL CALUTIME LCALL OUTWATER;排水 MOV A, #14D LCALL CALUTIME;第二次脱水 MOV R7, #04DTS21: SETB P1.0 LCALL DELAY4S CLR P1.0 LCALL DELAY3S DJNZ R7, TS21 SETB P1.0 MOV R7, 10D;TS22: LCALL DELAY4S DJNZ R7, TS22 CLR P1.0 MOV R7, #250;延迟5秒TS26: LCAL

温馨提示

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

最新文档

评论

0/150

提交评论