【蓝桥杯单片机】十五届省赛考前模块复习

2024-04-13 04:20

本文主要是介绍【蓝桥杯单片机】十五届省赛考前模块复习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

蓝桥杯单片机考前模块复习


⭐蓝桥杯-电子赛-省赛-单片机-程序题 系列文章链接⭐
【蓝桥杯单片机】十四届省赛“重难点”解析(附源码)
【蓝桥杯单片机】十三届省赛“重难点”解析(附源码)
【蓝桥杯单片机】十二届省赛“重难点”解析(附源码)
【蓝桥杯单片机】十一届省赛“重难点”解析(附源码)


  • 未打开Keil的前提下,在STC-ISP中添加单片机型号的头文件
  • 烧录工具中选好板子类型(IAP15F2K61S2)、内部时钟选择12MHz
  • 新建文件夹、新建工程文件后,统一命名为准考证号,这样输出的HEX文件自动命名为准考证号【一定一定要按要求重命名,否则会计0分】
  • 选择好板子型号、勾选输出HEX文件、单击右键引入头文件
  • 注释出现乱码,缩进不舒服,都可以在configuration中修改设置(Chinese GB2312 Simplified)
  • C51变量不能定义在函数中间,必须定义在开头
  • 如果考试中实在装不好STC15F2K60S2.H头文件,不必慌张,用reg52.h也是可以的,只需自己添加两个定义【sfr P4 = 0xc0; 和 sfr AUXR = 0x8e;】
  • 每次定义变量时,要考虑好其数据类型

用注释分配好功能块,再一块一块地进行补充


  • 数码管段码值(官方竞赛资源包中已给出无小数点的段码,计算带小数点的只需要将h位改为0即可)
  • 写锁存器选择、数码管显示(位选、段选)、系统初始化、main主函数
    • 锁存器:通道、数据
    • 数码管显示相关函数:数码管专用延时函数、单个数码管动态显示函数、全部数码管静态控制函数
    • 系统初始化:LED全灭、数码管全灭、关闭蜂鸣器和继电器(看题目要求)
    • 主函数:系统初始化、while(1){…}
  • 数码管显示界面函数
    • 数码管显示switch(stat_smg) {case:…break;}
    • 每一个break之前要调用一次关闭全部数码管,为消影
  • 数码管显示界面函数在main.c文件开头的声明
  • 按键函数:管脚定义、按键专用延时函数
    • 独立按键(判断是否接通GND):写好管脚定义sbit、(S4.5.6.7)
    • 矩阵按键(判断I/O口是否给0):写好管脚定义sbit、R、C(P34处与NE555会有冲突,一般题目同时考察时会选择没有冲突的4x4键盘)
    • 延时消抖、检测松手
    • 界面切换 switch(stat_smg)

补充好基本框架后,把数码管显示函数界面丢进while中测试


  • 根据题目要求,添加相关底层驱动代码补充
  • 写好底层驱动代码的头文件并引用到main文件中

  • 中断函数(烧录软件生成 12T)

    • 中断初始化函数(在系统初始化中调用)
      • 定时器中断:添加中断允许(ET、EA)
      • 计数器(NE555) :新版的STC可以生成0ms定时器做计数器使用;如果不能生成0ms,则可以选择生成1ms定时器,并添加TMOD |= 0X05、将TH和TL赋值为0
    • 中断服务函数(interrupt 中断号)
  • DS18B20(onewire.h)

    • 读取初始化,在第一次转换温度后延时750ms(软件生成),等待转换完成,避免上电后读取温度默认值85
    • 获取温度后的处理,先乘以0.0625的分辨率,再将温度结果根据需要的小数点后位数乘以相应倍数
  • DS1302(ds1302.h)

    • 声明号写地址、读地址、时间初始数组(忘记具体数值的话可以看芯片手册)
    • 写入时间函数:用for循环写入,注意取消和添加“写保护”
    • 读取时间函数:用for循环读取
  • NE555频率测量(使用两个定时器)

    • 定时器0(计数器0) 用来计数脉冲个数
    • 定时器1 用来计时1s
    • 在达到1s时获取脉冲个数,即频率值
  • AD/DA 模数/数模转换(iic.h)

    • ADC 输出数字量(传入“控制字节,数据”)
      • 往PCF8951写设备【地址0x90】,写入控制字节【0x01光敏控制、0x03电位器控制】;从PCF8951读设备【地址0x91】,不需要再读了产生非应答,读取数字量暂存在变量tmp中
      • 一般按照题目要求,获取的数字量需要乘以分辨率才能正确地显示在数码管上(0~5V):tmp * (5 .0 / 255) * 100
    • DAC 输出模拟量(传入“数据”)
      • 往PCF8951写设备【地址0x90】,写入控制字节【0x43】,再写入数字量【dat】,在输出模拟量的地方调用,需要用万用表测量DAC结果
  • AT24C02掉电存储(iic.h)

    • 24C02写入(传入“地址、数据”)
      • 往AT24C02写设备【地址0xa0】,写入要存储的数据的寄存的地址【addr】,再写入要存储的数据值【dat】,在要存储数据的地方调用
    • 24C02读取(传入“地址”)
      • 往AT24C02写设备【地址0xa0】,写入要存储的数据的寄存的地址【addr】;从AT24C02读设备【地址0xa1】,不需要再读了产生非应答,读取的数据暂存在变量tmp中

