基于STM32的智能篮球测温记分记时系统

基于STM32的智能篮球测温记分记时系统STM32课设_stm32f103r6单片机介绍

1、项目概述(20分)

1.1项目简介(5分)

进入21世纪,伴随着电子信息通信技术的应用与普及开发,人们对电子技术的要也越来越高。篮球作为一种体育运动进入了人们的生活。为对比赛进行规范化管理,研究一款篮球比赛测温计时计分系统很重要。
虽然篮球比赛中很早就开始研究应用了电子计分器,但通常都是利用模拟电子器件、数字电子器件或是模拟、数字混合组成的,其稳定性和高准确度计分仍存在一些问题。以STM32F103R6单片机为核心的篮球比赛测温计分器,计分准确,具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点。基于STM32的智能篮球比赛测温计时计分系统,就是为了解决这一问题。该系统可以测室温,进行赛程定时设置,及时刷新A、B双方的成绩,赛程时间暂停,报警结束比赛功能。
1.2系统功能需求分析(10分)
本项目使用了STM32F103R6单片机,整个设计为5部分,主控、矩阵键盘、显示、报警、温度模拟。综合应用了STM32中断系统、定时器、计数器、ADC模数转化等知识。
矩阵键盘功能包括“加一分”、“加二分”、“加三分”、“减一分”、“减二分”、“减三分”、“选A队”、选“B队”、“复位”、“启动/暂停”、“减一分钟”、“减二分钟”、“减三分钟”、“关闭蜂鸣器”等。当按下“A”后,选中A队,即可以进行A队的分数加或者减。若此时按下“1”,A队分数加1。当按下“B”后,选中B队,即可以进行B队的分数加或者减。若此时按下“3”,B队分数加3。当按下“*”时,比赛开始计时或者计时暂停。当按下“#”时,复位。当比赛时间为0时,会开启蜂鸣器和小灯,按下“0”时,关闭正在报警的蜂鸣器和小灯。
报警模块主要采用蜂鸣器和LED小灯组成的,当传入为低电平开启蜂鸣器并点亮LED小灯,当传入高电平关闭蜂鸣器和LED小灯。
显示模块通过液晶LCD1602来显示模拟的环境温度,对温度传感器进行温度修改,液晶显示器立即显示最新环境温度。延时一段时间,进入比赛界面,显示比赛节数,比赛剩余时间,两队比分。
温度模拟模块使用了DS18B20温度传感器,可以进行环境温度的加和减,并在液晶显示器上显示当前模拟温度。
系统功能:
1、LCD1602液晶显示器可以显示环境温度,一段时间后显示比赛剩余时间、球队分数。
2、默认比赛为4节,每节10分钟,在默认条件下可以进行比赛时间的修改(例如可以将一节比赛修改为5分钟)。
3、每一节比赛结束后,蜂鸣器会进行报警处理同时LED灯会亮。可以对时间进行暂停或者复位操作。
4、每一场比赛有A、B两只队伍,通过使用矩阵键盘,可以对两支队伍分别进行计分控制。按下A即为选择A队,再按1、2、3可进行对应分数的累计,若果不小心计分错误(如多加了分数),可按下4、5、6进行对应减1、2、3分数的控制。
1.3系统开发工具分析选择、使用方法(5分)
本项目主要应用keil5来编写代码,proteus设计仿真图,来模拟功能的实现。用矩阵键盘进行操作,包括进行比分的修改,时间的控制,蜂鸣器和LED小灯负责警报功能,LED液晶显示器负责显示,温度传感器负责模拟当前环境温度。

2、项目硬件系统设计(30分)

2.1、系统方案原理图(10分)

在这里插入图片描述

如图所示,使用的芯片为STM32F103R6,显示模块采用LCD1602液晶显示器,通过矩阵键盘的输入来控制比赛时间和分数,通过LCD液晶显示屏来显示。温度传感器可以模拟环境温度并在液晶显示器显示。PA0-PA7引脚接LCD162液晶显示器的D0-D7,PB8引脚接RS,PC13接RW,PB9接E。PC0-PC7引脚分别接连矩阵键盘,PC8引脚接蜂鸣器。PB4引脚连温度传感器DQ引脚。

