序
🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:基于51单片机的浴室水温控制系统的设计
1 浴室水温控制系统硬件设计
在本节中,我们主要对系统的硬件设计进行功能介绍。硬件的设计我们采用的是Altium Designer V10,主要是设计了系统的原理图和PCB版图,主要包含:供电电路,微处理器最小系统,存储电路,光敏传感器电路,TTL-UART转USB电路,SWD调试及外扩电路接口,按键电路等。
硬件电路的设计主要有:原理图器件库建立及使用,原理图器件连线,PCB器件封装库建立及使用,PCB布线,PCB板图投稿,根据BOM购买相应的器件,PCB板的焊接及调试。
1.1最小系统硬件功能介绍
1.1.1供电电路
电源主要是为整个电路的供电部分,本课题中有两种电源:5.0V电源和3.3V电源,其中5.0V是micro-usb直接接入,同时通过排针引出5.0V电源作为外接设备的供电端口。3.3V电源由5.0V电源转换得到。转换芯片为XC6201P332MR电源处理芯片,3.3V电源为微处理器,EEPROM,光敏,LED等供电,同时通过排针引出,供外部设备使用。
电源处理芯片XC6201P332MR是采用SOT23-5封装,其输出电压为3.3V,输入电源为3.1V-6.0V,课题中输入电源为5.0V,VSS端接地,输出电流单路最大为250mA,两路最大输出500mA。为了保证电源的稳定,在电源的输出端加10uF和100nF的电容,10uF电容滤除低频干扰, 100nF电容滤除高频干扰,从而实现电源的稳定输出。
1.1.2微处理器电路
微处理器电路,采用STM32F103C8T6微处理器,此款微处理器主要硬件功能有:Cortex-M3内核, 64K-Bytes闪存存储器,LQFP-48封装等。
我们本次课题用到的功能包含:复位和时钟控制(RCC),通用和复用功能I/O(GPIO和AFIO),中断和事件,DMA控制器(DMA),模拟/数字转换(ADC),通用定时器(TIMx),通用同步异步收发器(USART),串行外设接口(SPI)等。
时钟部分,主要为微处理器提供可靠的时钟源。微处理器有两种时钟源可以使用:内部高速时钟(HSI),外部高速时钟(HSE)。HIS主要由微处理器内部的RC振荡电路组成,精度不高且不稳定。故选择8MHz的贴片陶瓷晶振,为微处理器提供可靠的时钟源,匹配电容为两个封装为0603的20pF的电容,其作用是保证振荡频率在标称频率附近的误差范围内。
调试接口电路,只要是微处理器与J-LINK-OB相连接进行:实现代码流程追踪,查看寄存器和内存变量值,下载代码等功能。
SWD为串行数据通信,SWDIO数据的双向输入输出接口,SWCLK时序接口,为数据收发提供时钟脉冲,VCC为供电端口,5.0V供电,VSS共地端。
1.1.3USB转TTL-UART电路
由于个人电脑(PC)的USB接口使用是USB电平进行数据通信,微处理器的串口(USART1)使用的是TTL电平进行通信,PC同微处理器串口的通信需要进行电平转换。
电路中采用CH340G芯片,此芯片采用5.0V供电,使用12MHz贴片陶瓷晶振提供时钟源,匹配电容为20pF,为保证芯片电源稳定和芯片的可靠运行,USB的5.0V接入电源经过10uF和100nF的低频和高频滤波电容,滤除高低频率的纹波电压。
1.1.4按键电路
在按键电路中,主要由两种电路:复位按键和普通按键。
复位RST按键电路,主要是整个系统复位使用,按下后低电平有效,此电路也是程序下载后电路的自启动电路,程序下载后根据电容C12的充放电原理实现系统的重启。电路组成为10K的限流电阻,0.1uF的滤波及储能电容。
PA0和PA8是两路普通按键电路,接10K的下拉电阻,实现电平在默认状态下的可靠接地,按键按下后高电平有效,上升沿中断。
1.1.5LED指示灯电路
在电路中设计了两路LED,其作用是:指示程序运行状态,实现LED的PWM效果。
电路设计参数:LED一端接管脚PB0/PB1,一端通过1K的限流电阻接地。 限流电阻的作用是避免电流过大对微处理器的管脚造成损坏。
1.2水温传感器电路
DS18B20电路主要实现对DS18B20传感器数据的读取,通过单总线接口,使用单总线协议。
电路参数:数据管脚I/O通过一个4.7K的电阻接3.3V电压,实现管脚的硬件上拉,使管脚在默认状态可靠上拉到3.3V电平,保证数据传输的稳定性。VDD接核心板的VCC3.3,GND接核心板的GND,数据I/O接微处理器PB3端口。
2 恒温系统应用逻辑代码实现
在本章节中,我们主要实现对编程软件的介绍及应用逻辑代码的实现,对于应用层逻辑的代码编写我们采取:各个任务并行执行,代码功能化模块化,主函数调用各个功能子函数的方法。
2.1Keil-MDK5软件介绍
Keil-MDK5软件是源自德国的 KEIL公司,是RealView MDK 的简称。在全球MDK被超过10万的嵌入式开发工程师使用。是目前针对 ARM处理器,尤其是 Cortex M 内核处理器的最佳开发工具。使用KEIL软件进行开发的时候 ,其开发流程如下:
1.创建新的工程项目文件,选择开发板对应的目标单片机,配置使用的工具设置。
2.新建源程序代码文件,且保存文件,在编辑窗口中采用设计语言完成源代码的编辑。
3.用项目管理器生成设计者的应用。
4.修改源程序中的错误。
5.测试,连接应用。
MDK5 向后兼容 MDK4 和MDK3 等,以前的项目同样可以在 MDK5 上进行开发(但是头文件方面得全部自己添加),MDK5 同时加强了针对 Cortex -M 微控制器开发的支持,并且对传统的开发模式和界面进行升级,MDK5 由两个部分组成:MDK Core 和Software Packs。其中, Software Packs可以独立于工具链进行新芯片支持和中间库的升级。如图所示:
MDK5组成
在MDK5 安装完成后,要让 MDK5 支持STM32F103的开发,还要安装 STM32F103的器件支持包:Keil.STM32F1xx_DFP.2.1.0.pack(STM32F1系列的器件包)。
2.2 用户逻辑代码实现
本次章节内容,见附录中的代码实现。