微机原理专业课程设计全自动洗衣机.doc

上传人:牧羊曲112 文档编号:1598904 上传时间:2022-12-10 格式:DOC 页数:54 大小:609KB
返回 下载 相关 举报
微机原理专业课程设计全自动洗衣机.doc_第1页
第1页 / 共54页
微机原理专业课程设计全自动洗衣机.doc_第2页
第2页 / 共54页
微机原理专业课程设计全自动洗衣机.doc_第3页
第3页 / 共54页
微机原理专业课程设计全自动洗衣机.doc_第4页
第4页 / 共54页
微机原理专业课程设计全自动洗衣机.doc_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《微机原理专业课程设计全自动洗衣机.doc》由会员分享,可在线阅读,更多相关《微机原理专业课程设计全自动洗衣机.doc(54页珍藏版)》请在三一办公上搜索。

1、微机原理专业课程设计全自动洗衣机 微机原理课程设计目录第一章 设计内容及要求2 设计内容及要求2 课程设计的要求3第二章 系统的总体设计方案3 8086对全自动洗衣机进行控制的主要分析3 设计思想3第三章 硬件设计4 硬件设计概要4 所用到的芯片及其个自功能介绍4 硬件电路设计系统原理图及其说明1011第四章 软件设计121214第五章 系统调试与使用25第六章收获体会26第一章 设计内容及要求1.1 设计内容及要求选用 8086 和适当的存贮器及接口芯片完成1、六挡水位显示(50、45、40、35、30、25升);五档洗衣时间(18、15、12、9、6分钟);三档清洗(3、2、1分钟)、五档

2、脱水(6、5、3、2、1 分钟);两位数码管显示总时间;有上电、启动和暂停按钮。2、工作顺序:插上电源各档均在最大值,选择各档的按钮可以依次向下调节档位,然后按下启动按钮洗衣机按设定的程序进行工作。3、开始数码管显示为总的洗衣所用时间,在洗衣机工作时,数码管显示的时间为洗衣所剩时间。4、为了安全起见,当洗衣机盖打开时,洗衣机停止工作,在洗衣机盖关闭后,在继续进行工作。5、洗衣机可根据水位和工作要求自动进行开启和关闭水阀。 课程设计的要求 设计出电路原理图,说明工作原理,编写程序及程序流程图。第二章 系统的总体设计方案 8086对全自动洗衣机进行控制的主要分析 图 1全自动洗衣机示意图输入设备主

3、要有电源按钮、启动按钮、水位选择、水位开关、排水按钮、及脱水按钮。输出设备主要有电源指示灯、水位选择按钮信号灯、进水电磁阀、洗涤电动机正转接触器、排水电磁阀、脱水离合器及蜂鸣器等。 设计思想 首先构思系统的总体结构,根据设计要求确定好系统大致的硬件组成及其结构,其次根据系统的各个功能把软件分成几个不同的模块,依次实现各个模块的功能,最后把各个模块组合起来完成整个系统的功能。第三章 硬件设计 硬件设计概要 用Intel的8086作为控制芯片,配合其他接口电路以及配套的芯片组成洗衣机的控制电路。主要用到8255串行通信芯片,74LS137 38译码器发出片选信号,AD0809以及DA0832进行模

4、数、数模转换芯片。用一个电位计和AD0809模拟水量信号,DA0832和LM324运放来控制直流电机的正反转和停止。此外还用到了4*4扫描键盘作为输入设备,两个共阴数码管作为显示设备。详情见各个芯片的介绍。 所用到的芯片及其个自功能介绍 芯片列表 8086,8284,74LS138,8255,AD0809,DAC0832,74LS02,LM324 8086的功能简介 8086是Intel系列的16位微处理器,采用HMOS工艺,内部包含29000个晶体管。内部总线16位,外部总线8位。主要用于兼容当时的外围接口芯片。8086CPU有两部分组成,指令执行部件EU和总线接口部件BIU。8086的基本

