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

蓝桥杯单片机第12届省赛2满分(西风)

1注意S7长短按键冲突问题

if(key_down==7)//判断是否按下 { fs7=1;//开始计时 t1000ms_1=0; } if(key_up==7)//判断是否抬起 { if(t1000ms_1>1000)//长按键 { fled^=1; } else//短按键 { f_bao=freq; } t1000ms_1=0; fs7=0;//停止计时 }

2获取频率

void Timer0_Init(void) //100微秒@12.000MHz { AUXR &= 0x7F; //定时器时钟12T模式 TMOD &= 0xF0; //设置定时器模式 TMOD |=0X05; TL0 = 0x00; //设置定时初始值 TH0 = 0x00; //设置定时初始值 TF0 = 0; //清除TF0标志 TR0 = 1; //定时器0开始计时 } if(++t1000ms==1000) { t1000ms=0; TR0=0;//关闭定时器1 freq= (TH0<<8)|TL0; TH0=0X00; TL0=0X00; TR0=1; } if(fs7==1) { if(t1000ms_1<2000)//防止溢出 { t1000ms_1++; } }

3ad通道转换问题

当切换通道时(比如从 0x43 切到 0x41),读到的第一个字节,
其实是上一次转换的结果! 如果紧接着连续读 0x41 和 0x43,
数据会发生“串位”,通道1读到了通道3的数据,通道3读到了通道1的数据,
会导致电压判定完全混乱!

void ad_proc() { if(ad_slow_down<70)return; ad_slow_down=0; if(f_adc == 0) { // 第一次进来:先空读一次废数据(切换通道必做),再读真实数据 ad_zhuanhuan(0x41); v_zhen_1 = ad_zhuanhuan(0x41) / 51.0; //读真实数据 f_adc = 1; // 下次去读通道3 } else { // 第二次进来:先空读一次废数据,再读真实数据 ad_zhuanhuan(0x43); v_zhen_3 = ad_zhuanhuan(0x43) / 51.0; //读真实数据 f_adc = 0; // 下次去读通道1 } }

为什么数码管会闪烁?

单片机的全局中断 (EA) 被关闭长达数毫秒之久。
中断被关了这么久,数码管错过了好几次刷新时机,视觉上就会出现明显的停顿、闪烁!

在while(1)前,加延时来显示频率?

//4T 平台在执行“重新上电”后,
//会以极快的速度(毫秒级)模拟按下 S6 和 S7 键来进行“缓存电压值和频率值”的操作。
//删掉 Delay1000ms()!
//在状态机驱动的单片机程序(尤其是有按键扫描的程序)里,main 函数进入 while(1) 之前绝对不可以有长延时。
//如果是为了等第一个 1 秒钟的频率算出来,完全不需要等,
//前 1 秒频率显示 0 是正常且符合规范的。


http://www.jsqmd.com/news/603626/

相关文章:

  • AI辅助开发新思路:让快马AI智能分析你的谷歌浏览器下载习惯
  • 探索 Z 源逆变器的多种 SPWM 仿真模型
  • ESP32智能股票监控系统:实时价格触发电话提醒(附完整代码)
  • 2026执业药师网课测评:零基础、在职、二战考生如何选择备考方案 - 医考机构品牌测评专家
  • 四旋翼姿态解算实战:MahonyAHRS算法中的初始姿态角优化策略
  • 3步实现OpenCore EFI智能生成:黑苹果配置效率提升96%的实战指南
  • openpilot技术实战指南:从问题诊断到方案落地的完整路径
  • 【仅限本期开放】Python MCP生产就绪模板(含OpenTelemetry埋点+K8s readiness探针+灰度路由开关),附赠MCP 2.x兼容性迁移checklist
  • PotPlayer百度翻译插件:5分钟免费实现视频实时双语字幕,外语学习效率提升200%
  • 分镜设计指南
  • 给阿里云服务器加端口远程开关
  • 为什么你的Mojo-Python桥接总失败?资深编译器工程师逐行解析ctypes/ffi/callables三大接入路径
  • Kubernetes与Serverless的融合实践
  • 时间同步和频率同步的区别
  • 实战销售对账:基于快马平台快速构建业务级vlookup跨表匹配系统
  • 快速原型实践:用快马AI十分钟生成openclawskills风格技术社区前端
  • 物理常识缺失与因果推理弱化:当代社会的隐性认知困境
  • WechatSogou 微信公众号爬虫架构解析与生产部署指南
  • Linux 文件句柄 / 进程资源限制体系对照表2 - 小镇
  • python google-cloud-sdk
  • SQL Server SSL初始化故障深度解析:从TDSSNIClient错误0x139f到TLS1.2补丁修复
  • 背包DP实战:如何从子集和问题反推原始数组(附完整代码)
  • 告别硬字幕困扰:Video-subtitle-remover如何通过AI技术实现视频无损修复
  • 【飞书效率工具】——飞书文档一键转Markdown的实战指南
  • 如何免费搭建高性能游戏串流服务器:Sunshine完整部署与优化指南
  • 别再觉得 Java 做不了 AI:从 Spring AI、LangChain4j 到 Agent 的完整路线
  • 救命!原来HTML表格这么简单!之前都白学了
  • d2s-editor:高效二进制文件解析与编辑工具零基础入门指南
  • 实战驱动学习:通过快马生成mysql安装及博客数据库搭建一体化应用
  • Seata 2.4.0架构变了?聊聊控制台迁移到NamingServer后的那些配置改动和访问路径