LED与蜂鸣器、继电器等,在配置好后都需要调用一次锁存器函数,保证其不会与数码管冲突


  • led与和或
    • X与0 = 0
    • X与1 = X
    • X或0 = X
    • X或1 = 1
    • 在共阳数码管中(0亮、1灭):
      • X与0 同时 需要点亮位 与1 可以 “点亮”指定LED
      • X或0 同时 需要熄灭位 或1 可以 “熄灭”指定LED

这篇关于【蓝桥杯单片机】十五届省赛考前模块复习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/899130

相关文章

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

Jenkins构建Maven聚合工程,指定构建子模块

一、设置单独编译构建子模块 配置: 1、Root POM指向父pom.xml 2、Goals and options指定构建模块的参数: mvn -pl project1/project1-son -am clean package 单独构建project1-son项目以及它所依赖的其它项目。 说明: mvn clean package -pl 父级模块名/子模块名 -am参数

寻迹模块TCRT5000的应用原理和功能实现(基于STM32)

目录 概述 1 认识TCRT5000 1.1 模块介绍 1.2 电气特性 2 系统应用 2.1 系统架构 2.2 STM32Cube创建工程 3 功能实现 3.1 代码实现 3.2 源代码文件 4 功能测试 4.1 检测黑线状态 4.2 未检测黑线状态 概述 本文主要介绍TCRT5000模块的使用原理,包括该模块的硬件实现方式,电路实现原理,还使用STM32类

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订

【408数据结构】散列 (哈希)知识点集合复习考点题目

苏泽  “弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家    知识点 1. 散列查找 散列查找是一种高效的查找方法,它通过散列函数将关键字映射到数组的一个位置,从而实现快速查找。这种方法的时间复杂度平均为(

C语言蓝桥杯

一、语言基础 竞赛常用库函数 最值查询 min_element和max_element在vector(迭代器的使用) nth_element函数的使用 例题lanqiao OJ 497成绩分析 第一种用min_element和max_element函数的写法 第二种用min和max的写法 二分查找 二分查找只能对数组操作 binary_s

python内置模块datetime.time类详细介绍

​​​​​​​Python的datetime模块是一个强大的日期和时间处理库,它提供了多个类来处理日期和时间。主要包括几个功能类datetime.date、datetime.time、datetime.datetime、datetime.timedelta,datetime.timezone等。 ----------动动小手,非常感谢各位的点赞收藏和关注。----------- 使用datet

C8T6超绝模块--EXTI

C8T6超绝模块–EXTI 大纲 控制流程结构体分析EXTI实现按键 具体案例 控制流程 这里是流程框图,具体可以去看我STM32专栏的EXTI的具体分析 结构体分析 typedef struct {uint32_t EXTI_Line; // 中断/事件线EXTIMode_TypeDef EXTI_Mode; // EXTI 模式EXTITrigger_TypeDef EXTI_