版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机宠物喂食器系统的硬件和软件设计案例目录TOC\o"1-3"\h\u1525第一章课题来源 27673第二章硬件设计 27682.1硬件设计总体结构 2166782.2STC89C52单片机的简介 386332.2.1STC系列简介 3181452.2.2主要性能指标 3314802.2.3STC89C52引脚图 4193172.3步进电机驱动芯片 4198132.3.1步进电机驱动电路ULN2003简介 4772.3.228BYJ-48步进电机 6175642.4LCD1602液晶显示芯片 628252.5DS1302时钟电路图 836572.6WT588D语音播报模块电路 109951第三章软件设计 11127603.1编程语言、开发环境及烧写软件 1126703.1.1编程语言 11279273.1.2开发环境 11135783.1.3烧写软件 11117393.2程序流程图设计 12123203.2.1总体流程图 121815 13156273.2.2LCD1602液晶显示 13117933.2.3按键子程序 1461563.2.4WT588D语音播报 154913.2.5步进电机驱动 1628688第四章系统调试 18309184.1LCD1602初始化 18263274.2按键功能 19310614.3电机转动和语音播报 20第一章课题来源任务书硬件设计2.1硬件设计总体结构根据给定的任务及要求,确定了宠物自动喂食器设计的总体设计原理框图如图2-1所示:功能按键功能按键单片机步进电动机WT588D语音芯片LCD1602显示DS1302时钟芯片图2-SEQ图_2-\*ARABIC1宠物自动喂食器原理框图(1)功能按键:通过按键可以修改当前的实时时间和已定义的喂食时间、开启和关闭语音播报。(2)DS1302时钟芯片:此时钟芯片是用来一款实时时钟芯片,用来记录当前时间,可以显示年、月、日、时、分、秒、星期等,并且具有掉电保存功能。(3)步进电动机:步进电机是一种执行机构。电机正转模拟宠物进食,电机反转模拟宠物停止进食。(4)WT588D语音芯片:WT588D语音芯片是一款语音单片机芯片,通过扬声器即喇叭用来实现宠物自动喂食时的语音播报。(5)LCD1602显示:通过LCD1602液晶显示模块显示当前的实时时间和初始时的三次自动喂食时间。2.2STC89C52单片机的简介2.2.1STC系列简介STC单片机是高速、低消耗、超强抗滋扰的新一代8051单片机,与传统的8051所用指令代码完全兼容。其中子系列STC89C52是一种带FLASH可编程可檫除只读存储器的低电压,高性能的微型处理器,简称单片机。STC89C52芯片内部具有传统51单片机所不具备的功能。在单芯片上,拥有灵活的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制系统提供灵活度更高、有效更强的解决途经。2.2.2主要性能指标1.指令代码完全兼容以往的8051单片机2.工作电压:5.5V~3.3V3.\t"/item/STC89C52/_blank"工作频率范围:0~40MHz,实际工作频率可达48MHz4.
\t"/item/STC89C52/_blank"用户应用程序空间为8K字节5.片上集成512字节RAM6.通用I/O口(32个):P0-P3,每口各8位双向数据接口7.可以下载用户需要的hex后缀程序文件8.具有EEPROM功能9.内含3个\t"/item/STC89C52/_blank"定时器/计数器,均为16位,即定时器T0、定时器T1、定时器T210.\t"/item/STC89C52/_blank"外部中断4路,下降沿中断或低电平触发电路11.异步通用\t"/item/STC89C52/_blank"串行口12.工作温度范围:-40~+85℃13.PDIP封装2.2.3STC89C52引脚图图2-SEQ图_2-\*ARABIC2STC89C52双列直插式引脚图2.3步进电机驱动芯片2.3.1步进电机驱动电路ULN2003简介步进电机在工作的时候是需要驱动的,因为第一电路中电流也比较小,第二单片机发出的指令步进电机那边必须要有控制单元。所以我们需要采用驱动芯片,来进行控制和处理。ULN2003是高压耐、电流较大的复合晶体管,由七个复合的硅晶体管组成。其特性如下:ULN2003的每一组达林顿都串联着一个2.7K的基极电阻组成ULN2003电压工作很高,电流工作较大。(3)ULN2003采用DIP—16或SOP—16塑料封装。ULN2003为16脚封装,引脚图如图2-3所示:图2-SEQ图_2-\*ARABIC3ULN2003引脚图ULN2003是一个包含7个单元的典型非门电路,其中的每个单元都有单独的驱动电流,电流最大可至350mA,1脚输入,9脚置为悬空,16脚输出。ULN2003芯片引脚介绍如表2-1:表2-SEQ表_2-\*ARABIC1ULN2003引脚介绍引脚1CPU脉冲输入端,对应另一个脉冲信号输出端引脚2CPU脉冲输入端引脚3CPU脉冲输入端引脚4CPU脉冲输入端引脚5CPU脉冲输入端引脚6CPU脉冲输入端引脚7CPU脉冲输入端引脚8接地引脚9内部7个续流二极管负极的公共端,各二极管的正极与各达林顿管的集电极与分别连接。引脚10CPU脉冲输出端,对接7脚输入端引脚11CPU脉冲输出端,对接6脚输入端引脚12CPU脉冲输出端,对接5脚输入端引脚13CPU脉冲输出端,对接4脚输入端引脚14CPU脉冲输出端,对接3脚输入端引脚15CPU脉冲输出端,对接2脚输入端引脚16CPU脉冲输出端,对接1脚输入端2.3.228BYJ-48步进电机步进电机是将电脉冲信号变换为角位移或线位移的执行组织,应用极为广泛。简单来讲:当步进驱动收到一个脉冲信号,可以驱动步进电机转动一个角度另外要想改变电机转动时的速度,可以通过控制电脉冲频率,从而实现调速的作用。28BYJ-48是4相永磁试电机,电机的里面有6个齿(0-5),每一个齿上都有永久的磁性,它是电机的转子;电机的外壳有八个齿(A-D),每个齿上都有缠有一个线圈绕组,正对这的线圈绕组又是链接在一起的如图2-4:图2-SEQ图_2-\*ARABIC4步进电机内部结构示意图步进电机一共有5根线,红色的现是公共端,接5v电源,橙,黄,粉,蓝,四根线就对应A,B,C,D;按照电路的设计,电机每转动一个小的角度所对应值可以计算出来,分别是:0xe,0xc,xd,0x9,0xb,0x3,0x7,0x6;在开发过程中,可以直接按照顺序,依次给控制电机的IO口给这几个值就可以了。2.4LCD1602液晶显示芯片LCD1602采用16引脚的标准接口,编程用到的比较主要的引脚为16个其中的3个,分别为:RS,R/W和E,下表2-2介绍了它们的功能:表2-SEQ表_2-\*ARABIC2LCD1602主要引脚介绍引脚功能详述第4脚:RS寄存器选择高电平(1)时选择数据、低电时(0)时选择指令第5脚:R/W读写信号线高电平(1)时执行读,低电平(0)时执行写第6脚:E使能端高电平(1)时才执行读取数据,低电平(0)失效第7-14脚:D0-D78位双向数据端执行数据的传输此部分具体电路图如图2-5所示。图2-SEQ图_2-\*ARABIC5LCD1602电路图LCD1602内置的控制器包含如下的11条控制指令,如图2-6所示:图2-SEQ图_2-\*ARABIC6LCD内部指令图16*2说明了LCD1602可以显示2行数据,每行可以显示16个字符模块或者数字模块,共2行。而要想在屏幕上显示字符,就要先输入显示字符的那个内部地址,这样才能在屏幕上的某一位置显示特定想要的字符或者数字,图2-7是1602的内部显示地址。内部显示地址是00H,对应着第一行第一个字符的位置,但要注意写入显示地址时要将数据位最高位D7位始终置为高电平1,实际写入的地址数据应为00000000B+10000000B=10000000B,即00H+80H=80H,此时写入80H才可以将光标位置定位在在第一行第一个字符。此外,LCD1602液晶模块的内置字符发生存储器(CGROM)中包含了数字,字母等字符,每一个字符都有一个固定的代码,在LCD1602中这个固定代码即为16进制的ASCII码表,例如字母A的ASCII为0x41,字母B的ASCII为0x42。图2-SEQ图_2-\*ARABIC7LCD1602内部显示地址2.5DS1302时钟电路图DS1302是一种低功耗的实时时钟芯片。可以对年、月、日等进行计时存储,并且误差比较小,此外DS1302还具有闰年自动补偿。DS1302芯片包含一个静态RAM存储器,可用于存储实时时钟/日历。它通过简单的串行接口和单片机通讯,将当前的时钟信息存于静态的RAM中。DS1302芯片对于少于31天的月份所包含的天数可以进行自动调整,还可以自动对闰年进行修正。AM/PM的指示器置于内部,使得时钟可以选择工作在12/24两种方式,时钟芯片的引脚如图2-8所示。图2-SEQ图_2-\*ARABIC8DS1302引脚图各引脚的功能:表2-SEQ表_2-\*ARABIC3DS1302引脚功能引脚1:Vcc25V电源。当Vcc2>Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2<Vcc1时,由Vcc1向DS1302供电引脚2、3晶振管脚引脚4接地引脚5:CE/RST复位脚引脚6:I/O数据输入输出脚引脚7:SCLK串行时钟输入端引脚8:Vcc1备用电源时钟/日历寄存器如图2-9,数据信息是以BCD码(二进制编码的十进制格式)存储时钟/日历寄存器中。图2-SEQ图_2-\*ARABIC9DS1302时钟/日历寄存器读写地址寄存器说明:第一行:秒:因为秒为60秒,十位最大是5,所以bit6,5,4位这3位足以表示秒的十位,个位最大是9,所以第3,2,1,0这4位足以表示个位。第二行:分:范围同样为0-59,所以与秒相同;第三行:bit7位:0表示24小时制,1表示12小时制;bit5位:12小时制时:0表示上午,1表示下午,24小时制时:和bit4位联合表示小时的十位;其余的时间一样的表示。倒数第二行:只看bit7位:为1时禁止写入,所以初始写数据时必须置0才允许写入数据;2.6WT588D语音播报模块电路WT588D为可编辑语音芯片,WT588D的优点在于:
FLASH可以重复进行擦写,价格也比较便宜;
开发工具比较简便,只要具备这样的一个语音芯片,一个普通的USB下载器,基本了解后均可进行单片机与语音模块的联合研究,做出自己需要的语音模块。3、
另外可以ISP在线下载,更换程序和语音升级都比较方便简单,不需要将芯片与当前环境相隔离。图2-SEQ图_2-\*ARABIC10WT588D语音播报上图为WT588D语言播报电路引脚图,WT588D语音芯片,是通过外部的下载软件下载需要的语音文件,例如想要播报“宠物开饭了”,只需要通过USBminu下载器编辑这段语音“宠物开饭了”,之后生成一个相应的地址,当STC89C52单片机检测到喂食时间到达后,WT588D接收单片机发来指令,被控制执行语音播报。软件设计3.1编程语言、开发环境及烧写软件3.1.1编程语言由于整个程序比较复杂,且计算量较大,用到了较多的逻辑运算,所以程序的编写采用了C语言。使用C语言相对使用汇编语言而言,有如下优点:(1)不需要学习单片机的指令集,也不用了解单片机的存储器结构。(2)其中的关键字和操作函数与人的思维更接近,有利于实现程序编程。(3)程序的开发、调试时间与汇编语言相比大大减短。(4)C语言比起汇编语言在功能、结构性、可读性、可移植性、可维护性上优势上更加明显。3.1.2开发环境本设计中单片机程序的编译链接软件是Keil,Keil是51系列单片机C语言开发编程必不可少的一款软件。它的使用步骤主要为以下几点:(1)在桌面编程软件keil,新建一个工程文件;(2)创建并添加新的C文件到上面的工程文件下;(3)在C文件下设计与实现进行程序的主函数、子函数等。(4)对Keil配置相关重要参数;(5)编译整个工程文件,生成可执行的hex后缀文件。3.1.3烧写软件STC-ISP是一款简单的单片机程序烧写软件,由宏晶公司出品,具备hex文件下载,在线仿真调试和串口预览等一系列功能,是目前51系列单片机应用不可或缺的软件。单片机可以通过下载模块(如:CH340等串口烧写模块)与计算机通信,从而下载可执行文件到单片机,同时需要在STC-ISP软件中选择使用的单片机型号以及下载模块插入计算机的串口号,一般串口号会自动识别。然后在文件地址中找到hex为后缀的可执行文件,点击下载就可以将程序下载到STC89C52单片机里了。3.2程序流程图设计3.2.1总体流程图当你按下电源开关后,先后进行LCD1602,WT588D语音模块,步进电机的初始化,接下来会在LCD屏幕上的第一行显示实时时间,第二行显示第一次自动喂食时间。通过按键扫描若检测到有第一个按键即K1按下后,会直接进入按键设置,在这里可以更改实时时间和喂食时间;若按下K4,K5则为手动喂食开和关。按键设置退出后系统会自动比较实时时间和喂食时间,当前者等于后者时,电机旋转,同时语音播报吸引宠物进食。系统总体流程图如下图3-1所示:图3-SEQ图_3-\*ARABIC1系统总体程序流程图3.2.2LCD1602液晶显示 按下电源开关,LCD1602液晶显示屏通电,LCD1602首先进行初始化操作,屏幕清零,并清空内部存储。之后LCD1602和STC89C52单片机进行通信,将想要显示的内容通过单片机显示LCD屏幕上,延时一定时间后,将实时时间和喂食时间等内容显示在LCD1602液晶显示屏上。在设置好时间后,根据按键按下后响应的实际操作,及时响应并变换数值。单片机控制写入引脚,然后又执行写入数据的命令。最后才是LCD1602显示屏执行指令,将修改后的内容实时显示出来。LCD1602的显示流程图如图3-2所示:图3-SEQ图_3-\*ARABIC2LCD1602初始化流程图3.2.3按键子程序按键共有5个,其中k1进入设置开关,可以直接进入设置模式,循环按下12次后退出当前模式。k2,k3实现按键的加减,按键k4,k5为手动喂食开关。按键流程图如3-3所示:图3-SEQ图_3-\*ARABIC3按键流程图3.2.4WT588D语音播报WT588D语音芯片为本次设计中用到的语音模块,当前需要播报当前的内容是由STC89C52单片机控制WT588D语音模块来实现的,这就是而进行宠物自动喂食时需要语音播报的时候。WT588D语音芯片,是通过外部的USBminu下载器下载需要的语音文件,如想要播报语音“宠物开饭了”,只需要通过USBminu下载器编辑下载这段语音“宠物开饭了”,之后生成一个相应的地址并等待单片机调用,当STC89C52单片机检测到喂食时间到达后,即会判断是否播报,播报时单片机就会发送指令给WT588D,WT588D接受来自单片机的指令后,被控制执行语音播报。语音播报流程如图3-4所示:图3-SEQ图_3-\*ARA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 漳州卫生职业学院《工程热力学》2025-2026学年期末试卷
- 邢台应用技术职业学院《货币银行学》2025-2026学年期末试卷
- 中国矿业大学《临床免疫学检验技术》2025-2026学年期末试卷
- 漳州科技职业学院《旅游消费者行为学》2025-2026学年期末试卷
- 污水处理工操作评优考核试卷含答案
- 公共营养师班组管理测试考核试卷含答案
- 制药发酵液提取精制工岗前工作流程考核试卷含答案
- 钟表设计师班组协作竞赛考核试卷含答案
- 兔肉市场新篇章-拓展营销视野打造兔肉新品牌
- 第11课《山地回忆》课件 统编版语文七年级下册
- 《价值判断与价值选择》名师课件
- 2024年广东乐控集团有限公司招聘笔试参考题库附带答案详解
- 《0-3岁婴幼儿保育与教育》课程标准
- 中考历史小论文常用观点及示例
- 知识产权模拟法庭案例
- 河南08定额及综合解释
- DB2201T49-2023站用储气瓶组定期检验规范
- 第2章 Spring Boot核心配置与注解
- 船舶能耗填写范本
- 网络传播法规(自考14339)复习必备题库(含答案)
- 大学生志愿服务西部计划考试复习题库(笔试、面试题)
评论
0/150
提交评论