毕业设计(论文)-基于单片机的全自动洗衣机控制系统的设计.doc

上传人:爱问知识人 文档编号:3949780 上传时间:2019-10-11 格式:DOC 页数:47 大小:7.82MB
返回 下载 相关 举报
毕业设计(论文)-基于单片机的全自动洗衣机控制系统的设计.doc_第1页
第1页 / 共47页
毕业设计(论文)-基于单片机的全自动洗衣机控制系统的设计.doc_第2页
第2页 / 共47页
毕业设计(论文)-基于单片机的全自动洗衣机控制系统的设计.doc_第3页
第3页 / 共47页
毕业设计(论文)-基于单片机的全自动洗衣机控制系统的设计.doc_第4页
第4页 / 共47页
毕业设计(论文)-基于单片机的全自动洗衣机控制系统的设计.doc_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《毕业设计(论文)-基于单片机的全自动洗衣机控制系统的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-基于单片机的全自动洗衣机控制系统的设计.doc(47页珍藏版)》请在三一文库上搜索。

1、各专业完整优秀毕业论文设计图纸 基于单片机的全自动洗衣机的控制 系统设计 院 系:机电与自动化学院 专 业 班:电气工程及其自动化 1002 班 姓 名: 学 号:20101131053 指导教师: 2014 年 5 月 I 基于单片机的全自动洗衣机的设计 Design of Automatic Washing Machine Based on MCU I 摘 要 本设计以家用全自动洗衣机的工作过程为研究模型,以意法半导体公司的单片 机 STM32F103CBT6 为控制核心,完成了电源供电电路、液晶接口电路、直流电机 驱动电路、继电器控制电路、按键扫描电路、AD 信号采集电路、蜂鸣器报警电路

2、、 童锁认证电路的设计,实现了对洗衣机的洗涤、漂洗、甩干工作状态的智能控制。 其中童锁认证功能是为解决儿童使用安全问题而特别设计的。软件部分的设计包括: 洗衣代码选择、洗衣倒计时显示、进水指示、排水指示、电机旋转、童锁认证等主 要过程控制及显示。通过 Keil 软件编程来控制电机旋转、12864 液晶显示等主要动 作。其中液晶菜单界面的显示设计是关键环节,采用 12864 液晶的图形显示功能, 通过不同的反白及非反白图片之间的切换,设计了良好的人机交互界面。设置有一 级、二级菜单选项,用户可以按提示操作相应的按键,安全、放心地完成自己设定 的洗衣过程。 关键词:STM32F103CBT6 单片

3、机 人机交互界面 童锁认证 II Abstract The design of the work process for the study of household automatic washing machine model to STMicroelectronics microcontroller STM32F103CBT6 as the control center , the completion of the power supply circuit , LCD interface circuit , DC motor drive circuit , relay control

4、circuit , key scan circuit , AD signal acquisition circuit, buzzer alarm circuit , circuit design certified child lock , realized on the washing machine washing , rinsing, drying intelligent control working conditions. Certified child lock function which is to solve the security problems of children

5、 using specially designed . Software part of the design include : laundry code selection , laundry countdown show , indicating water , drainage directions , motor rotation , child lock certification and other major process control and display. By Keil software programming to control the motor rotati

6、on, 12864 LCD and other major actions. LCD which displays the menu interface design is the key , using 12864 LCD graphics display capabilities, by switching different highlight and non- highlight between pictures , design a good man-machine interface . Provided with primary, secondary menu option, t

7、he user can press the corresponding button prompts , security , ease to complete their own set of laundry process . Keywords:STMicroelectronics microcontrollerinteractive interface child lock certification III 目 录 摘要II AbstractIII 绪论.1 1 全自动洗衣机的发展过程1 2 洗衣机的发展前景及待解决的问题1 1 全自动洗衣机的功能设计3 1.1 设计目的.3 1.2

8、方案论证3 2 系统硬件电路的设计.5 2.1 目前主要应用的单片机机型.5 2.2 硬件各模块简介.6 2.2.1 微处理器 STM32F103CBT6.6 2.2.2 电源电路模块10 2.2.3 按键模块10 2.2.4 报警器模块12 2.2.5 水阀模块13 2.2.6 直流电机模块14 2.2.712864 液晶显示16 2.2.8 童锁功能17 3 全自动洗衣机的软件设计.18 3.1 软件编程思路.18 3.2 各模块程序编写思路.18 3.2.1 主程序流程18 3.2.2 输入扫描模块19 3.2.3 显示界面菜单模块19 3.2.4 输出控制模块21 IV 3.2.5 串

