




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式系统原理课程设计报告 题 目 学院(部) 专 业 班 级 学生姓名 学 号 指导教师(签字) 目录题目3摘要3关键字3设计要求3第一章 系统概述 31总框图设计42 实物图4第二章 单元电路设计与分析 51显示部分52 PWM输出部分73按键控制部分8第三章 主体代码12第四章结束语 18全自动洗衣机控制程序设计摘要:STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M3内核。本次使用的是STM32F103“增强型”系列。增强型系列时钟频率达到72MHz,从闪存执行代码,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz。工作原理:是通过改变输出方波的占空比使负载上的平均电流功率从0-100%变化,从而改变直流减速电机速度。利用脉宽调制(PWM)方式,实现调速,它的优点是电源的能量功率,能得到充分利用,电路的效率高。关键字:占空比 PWM输出 控制 STM32 电机 人机交互设计概述及基本要求用单片机编程实现洗衣机的控制过程,要求:1 具有进水 洗涤 脱水等功能。2 程序可选择其中一个功能执行。3 通过电机转动时间比例实现洗涤强度控制功能。4 通过洗涤时间和冲洗次数实现标准和经济选择功能。第1章 系统概述1.1 总框图设计根据设计要求,我们把设计主要分为四个模块:显示模块,直流减速电机转动模块,操控模块,安全响应模块。其原理图如下:显示部分STM32F103直流减速电机操控部分安全响应部分PWM输出 信号按键信号高优先信号按键控制遥控器控制LED灯辅助LCD屏幕显示实物图:系统简介:打开电源之后,电源指示灯亮,屏幕显示: (SMART WASHING MACHINE);此时,按下KEY0进入标准洗涤模式(CLASSICAL MODEL),洗涤两遍.按下WK_UP进入经济型洗涤模式. 按下KEY1进入手动选择模式(HANDLE MODEL),在此模式下,KEY0为选择遥控控制,遥控器上,3:进水(WATER IN),2:洗涤(WASHING TIME),1,脱水(DEWATERING);同时,在手动控制中,也可以用按键操作:KEY1为洗涤;WK_UP为脱水.RESET为安全按钮,用于在高速脱水时的紧急停止.全自动模式流程:LED1(绿灯)亮,显示进水(WATER IN),进水大约20秒;进水结束后LED1熄灭,电机间歇转动(WASHING TIME),显示洗涤;洗涤结束后进行脱水,LED1闪烁且电机持续快速转动,显示脱水(DEWATERING);脱水结束LED1熄灭,洗衣过程结束(FINISHED),LED1短暂亮起后熄灭表示洗衣结束,屏幕显示(FINISHED).经济型模式与标准模式对比:标准模式共洗涤两遍.进水量,洗涤时间,在洗涤时电机转动时间以及脱水时间都较长.经济型模式只洗涤一遍,进水量小于标准模式,占空比大于标准模式,脱水时间小于标准模式,从而实现经济型洗涤模式.第二章 单元电路设计与分析显示部分:此时为手动模式下进行脱水操作经济型洗涤中的洗涤操作相关代码:u16 POINT_COLOR = 0x0000,BACK_COLOR = 0xFFFF; u16 DeviceCode; #if LCD_FAST_IO=1 /快速IO/写寄存器函数void LCD_WR_REG(u8 data) LCD_RS_CLR;/写地址 LCD_CS_CLR; DATAOUT(data); LCD_WR_CLR; LCD_WR_SET; LCD_CS_SET; #else/正常IO/写寄存器函数void LCD_WR_REG(u8 data) LCD_RS=0;/写地址 LCD_CS=0; DATAOUT(data); LCD_WR=0; LCD_WR=1; LCD_CS=1; void LED_Init(void)RCC-APB2ENR|=1APB2ENR|=1CRH&=0XFFFFFFF0; GPIOA-CRH|=0X00000003;/PA8 推挽输出 GPIOA-ODR|=1CRL&=0XFFFFF0FF;GPIOD-CRL|=0X00000300;/PD.2推挽输出GPIOD-ODR|=1APB1ENR|=1CRL&=0X0FFFFFFF;/PA7输出GPIOA-CRL|=0XB0000000;/复用功能输出 GPIOA-ODR|=1ARR=arr;/设定计数器自动重装值 TIM3-PSC=psc;/预分频器不分频TIM3-CCMR1|=7CCMR1|=1CCER|=1CR1=0x8000; /ARPE使能 TIM3-CR1|=0x01; /使能定时器3 控制部分: 红外遥控:按键:相关代码:void EXTI1_IRQHandler(void) u8 res=0; u8 OK=0; u8 RODATA=0; while(1) if(RDATA)/有高脉冲出现 res=Pulse_Width_Check();/获得此次高脉冲宽度 if(res=250)break;/非有用信号 if(res=200&res=85&res=50&res=10&res50)RODATA=0;/500us if(OK) Remote_OdrPR=124; /得到地址码 t2=(Remote_Odr16)&0xff;/得到地址反码 Remote_Rdy=0;/清除标记 if(t1=(u8)t2&t1=REMOTE_ID)/检验遥控识别码(ID)及地址 t1=Remote_Odr8; t2=Remote_Odr; if(t1=(u8)t2)return t1; /处理键值 return 0;void KEY_Init(void)RCC-APB2ENR|=1CRL&=0XFFFFFFF0;/PA0设置成输入 GPIOA-CRL|=0X00000008; GPIOA-CRH&=0X0F0FFFFF;/PA13,15设置成输入 GPIOA-CRH|=0X80800000; GPIOA-ODR|=1ODR|=1KEY1KEY2!u8 KEY_Scan(void) static u8 key_up=1;/按键按松开标志JTAG_Set(JTAG_SWD_DISABLE);if(key_up&(KEY0=0|KEY1=0|KEY2=1)delay_ms(10);/去抖动 key_up=0;if(KEY0=0)JTAG_Set(SWD_ENABLE);return 1;else if(KEY1=0)JTAG_Set(SWD_ENABLE);return 2;else if(KEY2=1)JTAG_Set(SWD_ENABLE);return 3;else if(KEY0=1&KEY1=1&KEY2=0)key_up=1; JTAG_Set(SWD_ENABLE);return 0;/ 无按键按下第3章 主体代码int main(void)u8 key;u8 t=0;u8 dir=0;int n=2630,m=1000,p=500,i=100,w=1; u16 led0pwmval=0; Stm32_Clock_Init(9);/系统时钟设置delay_init(72);/延时初始化uart_init(72,9600); /串口1初始化 LCD_Init();/初始化液晶 LED_Init(); /LED初始化 Remote_Init(); /初始化红外接收 PWM_Init(900,0); /不分频。PWM频率=72000/900=8KhzKEY_Init(); /初始化与按键连接的硬件接口 LED0_PWM_VAL=0; POINT_COLOR=RED;/设置字体为红色 LCD_ShowString(30,70,SMART WASHING MACHINE);while(1)t=KEY_Scan();/得到键值 if(t) switch(t) case 1:LCD_ShowString(60,120,CLASSICAL MODEL);LCD_ShowString(60,150,.); while(m)delay_ms(10);LED1=!LED1;m-;LCD_ShowString(60,190,WATER IN );m=1000;dir=1;LED0_PWM_VAL=led0pwmval=0;while(n) LCD_ShowString(60,190,WASHING TIME);delay_ms(10); if(dir)led0pwmval+;led0pwmval+;led0pwmval+;else led0pwmval-;led0pwmval-;led0pwmval-;if(led0pwmval700)dir=0;if(led0pwmval=0)dir=1;LED0_PWM_VAL=led0pwmval;n-; n=2330;/while(i)LCD_ShowString(60,190,DEWATERING );delay_ms(200);LED1=!LED1;LED0=!LED0;LED0_PWM_VAL=900; while(i)delay_ms(10);LED0_PWM_VAL=led0pwmval=900;i-;LCD_ShowString(60,190,DEWATERING );delay_ms(100);LED1=!LED1;i=100; /脱水1000 while(m)delay_ms(10);LED1=!LED1;m-;LCD_ShowString(60,190,WATER IN );m=1000;dir=1;LED0_PWM_VAL=led0pwmval=0;while(n) LCD_ShowString(60,190,WASHING TIME);delay_ms(10); if(dir)led0pwmval+;led0pwmval+;led0pwmval+;else led0pwmval-;led0pwmval-;led0pwmval-;if(led0pwmval700)dir=0;if(led0pwmval=0)dir=1; LED0_PWM_VAL=led0pwmval;n-; n=2330; /while(i)delay_ms(10);LED1=!LED1;i-;i=100; /while(u)delay_ms(10);LED0=!LED0;LED0_PWM_VAL=led0pwmval=100;u-;u=200; while(i)delay_ms(10);LED0=!LED0;LED0_PWM_VAL=900;i-;LCD_ShowString(60,190,DEWATERING );delay_ms(100);LED1=!LED1;i=100; while(i)delay_ms(10);LED1=!LED1;i-;i=100;dir=1; LED0_PWM_VAL=0; LCD_ShowString(60,190,FINISHED ); break;case 2:while(1)t=KEY_Scan();/得到键值 if(t) switch(t) case 1: LCD_ShowString(60,120,HANDLE MODEL);LCD_ShowString(60,140,.);while(1) if(Remote_Rdy)key=Remote_Process(); switch(key)case 104:while(i)delay_ms(200);LED1=!LED1;LED0=!LED0;LED0_PWM_VAL=900;LCD_ShowString(60,190,DEWATERING );LCD_ShowString(60,190,FINISHED );break;case 152:dir=1;LED0_PWM_VAL=led0pwmval=0;LCD_ShowString(60,190,WASHING TIME );while(m) delay_ms(10); if(dir)led0pwmval+;led0pwmval+;led0pwmval+;else led0pwmval-;led0pwmval-;led0pwmval-;if(led0pwmval700)dir=0;if(led0pwmval=0)dir=1; LED0_PWM_VAL=led0pwmval;m-; m=1000;LED0_PWM_VAL=0; LCD_ShowString(60,190,FINISHED );break;case 176:LCD_ShowString(60,190,DEWATERING ); LED1=0;delay_ms(400000000);LED1=1;LCD_ShowString(60,190,FINISHED );break;else delay_ms(2);break;case 3: w+;if(w/2)while(i)LCD_ShowString(60,190,DEWATERING );delay_ms(50);LED1=!LED1;LED0=!LED0;LED0_PWM_VAL=900;else LED0=!LED0;LED0_PWM_VAL=0;LCD_ShowString(60,190,FINISHED ); break;case 2:dir=1;LED0_PWM_VAL=led0pwmval=0;LCD_ShowString(60,120,WASHING TIME );LCD_ShowString(60,140,.);while(n) delay_ms(10); if(dir)led0pwmval+;led0pwmval+;led0pwmval+;else led0pwmval-;led0pwmval-;led0pwmval-;if(led0pwmval700)dir=0;if(led0pwmval=0)dir=1;LED0_PWM_VAL=led0pwmval;n-; n=2330;LED0_PWM_VAL=0;LCD_ShowString(60,190,FINISHED );case 3:LCD_ShowString(60,120,ECONOMICAL MODEL);LCD_ShowString(60,140,.); while(p)delay_ms(10);LED1=!LED1;p-;LCD_ShowString(60,190,WATER IN );p=500;dir=1;LED0_PWM_VAL=led0pwmval=0;while(m) LCD_ShowString(60,190,WASHING TIME);delay_ms
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校文科室管理制度
- 学校防伤害管理制度
- 学生图书角管理制度
- 学籍档案查管理制度
- 安置房建设管理制度
- 完善子公司管理制度
- 实体生鲜店管理制度
- 实验室制度管理制度
- 客户voc管理制度
- 宣传挂标语管理制度
- 吹气球治疗肺部疾病
- DB51-T 2975-2022 气凝胶复合保温隔热材料及系统通.用技术条件
- DB51-T 2987-2022 企业温室气体排放管理规范
- 脑出血疑难病例讨论护理
- 雨季行车安全培训
- 广西南宁市英语小升初试卷及解答参考(2024-2025学年)
- 广西河池市2023-2024学年高一下学期7月期末考试英语
- 智能客服培训手册
- 安康杯安全知识竞赛考试题含答案
- 个人雇护工签订协议书范本范本
- (完整版)玻璃采购合同
评论
0/150
提交评论