当前位置: 首页 > article >正文

蓝桥杯单片机组——榨干选手资源包(STC)

文章目录前言巧用STCSTC生成定时器STC配置定时器定时器中断定时器定时器中断STC获取数码管码表STC上升沿下降沿检测其他总结目录前言笔者参加的是第十一届蓝桥杯的单片机组当时由于疫情比赛一直推迟推到最后还和电赛测评弄到了同一天可以说相当刺激了弄完蓝桥出来接着就是电赛测评好在最后结果还比较让人满意虽然没有国奖但笔者自己觉得已经满足了。此系列主要是分享部分参赛经验没有到国奖的水平就提供一些省赛的基础技巧了此篇主要是介绍STC的一些使用技巧。巧用STC其实蓝桥杯的门槛和难度在电子类竞赛中算是比较好拿奖的只要运用好工具需要自己记住的代码量是比较少的用好STC会大大需要记忆的代码量。STC生成定时器首先是软件延时函数打开STC后在上方工具栏找到软件延时计算器然后按照一下步骤配置一下即可1.选择系统频率IAP15是内部晶振频率为12M2.选择所需的延时时间;3.选择8051指令集IAP15对应STC-Y54.生成代码然后复制粘贴到自己的代码即可。STC配置定时器定时器中断定时器定时器是每届必考的要记住整个配置过程也不难步骤如下1.选择定时器时钟AUXR寄存器2.配置定时器模式TMOD寄存器3.高低八位的的初始值赋值TLn和THn4.清除溢出标志位TFn5.开启计时(TRn);6.判断TF有没有溢出溢出表示定时时间到如果需要重复计时就需要清除溢出标志并对高低八位重新赋值。但是为了节约时间和降低错误率建议大家还是采用STC直接生成步骤如下根据自己需求配置即可这里一般是会配置一个1ms的定时器这样方便后面做标志。定时器中断整个开发过程很少纯粹的使用定时器来进行计时更多的是和中断结合起来使得程序能够运行的更合理。定时器中断的配置只是在定时器配置的基础上再多配制两个寄存器即可步骤如下1.选择定时器时钟AUXR寄存器2.配置定时器模式TMOD寄存器3.高低八位的的初始值赋值TLn和THn4.清除溢出标志位TFn5.开启计时(TRn);6.使能定时中断ETn;7.使能总中断EA一钟二模三赋值四清五开使六七然后编写对应的中断服务函数即可。也就是说初始化的配置过程中只需要添加两个寄存器的配置即可。例如配置定时器0的中断//初始化函数 void Timer_Init(void) { AUXR | 0x80; TMOD 0xF0; TL0 0xCD; TH0 0xD4; TF0 0; TR0 1; ET0 1; EA1; } //中断服务函数 void timer0() interrupt 1 using 1 { //1ms进一次中断。 }上述代码估计有同学会问为什么中断服务函数为啥没有重新装载值这是因为在上面定时器配置模式的时候已经开启了自动重装载。切记中断服务函数需要注意中断号对应不然就麻烦了。当然如果你临场紧张了一下子忘记了中断服务函数该咋写不急还有保命方案。STC是没有直接配置定时器中断的工具的但是他有示例里面就有很多可以参考的例子。按照下图操作即可找到。这个代码可能看起来有一堆复杂的寄存器没见过最好的办法就是对他们视而不见直接找自己认识的有映像的例如上面这个例子中就可以提取出这些有用的东西/*----------------------------------------------------------------- /* --- STC15F4K60S4 系列 定时器0的16位自动重装载模式举例---------------*//* 如果要在程序中使用此代码,请在程序中注明使用了STC的资料及程序 *//* 如果要在文章中应用此代码,请在文章中注明使用了STC的资料及程序 *//*---------------------------------------------------------------------*///本示例在Keil开发环境下请选择Intel的8058芯片型号进行编译//若无特别说明,工作频率一般为11.0592MHz#includereg51.htypedef unsigned charBYTE;typedef unsigned intWORD;//-----------------------------------------------#defineFOSC11059200L #defineT1MS(65536-FOSC/1000)//1T模式sfrAUXR0x8e;//Auxiliary registersbitP10P1^0;//-----------------------------------------------/* Timer0 interrupt routine */voidtm0_isr()interrupt1{P10!P10;//将测试口取反}//-----------------------------------------------/* main program */voidmain(){AUXR|0x80;//定时器0为1T模式// AUXR 0x7f; //定时器0为12T模式TMOD0x00;//设置定时器为模式0(16位自动重装载)TL0T1MS;//初始化计时值TH0T1MS8;TR01;//定时器0开始计时ET01;//使能定时器0中断EA1;while(1);}这不代码框架直接就有了吗实测是可以用的大家可以自己试试看看哟没有bug。所以利用好STC可以省去很多麻烦。友情提示在配置好定时框架后一定务必要写一个测试函数比如闪灯来检查一下自己的框架有没有问题。整个比赛过程中一定要阶段性的编译检查和验证功能不要托大一次写好多东西再去检查。STC获取数码管码表数码管的码表想必也是不少人的一个难题还在自己根据这个推测或者硬记那就慢了。快速使用小妙招按下图操作在示例中找到任意一个右数码管的例程。往下滑就可以看见了一个标准字库直接CV解决问题。但是需要注意一点这里的是共阴码表比赛平台是供阳码所以在显示的时候需要做一个小小的处理赋值时注意取个反就行了STC上升沿下降沿检测类似第十届省赛的频率计说白了还是记录单位时间的上升或者下降沿的个数然后计算出频率。这个可以用外部中断的方式可能不是很熟悉整个中断体系的同学遇到这种会有些麻但是请不要放弃记住STC是个好东西。继续来到示例找到里面的还是认识的就需要不认识的就直接忽略。就可以得到这样一个代码voidTimer0Init(void){AUXR0x80;//定时器0为1T模式TMOD0x04;//设置定时器0为16位自动重装载外部记数模式TH0TL00xff;//设置定时器0初始值TR01;//定时器0开始工作ET01;//开定时器0中断EA1;}//中断服务程序voidt0int()interrupt1//中断入口{P10!P10;//将测试口取反}这样就有了一个下降沿中断了只需要在给一个准确的时间段记录下降沿个数然后二者相比就可以得到频率了。其他STC的示例代码中有很多例子IIC、SPI、数码管甚至矩阵键盘这些都是有的不一定能够直接拿来就用但逻辑大致相同有时间还是可以多看看和移植了试一试。总结蓝桥杯比赛时间是五个小时希望此文能够节约大家代码框架搭建的时间还有差不多一个月就比赛了安安心心多练拿到国赛门票是不难的笔者在此祝看到此文的学弟学妹都能取得让自己满意的成绩。此文如有不妥之处欢迎批评指正。目录蓝桥杯单片机组——榨干选手资源包(STC)蓝桥杯单片机组——榨干选手资源包芯片数据手册蓝桥杯单片机组——程序框架及客观题蓝桥杯CT107D单片机组第四至第九届省赛完整过程代码

