版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
引言1.1课题背景最近的十几年里,科学技术呈现跨越式发展,尤其是单片机技术和传感器技术发展地尤为迅猛,单片机与传感器在各类电子产品中得到广泛应用,依靠单片机优秀的逻辑控制能力和传感器各种信息量的采集能力,众多的智能设备不断的出现在人们的视野当中。这些智能设备在生活中给人们尽可能最大的便捷,农业中为科学种植提供各种环境参数,工业中可以替代人工去完成工作,极大的节约了人力成本,提高了生产效率。单片机的应用在各行各业中占据着举足轻重的地位,尤其在近几年的大数据领域中,单片机为终端数据采集做出了巨大的贡献。汽车在人们日常生活中起到了重要的作用,随着中国经济的高速发展与国民经济的普遍提高,汽车已经进入了各家各户。当汽车不再是一种奢侈品之后,大家对汽车的功能要求也越来越高。现代汽车功能为了满足日常生活中人们的出行需求、出行安全、节能环保而日渐提高。据统计,全世界雨天行车的车祸事故有7%是因为司机手动打开雨刷分心导致的[1],现在随着汽车生产公司将各种各样的电子器件投入到汽车制造上,汽车的功能也逐渐趋于智能化[2],这部分问题也逐渐得以改善。该设计内容为汽车的雨刷智能控制,雨刷的历史源于德国博世公司发明的电动刮水器,起初只是个刮片,随着感应喷水器等机械的出现,逐渐发展成了现在的刮水器[3]。伴随着雨滴传感器、语音识别等技术革新,现在提出了一种新的智能雨刷控制器——通过雨滴采集电路感应前车玻璃的覆水量值和通过语音识别指令来控制雨刷器的转速[4]。目前,只有BOSCH公司能够生产出达到标准的智能雨刷。因为智能雨刷控制器价格昂贵,基本应用于高档车型上,普通车型多数依旧应用旧式雨刷[5]。1.2研究意义该课题研究的是通过51单片机实现汽车雨刷器的自动控制,该雨刷控制系统可通过车窗覆水量和语音指令来控制雨刷器的转速。可以使驾驶者在能见度极低的下雨天道路不用分散注意力去打开雨刷器的开关,极大的降低了此类事故的发生,并且能更好的适应人们的出行需要。智能化是当今社会的发展方向,近几年移动支付,人脸识别,语音语义识别等智能技术广泛应用,而姿态识别,协同目标检测等智能方向也日益成熟,而汽车的智能化除了无人驾驶以外,其他汽车功能智能化发展极为缓慢,该雨刷智能系统的提出与实现意味着这场汽车功能的智能改革已经开始。1.3研究综述1.3.1国外研究和发展现状雨刷器本身属于汽车的一个小功能器件,在汽车刚开始被投入使用的时候,研发公司并没有发明与之对应的雨刷器和挡风玻璃,驾驶员和乘客需要佩戴护眼目镜来防止风沙进入眼睛,但效果并不显著,因此发明了挡风玻璃。可当防止风沙,风雪等问题解决的时候,清除挡风玻璃上残留的污垢又成了一个巨大的难题,经常会影响行车视野,人们曾试图用抹布和蔬菜等拭擦,但不见成效,而且在行车途中也不可能拿抹布拭擦。最后在20世纪初美国的一位富家千金经过多次试验终于发明出了汽车雨刷器,起初雨刷器的诞生并没有人看好,许多工厂都不愿意生产,但随着第二次世界大战结束,大型机械和电子器件广泛用于日常生活中,这个时候雨刷器终于被世人接受,功能也逐渐完善。从单纯的刮片到两段式雨刷器,再由两段式雨刷器到真空泵驱动的自动雨刷器,一直发展到了现在,这个小小的汽车配件在一个多世纪以来拯救了无数人的生命。目前国外生产的雨刷种类比我们想象的复杂很多,有传统的间歇式雨刷器,雨珠感应式雨刷,随速感应式雨刷器,无骨雨刷等,并且国外在雨刷器发展这方面一直保持创新,相信在未来会有更多方便的雨刷功能问世。1.3.2国内研究和发展现状汽车工业作是我国高速发展的支柱产业,但是雨刷在我国始终没有得到创新的发展,汽车研发公司也没有重视雨刷器。在大多数驾驶者眼里,普通雨刷器已经足够能满足他们的行驶需求了,并且由于新的智能雨刷在推广时并没有老式雨刷那样全面,导致驾驶者接受智能雨刷器需要一段过渡的时间。国内的雨刷现状与国外相差不大,只是在创新研发方面略微落后于国外,新的智能雨刮系统不是正在测试,就是没有相应市场的宣传。1.4系统设计总体思路设计项目是需要一个完整的总体思路作为指导,总体思路的正确会使项目在设计的过程中顺利执行,避免走入误区,一般项目在设计时通常会考虑以下的内容:(1)硬件设计:硬件设计是基础型的原理性设计,首先就是对核心的单片机进行选择,根据单片机的型号、内存、引脚数量、运行速度等等参数,再结合项目的需求选取合适的单片机。其次需要对传感器的性能、功能进行全面的掌握,尤其是在传感器引脚的使用方面更要全面了解,通过查找传感器的器件手册了解传感器的引脚分布和封装尺寸,这样才能选取符合的传感器。在所有需要的模块确定完毕之后,进行原理图的绘制,绘制过程中不断的参考资料,完成原理图设计。最后对照原理图完成实物的焊接工作。(2)软件设计:软件设计是依托于硬件原理之上进行设计的,硬件需要软件来运行功能,软件需要硬件实现功能,在本质上是一个相互依存的关系,软件设计必须严格对照硬件引脚进行代码的编写,否则将无法实现所需要的功能,对于大多数的时候,为了代码编写方便需要随时调整硬件引脚的位置。在软件代码设计的时候,第一步完成的就是主程序的框架设计,框架中可以没有具体的功能,但必须要层次清晰,为不同功能的子程序分配位置,避免相互干扰,出现混乱。主程序的框架结构搭建完成之后,就需要编写各个子程序的代码,实现模块化设计。(3)系统的测试:系统测试在设计中是非常重要的,测试中会发现设计的缺陷,硬件和软件在设计的过程中难免会出现偏差[6],细微的偏差将会导致功能的不可实现,尤其在功能相互重叠的地方,子功能调试都没有问题,整体调试却出现功能不可控,这就需要优化代码或者变更硬件来解决。在反复的测试中查找问题,优化代码,使整个项目功能达到满意。
2系统方案设计2.1系统设计内容系统硬件设计框图如图2.1所示,其中单片机最小系统起到中枢的作用;LCD1602显示模块主要功能是显示覆水量大小,雨刷转速挡位,控制状态以及覆水量上限值和下限值;键盘模块主要是对覆水量量下限值的设置和对控制状态(自动或者手动)的设置;语音电路识别语音指令进而控制雨刷转动;雨滴传感电路采用专用的湿度传感器,需要经过数模转换电路传送给单片机。主要研究内容如下:(1)完成雨滴传感器的硬件电路设计,软件程序设计,将数据采集到单片机;(2)完成步进电机的电路设计,软件程序设计;(3)完成电机驱动的电路设计,确定驱动电平;(4)完成模数转换的电路设计,软件程序设计,将模拟量转换数字量;(5)完成显示器的电路设计,软件程序设计,将单片机数据进行显示;(6)通过按键具有设置参数功能;(7)完成语音识别LD3320的电路设计,软件程序设计。图2.1硬件框图2.2系统方案论证2.2.1主控方案选择主控器件是系统最为核心的器件,是协调整个系统运行、协调外部传感器一起工作的核心模块,所以对于主控器件的选择尤为重要,选取原则是既要满足预算要求,又要满足所必须的功能。方案选择1:选择32位单片机STM32,STM32单片机是一款功能和性能都非常优越的单片机,内部存储单元采用32个比特位作为存储单元,采用ARM内核架构,在内核中可以直接运行系统,内核系统分为M0、M1、M2、M3、M4。STM32单片机的应用比较晚,但是发展特别迅速,目前国内部分大学应用STM32单片机教学,并且市场上的商用电子产品几乎都是STM32单片机为核心开发的,但需要专门的烧写器,在使用方面几乎不存在缺点,唯一的问题是对于初学者而言,针对库函数开发还存在一定的困难。方案选择2:选择STC单片机,STC单片机应用比较早,采用最原始的8位寄存器存储数据[7],使用的是51的内核,在处理数据的速度方面相比较而言,速度比较慢,程序存储空间有限,所以对于大型系统功能并不适用。但是STC单片机的优势也非常明显,在网络上和书籍中有着丰富的学习资料和使用例程,对于初学而言,一般都是首选的一款单片机,在单片机的资源中,相对于一般的小型系统是足够用的,并且在使用中很方便,搭载最小系统就可以独立运行,程序的下载功能使用串口进行下载,不需要专用的烧写器进行程序下载,对于单片机的费用而言,STC单片机是最为经济划算的。方案选择3:选择MSP430单片机,MSP430型号的单片机是一款具有众多齐全功能的单片机[8],其内部资源非常丰富。在使用方面,一部分在工业控制场合使用的非常多,原因是内核设计部分采用8总线架构,对电磁的抗干扰性能极为强大,一般使用在手持设备中,具有非常好低功耗性能。消费类电子产品中一般并不多见,主要市场是工业产品,在单片机的开发设计中,需要专门的开发工具,网络和数籍中所介绍的知识比不多,相对而言,开发存在很大的困难,在价格方面比价昂贵,对于预算有限的项目来说,一般并不考虑此款单片机。综上所述,通过比对三款单片机的功能,综合考虑可操作性和经济方面,本次的开发选择STC系列的单片机。2.2.2电源电路选择方案一:采用市电220V交流电压作为系统的供电方式,220V交流电源需要通过变压器电路转为直流的电压才能给系统供电,并且在交流电压转为直流电压的过程中需要进行滤波、整流等等的电路设计,电路设计比较繁杂,并且在实验中会出现危险的情况,一旦线路错误,就会出现强电短路,危险程度极高,另一方面在转化中会出现多级转换的,由220V交流变为12V直流再变5V直流[9],这种多级装换并且进行滤波整流的电源电路设计极为复杂,对所使用的器件需要很高匹配程度,设计的复杂性是他最大的缺点。虽然电路复杂,但是他的优点也同样突出,输出功率较大,对于需要大功耗的器件具有无法比拟的优势,在输出时的特点是持续稳定,能够提供优质的功能能力。方案二:电源采用USB接口电源供电,USB电源是现代生活中一种比较常见的供电电源,比如电脑USB接口、手机充电头、电源插座等地方都有USB接口,USB接口供电发展起步比较晚,但是发展迅猛,几年时间迅速占领5V电源领域。现在的使用中USB电源几乎随处可见,供电的技术也越来越走向成熟,输出电压的能力比较稳定,相对来说很安全。系统本身并不需要太大的功率要求,但是需要稳定的供电能力,USB电源极为符合弱电系统的要求,所以USB电源非常适合弱电系统供电。方案三:电源采用锂电池进行供电,锂电池的应用比较广泛,安全性能很高,电池具有相当程度的稳定性,可以进行充电循环使用,一般应用在手持设备或者便携式设备中,可以不局限任何地点、任何场合使用。锂电池的电压一般为3.7V左右,一般在使用的时候需要升压之后在稳压使用在弱电系统中,由于锂电池材料的特点,需要对锂电池进行低电压检测,若果电池电压过低还在使用,就会对锂电池的内部材料造成永久性的损害,影响锂电池的使用次数,最大的缺陷就是供电不具有持续性,需要间隔的时间充电,输出电源的能力有限,除非是便携式的设备,一般不宜采用锂电池功能。通过比对三种方案,从安全性和接电方便综合考虑,本次设计采用方案二的设计方式,采用USB的供电方式来作为电源。2.2.3按键电路选择按键在系统中的占比很小,但是作用却很大,是实现人机对话的重要组成部分,通过按键的输入实现一定功能,对功能显像的观察,判断是否达到设计预期,从而实现人机的信息交互。按键在大多数的时候是完成参数的设置、功能控制、显示屏的翻页功能等等。按键在系统中一般会以两种方式出现,一种是键盘模式,一种是独立模式。按键设计的方案1:键盘模式也叫矩阵按键,通常情况是4*4按键组成的,在程序的IO扫描中,通过横向和纵向的扫描交叉点确定按键动作,这样的按键设计为了节省单片机的IO资源,8个IO引脚就可以完成16个按键的工作测试,极大的减轻了开销,对于需要多按键的功能项目,会优先考虑键盘模式。使用IO资源的减少,就意味着编程的复杂度提高,不断的扫描会影响单片机的运行效率,一般会在定时中断中完成按键扫描,最大程度保证单片机的运行效率。按键设计的方案2:独立模式也称独立按键,相对于键盘模式来说,独立模式的电路设计极为简单,只需要按键的两个引脚一个接在单片机的IO上,一个接电源地即可,程序在设计的时候提前将IO引脚置为高电平,通过检测引脚状态是否发生变化判断按键动作,这种方式没有编程算法,方便程序设计,一般对于按键需求较少的系统中应用。综上所述,通过对比矩阵键盘和独立键盘的功能与运行效率,所以本设计选择了方案2作为我们的设计方案。2.2.4显示器的选择设计方案1:数码管作为终端显示,数码管是一种比较古老的显示器件,通过发光的LED组合而成,根据阿拉伯数字的显示形态,使用8个LED就可以完成所有数字的表达,显示的内容比较单一,只能显示数字和部分字母,对于图形或者复杂的内容信息无法显示。硬件设计电路设计方面,比较容易理解,公共端与任何一个LED导通即可点亮,通过频闪效果,快速点亮多个LED,就完成了信息的显示工作。在经济效果上,价格不贵,对于预算有限并且显示内容不复杂应该优先考虑。设计方案2:LCD1602作为终端显示,优势在于LCD1602显示的非常清楚,字体相较于其他显示器更加立体化,适用于一些功能多且显示内容大的系统。综上所述,本次设计选择了LCD1602来作为本次的显示端器件。2.2.5AD采样选择ADC0832:ADC0832作为AD数据的采集,将模拟量转换为单片机可以识别的数字量,ADC0832通过SPI与单片机的IO管脚连接,一共需要3个IO引脚。采用DIP8的封装形式,通过采集模拟量0-5V可以转换为0-255的单片机可识别的数字量,通过采集数字量的大小来间接获取传感器的数据采集状态。ADC0832可以采集两路模拟量数据,具有体积小,采集快速,在模拟量2路以内情况下非常的适合。ADC0809:ADC0809数据转换是一个多路的AD转换,可以采集9路的模拟量数据。采集的模拟量传感器的电压输入也是在0-5V之间,然后通过单片机读取到每一路的数字量。ADC0809也是一个8位的模拟量转换器,单片机的数字量范围在0-255之间[10]。ADC0809具有与单片机引脚连接少,并且具有多路采集接口,比较适合在3路到9路模拟量采集的场合。由于采集的路数比较多,所以ADC0809的体积相对来说比较大。综上所述,综合考虑本次设计需求,本次设计采用ADC0832作为AD的数据转换采集。2.2.6语音识别模块选择最热门和最有发展前景的新型技术之一[11]。语音识别的方法有非常多种,语音识别芯片的选择也非常多种。我们要根据实现的功能去比对哪种语音模块最合适。方案一:基于一般语音识别芯片控制设计,这一方案主要通过各模块之间的互相作用来实现控制,由语音信息采集和处理模块、语音信息存储模块、语音识别模块等几个模块组成。语音信号通过语音采集模块采集后,特定处理后交给语音信息存储模块进行存储;语音存储模块将数据发给微处理后,微处理再交给语音识别模块进行语音识别;语音识别模块识别特定语音信息,这时候会产生相应信号给微处理器;微处理器通过接收语音识别模块的信号控制,从而实现对系统的控制。方案二:基于非特定人语音识别芯片LD3320的控制设计,语音信号直接由语音识别模块采集、识别并处理,识别到特定语音后LD3320将产生相应的信号给微处理器;微处理器根据LD3320接收到的信号控制去实现对系统的控制。相比于方案二,方案一的成本更低,但是存在许多不足之处:方案一的系统结构较复杂,需要外加麦克风和语音信号处理装置;系统稳定性不高;语音采集与识别分开进行时,比方案二更容易出现识别不准确的情况;而LD3320语音芯片有自带的语音信号采集与处理功能,这样可以使得系统结构更加简单;所以方案二比方案一更优。
3系统硬件设计3.1单片机单片机是整个雨刷智能控制系统的中枢大脑,可以说该设计最需要注意的步骤就是单片机部分,该设计所实现的所有功能都是通过单片机来实现的。单片机如图3.1所示。图3.1单片机单片机是一种将CPU、储存器、输入、输出接口电路合并在一块的集成电路芯片,又被称为单片微控制器。单片机就相当于一个迷你型的电脑,只不过少了输入输出接口设备。如今单片机广泛应用于日常生活中了,是智能化时代不可缺少的一环。可以明确的看到单片机是由众多引脚组成的结构芯片,其内部是由成千上的硅晶体排列组合而成,这些硅晶体按照一定的顺序排列,通过与非门实现功能逻辑,在逻辑的运算中实现功能控制,这就是所谓的外设功能,在硅晶体管的外部进行陶瓷封装,只保留外设驱动引脚,这就是单片机的引脚,也就是我们所看到的单片机外部形态。单片机的引脚功能是根据内部硅晶体排列顺序的不同而不相同,大体上分为通用IO引脚和特殊功能引脚,通用IO引脚在单片机内部占有资源比较少,实现的功能比较单一。特殊功能引脚在单片机内部占有资源比较多,实现的功能也相对较多,同时对于程序设计而言就相对复杂,程序设计就是控制单片机的IO引脚,通过IO引脚的输入与输出,配合外围电路,实现设计功能。单片机在封装形式上千差万别,上图所展示的仅仅是通用的两种形式,贴片式与直插式,贴片式的IO引脚密集,占用空间比较小,非常适合小型化产品。直插式的IO引脚比较疏散,占用的空间也比较大,相对而言,内部的硅晶体隔离空间也大,抗干扰能力较强,适合于工控场合产品,在安装方面就有明显的优势,并不是一次焊接而成,而是插接形式,更换方便。这两种封装形式的单片机只是外部形态不同,使用功能基本一致,主要是根据功能需求进行选择,并没有明显区分。本次设计是通过单片机和外围电路连接的多个传感器协调工作,对于单片机的开发需要依靠内核设计厂家所提供的技术手册进行开发设计,严格按照手册介绍的功能进行设计,尤其在内部寄存器的设置方面,必须按照手册进行,否则单片机无法正常使用,比如在外部中断配置、内部计数器配置、串口配置等等。其次,单片机IO引脚的使用最为重要,与外部连接都是依靠IO引脚口完成,单片机的IO引脚作为外部器件的控制端,控制着外部器件的功能和读取外部器件的状态。单片机的IO引脚拥有两种功能,即输出和输入。当作为输入的时候,主要进行的工作是外部信号的检测,时刻对于外部的电平变化进行检查,当出现变化时,判断为信号标志。作为输出时,是通过程序控制引脚自身的电平变化控制外部器件,比如控制外部LED灯的亮灭,就是依靠自身电平的高低变化实现灯的亮灭。单片机是数据芯片,所发出的信号也是数字信号,就是“0”和“1”,高低电平指的就是“1”与“0”的逻辑变化,根据逻辑变化而进行控制。3.2单片机最小系统单片机是具有核心智能化的小型中央处理器,在其内部拥有数以万计的微晶管,根据程序代码的控制使它在逻辑上进行不同的输出或者输入形式,完成设计的功能控制,虽然它具有智能化的形式,但是单片机并不能独立工作,需要配合外围电路构成一个最小工作系统,才具有智能工作的能力,不管任何型号的单片机,最小系统都是单片机不可或缺的一个前提必要条件,对于不同系列单片机而言,组成单片机最小系统的外围电路并不相同,需要根据单片机设计厂家给定的工作手册进行设计最小系统的搭建。最小系统由复位、晶振以及电源三个电路组成。本次设计使用的单片机型号是STC89C52,市场上使用极为广泛,性能相对稳定,单片机片上资源比较适中,虽然处于入门级单片机,但对于本次的功能来说完全足够,单片机的最小系统搭建如图3.2所示。图3.2最小系统电路图从图中就可以知道单片机的最小系统,分别由9脚连接0.1uF的电容和4.7K电阻构成的复位电路,由18脚、19脚连接的晶振和30pF的瓷片电容构成的晶振电路,再加上40引脚的正电源和20引脚的GND,这三部分就组成了单片机的最小系统电路。单片机上电之后,首先通过晶振电路给单片机提供稳定的震荡频率[12],可以说晶振电路是为单片机提供动力源的部件,单片机在固定的频率下进行工作,开始进行内部程序存储器的顺序执行工作,第一步就是要把单片机的执行指针归为零,否则单片机执行顺序紊乱,复位电路的作用就是负责把程序执行指针归零,以确保单片机每次开始重新执行的时候都是从内部程序存储器的0X00位开始执行。单片机的最小系统电路是保障单片机可以正常工作的必要条件,但是单片机想要完成逻辑功能就要依靠单片机的IO引脚,在图中可以清晰的看到,除了最小系统所有使用的引脚之外,单片机还有32个输入输出引脚,这些IO引脚一共分为四组,每组8个引脚,这就是单片机的P0、P1、P2、P3端口,每个端口引脚的排序是0-7,比如P00-P07,共计8个引脚。在这四组端口引脚中,对于初始上电之后每个端口输出的电平而言,只有P0口与众不同,其他三个端口上电之后默认输出的均为高电平,因为在单片机设计的时候在其内部都有上拉电阻,以保证上电之后均为高电平,这样在电平信号表达的时候就比较明确,方便设计人员使用,只有P0端口的引脚为开漏输出,在其内部没有上拉电阻,上电之后P0口的电平属于不稳定的状态,他只取决与外部器件的电平信号,这样对于需要依靠外部上拉电阻以保证P0口的正常工作状态,否则P0口在作为输出控制的时候是不可能使用的。单片机的工作想要按照我们设定的程序进行执行,就必须通过单片机的IO引脚输出的高低电平来控制外围的电路,通过外围电路驱动外部传感器或者执行器件实现预期功能。对于P1端口和P2端口没有特殊功能,只是正常的电平输入输出功能,对于P3端口而言,单片机在设计的时候为了更好的实现更多功能,对P3端口引脚进行了引脚复用功能,所谓引脚复用就是使端口不仅仅只有高低电平的输入输出功能,还具有额外的特殊功能。这些额外的特殊功能需要依靠特殊功能寄存器的设置才能使用,比如单片机的串口功能,外部中断功能、外部定时器功能等等,串口功能的复用引脚是P3.0和P3.1引脚,在使用串口功能的时候,需要开启串口使能位,对串口功能所要求的寄存器进行程序配置,之后就可以使用串口功能,串口功能是负责单片机与外部其他设备的通讯,负责信息的交互工作。外部中断复用引脚是P3.2和P3.3引脚,这个功能是为了实现外部重要事件的临时处理功能,此项功能对于紧急事件的处理非常重要。外部计数引脚是P3.4和P3.5引脚,主要是进行发生次数统计作用,一般而言,多为并不重要的事件。单片机除了硬件引脚的功能之外,还有一些内部寄存器的特殊使用,比如内部定时器,对于精确的时间计量非常重要。3.3液晶显示电路设计液晶显示的材质是属于一种游离状态的物质,介于固态和液态之间,其本身的这种性质可以通过电流改变它的状态,在电流的作用下可以改变它的形态,让其固化,形成特定的图文,没有电流的时候,处于游离状态。液晶显示屏就是应用液晶的这种特性,利用电流的不断改变,从而不断的改变显示的内容。液晶显示屏主要包含了两个部分,背光和液晶屏幕,液晶屏幕是用来形成特定的图文,但是这种图文在肉眼的观察下并不清晰,所以依靠背光增加对比度,使液晶屏幕形成的图文更加清晰。液晶显示功能最主要的就是人机交互,在人机交互中,程序设计人员可以根据液晶显示的内容了解程序是否正确,是否按照设计的逻辑运行,所以一般在设计的时候,第一个考虑的设计功能就是显示。本次设计的显示屏是LCD1602,它分为上下行分别显示16个字符,其内部可以显示64个字符,通过轮询的方式将其显示,本身拥有字库芯片,可以直接显示ASCII码中的任何字符。在程序设计的时候需要对显示屏的内部存储器输入命令,同时应用并口引脚输入不同的高低电平,让其显示不同的内容。电路原理图如图3.3所示。图3.31602LCD尺寸图引脚功能说明如下表3.1。表3.1液晶显示引脚说明编号符号引脚说明1VSS电源地2VDD电源电极3VL对比度调节4RS数据命令5E/W读写选择6E使能信号7-14D0-D7数据引脚D0-D715BLA背光源正极LCD602显示电路原理图如图3.4所示图3.4LCD602显示模块电路图液晶显示屏通过16个引脚完成显示工作,从图中可知这16个引脚中数据引脚占了8个,引脚序号是7-14引脚,这8个引脚与单片机引脚并口连接,通过单片机引脚发送不同的高低电平完成不同的显示内容,采用的方式是并口连接,优点是显示速度快,缺点是占用单片机引脚资源较多。显示屏的15脚和16脚是背光板的电源引脚,通电之后背光板就会点亮,清晰的把显示的内容凸显出来,1脚和2脚是显示屏的电源引脚,3脚是对比度调节,在其外部一般连接一个10k的滑动电阻,通过改变阻值从而改变3脚电压,也可以使用定值电阻,根据经验使用4.7K电阻可以正常显示。4/5/6引脚是液晶显示屏的命令控制引脚,对液晶显示屏进行读取数据和写入命令数据是依靠这三个引脚完成,所采用的协议是SPI协议,这里的命令包括开启液晶、字符大小、闪烁变换、清屏等命令。3.4按键模块电路设计按键电路作为输入信号接入系统,在系统中完成响应的功能操作,一般的情况下主要负责控制输出模块的命令按钮和系统设置参数的功能按钮,尽管在设计程序时会有使用功能的区别,但是在硬件电路的设计原理却是一致的。在硬件设计的方式上分为矩阵式和独立式,本次采用独立式按键。按键的使用原理比较简单,无论何种的硬件接入方式,其本质是实现对高低电平的信号检测,当检测到有电平信号发生改变,即可判断按键发生动作[13]。对于按键动作的检测,程序设计中需要应用具体的处理方式解决按键机械抖动的问题,一般情况是延时10ms作为机械去抖,确保按键信号检测的准确性,防止误动作发生,引起按键程序的错误判断。该按键一端与单片机连接,一端全部接地,检测与按键相连接的单片机引脚,当电平为0时,判断执行按键动作。按键电路的硬件电路如图3.5所示。图3.5按键模块电路3.5雨滴采集电路设计传感器选取YL-69双面材料,雨滴接收超大面积5.0*4.0CM,输出形式为数字开关量输出(0和1)和模拟量AO电压输出[14];接上5V电源,电源指示灯亮,感应板上没有水滴时,DO输出为高电平,开关指示灯灭,滴上一滴水,可以连接单片机的AD口检测滴在上面的雨量大小[15]。1脚接5V电源,加上10k电阻保护电路,因为电压过大会击穿电路,2脚接地,加个旁路电容与1管脚一起连接ADC0832的2管脚(模拟输入通道),表示以ch0输入信号。电路连接如图3.6所示。图3.6雨滴电路图3.6ADC模数电路设计ADC0832模数芯片作用是实现模拟数据量到数字数据量的转换,最大转换的数字数据量为256,芯片内部具有两个模拟通道,可同时实现两路数字数字量的转换,工作电压在5V以内,转换的基准以电源地为转换的基准,所有的模拟电压以对地为准的模拟电压,模拟电压最大不能超过5V,否则将会超出转化的量程,转换的电压值将以数值量的形式通过IIC协议与单片机进行数据传输,IIC协议是ADC0832与外部单片机进行数据交换的协议准则。8管脚接电源,4管脚接地,5管脚表示数据信号输入,6管脚表示数据信号输出,为节约IO口资源,所以DO与DI并联在一起使用,即5脚与6脚相连。将芯片电路如图3.7所示。图3.7模数电路图3.7语音电路设计LD3320是由ICRoute公司设计的一款48脚QFN塑料封装的语音识别芯片,LD3320芯片的应用电路由单片机和LD3320组成[16]。LD3320的语音识别:对输入的语音与芯片储存的列表内容进行相似度识别,最后相似度最高的内容作为识别的结果[17]。该芯片有语音识辨处理器和A/D,D/A等转换电路[18]。LED加上保护电阻一端接电源,一端接单片机16管脚,即外部数据储存器写选通,LD3320模块4管脚接电源,1管脚接地,3管脚接入单片机的串行输入口P3.0,LD3320注重节能环保,且非常高效率,直接集成现有产品,不需要任何外部辅助芯片如Flash,RAM来进行外接。电路图如3.8所示。图3.8语音识别电路图3.8步进电机电路设计本次设计的步进电机为28BYJ-48型步进电机,它所表示的是永磁式减速型的4相8拍的步进电机,再不进电机的内部有六个齿子,定义的编号是0-5,每个齿子上面都是永磁型的磁铁,这就是永磁式。在齿子的外部是定子,定子与外壳相连,固定不动,同时在定子上缠绕着绕组,一共8个,其中两两一组,共计四组,这样就形成了四项。步进电机在工作的时候,总是其中另个端子通电,产生的磁场带动电机旋转,当电机转动到下一个位置是又切换到另一组工作,这样周而复始的带动电机工作。电机工作需要很大的电流,单片机本身的驱动能力比较弱,无法驱动电机,这就需要电机的驱动板,本次使用的电机驱动板是2003,增强单片机引脚的驱动能力,单片机驱动电机一共需要4个引脚,4个引脚两两一组,不停地切换,驱动步进电机。如图3.9所示。从单片机输出4路脉宽调制信号,每两路相位相差180°,两两组合形成4相输出,经过驱动电路ULN2003A后放大驱动能力,电机通过一个5PIN接插件接入,此时通过控制单片机的四路脉宽调制信号就能够控制步进电机的转动角度了。图3.9步进电机电路图
4系统软件设计本次程序设计采用的编程语言是C语言,C语言具有简单易懂,逻辑判断能力突出等特点,编写程序的开发软件是Keil软甲,在设计中,首先完成的是主函数的框架结构,在框架结构中布置各个子程序的分区功能,根据逻辑的执行确定子程序的先后执行顺序,主函数框架编写完成之后,开始进行子函数功能编写,根据每一个的功能实现代码设计,每完成一个子程序就可以进行Keil软件编译,编译成功将HEX文件下载到单片机运行,运行成功后进行下一个子函数编写,直到全部功能调试完毕。4.1系统程序设计软件介绍程序软件设计所指的就是程序代码的设计,程序代码通过语言来进行编写,语言再通过编译软件编译成单片机能识别的只有1和0的逻辑语言。程序员所编写的是C语言或者汇编语言,通过工具完成编写语言到机器语言的装换,这个工具就是单片机的开发软件,我们所使用的开发软件是KEIL软件,使用的是C语言,KEIL软件将这种语言翻译成机器语言,也就是前文提到的只有0和1的逻辑语言,将其下载到单片机中,使单片机按照语言的逻辑运行。KEIL软件的功能极为强大,执行的工作不仅仅是翻译高级语言,同时还会查找高级言中的错误,并且进行提示,指出错误的地方,方便程序员进行修改。KEIL软件的开发界面给人一种干净整洁的观感,没有丝毫的杂乱,简单明了的指令系统得到众多程序员的认可,是最受欢迎的软件之一,KEIL软件涵盖了众多型号的单片机库,很多的单片机都可以使用KEIL软件直接进行开发,无需对新的开发环境进行了解,节省开发的时间。新建工程界面如下图4.1所示。图4.1新建工程界面程序编写KEIL的界面如下图4.2所示。图4.2程序编写KEIL下载程序界面如图4.3所示。图4.3HEX文件下载界面4.2系统主程序系统的程序分为主程序和子程序,这也是模块化编程的基本思路,所有的子程序都需要围绕主函数展开,可以说主函数是整个系统的核心,主函数对系统的功能进行分层处理,架构起系统编程的框架,在框架下运行每一个子程序,通过顺序执行子函数完成系统的功能设计。首先进行系统的初始化和显示初始化,之后进行雨滴检测功能,当检测雨量大于限值,步进电机开始带动雨刷器工作,雨滴小于限值时停止步进电机工作,检测的雨滴数据通过显示模块进行显示,之后程序循环执行。4.3液晶显示子程序本设计的显示程序采用的是LCD1602显示,显示程序首先开始进行初始化、然后设置坐标位置,这个时候显示等于0则显示结束,显示不等于0则需要用发送函数进行显示,显示一位之后,显示指针自动加1,继续判断字符是否为零,直到字符不等于零则结束显示。LCD显示流程图如图4.4所示。图4.5LCD显示流程图液晶显示模块部分程序如下:voidLCD1602_cls(){LCD1602_write(0,0x01);LCD1602_delay(1500);LCD1602_write(0,0x38);LCD1602_delay(1500);LCD1602_write(0,0x0c);LCD1602_write(0,0x06);LCD1602_write(0,0xd0);LCD1602_delay(1500);}首先使用voidLCD1602_cls()对LCD1602进行初始化,然后用LCD1602_write(0,0x01)对LCD1602进行清屏操作,这时候LCD1602显示可能会出现抖动,因此需要用LCD1602_delay(1500)来进行延时。接下来用LCD1602_write(0,0x0c)来进行光标的设置,同样需要LCD1602_delay(1500)来进行延时。当初始化完毕之后,LCD1602就可以显示内容了。4.4按键电路程序本次设计的按键程序采用的是独立式的按键设计,按键子程序是一个实时的扫描过程,对按键检测首先是判断按键是否有动作,如果没有动作,一直处于主程序循环的扫描中,当检测到有动作之后,要进行去抖的延时检测,防止按键的机械性误动作,延时检测之后,对按键进行再次扫描,按键仍为有效值,则对按键值进行判断,判断完毕后等待按键释放,之后执行按键的功能。本次设计的按键功能主要是设置参数。流程图程序图如4.5所示。图4.5按键读取流程图按键控制模块部分程序如下:sbitkey_1=P3^1;sbitkey_2=P3^2;sbitkey_3=P3^3;sbitkey_4=P3^4;按键电路程序通过判断电压来判断是否有按键动作,我们需要用到四个按键,分别是设置覆水量上下限值、模式切换、手动开关键四个功能。本系统中的按键是连接的是P3.1-P3.4,当有个按键的电平变成0了,则表示该按键被按下。4.5语音识别程序语音识别程序由语音控制模块LD3320识别来控制完成,语音识别程序的流程是,初始化之后判断识别指令与芯片储存的列表内容进行相似度识别,最后相似度最高的内容作为识别的结果,如果识别失败则重新识别指令,语音识别模块的程序如图4.6所示。图4.6语音识别模块程序按键控制模块部分程序如下:uint8RunASR(void){uint8i=0;uint8asrflag=0;for(i=0;i<5;i++){LD_AsrStart();delay(50);if(LD_AsrAddFixed()==0){LD_Reset();delay(50);continue;}delay(10);if(LD_AsrRun()==0){LD_Reset();delay(50);continue;}asrflag=1;break;}returnasrflag;}利用RunASR()函数实现了一次完整的ASR语音识别流程,之后利用for(i=0;i<5;i++)语句去防止由于硬件原因导致LD3320芯片工作不正常,所以一共尝试5次启动ASR识别流程,这时候利用LD_AsrStart()函数实现ASR初始化,在用if(LD_AsrAddFixed()==0)语句去判断芯片内部是否出现不正常,当正常启动后就会退出当前for循环。这时候就开始等待LD3320发送出的中断信号。
5系统仿真与制作测试5.1系统仿真系统仿真的优势是可以实时观测系统内部的运行状态,我们在进调试时会不可避免的出现一些错误,这时候无论从硬件和软件有时都很难发现错误,但我们如果进行仿真去检测错误就会方便很多。系统仿真图如5.1所示。图5.1系统仿真图在仿真过程中,出现了在自己创建的元器件上无法连线的情况,原因是管脚之间的距离太小了,后来重新编辑无法连线的元器件,把它的管脚间距调大一些就解决了这个问题。在仿真过程中库里会经常找不到元器件,比如LD3320芯片,如果库中没有的话,我们可以通过找资料查询芯片手册来了解元器件功能来制作功能相近的原件。5.2系统制作实物设计主要包括以下几个步骤:(1)焊接实物是实物产品设计最为基础的分部,实物焊接是否正确决定实物功能是否能够实现,在这一过程中需要对传感器元器件进行确认,对元器件的引脚功能进行辨别,通过对比元器件的技术手册的引脚定义与原理图设计进行比对,确定无误后进行焊接,焊接时需要对焊接的温度进行控制,尤其对一些不耐热的器件需要快速准确完成焊接。(2)焊接完毕后的检查工作,肉眼检查器件有没有反向焊接,检查引脚所焊接的位置和线路的连接,电路板上的焊点是否存在忘记焊接的现象,密集的焊点之间是否存在着连在一起的错误,这些可能出现的表面问题需要依靠肉眼完成检查,再检查的过程中做到细致、认真、耐心,需要条理清晰的逐一检查,以免漏检在后期上电的时候出现器件不可逆的损害。(3)通路实验检测,依靠万用表工具对线路进行检查,使用万用表的通断测试档位,对电路板的电源和地进行测量,这一步是为了避免最为严重的短路现象发生,一旦发生就会对电路板上的所有器件造成一定的损害,使部分功能失效,影响后续的功能调试。电源故障排除之后,对其他的线路按照原理图一一测试,逐一排查,直到全部测试完毕。(4)实物通电试验,实物上电后,对于弱电部分可以用手背感测器件的温度,温热表明器件正常工作,过热说明器件工作不正常,需要重新检测。使用万用表的电压档位测试各个部分的电压是否正常。(5)实物调试,在实物调试中需要程序代码写入到实物中运行,运行时可以将功能进行模块化调试,对每一个功能单一调试,保证单一功能的程序正确性,所有功能逐一调试之后,进行总体调试,完成系统的功能设计。(6)实物性能测试,性能测试建立在功能全部实现基础之上,通过程序代码的运行逻辑,对实物的运行速度、控制器的反应时间、极限数据测量等等进行测试,不断的通过优化代码设计,完成性能的测试工作。焊接的图片如图5.2所示:图5.2系统焊接图系统实物图片如图5.3所示:图5.3系统实物图5.3硬件调试实物的通电测试在系统设计中是一个关键的节点,通电后通过观察显示屏或者指示灯是否被点亮来确定通电后的实物是否正常工作,若果没有被点亮说明实物存在问题,需要立即断电查找原因,使用万用表进行线路的测量,查明原因将其解决,重新通电观察,实物正常工作后,用手背感受各个传感器的温度,没有存在发热的现象,说明所有的器件均可以正常工作。上电测试图如图5.4所示。图5.4系统上电测试图5.4软件调试实物通电成功以后,开始进行实物软件与硬件的联合调试工作,在联合调试中首先需要完成人机交互的显示屏调试工作,显示内容的正确与否,直观的显示出程序的代码是否正确,本次设计的第一次调试中,显示屏的显示工作并不正确,出现了白屏的现象。界面如图5.5所示。图5.5显示方框程序出现问题后,立即进行错误原因的查找工作,首先查找硬件接线的问题,引脚线路是否出现错接问题,通过硬件的排查,引脚在接线上
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 预应力钢筋张拉施工方案
- 2026年中国分米波电缆连接器市场调查研究报告
- 非煤矿山企业应急救援预案
- 某工程救援噪声防护预案
- 拉森钢板桩专项施工方案基坑开挖支护
- 2026年中国凹凸棒抗盐土市场调查研究报告
- 防雷接地施工方案大全
- 2026年中国净化通风柜市场调查研究报告
- 某医院综合楼装饰装修施工方案
- 初中七年级英语 Unit 8 Section B 2a2c 学校通知阅读课全景式导学案
- 钢铁企业环保设施运行维护技术规范
- 2025年安徽省直机关公开遴选公务员笔试题及答案解析(B类)
- 化工企业质量安全培训课件
- 2025年安徽省幼儿园教师专业知识竞赛备考试题库(含答案)
- 交货方案及进度计划
- 放弃经济补偿协议书
- 《PLC应用项目工单实践教程》课件 模块4 S7-1500 PLC其它基础指令应用
- 血管导管相关感染预防与控制指南
- 12D401-3 爆炸危险环境电气线路和电气设备安装
- 保洁作业指导书
- GB/T 2910.11-2024纺织品定量化学分析第11部分:某些纤维素纤维与某些其他纤维的混合物(硫酸法)
评论
0/150
提交评论