9、口调试模块22 4 制板及调试经历23 4.1 制板.23 4.1.1 器件原理图库23 4.1.2 绘制原理图23 4.1.3PCB 封装库24 4.1.4PCB 基本布线规则25 4.2 硬件检测.25 4.3 软件调试.26 4.3.1 菜单界面的制作26 4.3.2PWM 的生成27 4.3.3AD 童锁的设计27 结论29 致谢30 参考文献31 附录一总体设计原理图.32 附录二主板 PCB 图.33 附录三主板 PCB 实物图.34 附录四实物图.35 1 绪 论 1 全自动洗衣机的发展过程 随着社会的进步和生活水平的不断提高,洗衣机是一种在家庭中不可缺少的家 用电器,全自动式洗

10、衣机因使用方便得到大家的青睐,全自动即进水、洗涤、甩干等 一系列过程自动完成。家用洗衣机从发明到现在已经经历了一个多世纪,经历以下 一些发展阶段:世界上第一台洗衣机实在 1874 年由美国的比尔.布莱克斯通 (Bill Blackstone)研制成功的。1910 年前后,第一台卧轴滚筒式电动洗衣机问世, 标志着人类家务劳动自动化的开始。20 世纪 20 年代,第一台立轴搅拌式洗衣机再 美国试制成功,由此,洗衣机开始了“立轴”与“卧轴”之分。50 年代中叶,日本 三洋公司推出单桶波轮式洗衣机。开始确定了滚筒式、搅拌式和波轮式三种工作方 式。60 年代,日本推出了带甩干桶半自动洗衣机,并且大量应用

11、塑料,使洗衣机的 发展进入一个新的阶段。70 年代,日本推出波轮式套桶全自动洗衣机,从此开始有 了“全自动”洗衣机的概念。70 年代后期,日本推出了微电脑控制的全自动洗衣机。 完成了由机械电动程序控制到电脑控制的过渡,开始了电脑控制时代。这时,洗 衣机在发达国家已进入饱和期,而在亚太地区发展中国家开始进入普及期。80 年代 后期, “模糊控制”洗衣机开始出现,实现了家电器控制方式上的高度自动化。出 现“白色家电”的概念。90 年代,随着变频技术的发展,日本最先推出了电动机直 接驱动洗衣机,实现了洗衣机驱动方式上的革命。今后洗衣机将以高可靠性,完善 的功能,节水省电,降噪省时以及规格品种多样化为

12、发展方向。 2 洗衣机待解决的一些问题 由于我国洗衣机厂起步晚,加上技术方面的一些问题,不可避免的在现有的机 型中出现一些弊端。主要弊端有:噪声大,耗水、耗电,进水不畅或进水不止或排 水不畅,工作周期不平稳、振动大,损伤洗涤物,洗涤效果不佳,脱水桶自动性不 佳,脱水不良,重量大,容量不合理。具体来说,洗衣机的问题存在于结构、质量、 原材料和模具及管理方面。 (1)结构类型方面我国洗衣机多属波轮式。今后波轮式仍然是主要型式。为 了适应国外市场的不同需求,要适当地生产些新型式的滚筒式和搅拌式洗衣机,进 2 而生产具有波轮式、搅拌式两种洗衣机优点的新机型。为了使波轮式洗衣机洗涤更 合理,应努力将全自

13、动洗衣机提高到电脑型的水平。双桶洗衣机再提高漂洗的条件 下,以重点生产全自动型喷淋式洗衣机为宜。同时要注意避免新水流洗衣机一味地 提高波轮式的转数极其转动时间或增高波轮筋高的倾向,以免损伤衣率和缠绕率回 升增高,降低了新水流洗衣机的优越性。 (2)质量方面我国洗衣机的质量问题,具体反映再功能、外观和可靠性三方 面,与国外存在再较大的差距。国内外洗衣机相比较:从功能、电源插头、面板装 饰、旋钮结合,塑料件的光整度(光洁、毛刺和变形) ,外箱和螺丝钉的成形及防 锈,皮带的耐磨及噪音,进排水阀和水位开关质量,电脑控制各种功能的能力,电 脑的抗电压波动、抗干扰防静电的能力,以及传感器的灵敏度等方面,很

14、容易看出 整体质量的好坏。再加上装配工艺较落后,致使我国洗衣机的质量稳定性差,出口 有一定的困难。目前我国洗衣机无故障运行水平约为 250500 小时,而国外同类 产品达 15002000 小时,即十年不需修理。因此提高洗衣机的质量要从提高零部 件的质量入手。关键电器件和传动件应组织专业分工,制定标准,组织攻关,进行 认证,在改进功能方面、外观质量和可靠性三方面,进行全面整理,提高水平。综 合以上分析介绍,全自动洗衣机由于具有对衣物的磨损小、洗涤量大、节约水电等 特点,越来越得到广大家庭的青睐。由于人们对全自动洗衣机在价格低廉的基础上 也提出了功能齐全、操作简单、不缠绕、不伤布料、洗衣效果好、

15、性能可靠、工作 效率高、便于维修等更高的要求。为满足人们这种需求,特设计出这种有微控制器 控制的全自动洗衣机控制系统。 3 1 系统的总体设计 1.1 设计目的 目前中国洗衣机市场正进入更新换代期,市场潜力巨大,人们对于洗衣机的要 求也越来越高,目前的洗衣机主要有强弱洗涤功能、进排水系统故障自动诊断功能、 暂停等七大功能,在许多方面还不能达到人们的需求。这就要求设计者们有更高的 专业和技术水平,能够提出更多好的建议和新的课题,将人们的需要变成现实,设 计出更节能、功能更全面、更人性化的全自动洗衣机。 1.2 设计方案论证 (1) 方案方案 1 1:通过设对计要求的分析,控制对象包括:按键、电控

16、水龙头 1(进水阀) 、电控水龙头 2(出水阀) 、电动机、数码管显示、LED 指示灯、蜂鸣 器等。这些被控对象需要根据不同的洗衣程序来设定他们的工作状态和工作时间, 电控水龙头 1(进水阀)和电控水龙头 2(出水阀)来控制进水和出水,同时需要 LED 指示灯和数码管显示不同的工作状态和剩余时间,按键用来控制程序运行和设 置洗衣模式,蜂鸣器用来提示洗衣完成提示。按照上述的系统方案得到的系统整 体构架如图 1-1 所示。 图 1-1 原理框图 (2) 方案方案 2 2:用直流电机代替交流电机模拟洗衣过程。所开发的全自动洗衣 机控制器,由主控 CPU 单元、电源、12864 液晶显示器、蜂鸣器、控

17、制电路、驱动 电路、水位监测单元及复位电路构成。洗衣机控制器采用带字库的液晶显示器 4 12864 提供诸如:进水、洗涤、漂洗、甩干、结束等状态以及控制时间的显示。通 过按键来提供相应的操作,来选择相应的洗衣流程。对于这次毕业设计课题则通 过一个直流电机来代替洗衣机的电机的交流电机,相应的转速和方向来通过专用 的电机驱动芯片 H 桥电路以及 PWM 来模拟洗衣机的洗涤过程。有一个液体压力 传感器来检测相应的水位,判断是继续进水还是停止进水。当洗涤结束以及相应 的误操作蜂鸣器会发出警报,同时电机立即停止转动,免生危险。为了防止孩童 玩耍带来的后果,开机前会有一个开机认证。只有通过专用的秘钥认证,

18、才能开 机。秘钥采用 USB 接口,在 DATA+与 DATA-配置不同的电阻,通过单片机自带的 AD 检测电压来进行验证。其工作原理见图 1-2。 图 1-2 原理框图 由于方案 2 采用了液晶作为显示单元,且使用了友好的交互式人机界面,比较 新颖。且考虑到设置童锁功能,安全性能比较高,故采用方案 2 作为本次毕业设计 的最终方案。 2 系统硬件电路的设计 5 2.1 目前主要应用的单片机机型 (1) Intel 公司的单片机 Intel 是最早推出单片机的公司之一,主要有 MCS-48、MCS-51 系列 8 位单片机 和 MCS-96 系列的 16 位单片机。在 20 世纪八、九十年代,

19、MCS-51 和 MCS-96 曾经是 我国最流行的单片机,得到广泛的应用。这几年 Intel 公司注重于奔腾系列微处理 器,没有推出新的单片机。 (2) ARM 微处理器 ARM 处理器的三大特点是:耗电少功能强、16 位/32 位双指令集和合作伙伴众 多。 体积小、低功耗、低成本、高性能; 支持 Thumb(16 位)/ARM(32 位)双指令集,能很好的兼容 8 位/16 位器 件; 大量使用寄存器,指令执行速度更快; 大多数数据操作都在寄存器中完成; 寻址方式灵活简单,执行效率高; 指令长度固定。 在本洗衣机控制系统中,要求洗衣机应具有按照用户设定洗衣量、洗涤漂洗时 间及次数。反应剩余