相关文章:

蓝桥杯单片机组——榨干选手资源包(STC)

文章目录前言巧用STCSTC生成定时器STC配置定时器(定时器中断)定时器定时器中断STC获取数码管码表STC上升沿下降沿检测其他总结目录前言 笔者参加的是第十一届蓝桥杯的单片机组,当时由于疫情,比赛一直推迟,推到最后还和…...

TF-IDF BM25 原理及应用

1. 什么是TF-IDFTF-IDF(Term Frequency-Inverse Document Frequency, 词频-逆文档频率),是一种用于资讯检索与资讯探勘的常用加权技术。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在…...

树莓派4B学习笔记——IO通信篇(UART)

文章目录UART简介树莓派使用UART与串口屏通信串口屏简介硬件连接配置串口接口树莓派打开UART接口树莓派安装串口调试助手编程实现wiringSerial.h Serial简介C语言实现树莓派UART与串口屏通信总结树莓派4B入门学习笔记汇总UART简介 UART是一种通用串行数据总线,用于…...

树莓派4B学习笔记——IO通信篇(1-Wire)

文章目录单总线协议简介树莓派4BDHT11(1-Wire协议)DHT11简介接口定义数据格式通信流程硬件连接开启树莓派1-Wire接口编程实现利用单总线与DS18B20通信获取温度总结树莓派4B入门学习笔记汇总单总线协议简介 1-wire 单总线是Maxim 全资子公司Dallas 的一项…...

树莓派4B学习笔记——IO通信篇(SPI)