Proteus仿真图:

在这里插入图片描述

2.2、STM32F10X原理介绍(5分)
1)内核架构–CM3内核架构:
在这里插入图片描述

STM32F103是一个ARM单片机,内嵌有一个Cortex-M3(简称CM3)处理器作为核心。
CM3的三条总线通过总线矩阵与STM32F103主要部件及外设相连。
STM32F103的架构包括CM3的内核架构和除内核以外的其他架构。
2)GPIO:(General Purpose Input Output,通用输入输出接口)是MCU与外部电路和设备连接的基本外设。也就是常说的端口或管脚。
GPIO8种工作方式,可由软件配置:
1、浮空输入:上下拉电阻断开,用于不确定高低电平的输入。(复位后处于此状态
2、上拉输入:上拉电阻接通,默认高电平输入。
3、下拉输入:下拉电阻接通,默认低电平输入。
4、模拟输入:施密特触发器截止,模拟量输入常用于AD转换
5、开漏输出:上部MOS管不工作,只能输出低电平,不能输出高电平。如果要输出高电平则需要外接上拉。用于实现电平转换和线与功能的输出。
6、推挽式输出:上下MOS管交替导通,用于较大功率驱动的输出。
7、推挽式复用输出功能:复用功能情况下的推挽输出。
8、开漏复用输出功能:复用功能情况下的开漏输出。
3)NVIC中断控制器:(Nested Vectored Interrupt Controller,NVIC)位于CM3内核,是中断系统硬件设施,用来管理和配置中断。
NVIV的功能:(硬件+控制寄存器组成)
1、管理中断源2、保存中断申请信号3、优先级判断中断嵌套4、屏蔽中断5、中断优先级设置
4)EXTI控制器:主要用来管理片外引脚中断和事件控制。
EXTI控制器是片上外设,可以管理 16路外部引脚中断 和 4路事件 的控制, 共20 路输入。
EXTI –外部中断/事件线路映像:
80个通用I/O端口:均可做外部中断或事件输入线,连接到16个外部中断/事件线上。使用时,须设置AFIO功能,并使能其时钟。(可以是中断也可以是事件)
四个专用的线: 1、EXTI线16连接到PVD输出(中断)。 2、EXTI线17连接到RTC闹钟事件。 3、EXTI线18连接到USB唤醒事件。 4、EXTI线19连接到以太网唤醒事件
注释:PVD(可编程电压监控器),可管理上电复位和掉电中断。
5)ADC模数转化:ADC 的转换分为 2 个通道组:规则通道组和注入通道组。规则通道相当于你正常运行的程序,而注入通道呢,就相当于中断。注入通道的转换可以打断规则通道的转换, 在注入通道被转换完成之后,规则通道才得以继续转换。 ADC 的规则规则通道组最多包含 16 个转换,而注入通道组最多包含 4 个通道。
规则通道组:规则通道和它的转换顺序在ADC_SQRx寄存器中选择,规则组转换的总数应写入ADC_SQR1寄存器的L[3:0]中。
注入通道组:注入组和它的转换顺序在ADC_JSQR寄存器中选择,注入组里转化的总数应写入ADC_JSQR寄存器的L[1:0]中。
2.3 矩阵键盘模块原理
按键由一组独立按键构成,由于弹性按键结构简单,价格较低,故选用弹性按键。同时,每个按键单独连接芯片的对应引脚,简化了电路的设计。本设计共有16个独立的弹性小键来控制分数的加减、计时的开始与结束等操作。均与相对应的GPIO口直接相连,所有GPIO口设置为上拉输入电平触发方式。一旦小键按下,相应的引脚与地接通成低电平,当程序进入按键查询时为低电平,表示键被按下,按键弹起后为高电平。
在这里插入图片描述

2.4 LCD1602液晶显示器模块原理
液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。所以要有忙等待。

引脚说明:
第1脚:VSS为地电源。
第2脚:VDD接5V正电源。
第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平
R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
第15脚:背光源正极。
第16脚:背光源负极。
本项目中需要LCD1602液晶显示器进行倒计时显示,还需要显示A、B两队分数。LCD162液晶显示器的D0-D7分别接STM32F103R6的PA0-PA7引脚,RS接PB8引脚,RW接PC13。
2.5 蜂鸣器模块原理
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。本系统利用蜂鸣器进行提示,当每一小节比赛计时结束后,即时间=0,(设置为低电平)蜂鸣器进行报警处理,按下“0”键之后,才可以关闭蜂鸣器。

2.6 LED灯模块原理
系统设有一个LED小灯,正极接电源。当系统查询到比赛直接截止时,立刻使STM32相应GPIO口为低电平,点亮相应小灯。系统保持LED灯的状态直到按下复位键,此时灯灭。

2.7 温度传感器模块原理
系统设有一个DS18B20温度传感器,主要用于模拟当前环境温度,并在液晶显示器上显示当前模拟温度。DS18B20适应电压范围宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条线即可实现微处理器与DS18B20的双向通讯DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内测温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度快测量结果直接输出数字温度信号。

2.8 系统定时器控制部件设计
定时控制部件是在规定的时刻发出各种操作所需的全部内部和外部控制信号,使各功能元件协调工作,完成指令所规定的功能。主要任务是产生一个工作时序,其工作需要时钟电路提供一个工作频率,外接时钟源可构成时钟电路。单片机的生产工艺不同,时钟的产生方式也不同有内部和外部时钟产生两种时钟方式,本系统采用的是内部时钟产生方式,输入输出两端跨接晶体或陶瓷谐振器,于内部反向器构成稳定的自激振荡器。其发出的脉冲直接送入片内的定时控制部件。

3、系统软件体系设计(30分)

3.1项目软件系统总架构图(10分)
本项目主要子模块为定时器中断模块,矩阵键盘模块,显示模块,警报检测模块,温度传感器AD转化模块
总流程图:

3.2 定时器中断模块
定时器采用内中断模式,实现步骤为:
1、定时器时钟
RCC_APB1PeriphClockCmd();
2、初始化定时器,配置ARR,PSC。
TIM_TimeBaseInit();
3、开启定时器中断,配置NVIC
Void TIM_ITCongfig(); NVIC _Init();
4、使能定时器。TIM_Cmd();
5、编写中断函数

static void GENERAL_TIM2_Mode_Config(void)
{

// 开启定时器时钟,即内部时钟CK_INT=8M
GENERAL_TIM2_APBxClock_FUN(GENERAL_TIM2_CLK,ENABLE);
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
// 开启定时器时钟,即内部时钟CK_INT=8M
GENERAL_TIM2_APBxClock_FUN(GENERAL_TIM2_CLK, ENABLE);
// 自动重装载寄存器的值,累计TIM_Period+1个频率后产生一个更新或者中断
#ifdef SIMULATION
TIM_TimeBaseStructure.TIM_Period = GENERAL_TIM2_Period + 1;
#else
TIM_TimeBaseStructure.TIM_Period = GENERAL_TIM2_Period;
#endif
// 时钟预分频数
TIM_TimeBaseStructure.TIM_Prescaler = GENERAL_TIM2_Prescaler;
// 时钟分频因子 ,没用到不用管
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
// 计数器计数模式,设置为向上计数
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
// 重复计数器的值,没用到不用管
TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
// 初始化定时器
TIM_TimeBaseInit(GENERAL_TIM2, &TIM_TimeBaseStructure);
// 清除计数器中断标志位
TIM_ClearFlag(GENERAL_TIM2, TIM_FLAG_Update);
// 开启计数器中断
TIM_ITConfig(GENERAL_TIM2, TIM_IT_Update, ENABLE);
// 使能计数器
TIM_Cmd(GENERAL_TIM2, DISABLE);
}
static void GENERAL_TIM3_NVIC_Config(void)
{

NVIC_Init

今天的文章基于STM32的智能篮球测温记分记时系统分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/63216.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注