20、时间等参数,自动按照设定的流程来洗涤衣物,并能自动控制 洗衣机电机、进水阀、出水阀等工作,同时要求有七个按键输入和并行液晶显示电 路,因此该系统是一个多输入、多输出系统。若用 Intel 的 51 系列单片机,一方 面需要对 I/O 进行扩展,另一方面又需要对存储空间进行扩展。同时由于 51 单片 机驱动能力有限,需外加驱动电路,使得硬件电路过于复杂。 综合上述考虑,决定选用内部有 A/D 转换器、驱动能力强的意法半导体公司 (ST)出产的芯片,STM32F103CBT6。STM32F103CBT6 是基于 ARM Cortex-M3 内核设 计,片上集成有丰富的数字和模拟资源,允许最高 72

21、 MHz 的工作频率,是一款性 价比很高的 32 位 ARM 处理器,是低成本 ARM 嵌入式应用的极佳选择。 6 2.2 硬件各模块简介 2.2.1 微处理器 STM32F103CBT6 本设计使用到的控制器 STM32F103CBT6 采用了 LQFP48 封装,引脚排列如图 2- 1 所示。 图 2-1 引脚图 引脚定义如表 2-1、2-2、2-3 所示。引脚资源分配如表 2-4 所示。 表 2-1 STM32F103CBT6 引脚功能说明表 1 管脚名类型特殊功能 VBTA电源 PC13-TAMPER-RTCI/OTAMPER-RTC PC14-OSC32_INI/O PC15-OSC

22、32_OUTI/O OSC_INI OSC_OUTO NRSTI/O 7 VSSA电源 表 2-2 STM32F103CBT6 引脚功能说明表 2 管脚名类型特殊功能 VDDA电源 PA0-WKUPI/O WKUP/USART2_CTS ADC12_IN0/TIM2_CH1_ETR PA1I/O USART2_RTS/ADC12_IN1/TIM2_CH2 PA2I/O USART2_TX/ADC12_IN2/TIM2_CH3 PA3I/O USART2_RX/ADC12_IN3/TIM2_CH4 PA4I/O SPI1_NSS/USART2_CK/ADC12_IN4 PA5I/O SPI1_S

23、CK/ADC12_IN5 PA6I/O SPI1_MISO/ADC12_IN6/TIM3_CH1 PA7I/O SPI1_MOSI/ADC12_IN7/TIM3_CH2 PB0I/OADC12_IN8/TIM3_CH3 PB1I/OADC12_IN9/TIM3_CH4 PB2/BOOT1I/O PB10I/OI2C2_SCL/USART3_TX PB11I/OI2C2_SDA/USART3_RX VSS_1电源 PB12I/O SPI2_NSS/I2C2_SMBAI/USART3_CK/TIM1_BKIN PB13I/O SPI2_SCK/USART3_CTS/TIM1_CH1N PB14I/

24、O SPI2_MISO/USART3_RTS/TIM1_CH2N PB15I/O SPI2_MOSI/TIM1_CH3N PA8I/O USART1_CK/TIM1_CH1/MCO PA9I/O USART1_TX/TIM1_CH2 PA10I/O USART1_RX/TIM1_CH3 PA11I/O USART1_CTS/CANRX/TIM1_CH4/USBDM PA12I/O USART1_RTS/CANTX/TIM1_ETR/USBDP 8 PA13/JTMS/SWDIOI/O 表 2-3 STM32F103CBT6 引脚功能说明表 3 管脚名类型 特殊功能 VSS_2电源 VDD_2电

25、源 PA14/JTCK/SWCLKI/O PA15/JTDII/O PB3/JTDOI/OPB3/TRACESWO PB4/JNTRSTI/O PB5I/OI2C1_SMBAI PB6I/OI2C1_SCL/TIM4_CH1 PB7I/OI2C1_SDA/TIM4_CH2 BOOT0I PB8I/OTIM4_CH3 PB9I/OTIM4_CH4 VSS_3电源 VDD_3电源 9 表 2-4 引脚资源分配 I/O引脚功能 PA313输入,按键 S1:上选项 PA717按键 S3:下选项 PA829按键 S5:左选项 PA1132按键 S6:右选项 PA1233按键 S7:确认选项 PB119微

26、动开关 S2:水位 PB541微动开关 S4:机盖 PA212蜂鸣器 PB642继电器:K1 进水阀 PB743继电器:K2 出水阀 PA010电机正转控制 PA111电机反转控制 PA4 PA5 PA6 PB8 PB9 PB10 PB11 PB12 PB13 PB14 PB15 14 15 16 45 46 21 22 25 26 27 28 12864 液晶屏的控制接口 与数据接口 10 PB018童锁:芯片模数转换接 口 2.2.2 电源电路模块 如图 2-2 所示,由于系统中存在感性元件(电机、继电器、蜂鸣器)运行会拉 低系统电压,导致液晶灰度调节值偏出相应范围,故电源采用两节锂电池串