5、性能指标如下所示:;,;+5V电源,40条引脚双列直插式封装(DIP);10MHz,可寻址的地址空间达1MB、输入/输出处理器或其他处理器组成多处理器系统,从而极大地提高了系统的数据吞吐能力和数据处理能力。AH ALBH BLCH CLDH DLSPBPDISI通 用 寄 存 器AXBXCXDXALU数据总线(16位)运算寄存器ALU标志寄存器EU 控制系统CSDSSSESIP内部暂存器1 2 3 4 5 6数据总线8088:8位8086:16位总线 控制逻辑地址总线20位指令队列80888086Q总线(8位)指令指针段寄存器执行单元EU总线接口单元BIU图 2 8086CPU内部结构框图在这

6、个系统中8086作为整个系统的主控芯片,用来控制协调整个系统的工作。 8284的功能介绍 为8086CPU提供外部的基准时钟信号,并把时钟信号进行功率放大。 74LS138的功能介绍74LS138为3线8线译码器,共有54/74S138和54/74LS138两种线路结构形式。其功能表如图所示,引脚分配如图 所示: 表一74LS138的功能表 图3 74LS138的引脚分配图 8255的功能简介8255的功能介绍如下:1. Intel 8255A是一个通用的可编程的并行接口芯片,内部有2个8位I/O口(A、B),两个4位I/O口(PC74、PC30).2. 通过编程可设置3种工作方式,可适用于C

7、PU与I/O设备之间的多种数据传送方式的要求。3. C口可作为数据口,可作为信号线( CPU与I/O设备之间的应答信号),可作为状态口,可按位置位/复位。4. 价格低廉,使用方便,可以直接与Intel系列的芯片连接使用,在中小系统中有着广泛的应用。 8255的内部结构如图: 图4 8255的内部结构图8255的引脚分配1. 引脚(40DIP)(1)D0D7:8位,双向,三态数据线,用来与系统数据总线相连;(2)端口A、B、C:PA0PA7( A组数据信号,用来连接外设); PB0PB7( B组数据信号,用来连接外设);PC0PC7(C组数据信号,用来连接外设或者作为控制信号)。 (3)CS、R

8、ESET、WR、RD、A1、A0(内部4个端口)。(4)VCC、GND。8255A的工作方式: 8255A有三种工作方式,用户可以通过编程来设置。方式0简单输入/输出查询方式;A,B,C三个端口均可。方式1选通输入/输出中断方式;A ,B,两个端口均可。方式2双向输入/输出中断方式。只有A端口才有。工作方式的选择可通过向控制端口写入控制字来实现。 AD0809的功能简介,它由一个八路模拟开关,一个地址译码器,一个A/D转换器和一个三态输出所存器组成,多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换,三态输出用于锁存A/D转换完的数据,当OE端为高电平时,才可以从三态

9、输出锁存器取走转换完成的数据。IN0-IN7:8条模拟量输入通道ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入端前加采样保持电路。地址输入和控制线:4条ALE为地址锁存允许输入线,高电平有效,当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道模拟量通过转换器进行转换。A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。通道选择表如下表所示。CBA选择的通道000IN0001IN1010IN2011IN3100IN4101

10、IN5110IN6111IN7数字量输出及控制线:11条ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在跳转期间,ST应保持低电平,EOC为转换结束信号,当EOC为高电平时,表明转换结束;否则表明正在进行A/D转换,OE为输出允许信号,用于控制三条输出锁存器想单片机输出转换得到的数据,OE=1,输出转换得到的数据OE=0输出数据线呈高阻状态。D7-D0为数字量输出线CLK为时钟输入信号线,因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常频率为500KHZ。VREF(+),VREF(-)为参考电压输入。 DAC0832芯片的功能简介DA

