欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    基于.STM32自动洗衣机的课程设计的报告报告.docx

    • 资源ID:1010421       资源大小:61.24KB        全文页数:14页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于.STM32自动洗衣机的课程设计的报告报告.docx

    ?嵌入式系统原理?课程设计报告题目学院(部)专业班级学生姓名学号指导教师(签字)目录题目3摘要3关键字3设计要求3第一章系统概述31总框图设计42实物图4第二章单元电路设计与分析51显示局部52PWM输出局部73按键控制局部8第三章主体代码12第四章完毕语18全自动洗衣机控制程序设计摘要:STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARMCorteX-M3内核。本次使用的是STM32F103“增强型”系列。增强型系列时钟频率到达72MHz,从闪存执行代码,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mAMHz。工作原理:是通过改变输出方波的占空比使负载上的平均电流功率从O-IO0%变化,从而改变直流减速电机速度。利用脉宽调制(PwM)方式,实现调速,它的优点是电源的能量功率,能得到充分利用,电路的效率高。关键字:占空比PWM输出控制STM32电机人机交互设计概述及基本要求用单片机编程实现洗衣机的控制过程,要求:1具有进水洗涤脱水等功能。2程序可选择其中一个功能执行。3通过电机转动时间比例实现洗涤强度控制功能。4通过洗涤时间和冲洗次数实现标准和经济选择功能。第一章系统概述1.1总框图设计根据设计要求,我们把设计主要分为四个模块:显示模块,直流减速电机转动模块,操控模块,安全响应模块。其原理图如下:实物图:系统简介:制开电源之后,电源指示灯亮,屏幕显示:(SMARTWASHINGMACHINE);此时,按下KEYO进入标准洗涤模式(CLASSlcALMODEL),洗涤两遍.按下WKJP进入经济型洗涤模式.按下KEY1进入手动选择模式(HANDLEIloDEL),在此模式下,KEYO为选择遥控控制,遥控器上,3:进水(WATERIN),2:洗涤(WASHINGTlME),1,脱水(DEWATERING);同时,在手动控制中,也可以用按键操作:KEYl为洗涤;WK_UP为脱水.RESET为安全按钮,用于在高速脱水时的紧急停顿.全自动模式流程:1.EDI(Mt灯)亮,显示进水(WATERIN),进水大约20秒;进水完毕后LEDl熄灭,电机间歇转动(WASHlNGTlIIE),显示洗涤;洗涤完毕后进展脱水,LED1闪烁且电机持续快速转动,显示脱水(DEWATERlNG);脱水完毕LEDl熄灭,洗衣过程完毕(FINlSHED),LED1短的亮起后熄灭表示洗衣完毕,屏幕显示(FINISHED).经济型模式与标准模式比照:标准模式共洗涤两遍.进水量,洗涤时间,在洗涤时电机转动时间以及脱水时间都较长.经济型模式只洗涤一遍,进水量小于标准模式,占空比大于标准模式,脱水时间小于标准模式,从而实现经济型洗涤模式.第二章单元电路设计与分析显示局部:此时为手动模式下进展脱水操作经济型洗涤中的洗涤操作相关代码:ul6POINT-COLOR=0x0000,BACK_COLOR=OxFFFF;ul6DeviceCode;#ifLCD-FASTJO=1快速IO写存放器函数voidLCD_WR_REG(u8data)(1.CD_RS_CLR;写地址1.CD_CS_CLR;DATAOUT(data);1.CD_WR_CLR;1.CD_WR_SET;1.CD_CS_SET;)#else正常IO写存放器函数voidLCD_WR_REG(u8data)(1.CD_RS=0;写地址1.CD_CS=0;DATAOUT(data);1.CD_WR=0;1.CD_WR=1;1.CD_CS=1;)voidLED_Init(void)(RCC->APB2ENR=1<<2;使能PORT时钟RCC->APB2ENR=1<<5;使能PORTD时钟GPIOA->CRH&=OXFFFFFFFO;GPIOA->CRH=0X0000()003P8推挽输出GPIOA->ODR=1<<8;/PA8输出高GPIOD->CRL&=OXFFFFFOFF;GPIOD->CRL=0X00000300PD.2推挽输出GPIOD->ODR=1<<2;/PD,2输出高)PWM输出局部:相关代码:voidPWMIIit(U16arr,ul6psc)(RCC->APB1ENR=1<<1;/TIM3时钟使能GPIOA->CRL&=OXOFFFFFFF;/PA7输出GPIoA>CRL=0XB0000000;/复用功能输出GPIOA->ODR|=1«7;/PA7上拉TIM3->ARR=air;/设定计数器自动重装值TlM3->PSC=psc;预分频器不分频TIM3->CCMR1=7<<12;/CH2PWM2模式TIM3->CCMR1=1<<11;/CH2预装载使能TIM3->CCER=1<<4;/OC2输出使能TIM3->CRl=0x8000;/ARPE使能TIM3->CRl=0x01;使能定时器3)控制局部:红外遥控:按键:相关代码:voidEXTIlJRQHandIer(VOid)u8res=O;u8OK=O;u8RODATA=O;while(l)(if(RDATA)W高脉冲出现(res=Pulse_Width_Check();获得此次高脉冲宽度if(res=250)break;/非有用信号if(res>=200&&resv250)0K=1;/获得前导位(4.5ms)elseif(res>=85&&res<200)按键次数加一(2ms)(RemOte_Rdy=l;承受到数据RemOte_Cnt+;按键次数增加break;)elseif(res>=50&&res<85)RODATA=I;/1.5mselseif(res>=10&&res<50)RODATA=O;/500usif(OK)(Remote_Odr«=l;Remote_Odr+=RODATA;Remote_Cnt=0;按键次数清零)EXTI->PR=1«1;去除中断标志位)处理红外键盘返回相应的键值u8Remote_Process(void)u8tl,t2;tl=Remote_Odr>>24;得到地址码t2=(Remote_Odr»16)&Oxff;得到地址反码RemOte_Rdy=0;去除标记if(tl=(u8)t2&&tl=REMOTED)检验遥控识别码(ID)及地址(11=Remote_Odr»8;t2=Remote_Odr;if(tl=(u8)-t2)returntl;处理键值)return0;)voidKEYJnit(Void)(RCC->APB2ENR=1<<2;使能PORTA时钟GPIOA->CRL&=OXFFFFFFFO;/PAO设置成输入GPIOA->CRL=0X00000008;GPIoA->CRH&=OXOFoFFFFF;/PA13,IS设置成输入GPIOA->CRH=0X80800000;GPIOA->ODR=1<<13;/PA13上拉TAO默认下拉GPIOA->ODR=1<<15;/PA15上拉)/注意此函数有响应优先级,KEYO>KEY1>KEY2!u8KEY-Scan(Void)(staticu8key_up=l;/俵键按松开标志JTAG_Set(JTAG_SWD_DISABLE);if(key_up&&(KEY0=0|KEYl=0|KEV2=l)delay_ms(IO);去抖动key_up=O;if(KEYO=O)(JTAG_Set(SVVD_ENABLE);return1;)elseif(KEYl=O)(JTAG_Set(SWD_ENABLE);return2;)elseif(KEY2=l)(JTAG-Set(SVVD-ENABLE);return3;)elseif(KEYO=1&&KEY1=1&&KEY2=0)key_up=1;JTAG_Set(SWD_ENABLE);returnO;/无按键按下)第三章主体代码intmain(void)u8key;u8t=0;u8dir=O;intn=2630,m=1000,p=500,i=100,w=l;ul6IedOpwmval=O;Stm32_Clocknit(9);系统时钟设置delay.init(72);延时初始化uart_init(72,9600);串口1初始化1.CDJnitO;初始化液晶1.EDJnitO;LED初始化Remote_Init();初始化红外接收PWMJnit(900,0);不分频。PWM频率=72000/900=8KhZKEYJnitO;初始化与按键连接的硬件接口1.ED0_PWM_VAL=0;P0INT.C0L0R=RED;设置字体为红色1.CD.ShowString(30,70,*SMARTWASHINGMACHINE*);while(l)(t=KEY_Scan()"/得到键值if(t)switch(t)1.CD.ShowString(60,120,"CLASSICALMODEL*);1.CD.ShowString(60,150/*);while(m)delay.ms(10);LEDl=!LEDl;m;LCD.ShowString(60,190,*WATERIN");m=1000;dir=l;LEDO_PWM_VAL=ledOpwmval=O;while(n)1.CD.ShowString(60,190,"WASHINGTIME*);delay_ms(10);if(dir)IedOpwmval+;IedOpwmval+;IedOpwmval+;)elseIedOpwmval;IedOpwmval;IedOpwmval;if(IedOpwmval>700)dir=0;if(IedOpwmval=O)dir=l;1.EDO_PWM_VAL=ledOpwmval;nn=2330;/while(i)LCD.ShowString(60,190,"DEWATERING*);delay_ms(200);LEDl=!LED1;LEDO=!LEDO;LED0_PWM_VAL=900;while(i)delay-ms(10);LED0_PWM_VAL=led0pwmval=900;i;LCD_ShowString(60,190,*DEWATERING*);delay_ms(100);LEDl=!LEDl;i=100;脱水1000while(m)delay.ms(10);LEDl=!LEDl;m;LCD_ShowString(60,190,*WATERIN');m=1000;dir=l;LEDO_PWM_VAL=ledOpwmval=O;while(n)1.CD-ShowString(60,190JWASHINGTIME*);delay_ms(10);if(dir)ledpwmval+;IedOpwmval+;IedOpwmval+;)elseIedOpwmval一;IedOpwmval;IedOpwmval;if(IedOpwmval>700)dir=O;if(IedOpwmval=O)dir=l;1.EDO_PWM_VAL=ledOpwmval;n=2330;/while(i)delay-ms(10);LEDl=!LEDl;i-;i=100;/while(u)delay.ms(10);LEDO=!LEDO;LED0_PWM_VAL=led0pwmval=100;u;u=200;while(i)delay,ms(10);LEDO=!LEDO;LED0_PWM_VAL=900;i-;LCD.ShowString(60,190,*DEWATERING*);delay.ms(100);LEDl=!LEDl;i=100;while(i)delay-ms(10);LEDl=!LEDl;i;i=100;dir=l;1.EDO_PWM_VAL=O;1.CD-ShowString(60,190,“FINISHED*);break;case 1:while(l)t=KEY_Scan();得到键值if(t)switch(t)case1:1.CD_ShowString(60,120,*HANDLEMODEL");1.CD.ShowString(60,140,*);while(l)if(Remote_Rdy)key=Remote_Process();switch(key)case104:while(i)delay.ms(200);LEDl=!LEDl;LEDO=!LEDO;LED0_PWM_VAL=900;LCD.ShowString(60,190,"DEWATERING");1.CD.ShowString(60,190JFlNlSHED*);break;case152:dir=l;LEDO_PWM_VAL=ledOpwmval=O;1.CD.ShowString(60,190JWASHINGTIME*);while(m)delay_ms(10)if(dir)IedOpwmval+JledOpwmval+;IedOpwmval+;if(IedOpwmval>700)dir=O;if(IedOpwmval=O)dir=l;1.EDO_PWM_VAL=ledOpwmval;m;m=1000;LEDO_PWM_VAL=O;1.CD.ShowString(60,190,"FINISHED*);break;case176:1.CD.ShowString(60,190,*DEWATERING");1.EDl=O;delay_ms(400000000);LEDl=I;1.CD_ShowString(60,190JFINlSHED");break;)elsedelay_ms(2);break;case3:w+;if(w2)while(i)LCD_ShowString(60,190,*DEWATERING0;delay_ms(50);LEDl=!LED1;LEDO=!LEDO;LED0_PWM_VAL=900;elseLEDO=!LEDO;LEDO_PWM_VAL=O;1.CD.ShowString(60,190JFlNlSHED");break;dir=l;LEDO_PWM_VAL=ledOpwmval=O;1.CD.ShowString(60,120,*WASHINGTIME*);1.CD_ShowString(60,140/*);while(n)(delay_ms(10)if(dir)IedOpwmval+;IedOpwmval+;IedOpwmval+;)elseIedOpwmval;IedOpwmval;IedOpwmval;)if(led0pwmval>700)dir=0;if(IedOpwmval=O)dir=l;1.EDO_PWM_VAL=ledOpwmval;n-;");1.CD_ShowString(60,120,*ECONOMICALMODEL*);1.CD.ShowString(60,140/*);while(p)delay,ms(10);LEDl=!LEDl;p;LCD.ShowString(60,190,*WATERIN*);p=500;dir=l;LEDo_PWM_VAL=IedOPWmVal=O;while(m)1.CD.ShowString(60,190,“WASHINGTIME*);delay_ms(10)if(dir)ledpwmval+;ledOpwmval+;IedOpwmval+;elseIedOpwmval;IedOpwmval;IedOpwmval;if(IedOpwmval>400)dir=O;if(IedOpwmval=O)dir=l;1.EDO_PWM_VAL=ledOpwmval;m;m=1000;/while(i)delay,ms(10);LEDl=!LEDl;i;i=100;LEDO=!LEDO;while(i)delay,ms(10);LED0_PWM_VAL=900;i;LCD.ShowString(60,190,*DEWATERING*);delay_ms(100);LEDl=!LEDl;i=100;while(i)delay-ms(10);LEDl=!LEDl;iji=100;1.EDO_PWM_VAL=O;LCD_ShowString(60,190,"FINISHED*);break;/elsedelay_ms(10);第四章完毕语本设计特点、存在的问题及改进意见:在进展本设计时,充分利用mini开发板已有资源,对按键等硬件进展复用,极大地发回来已有器件的功用.但因为为了更好观察电机转动情况,所以选用的是减速电机,所以在脱水的时候显得速度不够参考文献:范书珊Corte-M3嵌入式处理器原理与应用北京电子工业出版社arm元器件明细表序号名称型号参数数量备注1Mini开发板74LS161N12减速直流电机标准型13排针标准型14连接导线普通型2

    注意事项

    本文(基于.STM32自动洗衣机的课程设计的报告报告.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开