27、联供电, 提供 7.8V 的电压。采用 ASM1117-3.3 稳压管,输出的 3.3V 供给单片机、按键和蜂 鸣器。并且加入 ASM1117-5 专门供给液晶的灰度调节端口使用。而相应的电机、继 电器等大功率感性元件则直接接入 7.8V。 图 2-2 电源原理图 2.2.3 按键模块 洗衣机控制系统需实现以下功能:进水、洗涤、漂洗、甩干、结束等状态以及 控制时间的显示。在使用中通过按键来提供相应的操作,选择相应的洗衣流程。在 洗衣机控制板上设有 S1、S3、S5、S6、S7 五个人机交互按键。各按键实现的功能 见表 2-5 所示。 表 2-5 按键功能分配表 代号功能具体功能 S1上选项控制

28、人机交互界面菜单选项向上功能 S3下选项控制人机交互界面菜单选项向下功能 S5左选项控制人机交互界面菜单选项向左功能 S6右选项控制人机交互界面菜单选项向右功能 S7确认选项控制人机交互界面菜单选项的选定/退出功能 11 其电路原理见图 2-3 所示。 图 2-3 交互式按键原理图 考虑到洗衣机中的水 位检测和机盖报警的实现 会有使用及演示等不方便 因素,故而在控制板上使 用 S2 和 S4 两 个微动开关 代替。其中S2 代替水位检 测传感器,S4 代替洗衣机机盖报警传感器。其原理如图 2-4 所示。 12 图 2-4 微动开关原理图 硬件部分采用下拉电路,采用 10K 欧的电阻作为下拉电阻

29、,这样流过的电流会 比较小,而且又能起到相应的传输信号的作用。 对于逻辑上:按键按下,CPU 接收的是高电平。按键松开,CPU 接收的是低电 平。 开机后,软件不断检测 PA3、PA7、PA8、PA11、PA12 的输入。当有键按下时, 软件便会检测到此按键输入口的高电平。根据扫描到的管脚的电平,来判断相应的 按键被按下。采用软件消抖的方式,需要再检测到按键按下之后延时 20ms,再一次 进行检测,只有两次都检测到同一个按键时,才进行相应的动作。 2.2.4 报警器模块 在本设计拥有全自动洗衣机的故障自诊断功能。为避免洗衣机出现问题或故障, 保证洗衣机的安全工作,在洗衣机运行过程中出现故障时,

30、应立即发出蜂鸣声报警, 以提醒用户及时处理。具体实现方式:首先洗衣机电源接通,按键、门开关、水位 传感器等输入信号传输给单片机,单片机结合内部时钟信号,不断地对接收到的信 号进行分析,并判断当前工作状态是否正常,若出现异常情况,则进行蜂鸣报警。 在本设计中,报警装置采用小型无源蜂鸣器。无源蜂鸣器是靠压电效应的原理 来发声的,压电材料,一般常见的是各种压电陶瓷。这种材料的特别之处在于,当电 压作用于压电材料时,就会随电压和频率的变化产生机械变形。另一方面,当振动压 电陶瓷时,则会产生电荷。就是说这种材料能把机械变形和电荷相互转化,压电式 蜂鸣器里面的起振片,就是一种压电陶瓷。如上所述,要让它振动

31、,除了压电陶瓷本 身,还需要适当大小和频率变化的电压作用于压电陶瓷。压电式(有源)蜂鸣器内部 带有多谐振荡器,可以产生 1.52.5kHZ 的电压信号,由此压电式蜂鸣器才能发声。 无源蜂鸣器原理如图 2-5 所示。 13 图 2-5 无源蜂鸣器原理图 蜂鸣器的一端接到 VCC 电源上面,蜂鸣器的另一端接到三极管的集电极极 C, 三极管的基级 B 经过限流电阻 R19 后由单片机的 PA2 引脚控制,当 PA2 输出低电平 时,三极管 Q3 截止,没有电流流过线圈,蜂鸣器不发声;当 PA2 输出高电平时, 三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控 制 PA2 脚的

32、电平来使蜂鸣器发出声音和关闭。 程序中改变单片机 PA2 引脚输出波形的频率,就可以调整控制蜂鸣器音调,产 生各种不同音色、音调的声音。另外,改变 PA2 输出电平的高低电平占空比,则可 以控制蜂鸣器的声音大小。 2.2.5 水阀模块 水阀分为进水阀和出水阀。分别用 K1 和 K2 两个继电器代替。其原理如下图 2- 6 所示。其中,K1 代表进水阀门,K2 代表出水阀门。当洗衣机运行时,如果到达进 水状态,则进水继电器 K1 吸合,出水继电器 K2 断开,模拟进水阀门的打开。如果 到达洗涤状态,则进水继电器 K1 与出水继电器 K2 同时关闭。既不进水,也不出水。 如果到达出水状态,则出水继

