ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:224.47KB ,
资源ID:8500638      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8500638.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(全自动洗衣机设计报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

全自动洗衣机设计报告.docx

1、全自动洗衣机设计报告研究生课程设计报告课程名称:单片机课程设计设计题目:全自动洗衣机学 院:专 业:班 级:学 号: 学生姓名: 指导教师:2009年 6 月 6日 摘要 1一、 方案论证21. 洗衣机模块选型42. 洗衣机模块方案选择4二、详细硬件电路设计61.开关电路设计62. 显示模块硬件图设计73. 功能指示灯硬件电路设计 84. 驱动模块硬件部分设计 8三、系统软件设计 91.主程序流程 92.强洗程序流程 103.弱洗程序流程 104.漂洗程序流程 115.甩干程序流程 126.暂停中断程序流程 137.工作子程序流程 148.进水子程序流程 14四、理论分析与计算14 1. MC

2、S-51单片机的引脚15 2. 复位电路与时钟电路 153相关计算16五、测试与分析17 1计数器显示测试与分析172发动机转动测试与分析173. 中断测试与分析18六、结论 19七、电路和程序 19八、附录 281硬件清单282程序清单293参考文献29摘要作为一个研究生,不仅需要有过硬的理论知识,还应该有动手实践的能力,并且是将理论结合实际,提升到应用层面。以后走上社会,还是会有很多新的知识是需要我们学习的,届时需要我们有比较强的自学能力。此次单片机课程设计对理论结合实际的动手能力和自学能力有很强的体现。本设计用来模拟工作过程的两套软件是Proteus和Keil。我们用到的是AT89C51

3、,属于单片机的51系列,有如下基本结构:1、一个8位算术逻辑单元。2、32个I/O(4组8位端口),可单独寻址。3,两个16位定时计数器。4、全双工串行通信。5、6个中断源,两个中断优先级。6、128字节内置RAM独立的64K字节可寻址地址和代码区。这次课程设计以组为单位,用了一个月的时间。主要有:方案论证,详细硬件电路设计,系统软件设计,理论分析与计算,测试,结论六大部分组成。具体的时间安排是这样的。首先是需求分析,得出了全自动洗衣机要完成什么样的功能,考验了同学们社会调查,综合分析的能力。洗衣机功能主要有强洗、弱洗、漂洗、甩干。接下来是怎么样用我们的知识去实现洗衣机的功能,设计完成功能的方

4、案,并且考察方案的可行性,这步只是计算、分析,体现大学生的过硬的理论知识、总结能力。为了方便编程序,我们把洗衣机的全部功能分了几个模块分别完成,主要分为处理模块、按键模块、显示模块、工作模块和时钟电路模块。有了方案,接下去就是具体的实施阶段了,包括了详细硬件电路设计,系统软件设计,理论分析与计算,测试,得出结论等步骤。硬件电路设计主要就是用PROTEUS这个绘电路图的软件,我们组是用C语言编写的程序,编好后,用另外个KEIL软件进行生成代码,在进行程序的调试,直到一切都运行正常就OK了。但是,各个部分也都是有联系的,搞需求分析的应该懂电路,搞电路的应该知道程序,搞程序的也不能脱离电路,总之,这

5、部分是一个整体,要求每一个人都必须做到至少了解整个的工作过程。一 方案论证需求分析:经过相互讨论,我们所做的洗衣机具备如下功能:a: 复位功能此键实现的是当洗衣机正常工作时,由于用户的需要,因而就需要将已经在运行的功能中断,再次重新运行所有的功能。它是由RST管脚来控制的。b: 强洗/洗功能是主要根据用户对衣服的洗衣强度的不同要求而选择所需功能来实现用户的需要。c: 甩干/漂洗功能d: 本洗衣机还有通过用户的需求来调整弱洗、强洗、漂洗、甩干的功能的工作时间的长短功能。e: 显示功能,即以上四个功能可以通过相应的功能指示灯来确定其工作状态。1, 洗衣机模块选型(1) 处理模块(2) 按键模块(3

6、) 显示模块(4) 工作模块(5) 时钟电路模块2, 洗衣机模块方案选择(1)处理模块:处理器选择AT89C51系列芯片8051。8051单片机是HMOS工艺制造,外形为40条引脚,它能够运行各种程序,8051系列的基本结构如下:1、一个 8位算术逻辑单元2、 32个 I/O口 4组8位端口可单独寻3、 两个6位定时计数器4、 全双工串行通信5、 6个中断源 两个中断优先级6、 128字节内置RAM7、 独立的4K字节可寻址数据和代码区因为受芯片引脚数量的限制,有很多引脚具有双功能。 1、主电源引脚 VCC:芯片工作电源端,接5V。Vss:电源接地端。2、时钟振荡电路引脚XTAL1:内部晶体振

7、荡电路的反相器输入端。接法如图1-5。XTAL2:内部晶体振荡电路的反相器输出端。接法如图1-5。3、控制信号引脚RST RST为复位信号输入端。外部接复位电路。ALEALE为地址锁存允许信号。 在不访问外部存储器时,ALE以时钟振荡频率的16的固定频率输出,用示波器观察ALE引脚上的脉冲信号是判断单片机芯片是否正常工作的一种简便方法。 外部程序存储器ROM的读选通信号。到外部ROM取指令时,自动向外发送负脉冲信号。 为访问程序存储器的控制信号4、中断系统基本的8051支持 6 个中断源,两个外部中断 ,两个定时/计数器中断, 一个串行口输入/输出中断。中断发生后, 处理器转到将五个中断入口处

8、之一执行中断处理程序 。中断向量位于代码段的最低地址处。串行口输入 输出中断共用一个中断向量 中断服务程序必须在中断入口处或通过跳转,分支转移到别处 805 1/8052 的中断向量表 。5、并行I端口引脚P0口(P0.0 P0.7);P1口(P1.0 P1.7);P2口(P2.0 P2.7);P3口(P3.0 P3.7)。6,复位电路 单片机的RST引脚是复位信号输入端,RST引脚上保持两个机器周期(24个时钟周期)以上的高电平时,可使单片机内部可靠复位。(2)按键模块 为了方便步线和简化程序,本模块采用独立式键盘,按键采用触发式按键, 该模块实现9个功能,分别为:复位,弱洗,强洗,漂洗,甩

9、干,改时间,加一秒,加十秒,暂停。复位主要是采用上电复位电路。(3)显示模块 该模块主要完成当前正在进行的洗衣过程操作和时间状态的显示,操作的显示主要有:强洗,弱洗,漂洗,甩干,进水,排水,工作,暂停。其中用到了74LS138译码器,以节约8051的I/O口。指示灯用发光二极管LED-YELLOW。时间状态显示主要用1个共阴的7SEG-MPX2-CA。辅助元件:反向器(4)工作模块 该模块由2个电磁开关JWD-171-25和一个电动机MOTOR组成。 电磁开关的优点的是用低电位去控制高电位,这是因为8051用的是+5V 而MOTOR用的是220V的工作电压,电动机主要完成正转与反转功能。(5)

10、时钟电路模块 时钟电路用于产生时钟信号,时钟信号是单片机内部各种微操作的时间基准,在此基础上,控制器按照指令的功能产生一系列在时间上有一定次序的信号,控制相关的逻辑电路工作,实现指令的功能。电容容量范围为30PF10PF,石英晶体频率的范围为1212MHZ,常用6MHZ或12MHz。二、 详细硬件电路设计 开关电路开关电路是由七个单键构成,其工作原理如下:1 由于AT89C51的18管脚是高电平,我们以低电平输入所以单键左端接地。2 右端通过一个1K欧的保护电阻接入高电平3 当电键未按下时18管脚保持高电平没有输入,当按下上图任意按键时对应线路短结于地从而产生低电平输入。412号管脚所接单键是

11、直接接地的(上图未有)其工作原理是低电平有效,当按下键时输入低电平5其中用到的元件有10WATT1K电阻和BUTTION各7个。 显示模块硬件图1 两位七段数码显示管由ABCDEFG数字选择部分管脚和小数点DP管脚以及片选管脚1,2组成。2 ABCEFG,DP管脚是低电平有效,接AT89C51的3239管脚,片选是高电平有效所以通过两反向器接21,22管脚3 3239与显示管数字选择部分的接入中间加电阻保护元件4 其中用到的元件有7SEG-MEPX2-CA双位数码管一个,74LS04反向器两个 功能指示灯硬件部分1 功能指示显示工作状态,由AT89C51的2528号端口以及74LS138译码器

12、的1114号端口输出。2 以上所述端口的输出都是低电平有效,所以灯左端接电源,右端接管脚。3 灯和电源之间有电阻保护元件4 其中用到的元件有74LS138译码器一个,LEDYELLOW灯8个 驱动模块硬件部分1 如上图,驱动模块主要由电动机和控制电路组成。2 AT89C51的10,11号管脚控制电磁继电器1。16,17号管脚控制电磁继电器2。3 当AT89C51的10,11号管脚有效时双刀开关1闭合,电动机接正向电源正转 当AT89C51的16,17号管脚有效时电磁开关2闭合,电动机接反向电源反转。4 用到的元件有,JWD-171-25电磁继电器两个,5V的MOTOR两个。三、系统软件设计 主

13、程序流程图 暂停中断流程图四、理论分析与计算1 8051系列的基本结构如下1 一个8位算术逻辑单元2 32个I/O口4组8位端口可单独寻址3 两个16位定时计数器4 全双工串行通信5 6个中断源两个中断优先级6 128字节内置RAM7 独立的64K字节可寻址数据和代码区(一)MCS-51单片机的引脚8051单片机是HMOS工艺制造,外形为40条引脚。因为受芯片引脚数量的限制,有很多引脚具有双功能。1、主电源引脚VCC:芯片工作电源端,接5V。Vss:电源接地端。2、时钟振荡电路引脚XTAL1:内部晶体振荡电路的反相器输入端。XTAL2:内部晶体振荡电路的反相器输出端。3、控制信号引脚RST -

14、RST为复位信号输入端。外部接复位电路。ALE-ALE为地址锁存允许信号。 在不访问外部存储器时,ALE以时钟振荡频率的16的固定频率输出,用示波器观察ALE引脚上的脉冲信号是判断单片机芯片是否正常工作的一种简便方法。- 外部程序存储器ROM的读选通信号。到外部ROM取指令时,自动向外发送负脉冲信号。 -为访问程序存储器的控制信号。4、并行I端口引脚P0口(P0.0 P0.7);P1口(P1.0 P1.7);P2口(P2.0 P2.7);P3口(P3.0 P3.7)。(二)复位电路与时钟电路1复位电路(1)复位电路 单片机的RST引脚是复位信号输入端,RST引脚上保持两个机器周期(24个时钟周

15、期)以上的高电平时,可使单片机内部可靠复位。(2)复位状态复位后,单片机内部的各寄存器的内容将被初始化,包括程序计数器PC和特殊功能寄存器,其中(PC)=0000H。复位不影响片内RAM和片外RAM中的内容。2时钟电路时钟电路用于产生时钟信号,时钟信号是单片机内部各种微操作的时间基准,在此基础上,控制器按照指令的功能产生一系列在时间上有一定次序的信号,控制相关的逻辑电路工作,实现指令的功能。电容容量范围为30PF10PF,石英晶体频率的范围为1212MHZ,常用6MHZ或12MHz。3时序单位(1)时钟周期(是时钟信号频率fosc的倒数)时钟周期 = 1 / fosc(2)机器周期:机器周期

16、= 12 时钟周期(3)指令周期一条指令从被读取到被执行的整个过程所需的时间称为指令周期 4 外部中断 IP寄存器可位寻址 - - PT2 PS PT1 PX1 PT0 PX0- 保留- 保留PT2 定时器2中断优先级PS 串行通信中断优先级PT1 定时器1中断优先级PX1 外部中断1优先级PT0 定时器0中断优先级PX0 外部中断0优先级 5 中断使能寄存器 通过设置中断使能寄存器IE的EA位使能所有中断每个中断源都有单独的使能位可通过软件设置IE中相应的使能位在任何时候使能或禁能中断,中断使能寄存器IE的各位如下所示中断使能寄存器IE可位寻址 EA - ET2 ES ET1 EX1 ET0

17、 EX0EA 使能标志位置位则所有中断使能复位则禁止所有中断- 保留ET2 定时器2中断使能ES 串行通信中断使能ET1 定时器1中断使能EX1 外部中断1使能ET0 定时器0中断使能EX0 外部中断0使能6 内置定时/计数器定时器控制寄存器TCON可位寻址 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TF1 定时器1溢出中断标志响应中断后由处理器清零TR1 定时器1控制位置位时定时器1工作复位时定时器1停止工作TF0 定时器0溢出标志位定时器0溢出时置位处理器响应中断后清除该位TR0 定时器0控制位置位时定时器0工作复位时定时器0停止工作IE1 外部中断1触发标志位当检测到

18、P3.3有从高到低的跳变电平时置位处 理器响应中断后由硬件清除该位IT1 中断1触发方式控制位置位时为跳变触发复位时为低电平触发IE0 外部中断1触发标志位当检测到P3.3有从高到低的跳变电平时置位处 理器响应中断后由硬件清除该位IT0 中断0触发方式控制位置位时为跳变触发复位时为低电平触发2相关计算:1 定时时间公式:t0=(213-x0)Tm=(213-x0)1/fosc12 式中x0为计数初值,Tm为机器周期,fosc为晶振频率。 2.初值计算: 初值x0=最大计数值-(定时时间t/机器周期Tm)五、测试与分析1计数器显示测试与分析部分原程序如下:void display(void)in

19、t i,j;i=amount/10;j=amount%10;p20=0;p21=1;P0=dis_7i;p21=1;p20=1;p20=1;p21=0;P0=dis_7j;p21=1;p20=1;计数器的十位和个位出现闪烁不定,根本看不清时间是怎么变化的。经过调用延时程序来实现计数器功能。调整后程序如下:void display(void)int i,j;i=amount/10;j=amount%10;p20=0;p21=1;P0=dis_7i;delay1ms(1);p21=1;p20=1;delay1ms(1);p20=1;p21=0;P0=dis_7j;delay1ms(1);p21=1

20、;p20=1;delay1ms(1);分析:当调用上面延时程序时,计数器的个位和十位闪烁时间在人眼看来视差变化不大,能看清计数器显示的时间。2发动机转动测试与分析当要知道发动机是否工作时,控制电磁开关的P36,P37,P30,P31当(P36=0,P37=1|P30=0,P31=1)时,发动机就可以转动,同时工作灯亮,具体引用弱洗程序实例如下:p25=1;p36=1;p37=0; p33=0;p34=1;p35=0;p27=0;/worksum=0;time=15;time=time+15;log=2;while(sumtime-15)if(flag)sum+;flag=0;scan();am

21、ount=time-sum;display();分析:当(P36=0,P37=1|P30=0,P31=1),电磁铁把开关吸过来,再接通电源,发动机就能工作。3中断测试与分析中断又分为外部中断和内部中断,外部中断为INT0和INT1。当发生外部中断时,同时暂停灯亮,具体程序实例如下:void stop(void)interrupt 0 using 2EA=0;if(p32=0)delay1ms(5);while(p32=0);p24=0;if(log=2|log=3)p36=1;p37=1;p31=1;p30=1;while(p32=1)d=amount/10;k=amount%10;p20=0

22、;p21=1;P0=dis_7d;delay1ms(1);p21=1;p20=1;delay1ms(1);p20=1;p21=0;P0=dis_7k;delay1ms(1);p21=1;p20=1;delay1ms(1);while(p32=0);if(log=2)p36=1;p37=0;p24=1;if(log=3)p31=1;p30=0;p24=1;p24=1;EA=1;分析:当发生外部中断时,由于外部中断INT0的优先级最高,所有程序都停下,处于暂停状态,同时暂停灯亮。六、结论 通过这次单片机课程设计,我们组合理的分工,每位组员根据自己的分工,尽心尽责,每位组员都出色的完成了任务,最终完

23、成了全部预计任务:结合了各种芯片与管脚,实现了自动洗衣机的基本功能。程序使用c语言,成功的完成了程序编写功能。总的说来,有四大亮点和四大遗憾。 四大亮点包括:1.完整的硬件电路:我们的电路使用了各种可能的芯片,使自动洗衣机的功能完善。2.同步的时间显示:我们各状态的时间都可以通过8051的控制程序在2位led显示器上用倒数的显示;3.可编程的时间模块:我们的时间模块可通过编程键改变各状态的时间,实现了智能化。4.可完全回复断点的暂停功能。 四大遗憾:1.没有使用矩阵键盘,由于时间的关系,键盘只使用了独立键盘,浪费过多输出口;2.没有实现喇叭的蜂鸣:由于程序过大,取消了由定时中断实现的蜂鸣功能;

24、3.更改时间时显示器没有实现闪烁:原本采用T1中断实现的闪烁功能,无法编程实现。4时间能改变,但只能增加,无法减少:减的算法要复杂的多。 总的来说,我们得到许多启迪:刚开始学一样东西,总是没有头绪,感觉找不到方法,不知道做什么好。这时要做的就是坚辞,坚辞,再坚辞。坚辞学习,多方查找资料,多思考,在经过这样的一段时间后,就会有茅塞顿开的感觉。 在设计电路的时候,要尽量一开始就把所有变数考虑到,不然会直接影响到后期的编程。我们刚开始设计时,没有考虑到有一些灯应该同时亮的,把所有的发光二极管全连在一个74ls138译码器上,结果到编程阶段又重新改电路,很是麻烦。电路的设计要在对8051cpu很熟悉的

25、基础上,比如,8051的一些用于中断的引脚要实现一些特殊功能的,必须单独设计。另外,电路设计要尽量简化,让人觉得耳目一新。 编程阶段,是我们感觉最复杂的阶段。很多功能明明觉得设计的很好,算法正确,可就是无法实现。结果走了很多弯路。这一阶段,我觉得应该先多读别人的优秀程序,多想别人的设计思路。思路还是最关键的。有了思路,再结合自己的程序,就容易实现。编程让我们对8051单片机有了更多的了解,也懂得了很多算法。我们在这一阶段成长了很多。 最后的实验报告书写阶段,我们完成了ppt的制作等工作。 这次单片机设计,我们学到的不仅是8051的功能,电路,程序,还掌握了学习的方法,懂得面对一个项目时,如何独

26、立的完成。我们有了一定的研究能力,能有方向的获取信息。懂得了与同学合作的重要性,如何发挥每一个人的能动力,明白了一个优秀的团队胜过任何一个人。这次课程设计,是我们人生的宝贵财富,将在我们今后的学习道路中,起到很重要的作用。七、电路和程序#includeint count=1;bit flag=0;int log=0;int help=0;char code dis_710=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;sbit p20=P20;sbit p21=P21;sbit p33=P33;sbit p34=P34;sbit p35=P

27、35;sbit p36=P36;sbit p37=P37;sbit p31=P31;sbit p25=P25;sbit p26=P26;sbit p27=P27;sbit p14=P14;sbit p15=P15;sbit p17=P17;sbit p10=P10;sbit p11=P11;sbit p12=P12;sbit p32=P32;sbit p24=P24;int sum=0;int count;sbit p30=P30;int amount;int time=15;int h=0;int d=0;int k=0;sbit p13=P13;void delay(void)interrupt 1 using 1TL0=0xAF;TH0=0x3C;count+;if(count=10)count=0;flag=1;void delay1ms(

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1