来源于本人的课程设计,希望对大家有帮助:
一、设计题目与要求
1.1设计题目
简易密码锁
1.2设计要求
自制一个单片机最小系统,包括串口下载、复位电路,设计4*4键盘接口电路,由按键进行密码设置及开锁操作,操作过程中,设置密码时数码管明文显示,开锁时,采用非明文实现,密码正确,开锁指示灯点亮,密码错误则报警,并显示错误提示信息。
二、系统方案设计
2.1功能分析
本次单片机课程设计要求设计一个简易密码锁。
主要实现功能分为四个部分,分别是:
1)自制一个包括串口下载、复位电路,设计4*4键盘接口电路的单片机最小系统;
2)由按键进行密码设置及开锁操作;
3)操作过程中,设置密码时数码管明文显示;
4)开锁时,采用非明文实现,密码正确,开锁指示灯点亮,密码错误则报警,并显示错误提示信息。
2.2硬件选型及说明
2.2.1单片机选择
本次单片机课程设计选择的单片机为 STM32F103c8t6 单片机。
1.STM32F103C8T6是一款由意法半导体公司(ST)推出的基于Cortex-M3内核的32位微控制器,硬件采用LQFP48封装,属于ST公司微控制器中的STM32系列。除了被我们熟知的STM32,ST公司还有SPC5X系列、STM8系列等,具体参数如下:
内核: Cortex-M3
Flash: 64K x 8bit
SRAM: 20K x 8bit
GPIO: 37个GPIO,分别为PA0-PA15、PB0-PB15、PC13-PC15、PD0-PD1
ADC: 2个12bit ADC合计12路通道,外部通道:PA0到PA7+PB0到PB1,
内部通道:温度传感器通道ADC_Channel_16和内部参考电压通道ADC_Channel_17
Timers: 4个16bit定时器/计数器,分别为TIM1、TIM2、TIM3、TIM4。 TM1带死区插入,常用于产生PWM控制电机2个看门狗定时器(独立看门狗IWDG、窗口看门狗WWDG)。1个24bit向下计数的滴答定时器systick
工作电压、温度: 2V~3.6V、-40°C ~ 85°C
通信串口: 2*IIC,2*SPI,3*USART,1*CAN
系统时钟: 内部8MHz时钟HSI最高可倍频到64MHz,外部8MHz时钟HSE最高可倍频到72MHz。
2.STM32F103C8T6的GPIO有8种模式,其中包含上拉、下拉输入模式,所以外接按钮时可不设计上下拉电阻。根据他的原理图显示:按键KEY0一端接到3.3V的VCC,一端接到PA0引脚。发光二极管LED0一端也同样经1KΩ电阻接到3.3V的VCC,另一端则接到PC13上。因此,想要让二极管发光的话需要让PC13输出低电平。STM32最大工作电压3.6V,使用了LDO(低压差线性稳压器)将输入电压VIN降到3.3v给微控制器供电。3.3V和GND之间的4个0.1uf的旁路电容(去除高频交流信号)接到了芯片的4个VDD和4个VSS上。
3. 根据命名规则可知,STM32F103C8T6中的C代表着这款芯片有48个引脚,其引脚排布如下图所示:
官方手册提供的STM32F103系列微控制器引脚的默认功能如下图所示:
5. STM32单片机支持3种程序下载方式,根据原理不同可分为ISP串口下载(使用USB-TTL接PA9、PA10)、SWD下载(使用ST-LINK接PA13、PA14)、JTAG下载(使用JLINK接PA13、PA14、PA15、PB3、PB4)。
1)ISP下载:
ISP的全程是In-System Programming,在线系统编程的意思。STM32单片机一般可通过UART1引脚进行程序烧录,烧录的时候需要配合BOOT0、BOOT1接地与否来实现。BOOT0、BOOT1可以组合出四种状态,不同位置的含义如下图所示,其中X是无关项。
使用ISP串口下载前,将单片机上电之前需要先用跳线帽把BOOT0短接到1的位置,BOOT1短接到0的位置,即系统存储器模式,然后才能通过串口下载程序。ISP串口下载完成后断电,在单片机上电之前需要先用跳线帽把BOOT0短接到0的位置,即主闪存存储器模式。
由于单片机使用的TTL电平通信协议,与电脑的USB口进行串口通信时需要使用转串口芯片,常见的有CH340系列(如CH340N)、FT232、PL2303等等,下图以CH340T为例。
下载器GND与单片机GND相连(连一个就行),下载器3.3V与单片机3.3V相连(或者下载器5V与单片机VIN相连)、下载器RXD与单片机PA9(U1TX)相连,下载器TXD与单片机PA10(U1RX)相连。
2)SWD下载:
使用SWD接口下载只需要连接3.3V(如果烧录程序的板子自带供电的话3.3V