33、电器 K2 吸合,进水继电器 K2 断开,模拟出水阀门的 打开。 14 图 2-6 水阀原理图 2.2.6 直流电机模块 洗衣机的滚筒采用一个小型直流电机代替。 驱动方式采用脉宽调制技术(PWM 技术)来调节转速。采用一枚专用的 H 桥芯 片 L9110S 来进行电机的转向及转速的调节。其引脚功能说明见表 2-5 所示。引脚 排列如图 2-7 所示。 表 2-5 L9110S 的引脚功能 图 2-7 L9110S 引脚排列图 序号符号功能 1OAA 路输出管脚 2VCC电源电压 3VCC电源电压 4OBB 路输出管脚 5GND地线 6IAA 路输入管脚 7IBB 路输入管脚 8GND地线 15

34、 L9110S 具有静态工作电流低,电压范围宽,带负载能力强,外围电路少及价格 较便宜等优点。非常适合应用于小型直流电机的控制。其器件应用图如图 2-8 所示。 图 2-8 L9110S 应用电路图 由图 2-8 可以看出,L9110S 的外围电路只要在 IA 及 IB 两个端口连接上控制线 就可以驱动它。图 2-9 为 L9110S 管脚波形图。 图 2-9 L9110S 管脚波形图 本设计采用 7.8V 的两节锂电池供电。由于 CPU 的电压等级是 3.3V,为了安全 起见,CPU 到 L9110S 的控制线采用了光耦进行隔离。通过 IA 及 IB 端口的配置来改 变电机的转向,通过 PW

35、M 技术改变输出端口 P6 的电压等级,由此来改变电机的转 速。其原理如图 2-10 所示。 16 图 2-10 基于 L9110S 的 H 桥原理图 2.2.7 12864 液晶 本设计采用 12864 液晶作为显示设备。12864 液晶是一种具有 4 位/8 位并行、 2 线或 3 线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形 液晶显示模块;其显示分辨率为 128*64,内置 8192 个 16*16 点汉字。 其基本特性如下: (1) 低电源电压(VDD:+3.0-+5.5V); (2) 显示分辨率:12864 点; (3) 内置汉字字库,提供 8192 个 1616

36、 点阵汉字(简繁体可选); (4) 内置 128 个 168 点阵字符; (5) 显示方式:STN、半透、正显; (6) 驱动方式:1/32DUTY,1/5BIAS; (7) 视角方向:6 点; (8) 背光方式:侧部高亮白色 LED,功耗仅为普通 LED 的 1/51/10; 17 (9) 通讯方式:串行、并口可选; (10) 内置 DC-DC 转换电路,无需外加负压; (11) 无需片选信号,简化软件设计; (12) 工作温度: 0 - +55 ,存储温度: -20 - +60。 在本次毕业设计中其用于洗衣机的工作状态(进水、洗涤、漂洗、甩干、结束) 及时间剩余状态(时间精度:秒) ,等等

37、一些必要的流程显示。图 2-11 及 2-12 分别 是 12864 的实物图及电路原理图。 图 2-11 12864 液晶实物图 图 2-12 12864 液晶并行接口原理图 2.2.8 童锁功能 18 为了避免孩童玩耍误操作带来的后果,设计了童锁功能,开机前会进行开机认 证。只有通过专用的密钥认证,才能开机。密钥采用 USB 接口,在 DATA+与 DATA-配置不同的电阻,通过单片机自带的 AD 检测电压来进行验证。密钥使用了 一个 103 的电位器,这样就可以通过改变电阻来设置相应校验的电压值。电路原理 如图 2-13 所示。 图 2-13 AD 检测原理图 3 系统的软件设计 3.1

38、 软件编程思路 全自动洗衣机控制系统的软件设计根据其功能要求,主要分为以下几个大程序 模块:主程序流程、输入扫描模块、显示界面菜单模块、输出控制模块、串口调试 模块。其中主程序流程图见附录五。 3.2 各模块程序编写思路 主程序流程图如图 3-1 所示。首先开机进入开机第一屏的一个欢迎界面,显示 延时 1s 后,进入密钥提示界面。只有插入专用的密钥才能进入下一步的一级菜单。 如果 密钥验证错误,则会提示密钥错误,这时可以按下确认键跳回到上一步重新进 行 验证。 当进入一级菜单后,会有三个菜单选项,分别是:洗衣流程、功能设置、作品 19 简介。当选中相应的菜单选项后,会进入相应的二级菜单界面:

