




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于单片机的全自动洗衣机的控制系统设计院 系:机电与自动化学院专 业 班:电气工程及其自动化1002班姓 名:徐 巍学 号:指导教师:吴 雯 2014年5月基于单片机的全自动洗衣机的设计Design of Automatic Washing Machine Based on MCU摘 要本设计以家用全自动洗衣机的工作过程为研究模型,以意法半导体公司的单片机STM32F103CBT6为控制核心,完成了电源供电电路、液晶接口电路、直流电机驱动电路、继电器控制电路、按键扫描电路、AD信号采集电路、蜂鸣器报警电路、童锁认证电路的设计,实现了对洗衣机的洗涤、漂洗、甩干工作状态的智能控制。其中童锁认证功能
2、是为解决儿童使用安全问题而特别设计的。软件部分的设计包括:洗衣代码选择、洗衣倒计时显示、进水指示、排水指示、电机旋转、童锁认证等主要过程控制及显示。通过Keil软件编程来控制电机旋转、12864液晶显示等主要动作。其中液晶菜单界面的显示设计是关键环节,采用12864液晶的图形显示功能,通过不同的反白及非反白图片之间的切换,设计了良好的人机交互界面。设置有一级、二级菜单选项,用户可以按提示操作相应的按键,安全、放心地完成自己设定的洗衣过程。关键词:STM32F103CBT6单片机 人机交互界面 童锁认证 AbstractThe design of the work process for the
3、 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 circuit , key scan circuit , AD signal acquisition circuit, buzz
4、er 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 using specially designed . Software part of the design include
5、: 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 rotation, 12864 LCD and other major actions. LCD which displays the me
6、nu 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, the user can press the corresponding button prompts , security ,
7、ease to complete their own set of laundry process .Key words:STMicroelectronics microcontroller interactive interface child lock certification目 录摘要IIABSTRACTIII绪论11 全自动洗衣机的发展过程12 洗衣机的发展前景及待解决的问题11 全自动洗衣机的功能设计31.1 设计目的31.2 方案论证32 系统硬件电路的设计52.1 目前主要应用的单片机机型52.2 硬件各模块简介62.2.1 微处理器STM32F103CBT662.2.2 电源
8、电路模块102.2.3 按键模块102.2.4 报警器模块122.2.5 水阀模块132.2.6 直流电机模块142.2.7 12864液晶显示162.2.8 童锁功能173 全自动洗衣机的软件设计183.1 软件编程思路183.2 各模块程序编写思路183.2.1 主程序流程183.2.2 输入扫描模块193.2.3 显示界面菜单模块193.2.4 输出控制模块213.2.5 串口调试模块224 制板及调试经历234.1 制板234.1.1 器件原理图库234.1.2 绘制原理图234.1.3 PCB封装库244.1.4 PCB基本布线规则254.2 硬件检测254.3 软件调试264.3.
9、1 菜单界面的制作264.3.2 PWM的生成274.3.3 AD童锁的设计27结论29致谢30参考文献31附录一 总体设计原理图32附录二 主板PCB图33附录三 主板PCB实物图34 附录四 实物图35 绪 论1 全自动洗衣机的发展过程随着社会的进步和生活水平的不断提高,洗衣机是一种在家庭中不可缺少的家用电器,全自动式洗衣机因使用方便得到大家的青睐,全自动即进水、洗涤、甩干等一系列过程自动完成。家用洗衣机从发明到现在已经经历了一个多世纪,经历以下一些发展阶段:世界上第一台洗衣机实在1874年由美国的比尔.布莱克斯通(BillBlackstone)研制成功的。1910年前后,第一台卧轴滚筒式
10、电动洗衣机问世,标志着人类家务劳动自动化的开始。20世纪20年代,第一台立轴搅拌式洗衣机再美国试制成功,由此,洗衣机开始了“立轴”与“卧轴”之分。50年代中叶,日本三洋公司推出单桶波轮式洗衣机。开始确定了滚筒式、搅拌式和波轮式三种工作方式。60年代,日本推出了带甩干桶半自动洗衣机,并且大量应用塑料,使洗衣机的发展进入一个新的阶段。70年代,日本推出波轮式套桶全自动洗衣机,从此开始有了“全自动”洗衣机的概念。70年代后期,日本推出了微电脑控制的全自动洗衣机。完成了由机械电动程序控制到电脑控制的过渡,开始了电脑控制时代。这时,洗衣机在发达国家已进入饱和期,而在亚太地区发展中国家开始进入普及期。80
11、年代后期,“模糊控制”洗衣机开始出现,实现了家电器控制方式上的高度自动化。出现“白色家电”的概念。90年代,随着变频技术的发展,日本最先推出了电动机直接驱动洗衣机,实现了洗衣机驱动方式上的革命。今后洗衣机将以高可靠性,完善的功能,节水省电,降噪省时以及规格品种多样化为发展方向。2 洗衣机待解决的一些问题由于我国洗衣机厂起步晚,加上技术方面的一些问题,不可避免的在现有的机型中出现一些弊端。主要弊端有:噪声大,耗水、耗电,进水不畅或进水不止或排水不畅,工作周期不平稳、振动大,损伤洗涤物,洗涤效果不佳,脱水桶自动性不佳,脱水不良,重量大,容量不合理。具体来说,洗衣机的问题存在于结构、质量、原材料和模
12、具及管理方面。(1) 结构类型方面我国洗衣机多属波轮式。今后波轮式仍然是主要型式。为了适应国外市场的不同需求,要适当地生产些新型式的滚筒式和搅拌式洗衣机,进而生产具有波轮式、搅拌式两种洗衣机优点的新机型。为了使波轮式洗衣机洗涤更合理,应努力将全自动洗衣机提高到电脑型的水平。双桶洗衣机再提高漂洗的条件下,以重点生产全自动型喷淋式洗衣机为宜。同时要注意避免新水流洗衣机一味地提高波轮式的转数极其转动时间或增高波轮筋高的倾向,以免损伤衣率和缠绕率回升增高,降低了新水流洗衣机的优越性。(2) 质量方面我国洗衣机的质量问题,具体反映再功能、外观和可靠性三方面,与国外存在再较大的差距。国内外洗衣机相比较:从
13、功能、电源插头、面板装饰、旋钮结合,塑料件的光整度(光洁、毛刺和变形),外箱和螺丝钉的成形及防锈,皮带的耐磨及噪音,进排水阀和水位开关质量,电脑控制各种功能的能力,电脑的抗电压波动、抗干扰防静电的能力,以及传感器的灵敏度等方面,很容易看出整体质量的好坏。再加上装配工艺较落后,致使我国洗衣机的质量稳定性差,出口有一定的困难。目前我国洗衣机无故障运行水平约为250500小时,而国外同类产品达15002000小时,即十年不需修理。因此提高洗衣机的质量要从提高零部件的质量入手。关键电器件和传动件应组织专业分工,制定标准,组织攻关,进行认证,在改进功能方面、外观质量和可靠性三方面,进行全面整理,提高水平
14、。综合以上分析介绍,全自动洗衣机由于具有对衣物的磨损小、洗涤量大、节约水电等特点,越来越得到广大家庭的青睐。由于人们对全自动洗衣机在价格低廉的基础上也提出了功能齐全、操作简单、不缠绕、不伤布料、洗衣效果好、性能可靠、工作效率高、便于维修等更高的要求。为满足人们这种需求,特设计出这种有微控制器控制的全自动洗衣机控制系统。1 系统的总体设计1.1 设计目的目前中国洗衣机市场正进入更新换代期,市场潜力巨大,人们对于洗衣机的要求也越来越高,目前的洗衣机主要有强弱洗涤功能、进排水系统故障自动诊断功能、暂停等七大功能,在许多方面还不能达到人们的需求。这就要求设计者们有更高的专业和技术水平,能够提出更多好的
15、建议和新的课题,将人们的需要变成现实,设计出更节能、功能更全面、更人性化的全自动洗衣机。1.2 设计方案论证 (1) 方案1:通过设对计要求的分析,控制对象包括:按键、电控水龙头1(进水阀)、电控水龙头2(出水阀)、电动机、数码管显示、LED指示灯、蜂鸣器等。这些被控对象需要根据不同的洗衣程序来设定他们的工作状态和工作时间,电控水龙头1(进水阀)和电控水龙头2(出水阀)来控制进水和出水,同时需要LED指示灯和数码管显示不同的工作状态和剩余时间,按键用来控制程序运行和设置洗衣模式,蜂鸣器用来提示洗衣完成提示。按照上述的系统方案得到的系统整体构架如图1-1所示。图1-1 原理框图(2) 方案2:用
16、直流电机代替交流电机模拟洗衣过程。所开发的全自动洗衣机控制器,由主控CPU单元、电源、12864液晶显示器、蜂鸣器、控制电路、驱动电路、水位监测单元及复位电路构成。洗衣机控制器采用带字库的液晶显示器12864提供诸如:进水、洗涤、漂洗、甩干、结束等状态以及控制时间的显示。通过按键来提供相应的操作,来选择相应的洗衣流程。对于这次毕业设计课题则通过一个直流电机来代替洗衣机的电机的交流电机,相应的转速和方向来通过专用的电机驱动芯片H桥电路以及PWM来模拟洗衣机的洗涤过程。有一个液体压力传感器来检测相应的水位,判断是继续进水还是停止进水。当洗涤结束以及相应的误操作蜂鸣器会发出警报,同时电机立即停止转动
17、,免生危险。为了防止孩童玩耍带来的后果,开机前会有一个开机认证。只有通过专用的秘钥认证,才能开机。秘钥采用USB接口,在DATA+与DATA-配置不同的电阻,通过单片机自带的AD检测电压来进行验证。其工作原理见图1-2。图1-2 原理框图由于方案2采用了液晶作为显示单元,且使用了友好的交互式人机界面,比较新颖。且考虑到设置童锁功能,安全性能比较高,故采用方案2作为本次毕业设计的最终方案。2 系统硬件电路的设计2.1 目前主要应用的单片机机型(1) Intel公司的单片机Intel是最早推出单片机的公司之一,主要有MCS-48、MCS-51系列8位单片机和MCS-96系列的16位单片机。在20世
18、纪八、九十年代,MCS-51和MCS-96曾经是我国最流行的单片机,得到广泛的应用。这几年Intel公司注重于奔腾系列微处理器,没有推出新的单片机。(2) ARM微处理器ARM处理器的三大特点是:耗电少功能强、16位/32位双指令集和合作伙伴众多。 体积小、低功耗、低成本、高性能; 支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件; 大量使用寄存器,指令执行速度更快; 大多数数据操作都在寄存器中完成; 寻址方式灵活简单,执行效率高; 指令长度固定。在本洗衣机控制系统中,要求洗衣机应具有按照用户设定洗衣量、洗涤漂洗时间及次数。反应剩余时间等参数,自动按照设定的流程
19、来洗涤衣物,并能自动控制洗衣机电机、进水阀、出水阀等工作,同时要求有七个按键输入和并行液晶显示电路,因此该系统是一个多输入、多输出系统。若用Intel的51系列单片机,一方面需要对I/O进行扩展,另一方面又需要对存储空间进行扩展。同时由于51单片机驱动能力有限,需外加驱动电路,使得硬件电路过于复杂。综合上述考虑,决定选用内部有A/D转换器、驱动能力强的意法半导体公司(ST)出产的芯片,STM32F103CBT6。STM32F103CBT6是基于ARM Cortex-M3内核设计,片上集成有丰富的数字和模拟资源,允许最高72 MHz的工作频率,是一款性价比很高的32位ARM处理器,是低成本ARM
20、嵌入式应用的极佳选择。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-RTCPC14-OSC32_INI/OPC15-OSC32_OUTI/OOSC_INIOSC_OUTONRSTI/OVSSA电源表2-2 STM32F103CBT6引脚功能说明表2管脚名类型特殊功能V
21、DDA电源PA0-WKUPI/OWKUP/USART2_CTSADC12_IN0/TIM2_CH1_ETRPA1I/OUSART2_RTS/ADC12_IN1/TIM2_CH2PA2I/OUSART2_TX/ADC12_IN2/TIM2_CH3PA3I/OUSART2_RX/ADC12_IN3/TIM2_CH4PA4I/OSPI1_NSS/USART2_CK/ADC12_IN4PA5I/OSPI1_SCK/ADC12_IN5PA6I/OSPI1_MISO/ADC12_IN6/TIM3_CH1PA7I/OSPI1_MOSI/ADC12_IN7/TIM3_CH2PB0I/OADC12_IN8/TI
22、M3_CH3PB1I/OADC12_IN9/TIM3_CH4PB2/BOOT1I/OPB10I/OI2C2_SCL/USART3_TXPB11I/OI2C2_SDA/USART3_RXVSS_1电源PB12I/OSPI2_NSS/I2C2_SMBAI/USART3_CK/TIM1_BKINPB13I/OSPI2_SCK/USART3_CTS/TIM1_CH1NPB14I/OSPI2_MISO/USART3_RTS/TIM1_CH2NPB15I/OSPI2_MOSI/TIM1_CH3NPA8I/OUSART1_CK/TIM1_CH1/MCOPA9I/OUSART1_TX/TIM1_CH2PA10
23、 I/O USART1_RX/TIM1_CH3 PA11I/OUSART1_CTS/CANRX/TIM1_CH4/USBDMPA12I/OUSART1_RTS/CANTX/TIM1_ETR/USBDPPA13/JTMS/SWDIOI/O管脚名类型特殊功能VSS_2电源VDD_2电源PA14/JTCK/SWCLKI/OPA15/JTDII/OPB3/JTDOI/OPB3/TRACESWOPB4/JNTRSTI/OPB5I/OI2C1_SMBAIPB6I/OI2C1_SCL/TIM4_CH1PB7I/OI2C1_SDA/TIM4_CH2BOOT0IPB8I/OTIM4_CH3PB9I/OTIM4_
24、CH4VSS_3电源VDD_3电源表2-3 STM32F103CBT6引脚功能说明表3表2-4 引脚资源分配I/O引脚功能PA313输入,按键S1:上选项PA717按键S3:下选项PA829按键S5:左选项PA1132按键S6:右选项PA1233按键S7:确认选项PB119微动开关S2:水位PB541微动开关S4:机盖PA212蜂鸣器PB642继电器:K1 进水阀PB743继电器:K2 出水阀PA010电机正转控制PA111电机反转控制PA4PA5PA6PB8PB9PB10PB11PB12PB13PB14PB15141516454621222526272812864液晶屏的控制接口与数据接口P
25、B018童锁:芯片模数转换接口2.2.2 电源电路模块如图2-2所示,由于系统中存在感性元件(电机、继电器、蜂鸣器)运行会拉低系统电压,导致液晶灰度调节值偏出相应范围,故电源采用两节锂电池串联供电,提供7.8V的电压。采用ASM1117-3.3稳压管,输出的3.3V供给单片机、按键和蜂鸣器。并且加入ASM1117-5专门供给液晶的灰度调节端口使用。而相应的电机、继电器等大功率感性元件则直接接入7.8V。图2-2 电源原理图2.2.3 按键模块洗衣机控制系统需实现以下功能:进水、洗涤、漂洗、甩干、结束等状态以及控制时间的显示。在使用中通过按键来提供相应的操作,选择相应的洗衣流程。在洗衣机控制板上
26、设有S1、S3、S5、S6、S7 五个人机交互按键。各按键实现的功能见表2-5所示。表2-5 按键功能分配表代号功能具体功能S1上选项控制人机交互界面菜单选项向上功能S3下选项控制人机交互界面菜单选项向下功能S5左选项控制人机交互界面菜单选项向左功能S6右选项控制人机交互界面菜单选项向右功能S7确认选项控制人机交互界面菜单选项的选定/退出功能其电路原理见图2-3所示。图2-3 交互式按键原理图考虑到洗衣机中的水位检测和机盖报警的实现会有使用及演示等不方便因素,故而在控制板上使用S2和S4两个微动开关代替。其中S2代替水位检测传感器,S4代替洗衣机机盖报警传感器。其原理如图2-4所示。 图2-4
27、 微动开关原理图硬件部分采用下拉电路,采用10K欧的电阻作为下拉电阻,这样流过的电流会比较小,而且又能起到相应的传输信号的作用。对于逻辑上:按键按下,CPU接收的是高电平。按键松开,CPU接收的是低电平。开机后,软件不断检测PA3、PA7、PA8、PA11、PA12的输入。当有键按下时,软件便会检测到此按键输入口的高电平。根据扫描到的管脚的电平,来判断相应的按键被按下。采用软件消抖的方式,需要再检测到按键按下之后延时20ms,再一次进行检测,只有两次都检测到同一个按键时,才进行相应的动作。2.2.4 报警器模块在本设计拥有全自动洗衣机的故障自诊断功能。为避免洗衣机出现问题或故障,保证洗衣机的安
28、全工作,在洗衣机运行过程中出现故障时,应立即发出蜂鸣声报警,以提醒用户及时处理。具体实现方式:首先洗衣机电源接通,按键、门开关、水位传感器等输入信号传输给单片机,单片机结合内部时钟信号,不断地对接收到的信号进行分析,并判断当前工作状态是否正常,若出现异常情况,则进行蜂鸣报警。在本设计中,报警装置采用小型无源蜂鸣器。无源蜂鸣器是靠压电效应的原理来发声的,压电材料,一般常见的是各种压电陶瓷。这种材料的特别之处在于,当电压作用于压电材料时,就会随电压和频率的变化产生机械变形。另一方面,当振动压电陶瓷时,则会产生电荷。就是说这种材料能把机械变形和电荷相互转化,压电式蜂鸣器里面的起振片,就是一种压电陶瓷
29、。如上所述,要让它振动,除了压电陶瓷本身,还需要适当大小和频率变化的电压作用于压电陶瓷。压电式(有源)蜂鸣器内部带有多谐振荡器,可以产生 1.52.5kHZ 的电压信号,由此压电式蜂鸣器才能发声。无源蜂鸣器原理如图2-5所示。图2-5 无源蜂鸣器原理图蜂鸣器的一端接到VCC电源上面,蜂鸣器的另一端接到三极管的集电极极C,三极管的基级B经过限流电阻R19后由单片机的PA2引脚控制,当PA2输出低电平时,三极管Q3截止,没有电流流过线圈,蜂鸣器不发声;当PA2输出高电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制PA2脚的电平来使蜂鸣器发出声音和关闭。程序中改变单
30、片机PA2引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。另外,改变PA2输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小。2.2.5 水阀模块水阀分为进水阀和出水阀。分别用K1和K2两个继电器代替。其原理如下图2-6所示。其中,K1代表进水阀门,K2代表出水阀门。当洗衣机运行时,如果到达进水状态,则进水继电器K1吸合,出水继电器K2断开,模拟进水阀门的打开。如果到达洗涤状态,则进水继电器K1与出水继电器K2同时关闭。既不进水,也不出水。如果到达出水状态,则出水继电器K2吸合,进水继电器K2断开,模拟出水阀门的打开。图2-6 水阀原理图2.2.6 直流电机模块洗
31、衣机的滚筒采用一个小型直流电机代替。驱动方式采用脉宽调制技术(PWM技术)来调节转速。采用一枚专用的H桥芯片L9110S来进行电机的转向及转速的调节。其引脚功能说明见表2-5所示。引脚排列如图2-7所示。表2-5 L9110S的引脚功能序号符号功能1OAA路输出管脚2VCC电源电压3VCC电源电压4OBB路输出管脚5GND地线6IAA路输入管脚7IBB路输入管脚8GND地线 图2-7 L9110S引脚排列图L9110S具有静态工作电流低,电压范围宽,带负载能力强,外围电路少及价格较便宜等优点。非常适合应用于小型直流电机的控制。其器件应用图如图2-8所示。图2-8 L9110S应用电路图 由图2
32、-8可以看出,L9110S的外围电路只要在IA及IB两个端口连接上控制线就可以驱动它。图2-9为L9110S管脚波形图。图2-9 L9110S管脚波形图本设计采用7.8V的两节锂电池供电。由于CPU的电压等级是3.3V,为了安全起见,CPU到L9110S的控制线采用了光耦进行隔离。通过IA及IB端口的配置来改变电机的转向,通过PWM技术改变输出端口P6的电压等级,由此来改变电机的转速。其原理如图2-10所示。图2-10 基于L9110S的H桥原理图2.2.7 12864液晶本设计采用12864液晶作为显示设备。12864液晶是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级
33、、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128*64,内置8192个16*16点汉字。其基本特性如下:(1) 低电源电压(VDD:+3.0-+5.5V);(2) 显示分辨率:12864点;(3) 内置汉字字库,提供8192个1616点阵汉字(简繁体可选);(4) 内置128个168点阵字符;(5) 显示方式:STN、半透、正显;(6) 驱动方式:1/32DUTY,1/5BIAS;(7) 视角方向:6点;(8) 背光方式:侧部高亮白色LED,功耗仅为普通LED的1/51/10;(9) 通讯方式:串行、并口可选;(10) 内置DC-DC转换电路,无需外加负压;(11) 无需片选信号
34、,简化软件设计;(12) 工作温度: 0 - +55 ,存储温度: -20 - +60。在本次毕业设计中其用于洗衣机的工作状态(进水、洗涤、漂洗、甩干、结束)及时间剩余状态(时间精度:秒),等等一些必要的流程显示。图2-11及2-12分别是12864的实物图及电路原理图。图2-11 12864液晶实物图图2-12 12864液晶并行接口原理图2.2.8 童锁功能为了避免孩童玩耍误操作带来的后果,设计了童锁功能,开机前会进行开机认证。只有通过专用的密钥认证,才能开机。密钥采用USB接口,在DATA+与DATA-配置不同的电阻,通过单片机自带的AD检测电压来进行验证。密钥使用了一个103的电位器,
35、这样就可以通过改变电阻来设置相应校验的电压值。电路原理如图2-13所示。图2-13 AD检测原理图3 系统的软件设计3.1 软件编程思路全自动洗衣机控制系统的软件设计根据其功能要求,主要分为以下几个大程序模块:主程序流程、输入扫描模块、显示界面菜单模块、输出控制模块、串口调试模块。 其中主程序流程图见附录五。3.2 各模块程序编写思路主程序流程图如图3-1所示。首先开机进入开机第一屏的一个欢迎界面,显示延时1s后,进入密钥提示界面。只有插入专用的密钥才能进入下一步的一级菜单。 如果密钥验证错误,则会提示密钥错误,这时可以按下确认键跳回到上一步重新进 行验证。当进入一级菜单后,会有三个菜单选项,
36、分别是:洗衣流程、功能设置、作品简介。当选中相应的菜单选项后,会进入相应的二级菜单界面:(1) 洗衣流程二级界面:设置衣物的多少、洗涤及漂洗的时间与次数。最后当所有洗衣参数都设置完后,按下确认键,会按照设置的流程进行相应的洗衣动作。同时会显示相应的洗衣步骤及剩余时间,给予操作者参考。(2) 功能设置二级界面:对于经常洗衣设定的参数予以保存,可以设置一键洗衣。方便操作。还可以根据需要设置关闭报警器及关闭密钥认证。(3) 作品简介二级界面:对我这次毕设的一个简单介绍,以类似电子书的形式呈现。通过上下键进行翻页查看,确认键退出。3.2.2 输入扫描模块输入扫描模块用于主程序运行时进行按键、触控开关以
37、及童锁AD的实时检测与动作。对于按键的扫描,主要是将获取的七个按键当前值打包存入一个keytemp变量中。最后在循环中不停的分析keytemp的值来确认相应的按键,如图3-1,3-2。图3-1 按键扫描程序图图3-2 按键扫描流程图图对于童锁只有在开机时才会进行密钥的验证,所以童锁AD的数值只用与开机不久的检测。而5个按键则在主程序运行的任何时刻都在进行检测,应为主程序对于按键所触发的事件需要实时进行处理,为了提高程序的实时性则需要进行实时检测。而触控开关的作用是用于检测水位和机盖,涉及到突然事件。则使用外中断进行操作比较好。3.2.3 显示界面菜单模块使用12864 液晶作为界面的显示设备,
38、需要用到液晶的绘图功能。首先说一下液晶点阵LCD的显示原理:对于数字电路,所有的数据都是以0和1保存的,对LCD控制器进行不同的数据操作,可以得到不同的结果。对于显示英文操作,由于英文字母种类很少,只需要8位(一字节)即可。而对于中文,常用却有6000以上,所以将ASCII表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。而剩下的低128位则留给英文字符使用,即英文的内码。在得到了汉字的内码后,还仅是一组数字对于LCD显示,这就涉及到文字的字模,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,是用数字的各位信息来记载英文或汉字的形状,如英文的A在字模的记载方式如图
39、3-3所示:图3-3 “A”字模转换图其次,制作菜单界面,首先需要制作相应的素材。比如:对于“洗衣流程”这个一级菜单。为了减轻工作量,使用到一款“液晶取字模”的软件。下图3-4则是这款软件的界面。图3-4 液晶取字模软件界面1首先是在软件中输入“洗衣流程”,图3-5所示。为了体现友好的人机交互界面,所以会涉及到菜单的选中与非选中。这样就需要生成相应的阴码与阳码。如图3-6所示。图3-5 液晶取字模软件界面2图3-6 液晶取字模软件界面3最后点击生成自模就会生成对应的相应字模码。如图3-6所示,就可以把其嵌入12864 的绘图驱动中。图3-6 液晶取字模软件界面4对于菜单的嵌套,比如每个以及菜单
40、还会嵌套相应的二级菜单。相应的需要进行判断。3.2.4 输出控制模块输出控制模块是实现控制电机及洗衣机的进水与出水阀门。对于直流电机的控制,则用到了PWM技术来改变转向及转速。在程序中,使用了定时器中断来控制。由于涉及到洗涤、漂洗及甩干等相应的电机操作,用到的电机转速、流程都不尽相同。(1) 洗涤:正转1s,停1s,翻转1秒,停1s。(2) 漂洗:正转2s,停1s, 翻转2秒,停1s。(3) 甩干:正转15s后自动停止。在程序设计中使用到了两个定时器中的三个定时器通道。这样可以节约定时器资源,提高利用率。定时器的另外几个通道用于倒计时等其他几个作用。 对于进水、出水阀门,则是使用的普通I/O直
41、接输出的。3.2.5 串口调试模块做程序的调试用,也可以进行相应的设置,通过上位机对洗衣机进行一些控制。这里不多做介绍。4 制版及调试经历4.1 制板4.1.1 器件原理图库对于没有任何资源积累的我来说,首先需要制作器件原理图库。这时就需要依照各个器件的数据手册(Datasheet)来进行绘制。对于每一个元器件来说,都需要分别绘制相应的原理图库。由此需要知道每一种器件,每一个引脚的引脚号,引脚功能以及引脚名称。在制作库的过程中,这些要素都要与实际一一对应。如图4-1所示为STM32F103CBT6的原理图库。图4-1 STM32F103CBT6原理图库4.1.2 绘制原理图当所有元器件的库都制
42、作完成后,就可以在主原理图中绘制原理图了。将之前制作的原理图库调用后就可以直接放置在主原理图中。如图4-2所示。图4-2 绘制主原理图然后按照相应的功能用线将元器件各引脚相连。最后排版,将各个功能模块按照对应的功能排放在一起,调整整个图纸为合适的大小。最后还要对其中的功能进行检查。4.1.3 PCB封装库完成了电路原理图的绘制后,就需要设计出相应的PCB图。首先需要对各个元器件制作相应的PCB封装库。对于一些常见的元器件,Autium Designer 09自带了相应的PCB封装库。而对于一些不常用的或者新出的元器件,就需要自己动手来制作相应的封装库。这时就要使用到芯片的数据手册,上面一般有元
43、器件对应封装的尺寸。如图4-3所示。如果没有,则需要使用游标卡尺去实际测量一番。最后将相应的尺寸对应到到相应的PCB库中就可以了。如图4-4所示。不过需要注意的是,对于PCB库也要仔细的检查。如果出错,则制作出来的电路板也就会出错,造成时间、精力、金钱上的浪费。图4-3 数据手册中的继电器尺寸图图4-4 MAX3232芯片封装图4.1.4 PCB基本布线规则将制作好的PCB封装库与原理图的元器件对应后,就可以直接将对应的PCB封装导入到PCB图中。由于我设计的系统是一个低速系统,所以没有考虑到EMC等设计规则。将封装排列好,根据相应的电气连接线将引脚之间连接好。注意不要有锐角。另外,电源线应该
44、设计的粗一点,一般要求是对于500mA的电流,线宽应为20mil左右(0.508mm)。信号线则可以相对细一些。根据不同情况来定。最后制作好定位孔及挖空一个电机放置槽后,PCB板的设计基本上就初步完成了。使用规则检查一遍,看看有没有电气引脚没有连接上的。改好后,就可以发网上专门的PCB加工商进行加工。效果图见附录三。4.2 硬件检测俗话说,一个成熟的项目,大部分时间和精力都是花在了调试上。这对于更新系统功能及削减BUG是必须经历的过程。对于调试,只有硬件通过检测没问题,才能进行软件方面的调试。所以,我首先进行硬件方面的调试。嵌入式系统的硬件调试与软件调试是密不可分的。只有首先排除明显的硬件问题
45、后,才能和软件结合起来调试。我按照以下三步进行硬件调试:第一步,核对元器件的型号并查看元件是否都焊接完毕,确认没有遗漏。第二步,在没有通电前,使用万用表测试元件的引脚有没有没有焊接好。注意电源的正负极以及电源之间是否有短路问题。第三步,通电后,首先烧写一个测试程序,比如流水灯。看看单片机能不能正常工作。再之后烧写每一个模块的程序,单独检测这个模块的硬件。如果能达到要求,则可以断定这个模块的硬件是合格的。如果达不到要求,则需要检测相应的硬件问题。经过以上硬件都检测完毕,没有问题。接下来我就进入到软件环节。4.3 软件调试对于复杂一点的系统,如果有硬件仿真器的就用硬件仿真器进行调试。如果没有,就用
46、软件仿真或者串口来进行调试。软件调试主要是对于逻辑问题上的修改。使用硬件仿真器,并且在有问题的地方设置断点。然后再断点处,一步一步执行程序,就可以非常方便地发现问题。单步和断点调试后,还应进行连续调试,因为单片机的运行是在严格的时序下进行的,单步运行成功并不代表连续运行成功。待全部调试完成后,应反复运行多次。没问题才表示调试完成。4.3.1 菜单界面的制作对于程序的调试,主要是集中在菜单界面的制作上。对于菜单界面,我首先想到了这款液晶的绘图功能。可以将每一级菜单制作成相应的图片,并制作相应的反白图表示选中。这样,使用上、下、左、右按键来选择菜单时,就可以使用相应的图片来进行替换,达到目的。于是
47、在程序中,我给所有的菜单图片进行了编号,如图4-5所示。对于同一菜单的反白与非反白图也另外进行了编号。通过这两组编号,来记忆相应的操作。通过加、减运算来转换编号以此来改变相应的显示。并且加入了相应的判断,防止编号溢出。我一共制作了三组菜单,分别是“洗衣流程”、“功能设置”、“作品简介”。这样,第一级菜单就制作完毕。如图4-6所示。图4-5 一级菜单图图4-6 菜单流程图接着,着手制作二级菜单界面,首先我准备先从最简单的“作品简介”开始。想着做出那种电子书的效果。通过上、下键可以滚动文字显示,左、右键来实现翻页效果。如果显示完,按上、下键则不会继续。按确认键进入或退出二级界面。如图4-7所示。首
48、先,我先想到的是将我要显示的文字制作成图片,然后按上、下、左、右键浏览就直接切换图片就可以达到效果。但是,我发现这种方法不好。一方面,如果文字多的话,要制作很多图片,占用很大的存储空间。另一方面,如果要对文字进行修改的话,又需要重新制作图片,不利于以后的修改。于是我想到12864液晶的字库功能,由于我使用的12864液晶是带字库的。可以直接输入相应文字的ASCII码来显示对应的文字。并且输入相应的地址,可以使文字从对应的地址开始显示。这样就方便多了,我通过一定的算法,将一段文字拆开,并将没段文字做上编号并赋予相应的显示地址。当按上、下、左、右键时,实时改变每一段文字的编号及地址就能完成符合要求
49、的显示。对于确认键返回主菜单。我思考了很久,没想到好的方法,使用了goto语句进行强制返回。图4-7 作品简介二级菜单图对于制作一个重要的二级菜单“洗衣流程”。需要能设置并显示:洗衣量、洗涤、漂洗、甩干、停止及倒计时。如图4-8所示。于是,我设置洗衣量为三个选项:少、中、多。用户根据需要来选择。对于洗涤、漂洗。用户可以设置相应的洗衣时间及次数。对应的时间可选为1、2、3、4、5、10、15分钟。对应的次数可选为1、2、3、4、5。最后,都设置完毕,会弹出一个确认的对话框。这时,按下确认键,就会计算剩余所需时间并开始按照设定的洗衣流程进行。图4-8 洗衣流程二级菜单图4.3.2 PWM的生成对于
50、电机的操控,我花了一段时间去研究。由于CPU自带硬件PWM,我一开始准备使用的。不过花了很长时间也没有弄出来。后来我使用了定时器中断来实现的。先设定一个基础时间,比如说1ms,每到设定的时间后,进入中断,计数器加一。当计数器加到设定的值时,则可以控制相应的输出口置高或者置低来达到模拟PWM的目的。对于洗涤、漂洗和甩干。我各自设置了三种模式(洗涤、漂洗、甩干)与之对应。在洗衣流程中,电磁阀门运转的同时一般是需要停下电机的。对于,进水、出水是比较重要的。对此,关闭相应相应的中断来达到目的。报警器也是采用PWM驱动。是一个无源蜂鸣器。为了防止与电机的干扰,我又另外使用了一个定时器来解决。4.3.3 AD童锁的设计对于童锁功能,我是使用了AD作为验证。电路板上,我使用了一个USB接口,将其中的DATA+与单片机的AD口相连,另外,自己拿万用板制作了一个“钥匙”,如图4-9所示。上面焊接了一个电位器分压来调节电压值。然后在程序中的开机时,设置了一个认证界面,如图4-10。只有插入钥匙并且在设定的阻值范围内,才能够认证成功并进入一级菜单,如图4-11。否则会提示认证失败,如图4-12。图4-9 “钥匙”图图4-10 认证图1图4-11 认证图2图4-12 认证图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专利抵押合同范本
- 公司销售人员合同范例
- 劳务合同范本 短期
- 单位购买电脑合同范本
- 勾机铲车出租合同范本
- 公司水果采购合同范本
- 单位玻璃保洁合同范本
- 蛋糕师招聘合同范本
- 代买股合同范本
- 制式采购合同范本
- GB/T 8947-1998复合塑料编织袋
- PALL 颇尔过滤器 -乙烯系统培训
- GB/T 2423.18-2021环境试验第2部分:试验方法试验Kb:盐雾,交变(氯化钠溶液)
- 2021年湖北师范学院专升本C语言程序设计试卷
- CB/T 3136-1995船体建造精度标准
- 疫苗冰箱温度记录表
- 全科医疗服务模式及服务内容课件
- 2023年海东地区互助土族自治县人民医院医护人员招聘笔试模拟试题及答案解析
- X射线衍射课件(XRD)
- 清新淡雅简洁通用模板课件
- 福建省三明市各县区乡镇行政村村庄村名明细
评论
0/150
提交评论