11、C0832是采样频率为八位的D/A转换芯片,集成电路内有两级输入寄存器,使DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。所以这个芯片的应用很广泛, DAC0832 D/A转换结果采用电流形式输出。若需要相应的模拟电压信号,可通过一个高输入阻抗的线性运算放大器实现。运放的反馈电阻可通过RFB端引用片内固有电阻,也可外接。DAC0832逻辑输入满足TTL电平,可直接与TTL电路或微机电路连接。DAC0832的引脚如图图 5DAC0832的引脚图 74LS02芯片简介四2输入或非门(OC)其引脚如图 所示,功能表如图 所示图

12、6 74LS02的引脚图图7 74LS02的功能表 LM324芯片功能简介LM324系列器件为价格便宜的带有真差动输入的四运算放大器。与单电源应用场合的标准运算放大器相比,它们有一些显著优点。,静态电流为MC1741的静态电流的五分之一。共模输入范围包括负电源,因而消除了在许多应用场合中采用外部偏置元件的必要性。它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo的信号与该输入端的位相反;Vi+(+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。LM324的引脚排列见

13、图。图 8LM324引脚图 硬件电路设计系统原理图及其说明 图 9系统总体框架在具体实践中,因硬件资源的限制有所调整,比如有些电路采用其他电路来模拟,进水部分有电位器来模拟,电机驱动用直流系统来模拟。 图10 系统电路图第四章 软件设计软件可分为10个模块:主程序、键盘扫描子程序、参数设置子程序、延时子程序、显示子程序、进水子程序、排水子程序、甩干子程序、停止子程序、开机延时保护子程序。其中进水、洗衣、排水为一次洗衣的三个不同状态、由相应的子程序来控制电机的运动和进水排水,流程图如图11所示。CODE SEGMENT ASSUME CS:CODEWASHTIME DW 20HWASHTYPE

14、DW 08HONTIME DW 00HTIME DW 0ADPORT EQU 0010HORG 1000HIOCONPT EQU 0FF2BHIOAPT EQU 0FF28HIOBPT EQU 0FF29HIOCPT EQU 0FF2AHORG 10A0H MAIN PROC MOVAL,01H CALL CONVERS CALL DISP CALL KEY MOV DL,10 MUL DL MOV WASHTIME,AX CALL KEY CBW ADD WASHTIME,AX K1:MOV AL,02 CALL CONVERS CALL DISP CMP AL,2 JA K1 CMP AL

15、,1 JBK1 CMP AL,1 JE RUOX1 CMP AL,2 JE QIANGXI RUOX: MOVWASHTYPE,08H JMP NEXTQIANGXI:MOV WASHTYPE,0FHNEXT:MOVAL,03CALL CONVERSCALL DISPCALL KEYMOV DL,10MUL DLMOV ONTIME,AXCALL KEYCBWADD ONTIME,AXMOV CX,ONTIMELOOP K2K2:CALL DELAYADD AX,WASHTIMEADD AX,WASHTIMEADD AX,WASHTIMEMOV TIME,AXCALL STEP1 ;洗衣MOV

16、 CX,WASHTIMELOOP WASHCALL STEP3CALL SHUAIGANCALL STEP1;漂洗MOV CX,WASHTIMELOOP WASHCALL SETP3CALL SHUAIGANCALL STEP1;漂洗MOV CX,WASHTIMELOOP WAHSCALL STEP3CALL SHUANGANCALL STOPJMP MAINMAIN ENDP;/WASH PROC PUSH AX PUSH BX PUSH CX PUSH DX MOV DX,DAPORTDACON1: MOV AL,0FFH OUT DX,AL MOV CX,WASHTYPE LOOP W1

17、 W1:CALL DELAY DACON2:MOV AL,80H OUT DX,AL MOV CX,8H LOOP W2 W2:CALL DELAY DACON23:MOV AL,00H OUT DX,AL MOV CX,WASHTYPE LOOP W3 W3:CALL DELAY MOV AL,80H OUT DX,AL MOV CX,8H LOOP W4 W4:CALL DELAY DEC TIME MOV AX,TIME CALL CONVERS CALL DISP POP DX POP CX POP BX POP AX RET WASH ENDP ;/ SETP1 PROC PUSH

18、AX PUSH BX PUSH CX PUSH DXADCONTROL:CALL FORMAT ADCON:MOV AX,00 MOV DX,ADPORT MOV DX,ADPORT IN AL,DX PUSH AX CALL CONVERS CALL DISP POP AX CMP AL,0EEH JAE LA CALL JINSHUI LA:MOV DX,IOCONPT;水满,关水 MOV AL,89H OUT DX,AL MOV DX,IOCPT IN AL,DX AND AL,0FEH PUSH AX MOV DX,ICONPT MOV AL,80H OUT DX,AL MOV DX,

19、IOCPT POP AX OUT DX,AL POP DX POP CX POP BX POP AX RET STEP1 ENDP ;/ JINSHUI PROC PUSH AX PUSH BX PUSH CX PUSH DX MOV DX,IOCONPT MOV AL,89H OUT DX,AL MOV DX,IOCPT IN AL,DX OR AL,01H PUSH AX MOV DXIOCPT MOV AL,80H OUT DX,AL MOV DX,IOCPT POP AX OUT DX,AL POP DX POP CX POP BX POP AX JMP ADCON JINSHUI E

20、NDP ;/ CONVERS: PUSH AX PUSH BX PUSH CX PUSH DX MOV AH,AL AND AL,0FH MOV BX,077AH MOV DS:BX,AL POP DX POP CX POP BX POP AX RET DISP: PUSH AX PUSH BX PUSH CX PUSH DX MOV DX,077FH MOV AH,20H DISP0: MOV CX,00FFH MOV BX,DX MOV BL,DS:BX MOV BH,0H PUSH DX MOV DX,0FF22H MOV AL,CS:BX+1060H OUT DX,AL MOV DX,

21、0FF21H MOV AL,AH OUT DX,AL DISP1: LOOP DISP1 POP DX DEC DX SHR AH,01H JNZ DISP0 MOV DX,0FF22H MOV AL,OFFH OUT DX,AL POP DX POP CX POP BX POP AX RET DATA1: DB 0C0H,0F9H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0AH DB 86H,0FFH,0CH,89H,0DEH,0C7H,8CH,0F3H,0BFH FORMAT: PUSH AX PUSH BX PUSH CX PUSH DX M

22、OV BX,0 MOV WORD PTR DS:BX+077AH,0000H ADD BX,2 MOV WORD PTR DS:BX+077AH,0009H ADD BX,2 MOV WORD PTR DS:BX+077AH,0008H POP DX POP CX POP BX POP AX RET ;/ STEP3 PROC PUSH AX PUSH BX PUSH CX PUSH DXADCON1TORL:CALL FORMAT ADCON1:MOV AX,00 MOV DX,ADPORT OUT DX,AL MOV CX,0500H DELAYSS: LOOP DELAYSS MOV D

23、X,ADPORT IN AL,DX PUSH AX CALL CONVERS CALL DISP POP AX CMP AL,08H JBE LAA CALL PAISHUI LAA:MOV DX,IOCONPT;停止排水 MOV AL,89H OUT DX,IOCPT IN AL,DX AND AL,0FDH PUSH AX MOV DX,IOCONPT MOV AX,80H OUT DX,AL MOV DX,IOPT POP AX OUT DX,AL POP DX POP CX POP BX POP AX SETP3 ENDP ;/ PAISHUI PROC PUSH AX PUSH BX

24、 PUSH CX PUSH DX MOV DX,IOCONPT MOV AL,89H OUT DX,AL MOV DX,IOCPT IN AL,DX OR AL,02H PUSH AX MOV DX,IOCONPT MOV AL,80H OUT DX,AL MOV DX,IOCPT POP AX OUT DX,AL POP DX POP CX POP BX POP AX JMP ADCON1 PAISHUI ENDP ;/ SHUAIGAN PROC PUSH AX PUSH BX PUSH CX PUSH DX MOV DX,DAPORT MOV AL,0FFH OUT DX,AL MOV

25、CX,08H LOOP SHUAI SHUAI:CALL DELAY MOV DX,AL POP DX POP CX POP BX POP AX RET SHUAIGAN ENDP ;/ DELAY: POP DX POP CX POP BX POP AX MOV CX,0FFFFFH DELAY1:LOOP DELAY1 PUSH AX PUSH BX PUSH CX PUSH DX RET ;/ STOP PROC PUSH AX PUSH BX PUSH CX PUSH DX MOV CX,0FFFFFH LOOP DE DE:CALL DELAY POP DX POP CX POP B

26、X POP AX RET STOP ENDP ;/ KEY :PUSH AX PUSH BX PUSH CX PUSH DX MOV AL,0FFH MOV DX,0FF22H OUT DX,AL MOV BL,00H MOV AH,0FEH MOV CX,08H KEY1:MOV AL,AH MOV DX,0FF21H OUT DX,AL SHL AL,01H MOV AH,AL NOP NOP NOP NOP NOP MOV DX,0FF23H IN AL,DX NOT AL NOP NOP NOP AND AL,0FH JNZ KEY2 INC BL LOOP KEY1 JMP KEY

27、KEY2:TEST AL,01H JE KEY3 MOV AL,00H JMP KEY6 KEY3:TEST AL,02H JE KEY4 MOV AL,08H JMP KEY6 KEY4: KEY2:TEST AL,04H JE KEY5 MOV AL,10H JMP KEY6 KEY5: TEST AL,08H JE KEY MOV AL,18H KEY6:ADD AL,BL CMP AL,10H JNC FKEY MOV BL,AL MOV BH,0H MOV AL,NYTE PTR DS:BX+DATA2 POP DX POP CX POP BX POP AX FKEY : RET D

28、ATA2:DB 07H,04H,08H,05H,09H,06H,0AH,0BH DB 01H.00H,02H,0FH,03H,0EH,0CH,0DH CODE ENDS END MAIN 第五章 系统调试与使用在软件编译连接后就开始对整个系统进行调试,包括软件和硬件部分,在我们调试的过程中,遇到的最大困难是软件部分的调试,因为我们在写程序的过程中,受到一些高级语言编程思想的影响,比如从上至下。逐步细分的思想,在我们的程序中,系统被分成了好几个模块,每个模块都是有各自不同的子程序来完成,所以在程序部分,我们每个都进行了现场保护,但是我们在调试过程中发现,这些程序并不是想我们写高级语言那样,可以随

29、意进行调用,比如我们在写程序中遇到的最大问题就是关于LOOP指令与CALL指令的混合使用,一般情况下,LOOP指令的调用格式如下:MOV CX,10;将循环次数存入CX寄存器LOP: * ;标号LOOP LOP而在我们自己的程序中,我们是想通过这条指令来控制DELAY的循环次数已达到对延时的控制,为此写了如下的代码:MOV CX,10LOP:CALL DELAYLOOP LOP尽管我们在DELAY函数中用了PUSH与POP指令将各个寄存器入栈及完成后出栈等操作,但是在实际的调试过程中系统并不是按照我们本来的意愿运行,究其原因,我们判断时系统在返回时除了问题,由于我们没有对ret指令做过多的研究

30、,我们将程序改成:MOV BX,10LOP:CALL DELAYDEC BXJNZ LOP将修改后的程序进行运行,系统正常。第六章 收获体会这次微机原理课程设计历时两个星期,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。以前在上课的时候,老师经常强调在写一个程序的时候,一定要事先把程序原理方框图化出来,但是我开始总觉得这样做没必要,很浪费时间。但是,这次课程设计完全改变了我以前的那种错误的认识,以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,画程

31、序方框图是很有必要的。因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。其次,以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,通过网络和与同学的讨论基本上得到解决,提高了自己解决和分析问题的能力。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号