39、(1) 洗衣流程二级界面:设置衣物的多少、洗涤及漂洗的时间与次数。最 后当所有洗衣参数都设置完后,按下确认键,会按照设置的流程进行相应的洗衣动 作。同时会显示相应的洗衣步骤及剩余时间,给予操作者参考。 (2) 功能设置二级界面:对于经常洗衣设定的参数予以保存,可以设置一 键洗衣。方便操作。还可以根据需要设置关闭报警器及关闭密钥认证。 (3) 作品简介二级界面:对我这次毕设的一个简单介绍,以类似电子书的 形式呈现。通过上下键进行翻页查看,确认键退出。 3.2.2 输入扫描模块 输入扫描模块用于主程序运行时进行按键、触控开关以及童锁 AD 的实时检测 与动作。 对于按键的扫描,主要是将获取的七个按

40、键当前值打包存入一个 keytemp 变量 中。最后在循环中不停的分析 keytemp 的值来确认相应的按键,如图 3-1,3-2。 20 图 3-1 按键扫描程序图 图 3-2 按键扫描流程图图 对于童锁只有在开机时才会进行密钥的验证,所以童锁 AD 的数值只用与开机不 久的检测。而 5 个按键则在主程序运行的任何时刻都在进行检测,应为主程序对于 按键所触发的事件需要实时进行处理,为了提高程序的实时性则需要进行实时检测。 而触控开关的作用是用于检测水位和机盖,涉及到突然事件。则使用外中断进行操 作比较好。 3.2.3 显示界面菜单模块 使用 12864 液晶作为界面的显示设备,需要用到液晶的

41、绘图功能。 首先说一下液晶点阵 LCD 的显示原理: 对于数字电路,所有的数据都是以 0 和 1 保存的,对 LCD 控制器进行不同的数 据操作,可以得到不同的结果。对于显示英文操作,由于英文字母种类很少,只需 要 8 位(一字节)即可。而对于中文,常用却有 6000 以上,所以将 ASCII 表的高 128 个很少用到的数值以两个为一组来表示汉字,即汉字的内码。而剩下的低 128 位则留给英文字符使用,即英文的内码。 在得到了汉字的内码后,还仅是一组数字对于 LCD 显示,这就涉及到文字的字 模,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,是用数 字的各位信息来记载英文或汉

42、字的形 状,如英文的A在 21 字模的记载方式如图 3-3 所示: 图 3-3 “A”字模转换图 其次,制作菜单界面,首先需要制作相应的素材。比如:对于“洗衣流程”这 个一级菜单。为了减轻工作量,使用到一款“液晶取字模”的软件。下图 3-4 则是 这款软件的界面。 图 3-4 液晶取字模软件界面 1 首先是在软件中输入“洗衣流程” ,图 3-5 所示。为了体现友好的人机交互界 面,所以会涉及到菜单的选中与非选中。这样就需要生成相应的阴码与阳码。如图 3-6 所示。 图 3-5 液晶取字模软件界面 2 22 图 3-6 液晶取字模软件界面 3 最后点击生成自模就会生成对应的相应字模码。如图 3-

43、6 所示,就可以把其嵌 入 12864 的绘图驱动中。 图 3-6 液晶取字模软件界面 4 对于菜单的嵌套,比如每个以及菜单还会嵌套相应的二级菜单。相应的需要进 行判断。 3.2.4 输出控制模块 输出控制模块是实现控制电机及洗衣机的进水与出水阀门。对于直流电机的控 制,则用到了 PWM 技术来改变转向及转速。在程序中,使用了定时器中断来控制。 由于涉及到洗涤、漂洗及甩干等相应的电机操作,用到的电机转速、流程都不尽相 23 同。 (1) 洗涤:正转 1s,停 1s,翻转 1 秒,停 1s。 (2) 漂洗:正转 2s,停 1s, 翻转 2 秒,停 1s。 (3) 甩干:正转 15s 后自动停止。

44、 在程序设计中使用到了两个定时器中的三个定时器通道。这样可以节约定时器 资源,提高利用率。定时器的另外几个通道用于倒计时等其他几个作用。 对于进水、出水阀门,则是使用的普通 I/O 直接输出的。 3.2.5 串口调试模块 做程序的调试用,也可以进行相应的设置,通过上位机对洗衣机进行一些控制。 这里不多做介绍。 24 4 制版及调试经历 4.1 制板 4.1.1 器件原理图库 对于没有任何资源积累的我来说,首先需要制作器件原理图库。这时就需要依 照各个器件的数据手册(Datasheet)来进行绘制。对于每一个元器件来说,都需 要分别绘制相应的原理图库。由此需要知道每一种器件,每一个引脚的引脚号,

45、引 脚功能以及引脚名称。在制作库的过程中,这些要素都要与实际一一对应。如图 4- 1 所示为 STM32F103CBT6 的原理图库。 图 4-1 STM32F103CBT6 原理图库 4.1.2 绘制原理图 当所有元器件的库都制作完成后,就可以在主原理图中绘制原理图了。将之前 制作的原理图库调用后就可以直接放置在主原理图中。如图 4-2 所示。 图 4-2 绘制主原理图 25 然后按照相应的功能用线将元器件各引脚相连。最后排版,将各个功能模块按 照对应的功能排放在一起,调整整个图纸为合适的大小。最后还要对其中的功能进 行检查。 4.1.3 PCB 封装库 完成了电路原理图的绘制后,就需要设计

46、出相应的 PCB 图。首先需要对各个元 器件制作相应的 PCB 封装库。对于一些常见的元器件,Autium Designer 09 自带了 相应的 PCB 封装库。而对于一些不常用的或者新出的元器件,就需要自己动手来制 作相应的封装库。 这时就要使用到芯片的数据手册,上面一般有元器件对应封装的尺寸。如图 4- 3 所示。如果没有,则需要使用游标卡尺去实际测量一番。最后将相应的尺寸对应 到到相应的 PCB 库中就可以了。如图 4-4 所示。不过需要注意的是,对于 PCB 库也 要仔细的检查。如果出错,则制作出来的电路板也就会出错,造成时间、精力、金 钱上的浪费。 图 4-3 数据手册中的继电器尺

47、寸图 26 图 4-4 MAX3232 芯片封装图 4.1.4 PCB 基本布线规则 将制作好的 PCB 封装库与原理图的元器件对应后,就可以直接将对应的 PCB 封 装导入到 PCB 图中。由于我设计的系统是一个低速系统,所以没有考虑到 EMC 等设 计规则。将封装排列好,根据相应的电气连接线将引脚之间连接好。注意不要有锐 角。另外,电源线应该设计的粗一点,一般要求是对于 500mA 的电流,线宽应为 20mil 左右(0.508mm) 。信号线则可以相对细一些。根据不同情况来定。 最后制作好定位孔及挖空一个电机放置槽后,PCB 板的设计基本上就初步完成 了。使用规则检查一遍,看看有没有电气

48、引脚没有连接上的。改好后,就可以发网 上专门的 PCB 加工商进行加工。效果图见附录三。 4.2 硬件检测 俗话说,一个成熟的项目,大部分时间和精力都是花在了调试上。这对于更新 系统功能及削减 BUG 是必须经历的过程。对于调试,只有硬件通过检测没问题, 才能进行软件方面的调试。所以,我首先进行硬件方面的调试。 嵌入式系统的硬件调试与软件调试是密不可分的。只有首先排除明显的硬件问 题后,才能和软件结合起来调试。我按照以下三步进行硬件调试: 第一步,核对元器件的型号并查看元件是否都焊接完毕,确认没有遗漏。 第二步,在没有通电前,使用万用表测试元件的引脚有没有没有焊接好。注意 27 电源的正负极以

49、及电源之间是否有短路问题。 第三步,通电后,首先烧写一个测试程序,比如流水灯。看看单片机能不能正 常工作。再之后烧写每一个模块的程序,单独检测这个模块的硬件。如果能达到要 求,则可以断定这个模块的硬件是合格的。如果达不到要求,则需要检测相应的硬 件问题。 经过以上硬件都检测完毕,没有问题。接下来我就进入到软件环节。 4.3 软件调试 对于复杂一点的系统,如果有硬件仿真器的就用硬件仿真器进行调试。如果没 有,就用软件仿真或者串口来进行调试。软件调试主要是对于逻辑问题上的修改。 使用硬件仿真器,并且在有问题的地方设置断点。然后再断点处,一步一步执行程 序,就可以非常方便地发现问题。单步和断点调试后,还应进行连续调试,因为单 片机的运行是在严格的时序下进行的,单步运行成功并不代表连续运行成功。待全 部调试完成后,应反复运行多次。没问题才表示调试完成。 4.3.1 菜单界面的制作 对于程序的调试,主要是集中在菜单界面的制作上。 对于菜单界面,我首先想到了这款液晶的绘图功能。可以将每一级菜单制作成 相应的图片,并制作相应的反白图表示选中。这样,使用上、下、左、右按键来选 择菜单时,就可以使用相应的图片来进行替换,达到目的。 于是在程序中,我给所有的菜单图片进行了编号,如图 4-5 所示。对于同一菜 单的反白与非反白图也另外进

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1