文章目录SPI协议简介树莓派4B1.3寸OLED(SPI协议)1.3寸OLED简介接线图开启树莓派SPI接口wiringPiSPI库简介C语言实现(汉字、字符、数字、图片显示)Python实现总结树莓派4B入门学习笔记汇总SPI协议简介 SPI(Serial Peripheral inte…...

FastAPI单元测试实战:别等上线被喷才后悔,TestClient用对了真香!找

正文 异步/等待解决了什么问题? 在传统同步I/O操作中(如文件读取或Web API调用),调用线程会被阻塞直到操作完成。这在UI应用中会导致界面冻结,在服务器应用中则造成线程资源的浪费。async/await通过非阻塞的异步操作解…...

gopher-os社区贡献指南:从代码提交到功能开发的完整参与流程

gopher-os社区贡献指南:从代码提交到功能开发的完整参与流程 【免费下载链接】gopher-os A proof of concept OS kernel written in Go 项目地址: https://gitcode.com/gh_mirrors/go/gopher-os gopher-os是一个用Go语言编写的操作系统内核概念验证项目&…...

JavaScript中骨架屏Skeleton在异步数据加载中应用

骨架屏的核心作用是提升用户感知性能——用模拟真实内容布局的视觉占位符替代空白等待,降低加载焦虑;它比loading图标更能建立界面认知,需通过请求前插入、请求后替换实现,并注重结构准确、动画克制与切换干净。骨架屏&#xff08…...

如何快速安装Hollow Knight模组:Scarab模组管理器的完整指南

如何快速安装Hollow Knight模组:Scarab模组管理器的完整指南 【免费下载链接】Scarab An installer for Hollow Knight mods written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/sc/Scarab 厌倦了手动下载和安装Hollow Knight模组的繁琐过程&am…...

MapAnything损失函数深度剖析:如何设计多任务学习框架

MapAnything损失函数深度剖析:如何设计多任务学习框架 【免费下载链接】map-anything MapAnything: Universal Feed-Forward Metric 3D Reconstruction 项目地址: https://gitcode.com/gh_mirrors/map/map-anything MapAnything作为一款先进的通用前馈度量3D…...

YOLOv12部署实战:ONNX、TensorRT、OpenVINO三大引擎对比

YOLOv12部署实战:ONNX、TensorRT、OpenVINO三大引擎对比 【免费下载链接】yolov12 [NeurIPS 2025] YOLOv12: Attention-Centric Real-Time Object Detectors 项目地址: https://gitcode.com/gh_mirrors/yo/yolov12 YOLOv12作为NeurIPS 2025最新推出的注意力中…...

英伟达 Blackwell Ultra 正式量产:20 PFLOPS 单机柜算力

前言4月7日,英伟达正式宣布 Blackwell Ultra(GB300)量产出货。这条消息在技术圈炸开的速度,比很多人预期的快。简单说数字:单机柜 FP8 算力 20 PFLOPS,比 H100 提升约 8 倍,能效比提升 5 倍。这…...

Amber与Kemal框架深度对比:为什么选择Amber开发企业级应用

Amber与Kemal框架深度对比:为什么选择Amber开发企业级应用 【免费下载链接】amber A Crystal web framework that makes building applications fast, simple, and enjoyable. Get started with quick prototyping, less bugs, and blazing fast performance. 项目…...

5分钟完成开源工具FanControl本地化界面设置:效率提升指南

5分钟完成开源工具FanControl本地化界面设置:效率提升指南 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trendin…...

如何使用R语言制作词云

词云是一种常见的文本数据可视化的方法,词云分析的工作有多种,其中使用R语言中的wordcloud包中的wordcloud2函数可以很方便地制作词云。 关于wordcold2函数的用法不再赘述,查以使用help(wordcloud2)查看有关帮助,其中的参数是不难…...

Tsung动态变量高级用法:从数据提取到循环测试的完整教程

Tsung动态变量高级用法:从数据提取到循环测试的完整教程 【免费下载链接】tsung Tsung is a high-performance benchmark framework for various protocols including HTTP, XMPP, LDAP, etc. 项目地址: https://gitcode.com/gh_mirrors/ts/tsung Tsung是一款…...

Papa Parse CSV解析完全指南:从问题诊断到性能优化的4个实战方案

Papa Parse CSV解析完全指南:从问题诊断到性能优化的4个实战方案 【免费下载链接】PapaParse Fast and powerful CSV (delimited text) parser that gracefully handles large files and malformed input 项目地址: https://gitcode.com/gh_mirrors/pa/PapaParse …...

CV算法工程师成长指南:10个必备技能助你快速入门计算机视觉

CV算法工程师成长指南:10个必备技能助你快速入门计算机视觉 【免费下载链接】cv_note 记录cv算法工程师的成长之路,分享计算机视觉和模型压缩部署技术栈笔记。https://harleyszhang.github.io/cv_note/ 项目地址: https://gitcode.com/gh_mirrors/cv/c…...

Outlook一直卡在“正在加载配置文件”怎么办?一篇文章教你快速修复

🔥个人主页:杨利杰YJlio❄️个人专栏:《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》 《Python》 《Kali Linux》《那些年未解决的Windows疑难杂症》🌟 让复杂的事情更…...

如何快速掌握gh_mirrors/sc/screencasts中的D3.js数据可视化

如何快速掌握gh_mirrors/sc/screencasts中的D3.js数据可视化 【免费下载链接】screencasts Code that goes along with my screencasts. 项目地址: https://gitcode.com/gh_mirrors/sc/screencasts gh_mirrors/sc/screencasts是一个包含丰富D3.js教程和实例代码的项目&a…...

Windows本地开发环境连接云端RWKV7-1.5B-G1A模型服务指南

Windows本地开发环境连接云端RWKV7-1.5B-G1A模型服务指南 1. 前言:为什么需要本地连接云端模型 对于Windows开发者来说,直接在本地运行大模型往往面临硬件资源不足的问题。RWKV7-1.5B-G1A作为一款性能优异的中等规模语言模型,在云端GPU服务…...

终极指南:如何用虎符台轻松管理全面战争MOD,告别游戏崩溃烦恼

终极指南:如何用虎符台轻松管理全面战争MOD,告别游戏崩溃烦恼 【免费下载链接】legion-seal 虎符台/Legion Seal,全面战争游戏MOD管理器,技术栈:Tauri 2 Vue TailwindCSS 项目地址: https://gitcode.com/zeyl/legi…...

Inspektor Gadget开发者指南:从零构建你的第一个eBPF监控工具

Inspektor Gadget开发者指南:从零构建你的第一个eBPF监控工具 【免费下载链接】inspektor-gadget Inspektor Gadget is a set of tools and framework for data collection and system inspection on Kubernetes clusters and Linux hosts using eBPF 项目地址: h…...

YOLOE官版镜像快速部署指南:5分钟搞定开放词汇目标检测环境

YOLOE官版镜像快速部署指南:5分钟搞定开放词汇目标检测环境 1. 引言:为什么选择YOLOE官版镜像 在计算机视觉领域,目标检测技术已经发展得相当成熟。然而,传统模型如YOLOv5/v8存在一个明显局限——它们只能识别训练时见过的固定类…...

集成AI 的 Redis 客户端 Rudist发布新版了诒

Qt是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本笔记将重点介绍QSpinBox数值微调组件的常用方法及灵活应用。…...

模型和算法篇(二)监督学习分类问题

分类问题算法...

08_Doris 全文搜索进阶:BM25 算法与 SEARCH 函数详解

08_Doris 全文搜索进阶:BM25 算法与 SEARCH 函数详解 关键字: Apache Doris、BM25算法、全文检索、SEARCH函数、倒排索引、自定义分词器、拼音检索、中文分词、相关性评分、score()函数 标签: Apache Doris 全文搜索 BM25 倒排索引 中文分词…...

无线水位远程监测系统简介

无线水位远程监测系统是一种利用无线通信技术实现水位数据实时采集、传输和监控的解决方案,广泛应用于河流、水库、水塔、地下水等场景。一、国科WD300无线水位远程监测系统概述WD300系列无线水位远程监测系统,是用来测量水电站大坝、水库、前池、调压井…...

在科技革新与政策红利的双重驱动下,低空经济正成为全球城市发展的新引擎。随着城市空中交通(UAM)场景的快速落地,气象预测技术作为核心支撑,其重要性日益凸显。

一、低空经济的气象挑战与技术突破低空经济依托 1000 米以下空域构建立体交通网络,涵盖物流配送、应急救援、城市通勤等多元场景。然而,该空域受边界层湍流、强对流、风切变等复杂气象条件影响显著,对气象服务的时空分辨率和响应速度提出严苛…...

如何3步快速检测微信单向好友:免费开源工具完整教程

如何3步快速检测微信单向好友:免费开源工具完整教程 【免费下载链接】WechatRealFriends 微信好友关系一键检测,基于微信ipad协议,看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRealFriends …...