开发板可以作为主控制模块安装于控制系统中执行控制任务,也可以用作实验板,完成单片机各类通用实验,操作简单,控制结果可见,性价比高,可以应用于高校、科研院所的实验室等场合。
关键字:STM32F103RCT6单片机控制按键
I张家界航空工业职业技术学院毕业设计说明书目录摘
要......................................................................................................................I
第1章引言............................................................................................................11.1设计概述............................................................................................................11.2ARM简介.............................................................................................................11.3设计目标与意义................................................................................................21.4章节安排............................................................................................................21.5设计任务分析....................................................................................................31.6实验系统总体逻辑结构....................................................................................3第2章硬件电路设计................................................................................................52.1STM32开发板电路总体框图.............................................................................52.2主要采用芯片介绍............................................................................................62.2.1STM32F103RCT6...........................................................................................62.2.2LM1117.........................................................................................................62.2.374HC245.......................................................................................................72.2.474HC138.......................................................................................................82.2.5AT24C08.....................................................................................................102.2.6ULN2003.....................................................................................................102.2.7ESP8266.....................................................................................................112.2.8LCD12864...................................................................................................122.2.9LCD1602.....................................................................................................132.3模块电路设计..................................................................................................142.3.1STM32F103RCT6最小系统电路................................................................142.3.2电源电路...................................................................................................142.3.3数码管电路...............................................................................................152.3.4USB供电电路............................................................................................162.3.5EEPROM电路..............................................................................................162.3.6步进电机驱动电路...................................................................................172.3.7外接WIFI电路.........................................................................................172.3.8LCD液晶显示电路....................................................................................182.3.9独立按键电路...........................................................................................192.3.10LED流水灯电路......................................................................................192.3.11滤波电路.................................................................................................202.3.12蜂鸣器电路.............................................................................................202.4PCB布局布线...................................................................................................20第3章软件设计......................................................................................................233.1软件总体设计..................................................................................................233.2软件模块设计..................................................................................................283.2.1键盘模块程序设计...................................................................................28
II张家界航空工业职业技术学院毕业设计说明书3.2.2流水灯模块程序设计...............................................................................293.2.3数码管模块程序设计...............................................................................303.2.4LCD液晶显示模块程序设计....................................................................313.3小结..................................................................................................................37第4章产品调试......................................................................................................384.1调试的设备......................................................................................................384.2调试步骤..........................................................................................................384.2.1焊接...........................................................................................................384.2.2调试...........................................................................................................384.3故障分析..........................................................................................................39第5章产品使用说明..............................................................................................405.1功能描述..........................................................................................................405.2使用说明..........................................................................................................41第6章心得体会......................................................................................................42附录........................................................................................................................45附件一:总原理图..................................................................................................45
III张家界航空工业职业技术学院毕业设计说明书第1章1.1
设计概述
引言我的设计是关于STM32开发板的设计。主要的设计内容包含各功能模块一共十六个,是以STM32F103RCT6为主要集成芯片设计最小系统,再围绕最小系统进行剩下十五个模块的设计。如:数码管模块、LCD模块、五项四线步进电机、EEPROM、WIFI模块等。
STM32是基于ARM®Cortex®M处理器内核的32位闪存微控制器,融高性能、实时性、数字信号处理、低功耗、低电压于一身,同时保持高集成度和开发简易的特点。业内最强大的产品阵容,基于工业标准的处理器,大量的软硬件开发工具,让STM32单片机成为各类中小项目和完整平台解决方案的理想选择。
1.2ARM简介
在今日,ARM家族占了所有32位嵌入式处理器75%的比例,使它成为占
全世界最多数的32位架构之一。ARM处理器可以在很多消费性电子产品上看到,从可携式装置(PDA、移动电话、多媒体播放器、掌上型电子游戏,和计算机)到电脑外设(硬盘、桌上型路由器)甚至在导弹的弹载计算机等军用设施中都有他的存在。
到目前为止,ARM处理器及技术的应用几乎已经深入到各个领域。在工业控制领域,作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器的应用领域扩展。ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制提出了挑战。在无线通信领域,目前已经有超过85%的无线通信设备采用了ARM技术,ARM以及高性能和低成本的优势,日益巩固了在该领域的地位。在网络应用中,随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上进行了优化,并获得广泛支持,这同时也向DSP的应用领域提出了挑战。在消费类电子领域,ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到了广泛采用。现在流行的数码相机和打印机中的绝大部分采用了ARM技术,手机中的32位SIM智能卡也采用了ARM技术。
1张家界航空工业职业技术学院毕业设计说明书存储器ADCCCDARM处理器控制电路和编码电路主机接口LCD控制器图1-1ARM处理器的应用
1.3设计目标与意义
本设计的目标是制做STM32F103的开发板,STM32单片机开发板,具有一
般开发板通用结构,并基于硬件进行相关软件设计。利用程序开发语言开发程序并实现ISP在线下载到单片机,无需配置单独的下载器。单片机使用ISP在线下载程序,加快了程序设计者调试的进度,使设计者所设计的程序尽快得到验证。通过对开发板上的模块进行实验,可以提高针对不同硬件进行编程的能力,同时通过实验现象对所用的硬件也有了更深一步的认识。并且采用RISC架构的ARM处理器一般具有如下特点。体积小、功耗低、低成本、高性能。支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件。大量使用寄存器,指令执行速度更快完成。
由于这些因素使得该设计具有高性能、实时性、数字信号处理、低功耗、低电压于一身,同时保持高集成度和开发简易的特点。大量的软硬件开发工具,让STM32单片机成为各类中小项目和完整平台解决方案的理想选择从而实现它存在的现实意义。
1.4章节安排
本设计报告大致可分为三部分:第一部分引言为第一章;第二部分设计与制
作包含第二章至第六章,给出方案的选择,具体硬件电路与软件的设计,产品的调试及使用说明;第三部分包括第七章,是对设计成果的总结及心得体会。
2张家界航空工业职业技术学院毕业设计说明书设计成果报告,内容具体组织安排如下:
第一章,引言:介绍设计产品的意义目标和说明书的章节安排;第二章,设计的任务分析和方案选择;
第三章,硬件电路设计:原理分析、框图、子电路设计;第四章,软件设计:软件语言的选择、流程图、软件的使用;第五章,产品调试、故障分析;第六章,产品的使用说明;第七章,设计的总结和心得体会。
1.5设计任务分析
本课题设计的是关于STM32F103的开发板,为了完成设计要求,我们需要采
用STM32F103RCT6的集成芯片进行主要的设计。开发板系统的扩展和配置应遵循以下设计原则:
(1)尽可能选择典型电路,并符合单片机常规用法。为硬件系统的标准化、模块化打下良好的基础;
(2)系统扩展与外围设备的配置水平应充分满足应用系统的功能要求,并留有适当余地,以便进行二次开发;
(3)硬件结构应结合应用软件方案一并考虑。硬件结构与软件方案会产生相互影响,考虑的原则是:软件能实现的功能尽可能由软件实现,以简化硬件结构。但必须注意,由软件实现的硬件功能,一般响应时间比硬件实现长,且占用CPU时间;
(4)系统中的相关器件要尽可能做到性能匹配。如选用CMOS芯片单片机构成低功耗系统时,系统中所有芯片都应尽可能选择低功耗产品;
(5)可靠性及抗干扰设计是硬件设计必不可少的一部分,它包括芯片、器件选择、去耦滤波、印刷电路板布线、通道隔离等;
(6)单片机外围电路较多时,必须考虑其驱动能力。驱动能力不足时,系统工作不可靠,可通过增设线驱动器增强驱动能力或减少芯片功耗来降低总线负载;
(7)尽量朝“单片”方向设计硬件系统。系统器件越多,器件之间相互干扰也越强,功耗也增大,也不可避免地降低了系统的稳定性。
1.6实验系统总体逻辑结构
按照实验系统的功能和PCB布局布线的相关原则,完成了单片机实验系统
的硬件总体逻辑结构的设计,如图1-2所示。本实验系统以STM32F103RCT6为
3张家界航空工业职业技术学院毕业设计说明书单片机核心组成最小系统,外围电路包括电源电路、复位电路、LED显示电路、液晶显示电路、端口扩展电路、键盘电路、USB供电电路、步进电机电路和数码管显示电路。
图1-2以STM32单片机开发板为主体的开发板功能图4张家界航空工业职业技术学院毕业设计说明书第2章2.1
硬件电路设计STM32开发板电路总体设计
通过对实验板的需求分析,设计了开发板的总体结构。总体硬件结构主要包
括:STM32F103RCT6单片机主控制器模块、键盘模块、内部AD模块、内部DA模块、数码管模块、步进电机模块、LED流水灯模块、LCD12864模块、下载器模块、蜂鸣器模块。
硬件结构框图如图2-1所示:
LCD12864模块数码管模块流水灯模块LCD1602模块STM32F103RCT6单片机主控制模块蜂鸣器模块独立按键模块内部AD模块步进电机模块内部DA模块EEPROM模块USB供电模块外置WIFI模块图2-1总体硬件结构框图5张家界航空工业职业技术学院毕业设计说明书2.2主要采用芯片介绍
2.2.1STM32F103RCT6
图2-2STM32F103RCT6芯片STM32F103RCT6是一种家庭嵌入式-微控制器的集成电路(IC),芯体尺寸是32位,速度是72MHz,程序存储器容量是256KB,程序存储器类型是FLASH,RAM容量是48K,输入/输出数为51,工作电压-电源(Vcc/Vdd)为2V~3.6V,振荡器类型为内部振荡器,工作温度在-40°C~85°C,封装/外壳是64-LQFP,外围设备有DMA,电机控制PWM,PDR,POR,PVD,PWM,温度传器,WDT,晶振。具有高性能、实时性、数字信号处理、低功耗、低电压于一身,同时保持高集成度和开发简易的特点。2.2.2LM1117
LM1117是一个低压差电压调节器系列。其压差在1.2V输出,负载电流为800mA时为1.2V。它与国家半导体的工业标准器件LM317有相同的管脚排列。LM1117有可调电压的版本,通过2个外部电阻可实现1.25~13.8V输出电压范围。另外还有5个固定电压输出(1.8V、2.5V、2.85V、3.3V和5V)的型号。
LM1117提供电流限制和热保护。电路包含1个齐纳调节的带隙参考电压以确保输出电压的精度在±1%以内。
6张家界航空工业职业技术学院毕业设计说明书图2-3LM1117-3.3集成芯片管脚功能图主要特点是:能够提供3.3V的电压并且有节省空间的SOT-223和LLP封装和具有电流限制和热保护功能,输出的电流可达800mA,线性调整率为0.2%(Max),负载调整率为0.4%(Max),温度范围为-LM1117:0℃~125℃-LM1117I:-40℃~125℃。2.2.374HC245
图2-474HC245芯片管脚图定义74HC245是一种在单片机系统中常用的驱动器,三态输出八路收发器,它在电路中的作用就是增加IO口的驱动能力,比如说单片机的IO口本身的驱动电流较小但是所带的负载很大,这种时候就可以使用74HC245来增强IO口的驱动能力。主要采用CMOS工艺,宽电压工作范围在3.0V—5.0V之间,输出状态为双向三态输出,八线双向收发器,封装形式有SOP20有SOP20—2还有TSSOP20
7张家界航空工业职业技术学院毕业设计说明书和DIP20。
表2-1管脚定义说明符号A0—A7B0—B7
管脚名称数据输入/输出数据输入/输出输出使能
管脚号2-911-181912010
说明
DIRGNDVDD2.2.474HC138
方向控制逻辑地逻辑电源
DIR=1,A—>B;DIR=0,B—>A
逻辑地电源端
图2-574LS138芯片管脚图74LS138为3-8线译码器,译码器也称解码器,译码过程实际上是一种翻译过程,即编码的逆过程。译码器的输入是n位二值代码,输出是m个表征代码原意的状态信号(或另一种代码)。一般情况下有m小于等于2的n次方,即译码器输入线比输出线要少。当一个选通端(E1)为高电平,另两个选通端((/E2))和(/E3))为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。如:A2A1A0=110时,则Y6输出端输出低电平信号。并且可用在8086的译码电路中,扩展内存。利用E1、E2和E3可级联扩展成24线译码器;若外接一个反相器还可级联扩展成32线译码器。若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。
74LS138管脚定义见表2-2,A0~A2对应Y0~Y7;A0、A1、A2以二进制形式输入,然后转换为十进制对应相应的Y序号输出低电平,其他均为高电平。
8张家界航空工业职业技术学院毕业设计说明书表2-274LS138管脚定义符号A1—A2STA(E1)/STB(/E2)/STC(/E3)/Y0~、/Y7GNDVDD管脚名称地址输入端选通端选通端输出端逻辑地逻辑电源管脚号1-364-57、9-15816低电平有效低电平有效逻辑地电源端说明真值表为:
表2-374LS138真值表输入STA**011111111STB1**00000000STC*1*00000000A2***00001111A1***00110011A0***01010101输出Y011101111111Y111110111111Y211111011111Y311111101111Y411111110111Y511111111011Y611111111101Y711111111110通过74LS138芯片使其MCU的三个I/O口可控制其八位数码管,大大减少其I/O口的使用,通过74HC245芯片提高IO口的驱动能力,使其数码管工作正常。
9张家界航空工业职业技术学院毕业设计说明书2.2.5AT24C08
图2-6AT24C08芯片管脚AT24C08提供8192位的串行电可擦写可编程只读存储器(EEPROM),组织形式为1024字×8位字长。适用于许多要求低功耗和低电压操作的工业级或商业级应用。可选节省空间的8脚PDIP,8脚JEDECSOIC,8脚UltraLeadFrameLandGridArray(ULA),5脚SOT23,8脚TSSOP,和8触点dBGA2封装,并通过2-wire串行接口存取。低压和标准电压操作—1.8(Vcc=1.8to5.5V),内部组织1024x8(8K),有2-Wire串行接口,采用施密特触发器,过滤输入,实现噪音抑制,具有双向数据传输协议,1MHz(5.0V),兼容400KHz(1.8V,2.5V,2.7V),写保护引脚,实现硬件数据保护。有16字节页写模式,并且允许页面局部写入,具有高的可靠性,封装为dBGA2。2.2.6ULN2003
图2-7ULN2003内部管脚图10张家界航空工业职业技术学院毕业设计说明书ULN2003是高耐压、大电流复合晶体管阵列,由七个硅NPN复合晶体管组成,每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。
封装外形图ULN2003内部还集成了一个消线圈反电动势的二极管,可用来驱动继电器。它是16脚封装,NPN晶体管矩阵,最大驱动电压=50V,电流=500mA,输入电压=5V,适用于TTLCOMS,由达林顿管组成驱动电路。ULN是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,它的输出端允许通过电流为200mA,饱和压降VCE约1V左右,耐压BVCEO约为36V。用户输出口的外接负载可根据以上参数估算。采用集电极开路输出,输出电流大,故可直接驱动继电器或固体继电器,也可直接驱动低压灯泡。通常单片机驱动ULN2003时,上拉2K的电阻较为合适,同时,COM引脚应该悬空或接电源。2.2.7ESP8266
图2-8ESP8266芯片内部管脚图外接WIFI模块主要采用ESP8266集成芯片控制。ESP8266是一款能够支持无802.11b/g/n,支持STA/AP/STA+AP,支持TCP/IP协议栈,支持多路TCPClient连接,支UART/GPIO数据通信接口,支持SmartLink智能联网功能,并且有三种标准,三种工作模式,内置丰富的SocketAT指令、适合电池供电应用3.3V单电源供电的集成芯片。
11张家界航空工业职业技术学院毕业设计说明书2.2.8LCD12864
LCD12864汉字图形点阵液晶显示模块可以显示汉字、图形、ASCⅡ码和自定义字形,内置8192个16*16的中文汉字、128个8*16字符、以及64*256点阵显示RAM,控制器为ST7920,具有串/并接口方式,其内部含有中文字库,LCD12864显示屏为128*64点阵,可显示4行,每行8个字,模块内含有多种软件功能:光标显示、画面移位、自定义字符、反白、清除、关闭显示和睡眠模式等,可方便地对模块进行控制。模块内置升压电路,无需负压,配置LED背光。3V低电平工作时,只需一个20K的电阻与Vo的地相接。适用于3.3V~5V宽范围工作电压的系统。
RS,R/W的配合决定的4种模式,如表2-3所示:
表2-3RSLLHHR/WLHLHRS,R/W配合决定模式功能说明MPU写指令到指令暂存器(IR)读出忙标志(BF)及地址记数器(AC)的状态MPU写入数据到数据暂存器(DR)MPU从数据暂存器(DR)中读出数据E信号的状态产生的动作,如表2-4所示:
表2-4E状态高——>低高低/低——>高执行动作I/O缓冲——>DRDR——>I/O缓冲无动作E信号的状态产生结果配合/W进行写数据或指令配合R进行读数据或指令LCD12864的并行接口,如表2-5所示:
表2-5管脚号管脚名称电平12345678VSSVCCV0RS(CS)R/W(SID)E(SCLK)DB0DB10V3.0+5V-H/LH/LH/LH/LH/L12LCD12864的并行接口管脚功能描述电源地电源正对比度(亮度)调整RS=“H”,表示DB7——DB0为显示数据RS=“L”,表示DB7——DB0为显示指令数据R/W=“H”,E=“H”,数据被读到DB7——DB0R/W=“L”,E=“H→L”,DB7——DB0的数据被写到IR或DR使能信号三态数据线三态数据线张家界航空工业职业技术学院毕业设计说明书91011121314151617181920DB2DB3DB4DB5DB6DB7PSBNC/RESETVOUTAKH/LH/LH/LH/LH/LH/LH/L-H/L-VDDVSS三态数据线三态数据线三态数据线三态数据线三态数据线三态数据线H:8位或4位并口方式,L:串口方式(见注释1)空脚复位端,低电平有效(见注释2)LCD驱动电压输出端背光源正端(+5V)(见注释3)背光源负端(见注释3)(续表)2.2.9LCD1602
LCD1602点阵字符液晶模块是由点阵字符液晶显示器件和专用的行列驱动器,控制器及必要的连接件,结构件装配而成,可以显示数字和英文字符。
LCD1602采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如下所示:表2-6LCD1602引脚接口说明编号12345678符号VSSVDDVLRSR/WED0D1引脚说明电源地电源正极液晶显示偏压数据/命令选择读/写选择使能信号数据数据编号910111213141516符号D2D3D4D5D6D7BLABLK引脚说明数据数据数据数据数据数据背光源正极背光源负极13张家界航空工业职业技术学院毕业设计说明书2.3模块电路设计
2.3.1STM32F103RCT6最小系统电路
主要由MCU、复位电路和晶振电路构成。采用按键复位,选取晶振分别为8MHz和32.768KHz。
晶振电路的作用是为单片机合格的时钟信号流。单片机电路是由无数的门电路组成,而门电路工作时就需要时钟信号作为触发,过来一个脉冲,门电路就执行一次,过来多少个脉冲,门电路就执行多少次。在同样电路的情况下,脉冲频率越高,单片机性能也越高。
复位电路的原理是单片机RST引脚接收到2US以上的电平信号,只要保证电容的充放电时间大于2US,即可实现复位,所以电路中的电容值是可以改变的。当按键按下系统复位,是电容处于一个短路电路中,释放了所有的电能,电阻两端的电压增加引起的。
图2-9STM32F103RCT6最小系统电路2.3.2电源电路
通过USB数据线或者TP-LINK给开发板供5V电,经过LM1117-3.3V变电压为3.3V,给MCU供电。并通过指示灯来显示供电是否完成。
14张家界航空工业职业技术学院毕业设计说明书图2-10电源模块及其指示灯2.3.3数码管电路
图2-11数码管电路原理图数码管是由发光二极管组成,有共阴极和共阳极之分,对于共阳极来说,一位数码管由8个二极管组成,他们的阳极接在一起接+5v电源,而各个阴极与某个端口,如p1的8个引脚相连,当某个引脚输出低电平的时候数码管对应的二极管亮。74HC138芯片通过三极管的导通来控制整个数码管的电流。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极
15张家界航空工业职业技术学院毕业设计说明书管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。2.3.4USB供电电路
采用市面上最常见的手机充电接口,作为供电接口,随时随地都可以给其供电进行演示。自锁开关控制了电源是否供电。
图2-12USB供电模块电路图2.3.5EEPROM电路
图2-13EEPROM模块电路图EEPROM模块采用AT24C08集成芯片,并且通过电源电池通电,达到掉电可擦出功能。EEPROM的数据读取直接用总线读周期读出即可,不需要进行额外操作和设置。
16张家界航空工业职业技术学院毕业设计说明书2.3.6步进电机驱动电路
图2-14五相四线步进电机原理图单片机利用ULN2003的驱动能力来增强自身的驱动能力,再通过接线排引出,让我们能够随时随地使用并且使用和控制更加方便。ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。由于UNL2003的工作电压高,工作电流大,灌电流可500mA,并且能够在关态时承受50V的电压,因此输出还可以在高负载电流并行运行。ULN2003所采用的封装通常是DIP-16或SOP-16塑料封装。并且因为ULN2003是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,因此它适应于各类要求高速大功率驱动的系统。2.3.7外接WIFI电路
外接WIFI模块主要采用ESP8266集成芯片控制。当成功连接上模块,这时可以向模块串口写数据,与此同时,电脑或者手机的无线网卡都可以搜索到WIFI。模块作为服务器,这要保证服务器和客户端在同一网络状态下。我们通常有以下几种模式来控制:
第一种,WIFI模块和手机同时连接到一个路由器上面,用手机来控制WIFI模块。
17张家界航空工业职业技术学院毕业设计说明书第二种,通过服务器端口,向客户端发送数据,此时串口会输出发出的数据。
图2-15外接WIFI电路原理图2.3.8LCD液晶显示电路
图2-16LCD液晶显示电路点阵字符液晶模块是由点阵字符液晶显示器件和专用的行列驱动器,控制器及必要的连接件,结构件装配而成,可以显示数字和英文字符。
18张家界航空工业职业技术学院毕业设计说明书2.3.9独立按键电路
由八个独立按键组成一个按键模块。
图2-14独立按键原理图2.3.10LED流水灯电路
由八个发光二极管和八个1K电阻组成,八个电阻分别对八个发光二极管起分压保护作用。
图2-15发光二极管原理图19张家界航空工业职业技术学院毕业设计说明书2.3.11滤波电路
利用电容的极性进行滤波。
图2-16滤波电路图2.3.12蜂鸣器电路
由一个电阻和一个蜂鸣器组成,电阻对蜂鸣器起分压保护作用。是通过ULN2003芯片增加其驱动能力,从而使其可以正常工作。
图2-17蜂鸣器电路原理图2.4PCB布局布线
遵循先难后易,先大后小的原则。
20张家界航空工业职业技术学院毕业设计说明书根据要求先将所有有定位要求的元件固定并锁定。再参考原理图根据信号流向规律,放置其它原器件。
布局保障总的连线尽可能的短,关键信号线最短。模拟信号,数字信号需分开。
按照均匀分布,重心平衡,版面美观的标准来优化布局。相同结构电路部分尽可能采取对称布局。同类元件尽可能在X或Y方向上一致,以便于生产和调试。
元件的放置要便于调试和维修,大元件边上不能放置小元件,需要调试的元件周围应有足够的空间。发热元件应有足够的空间以利于散热。使用同一种电源的元件应考虑尽量放在一起,以便于将来的电源分割。
集成电路的去耦电容应尽量靠近芯片的电源脚,使之与电源和地之间形成回路最短。旁路电容应均匀分布在集成电路周围。
采用手动布线的方法,在保障布线合理,符合规范的情况下,尽量追求布线的完美。
避免字符被焊盘或过孔覆盖,要保证装配以后还可以清晰看到字符信息。所有字符在X或Y方向上应一致。字符,丝印大小要统一。
布局参照STC89C52开发板,布线规则如下:1、所有元器件引脚最小间隔为7mil。2、所有元件和GND最小间距为20mil。3、不允许存在短电流。
4、所有+5V的导线最小宽度为7mil,最大宽度为30mil,首选宽度为15mil。5、所有+3.3V的导线最小宽度为7mil,最大宽度为15mil,首选宽度为12mil。6、所有GND的导线最小宽度为7mil,最大宽度为20mil,首选宽度为15mil。7、其他所有的导线最小宽度为7mil,最大宽度为16mil,首选宽度10mil。8、没有行程优先权。9、为顶层和底层的双层板。10、拐角首选45°角。
11、在板子四周分别制作四个定位孔。
经过对PCB板的绘制以及手动布局及布线,完成了PCB版图的设计和制作,如图2-18、2-19所示为电路板布线图。
21张家界航空工业职业技术学院毕业设计说明书图2-18PCB板正面布线图
图2-19PCB板反面布线图
22张家界航空工业职业技术学院毕业设计说明书第3章3.1
软件总体设计
软件设计软件部分主要分为数码管程序,按键程序,流水灯程序,蜂鸣器程序,独立看门狗程序,AD程序,DA程序,PWM输出程序,定时器程序和其他简单模块程序。
STM32的IO口相比51而言要复杂得多,所以使用起来也困难很多。首先STM32的IO口可以由软件配置成如下8种模式:
1、输入浮空2、输入上拉3、输入下拉4、模拟输入5、开漏输出6、推挽输出7、推挽式复用功能8、开漏复用功能
每个IO口可以自由编程,但IO口寄存器必须要按32位字被访问。STM32的很多IO口都是5V兼容的,这些IO口在与5V电平的外设连接的时候很有优势,具体哪些IO口是5V兼容的,可以从该芯片的数据手册管脚描述章节查到(I/OLevel标FT的就是5V电平兼容的)。STM32的每个IO端口都有7个寄存器来控制。他们分别是:配置模式的2个32位的端口配置寄存器CRL和CRH;2个32位的数据寄存器IDR和ODR;1个32位的置位/复位寄存器BSRR;一个16位的复位寄存器BRR;1个32位的锁存寄存器LCKR。
CRL和CRH控制着每个IO口的模式及输出速率。如下表4-1所示:
表3-1STM32的IO口位配置配置模式推挽式开漏推挽式开漏CNF1CNF0010123MODE1011011MODE0PxODR寄存器0或10或1不使用不使用通用输出复用功能输出01张家界航空工业职业技术学院毕业设计说明书模拟输入输入浮空输入下拉输入上拉输入001000不使用不使用011(续表)
STM32输出模式配置如下表所示:
表3-2输出模式配置MODE[1:0]00011011意义保留最大输出速度为10MHz最大输出速度为2MHz最大输出速度为50MHz接下来我们来看看端口低配置寄存器CRL的描述。该寄存器的复位值为0X44444444,从图6.1.4可以看到,复位值其实就是配置端口为浮空输入模式。从上图还可以得出:STM32的CRL控制着每组IO端口(A~G)的低8位的模式。每个IO端口的位占用CRL的4个位,高两位为CNF,低两位为MODE。这里我们可以记住几个常用的配置,比如0X0表示模拟输入模式(ADC用)、0X3表示推挽输出模式(做输出口用,50M速率)、0X8表示上/下拉输入模式(做输入口用)、0XB表示复用输出(使用IO口的第二功能,50M速率)。CRH的作用和CRL完全一样,只是CRL控制的是低8位输出口,而CRH控制的是高8位输出口。这里我们对CRH就不做详细介绍了。下面我们讲解一下怎样通过固件库设置GPIO的相关参数和输出如表3-1所示:
表3-3313029282726CNF7[1:0]rw15rw14MODE7[1:0]rw13rw12端口低配置寄存器CRL描述25242322212019181716CNF5[1:0]rw7rw6MODE5[1:0]rw5rw4CNF4[1:0]rw3rw2rw1MODE[1:0]rw0CNF6[1:MODE6[0]1:0]rw11rw10rw9rw8CNF3[1:0]rwrwMODE3[1:0]rwrwCNF2[1:0]rwrwMODE2[1:0]rwrwCNF1[1:MODE1[0]1:0]rwrwrwrwCNF0[1:MODE0[0]1:0]rwrwrwrw24张家界航空工业职业技术学院毕业设计说明书位31:3027:2623:2219:1815:1411:107:63:2CNFy[1:0]:端口x配置位(y=0...7)软件通过这些位配置相应的I/O端口,请参考表15端口位配置表。在输入模式(MODE[1:0]=00):00:模拟输入模式01:浮空输入模式10:上拉/下拉输入模式11:保留在输出模式(,ODE[1:0]=00):00:通用推挽输出模式01:通用开漏输出模式10:复用功能推挽输出模式11:复用功能开漏输出模式MODEy[1:0]:端口x的模式位(y=0...7)软件通过这些位配置相应的I/O端口,请参考表15端口位配置表00:输入模式(复位后的状态)01:输出模式,最大速度10MHz10:输出模式,最大速度2MHz11:输出模式,最大速度50MHz位29:2825:2421:2017:1613:129:8,5:41:0(续表)在固件库开发中,操作寄存器CRH和CRL来配置IO口的模式和速度是通过GPIO初始化
函数完成:
VoidGPIO_Init(GPIO_TypeDef*GPIO_InitTypeDef*GPIO_InitStruct)这个函数有两个参数,第一个参数是用来指定GPIO,取值范围为GPIOA~GPIOG。
第二个参数为初始化参数结构体指针,结构体类型为GPIO_InitTypeDef。我们通过一个GPIO初始化实例来讲解这个结构体的成员变量的含义。通过初始化结构体初始化GPIO的常用格式是:GPIO_InitTypeDefGPIO_InitStructure;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;口
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO
上面代码的意思是设置GPIOB的第5个端口为推挽输出模式,同时速度为50M。从上面初始化代码可以看出,结构体GPIO_InitStructure的第一个成员
25//定义PB.5端//推挽输出//速度50MHz
//根据设定参数配置
张家界航空工业职业技术学院毕业设计说明书变量GPIO_Pin用来设置是要初始化哪个或者哪些IO口;第二个成员变量GPIO_Mode是用来设置对应IO端口的输出输入模式,这些模式是上面我们讲解的8个模式,在MDK中是通过一个枚举类型定义的:
typedefenum
{GPIO_Mode_AIN=0x0,GPIO_Mode_IN_FLOATING=0x04,GPIO_Mode_IPD=0x28,GPIO_Mode_IPU=0x48,GPIO_Mode_Out_OD=0x14,GPIO_Mode_Out_PP=0x10,GPIO_Mode_AF_OD=0x1C,GPIO_Mode_AF_PP=0x18}GPIOMode_TypeDef;
第三个参数是IO口速度设置,有三个可选值,在MDK中同样是通过枚举类型定义:
typedefenum{
GPIO_Speed_10MHz=1,GPIO_Speed_2MHz,GPIO_Speed_50MHz
}GPIOSpeed_TypeDef;
IDR是一个端口输入数据寄存器,只用了低16位。该寄存器为只读寄存器,并且只能以16位的形式读出。该寄存器各位的描述如图3-2所示:
表3-4端口输入数据寄存器IDR31BR15w15BS15w30BR14w14BS14w29BR13w13BS13w28BR12w12BS12w27BR11w11BS11w26BR10w10BS10w25BR9w9BS9w24BR8w8BS8w23BR7w7BS7w22BR6w6BS6w21BR5w5BS5w20BR4w4BS4w19BR3w3BS3w18BR2w2BS2w17BR1w1B1Sw16BR0w0BS0w//模拟输入//浮空输入//下拉输入//上拉输入//开漏输出//通用推挽输出//复用开漏输出
//复用推挽
位31:16BRy:清除端X的位y(y=0...15)(PortxResetbity)这些位只能写并只能以字(16位)的形式操作。0:对对应的ODRy位不产生影响1:清除对应的ODRy位为0注:如果同时设置了BSy和BRy的对应位,BSy位起作用26张家界航空工业职业技术学院毕业设计说明书位15:0BSy:设置的端口x的位y(y=0...15)(PortxSetbity)这些位只能写入并只能以字(16位)的形式操作.0:对对应的ODRy位不产生影响1:设置对应的ODRy位为1(续表)要想知道某个IO口的电平状态,你只要读这个寄存器,再看某个位的状态就可以了。使用起来是比较简单的。
在固件库中操作
IDR寄存器读取
IO端口数据是通过
GPIO_ReadInputDataBit函数实现的:
uint8_tGPIO_ReadInputDataBit(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin)
比如读GPIOA.5的电平状态,方法是:GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_5);
返回值是1(Bit_SET)或者0(Bit_RESET);
ODR是一个端口输出数据寄存器,也只用了低16位。该寄存器为可读写,从该寄存器读出来的数据可以用于判断当前IO口的输出状态。而向该寄存器写数据,则可以控制某个IO口的输出电平。
该寄存器的各位描述如图3-3所示:
表3-5端口输出数据寄存器ODR31302928272625242322212019181716保留
87
ODR8ODR71514131211109
ODR15ODR14ODR13ODR12ODR11ODR10ODR96
ODR65
ODR54
ODR43
ODR32
ODR21
ODR10
ODR0rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw在固件库中设置ODR寄存器的值来控制IO口的输出状态是通过函数GPIO_Write来实现的:
voidGPIO_Write(GPIO_TypeDef*GPIOx,uint16_tPortVal);该函数一般用来往一次性一个GPIO的多个端口设值。
BSRR寄存器是端口位设置/清除寄存器。该寄存器和ODR寄存器具有类似的作用,都可以用来设置GPIO端口的输出位是1还是0。
该寄存器通过举例子可以很清楚了解它的使用方法。例如你要设置GPIOA的第1个端口值为1,那么你只需要往寄存器BSRR的低16位对应位写1即可:
GPIOA->BSRR=1<<1;
27张家界航空工业职业技术学院毕业设计说明书如果你要设置GPIOA的第1个端口值为0,你只需要往寄存器高16位对应为写1即可:
GPIOA->BSRR=1<<(16+1)
该寄存器往相应位写0是无影响的,所以我们要设置某些位,我们不用管其他位的值。
BRR寄存器是端口位清除寄存器。该寄存器的作用跟BSRR的高16位雷同,这里就不做详细讲解。在STM32固件库中,通过BSRR和BRR寄存器设置GPIO端口输出是通过函数GPIO_SetBits()和函数GPIO_ResetBits()来完成的。
voidGPIO_SetBits(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin);voidGPIO_ResetBits(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin)在多数情况下,我们都是采用这两个函数来设置GPIO端口的输入和输出状态。比如我们要设置GPIOB.5输出1,那么方法为:
GPIO_SetBits(GPIOB,GPIO_Pin_5);
反之如果要设置GPIOB.5输出位0,方法为:GPIO_ResetBits(GPIOB,GPIO_Pin_5);
GPIO相关的函数我们先讲解到这里。虽然IO操作步骤很简单,这里我们还是做个概括性的总结,操作步骤为:
1、使能IO口时钟。调用函数为RCC_APB2PeriphClockCmd()。2、初始化IO参数。调用函数GPIO_Init();
3、操作IO。操作IO的方法就是上面我们讲解的方法。
这就是STM32I/O口的基本知识以及固件库操作GPIO的一些函数方法。
3.2软件模块设计
3.2.1键盘模块程序设计
矩阵式键盘的按键识别方法为:
判断键盘中有无键按下:将全部行线KEY0-KEY3置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。
判断闭合键所在的位置:在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某
28张家界航空工业职业技术学院毕业设计说明书列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。
矩阵式键盘的按键编码处理:将行线和列线依次进行数值编码,然后进行一定规则的运算,就是对键值的编码。
开始键盘扫描N有键按下Y原有键值不变取键值键值送P0选通数码管图3-1键盘程序流程图键盘采用的是行扫描法确定键值,在程序中具体是这样扫描键盘的:将键盘扫描码送入P2口,先是使行线依次为低电平,顺序为KEY1、KEY2、KEY3、KEY4,在某一行线为低电平的状态下,读取P2口的状态,将状态值依次右移四位,这样便将KEY5-KEY8的状态值移到了低四位,再将高四位状态值置一,将处理后的状态值与当前的扫描码比较,如果此时的状态值与四个扫描码中的一个相同,证明有键按下,此时保存扫描码的数组下标和与状态值相等的扫描码数组下标,并将两个值按照键盘编码值进行某一规则的四则运算后返回给主函数中的某一变量;如果在全部行线依次为低电平情况下的状态值与四个扫描码中没有一个相同,证明没有键按下,返回-1到主函数。在主函数中调用键盘扫描函数对键盘进行扫描,判断返回键值,若返回值不为-1,证明右键按下,在某一个数码管上显示键值,若返回值为-1,证明没有键按下,显示先前按下的按键键值。3.2.2流水灯模块程序设计
程序中先定义五个一维数组,每个一维数组里面含有八个元素,元素为十六进制数,对应I/O口的八个引脚,十六进制数为1则对应相应引脚为高电平,为
29张家界航空工业职业技术学院毕业设计说明书0则相应引脚为低电平。LED连接引脚若为低电平,则LED发光,若为高电平,则LED不发光。将一维数组里的八个元素依次送到对应I/O口,则LED亮灭依次发生变化,轮流将五个一维数组送交对应I/O口,则可以显示五组不同的花型。流水灯程序图如图3-2所示:
开始数组LED1内容送入I/O口显示数组LED2内容送入I/O口显示数组LED3内容送入I/O口显示数组LED4内容送入I/O口显示数组LED5内容送入I/O口显示图3-2流水灯程序流程图3.2.3数码管模块程序设计
数码管的显示方式可以分为动态和静态的。动态的也叫扫描方式,是利用发光二极管的余辉效应和人眼的视觉暂留效应来实现的,只要在在一定时间内数码管的笔段亮的频率够快,人眼就看不出闪烁,一般外围硬件较少,但是对单片机资源耗用巨大。静态的也叫锁存方式,单片机送出数据后控制外围锁存器件锁存数据,这样数码管笔段里的电流不变,数码管稳定显示,这样单片机可以干别的活不用管数码管了。这种方案的优点是对单片机的P口资源和时间耗用很少,但是数码管的外围辅助电路复杂。
在本程序中使用动态扫描法控制数码管显示,数码管程序流程图如图3-6所示:
30张家界航空工业职业技术学院毕业设计说明书开始“4”段码送段选口
位码送位选口选中第四位数码管“3”段码送段选口
位码送位选口选中第三位数码管“2”段码送段选口位码送位码口选中第二位数码管“1”段码送段选口位码送位选口选中第一位数码管图3-3数码管程序流程图3.2.4LCD液晶显示模块程序设计
LCD1602液晶模块内部的控制器共有11条控制指令,如表3-6所示:
表3-6液晶模块内部的控制器指令序号123
指令清显示光标返回置输入模式
RS000
R/WD7000
31D6000
D5000
D4000
D3000
D2001
D101I/D
D01*S
000
张家界航空工业职业技术学院毕业设计说明书4567891011
显示开/关控制光标或字符移位
置功能
置字符发生存贮器地址
0000
00000101
00001BF
0001
001
01DL
1DC**
B**
S/CR/LN
F
字符发生存贮器地址
置数据存贮器地址读忙标志或地址写数到CGRAM或DDRAM)从CGRAM或DDRAM读数
0011
显示数据存贮器地址
计数器地址要写的数据内容读出的数据内容
1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)
1、清显示,指令码01H,光标复位到地址00H位置。2、光标复位,光标返回到地址00H。
3、光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。
4、显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。
5、光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标。6、功能设置命令DL:高电平时为4位总线,低电平时为8位总线N:低电平时为单行显示,高电平时双行显示F:低电平时显示5x7的点阵字符,高
电平时显示5x10的点阵字符。7、字符发生器RAM地址设置。8、DDRAM地址设置。
9、读忙信号和光标地址BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
10、写数据。11、读数据。
读写操作时序如图3-4和3-5所示:
32张家界航空工业职业技术学院毕业设计说明书图3-4读操作时序图3-5写操作时序液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,LCD1602的内部显示地址见表3-7:
表3-71第一行第二行00402014130242403435044460545LCD1602的内部显示地址706468074790848100949110A4A120B4B130C4C140D4D150E4E160F4F33张家界航空工业职业技术学院毕业设计说明书LCD1602显示程序流程图如图3-6所示:
开始设置显示模式关闭显示显示清屏显示光标移动设置显示开及光标设置显示两个字符串结束图3-6LCD1602显示程序流程图比如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。
LCD12864显示程序设计
模块控制芯片提供两套控制命令。
表3-8指令
基本指令表和扩充指令表功能指令码RS0R/WD7D6D5D4D3D2D1D0000000001清除显示将DDRAM填满\"20H\",并且设定DDRAM的地址计数器(AC)到\"00H\"34张家界航空工业职业技术学院毕业设计说明书地址归位显示状态开/关进入点设定游标或显示移位控制功能设定设定CGRAM地址设定DDRAM地址读取忙标志和地址写数据1到RAM读出RAM1的值扩充指令表指000000001设定DDRAM的地址计数器(AC)到\"00H\",并且X将游标移到开头原点位置;这个指令不改变DDRAM的内容D=1:整体显示ONBC=1:游标ONB=1:游标位置反白允许0000001DC0000000指定在数据的读取与写入时,设定游标1I/DS的移动方向及指定显示的移位X设定游标的移动与显示的移位控制位;这个指令不改变DDRAM的内容000001S/CR/LX00001DLXREXDL=0/1:4/8位数据XRE=1:扩充指令操作RE=0:基本指令操作0001AC5AC4AC3AC2AC1AC0设定CGRAM地址设定DDRAM地址(显示位址)0AC5AC4AC3AC2AC1AC0第一行:80H-87H第二行:90H-97H0010011读取忙标志(BF)可以确认内部动作是同时可以读出地址计数器(AC)BFAC6AC5AC4AC3AC2AC1AC0否完成,的值数据数据将数据D7——D0写入到内部的RAM(DDRAM/CGRAM/IRAM/GRAM)从内部RAM读取数据D7——D0(DDRAM/CGRAM/IRAM/GRAM)指令码功能RS待命模式0R/WD7D6D5D4D3D2D1D0000000001进入待命模式,执行其他指令都棵终止待命模式反白0000选择睡眠模式00000001(续表)选择2行中的任一行作反白显示,并可决定反白与R1R0否。初始值R1R0=00,第一次设定为反白显示,再次设定变回正常XSL=0:进入睡眠模式XSL=1:脱离睡眠模式001SL35张家界航空工业职业技术学院毕业设计说明书扩充功能0000设定1CLXREGCL=0/1:4/8位数据RE=1:扩充指令操作0RE=0:基本指令操作G=1/0:绘图开关设定设定绘图RAM绘图000AC3AC2AC1AC0先设定垂直(列)地址AC6AC5…AC0001RAM再设定水平(行)地址AC3AC2AC1AC0AC6AC5AC4AC3AC2AC1AC0地址将以上16位地址连续写入即可(续表)
当IC1在接受指令前,微处理器必须先确认其内部处于非忙碌状态,即读BF标志时,BF需为零,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延长一段较长的时间,即是等待前一个指令确实执行完成。
根据时序图编写相应发送字节、接收字节、检测忙、写命令、写数据等基本驱动函数,在主函数中调用液晶初始化函数,显示文本和显示字符函数。
LCD12864显示程序流程图如图3-7所示:
开始基本指令集地址归零开显示、关游标清屏写入时,游标右移清显示内容显示文本内容结束图3-7LCD12864显示程序流程图36张家界航空工业职业技术学院毕业设计说明书3.3小结
在以STM32单片机为核心控制器的基础上,对外围电路进行了设计,包括丰
富的硬件模块如:液晶显示模块、键盘模块、流水灯模块、蜂鸣器模块、五相四线步进电机模块、外接Wi-Fi模块等。针对各个功能模块开发的相应的功能程序模块—控制驱动程序、液晶显示程序等均能在开发板上正确的运行,运行效果准确无误。由于该开发板可以完成单片机各类通用实验以及各种软硬件测试,且具有操作简单,性价比高的特点,因此具有一定的实用价值和现实意义。
37张家界航空工业职业技术学院毕业设计说明书第4章4.1
调试的设备
产品调试表4-1调试过程中所用设备仪器名称数字万用表电脑示波器型号UT890C+联想GDS-1104B数量一块一台一台4.2调试步骤
4.2.1焊接
1、检查印刷电路裸板电源正负端、各相邻焊点是否短路。
2、检测元器件质量,电容、接插件是否短路,按键通断状态是否正确。3、集成电路一定焊接插座,确定好插座空间安装位置。4、焊接时特别要注意锡不能太多,否则易发生焊点短路。5、电烙铁焊接时间不要过长,以免烫坏焊点。6、焊贴片元件的时候注意不要让管脚之间连接住。4.2.2调试
单片机系统的硬件调试和软件调试是不能分开的,许多硬件错误是在软件调试中被发现和纠正的。
1、排除逻辑故障。这类故障由于设计和加工制板过程中工艺性错误所造成的。主要包括错线、开路、短路。排除的方法是首先将加工的印制板认真对照原理图,看两者是否一致。应特别注意电源系统检查,以防止电源短路和极性错误,并重点检查系统总线(地址总线、数据总线和控制总线)是否存在相互之间短路或与其它信号线短路。必要时利用数字万用表的短路测试功能,可以缩短排错时间。
2、排除元器件失效。造成这类错误的原因有两个:一个是元器件买来时就已坏了;另一个是由于安装错误,造成器件烧坏。可以采取检查元器件与设计要
38张家界航空工业职业技术学院毕业设计说明书求的型号、规格和安装是否一致。在保证安装无误后,用替换方法排除错误。
3、排除电源故障。在通电前,一定要检查电源电压的幅值和极性,否则很容易造成集成块损坏。加电后检查各插件上引脚的电位,一般先检查VCC与GND之间电位,若在3.2V~3.5V之间属正常。在电源到LM1117之间VCC与GND之间电位,若在5V~5.8V之间属正常。
4.3故障分析
1、自锁开关按下时断电,没按下时为通电状态。2、有一位数码管不亮。3、通电后LED电源指示灯不亮
故障可能由电源输出端短路或者LM7805坏导致,还有LM7805输入端短路,开也会引起。
针对实习中出现的各种问题进行分析,短接,发光二极管不能用是排阻焊错了。将以电阻重新焊接,排针短接后,系统板各个模块功能正常。数码管不亮,是有一个数码管焊反了,将数码管焊掉重新正着焊一遍,数码管正常显示。
由上得出在动手焊接前要认真仔细地分析电路原理图,熟悉系统板各个模块的工作原理;在焊接时先用万用表将各元件测量一下,做到心中有数,安装时先安装低矮和耐热元件(如电阻),然后再装大一点的元件(如插槽、数码管),最后装怕热的元件(如三极管)。焊接电解电容与发光二极管要注意正负极不要接反。
39张家界航空工业职业技术学院毕业设计说明书第5章5.1
功能描述
产品使用说明成品完成之后,我们有如下图所示的一些主要模块。由这些模块我们可以设计一些程序,例如:由数码管模块,我们可以设计数码管显示0到9的操作程序。由LED流水灯模块,我们可以设计流水灯循环左移的操作程序。由独立按键模块我们可以设计和按键控制流水灯的操作程序。由LCD模块,我们可以外接液晶显示屏来进行液晶显示。由Wi-Fi串口我们可以外接Wi-Fi,或者通过USB接口转串口。
图5-1成品模块说明40张家界航空工业职业技术学院毕业设计说明书5.2使用说明
电源:利用USB接口给开发板供电,通过LM1117-3.3V改变输出电压为
3.3V。使STM32开发板能够正常使用。用学习板附带的USB连接线链接普通计算机和学习板,将计算机上提供的+5V电经过滤波后引入学习板中。这种供电方式简单快捷,还能节省学习成本。
复位电路:单片机有两种复位模式,一种是上电复位,另一种是手动复位。上电复位是指,当学习板接通电源的同时,复位电路时间得到一个高电平,而Reset端口与单片机的复位端RST(七管脚)相连,于是单片机复位。手动复位是指,在单片机运行过程中,通过学习板上的复位键进行手动复位。
发光二极管:该学习板提供了八只发光二极管进行单片机i/o口控制的实验。这八只发光二极管与单片机的PB03-PB09和PD02分别相连。当从单片机i/O口输入输出低电平时对应的发光二极管将被点亮。输出高电平时,对应的发光二极管将熄灭。一只发光二极管都与一个1K欧的电阻串联起到限流和保护单片机i/O端口的作用。
数码管显示:该学习板使用四位一体的共阴管。八只LED小灯的英籍是连接在一起的。吉视公共端游杨吉来控制单个小灯的亮灭单片机与74HC245通过PB03-PB09和PD02相连,作为段码信号线与74LS138通过PA13到PA15中跳线帽左端相连,作为片选信号线。
独立按键:该学习板提供了四个独立按键分别连接到单片机的PC06到PC12和PC13中跳线帽组端相连案件的另一边连在一起接地,当单片机的管脚输出高电平时,按键启动。
液晶显示:
1、单片机LCD1602中74HC245通过PB03-PB09和PD02相连。作为数据线片石三道片十五中跳线帽右端相连,作为控制线。
2、单片机与LCD12864中。7437245通过PB03-PB09和PD02相连。作为数据线PA13-PA15中跳线帽又短项链作为控制线。
BOOT:通过六个接线柱一端与输入相连,一端与输出相连,中间与单片机的BOOT选择端相连.
串口Wi-Fi:从单片机的输入输出端,外接6个接线柱可以ESP8266芯片相连。
41张家界航空工业职业技术学院毕业设计说明书第6章心得体会这次我们在以STM32单片机为核心控制器的基础上,对外围电路进行了设计,包括丰富的硬件模块如:液晶显示模块、键盘模块、流水灯模块、蜂鸣器模块、五相四线步进电机模块、外接Wi-Fi模块等。利用学过的protel电路图绘制,ISIS电路仿真,不但从理论上理解了相关的理论知识,并且将知识运用于设计开发中,画出了各个模块的电路原理图和PCB版图。结合全部电路的原理图写出了C语言的程序。针对各个功能模块开发的相应的功能程序模块:控制驱动程序、液晶显示程序、按键程序、数码管显示程序、流水灯程序等,均能在开发板上正确的运行,并且运行效果准确无误。由于该开发板可以完成单片机各类通用实验以及各种软硬件测试,且具有操作简单,体积小、功耗低、低成本、性能高的特点,大量使用寄存器,使指令执行速度能够更快的完成。最后结合软件程序和硬件电路对整个设计的各个主要功能模块电路进行了仿真与调试,大大提高了自己的动手能力,积累了很多有用的知识。在学习和生活中都具有一定的实用价值和现实意义。
毕业设计马上就要告一段落了,在这次的毕业设计中,我学到了许多知识,了解了更多芯片在社会上的各类产品中的应用。提高了自己的实践能力,培养了我在实践过程中的独立思考的能力。提高了自己独立发现问题和处理问题的能力。发现了自己在一些方面的欠缺和不足有提高和发展的可能,促使自己能够在未来的学习和生活中能够有更好的进步和发展,并相信自己能在工作中更快的提高自己的工作能力。
42张家界航空工业职业技术学院毕业设计说明书致谢本论文的选题及研究是在老师的关怀和指导下完成的。严谨的治学态度,精益求精的工作作风,深深地感染和激励着我。从最初论文题目的选择到最终论文的完成黄老师都始终给予我细心的指导和不懈的支持。在这三年的在校学习和生活的时间中,老师不仅在学业上给我以精心指导,同时还在思想、生活上给我以无微不至的关怀,在此谨向老师致以诚挚的谢意。
感谢父母这二十年来对我的教导并给我创造良好的生活和学习环境,而且在我失意和困苦的时候给予我最大的精神鼓励与支持,直至毕业,父母仍是我最感激的人。
感谢在我遇到困难时为我提供帮助的所有同学,正是由于你们的支持,我才能克服一个又一个的困难,直至本文的顺利完成,他们对本课题做了不少工作,提出了许多宝贵的建议。
感谢学校给我提供的良好的学习环境,并且提供了充足的图书资源及电子资源,为我们更好的完成毕业设计提供了极大的帮助。
最后,向各位悉心指导,认真评阅的老师们致以最崇高的敬意和衷心的感谢!
43张家界航空工业职业技术学院毕业设计说明书参考文献(1)戴仙金等.51单片机及其C语言程序开发实例.北京:清华大学出版社,2008(2)万福军等.单片微机原理系统设计与应用.合肥:中国科学技术大学出版社,2005
(3)刘军等.例说STM32(第2版).北京:北京航空航天大学出版社,2013(4)手把手教你学51单片机.北京:清华大学出版社
(5)牛百齐等.电子产品工艺与质量管理.北京:机械工业出版社(6)陈应华等.常用集成电路应用于实训.北京:北京电邮大学出版社(7)张迎辉.单片微型计算机键盘接口设计[J].信息技术,2004
(8)颜颐欣,胡伟杰,赵非.MG-12864液晶显示器在智能仪表中的应用[J].电脑学习,2007
(9)陈应华等.常用集成电路应用与实训.北京:北京电邮大学出版社
(10)肖广兵等.ARM嵌入式开发实例——基于STM32的系统设计.电子工业出版社.2013
(11)张洋等.原子教你玩STM32(库函数版)(第2版),北京航空航天大学出版社.2013
(12)杨百军等.轻松玩转STM32微控制器.中国工信出版社.
(13)蒙博宇等.《STM32自学笔记(第2版)》.北京航空航天大学出版社.2014
44张家界航空工业职业技术学院毕业设计说明书附录附件一:总原理图
45张家界航空工业职业技术学院毕业设计说明书附件三:成品展示
经过这段时间的安装焊接与调试,我的设计成品展示如下所示。
46张家界航空工业职业技术学院毕业设计说明书附件二:元件清单
本次设计我们采用了电阻等原件,以下是原件清单。序号12345
名称贴片电阻贴片电阻贴片电阻贴片电阻贴片电容
代号R1-R14R19-R27R15.R16
2822110数量
标称值(型号)1K4.7K10K100104PF
封装08050805080508050805
678910111213141516171819202122232425262728
R17.R18R28C1-C3C10-C14C16.C17
贴片电容C4.C5贴片电容C6.C7贴片电容C8.C9贴片电容C15开关K1-K8
RESET
开关K9二极管D2.D3二极管D1LEDLED0-LED10晶振Y1晶振Y2
四位一体数SMG1.SMG2码管排针P1-P4排针P5排针P6排针J1—J5双排排针排母排母电池电池盒USB接口蜂鸣器
JP1LCD1LCD02CR1220CR1220USB
BEEP
222191211011241115111111
4715PF30PF10uF/10V220uF/10V轻触开关自锁开关1N4148B5819W红色
32.768KHz8MHz
共阴极红色16脚6脚7脚3脚2*3脚16脚20脚CR1220
CR1220电池盒
080508050805080508050805DIODE-1206LC-SOD-123X-TC15LC-HC-49SMD0.36寸四位一体数码管SIP16SIP06SIP07SIP03HDR2x3SIP16SIP20CR1220
USB5-Duan蜂鸣器
张家界航空工业职业技术学院毕业设计说明书293031323334
74HC24574LC138
U1U3
111111
封装:LC-SOIC-20_208mil封装:LC-SOIC-16_150mil封装:LC-SOT-223
封装:LC-LQFP-64_10x10x05P封装:LC-SOIC-8_180mil封装:LC-SOIC-16_150mil
LM1117-3.3U2V
STM32F1006U4RCT624C08U5ULN2003
U6
(续表)
48张家界航空工业职业技术学院毕业设计说明书附件四:安装过程
49
因篇幅问题不能全部显示,请点此查看更多更全内容