蓝桥杯51单片机

这是我备考省赛的时候总结的错误点和创新点

那个时候是用来提醒自己的,现在分享给你们看^_^

一考点



二注意点

  • 记得初始化Y4,Y5,Y6,Y7(所学)→STC 15 系列头文件概括
  • 注意在主函数中,重新定义跟随模式(要不然乱七八糟)→初始化进化,锁存器开后关闭
  • 注意初始化的内容,若多次使用,可变为一个函数
  • 操作led,数码管,蜂鸣器时,要打开hc573锁存器使能端打开,才能控制,后注意关闭
  • 操作 矩阵键盘和NE555****的时候记得注意 跳线帽
  • 延时函数只有在led和独立按键延时时使用
  • 延时函数缺点:单独进行且死板(类似拖堂);定时器:定时与计数可以同时进行(类似下课),灵活
  • 乘除取余注意:%10取数字最后一位数(一个0);/10取最后一个数字之前的数字(一个0)
  • 软件模拟:魔法棒-DEBUG-左侧所有√打上-点击DEBUG-点击L1添加逻辑分析-运行
  • 赛点资源包阅读:底层文件的引脚(运行代码,找到未定义的引脚)+原理图自己编写+头文件引用;头文件自己编写;新版onewire.h不需要自己再将t*12
  • Ds1302 的问题, write() read() 函数的存放位置

三历年考题本人错误点

  • 数码管的数字要显示 0 ,不需要再用三目运算符特意强调( ds1302 实时时钟)
  • 灯的点亮是 0 ,所以写 LED 函数是的时候是 temp&=~ 0x01<<pos
  • 定时器时间太短, 1ms 最好
  • Ds1302 的数码管不用特别显示 0
  • Ds1302 read 写进要运行的代码即数码管显示上面
  • 按键消抖时间小于十毫秒 display_dly<10ms (放在开头)
  • 数码管显示 smg_dly<300 LED 显示,数据采集, collect_dly<500
  • 如果要用到定时器中断,就打开 stc 的选项,(比如测频率的就是定时器 0 计数不打开,定时器 1 计时打开)
  • Ds18b20 是温度传感器,需要加入时间 750ms 确保温度的正确读出,数值比较大,所以用 int 类型, 先读低八位,再读高八位**,后整合十六位,再确定小数点** ( 几位数字 )
  • 用矩阵键盘的时候,注意大括号的 else if ** && ** )内容与一开始赋值 1 的对应
  • Ds1302 每次数值改变,记得重新写入
  • 独立按键是BTN模式,矩阵键盘是 KBD 模式
  • AT 24C02 中数值改变,每次都要重新读取
  • Ds1302 中, sbit 的地址是连续的 P21 ,P 23 ,P 17
  • 矩阵键盘赋值,用数组进行存储,下标进行**++**
  • 有函数名基本相同,需要改变自定义函数名
  • 函数定义有一个参数,而使用的时候,未加

  • 当用矩阵键盘输入数据(数组存放),在数码管显示出来,并要求数码管高位熄灭或者三目运算符

  • 注意区间

  • 温度测量****temp*0.0625 23 temp*0.625 236

  • 超声波测距离**,可以直接先用SP** I 波特率计算,再加 putchar ()函数即可

  • 若用按键决定发射串口,再按键位置置一个标志位,再 collect ()函数内 printf (),注意 printf 发射数据的格式

  • 串口通信**,先确定** TX RX 的引脚位置,再用延时函数确定 12us 的延时,再确定 5 个周期的发射超声波,在读取超声波函数内,先 CMOD=0**,定时初始值位** 0 ,在CR =1 开始计时接收到的超声波时间 while (!CF && RX );CR =0

  • 取模不可以是浮点数

  • 若要PCF 8591 显示光敏电阻或者电位器的俩位小数(三位数),

  • light/RB2=read**(0x01/0x03)****/51.0*100**

  • 编程的时候若出现一堆错误,查看第一行,是否是中文标点符号输入

  • 若有界面的切换

不重复触发,说明上一个数值必须与其相反

新的时间,放到索引 1

二维数组,转换每一个数组时间的位置

  • 设定主界面与触发界面俩个有关联的定义 maincode,maincode=0, 主界面 ,maincode=1 ,触发界面
  • 界面之间有防止重复触发的可能性,定义一个标志位 workflag ,在定时器里面
  • 历史查询界面共有三个,采用二维数组,并且改变触发时间的位置,进行准换改变

1.用数组下标来决定索引值

2.时间不可能显示 24 小时,以此来决定二维数组的初始状态
3.以每一位二维数组的开头做标志位,Time _set[0,1,2][0]=0x24 都未采集到数据

采集到数据,用循环来展现全部 SMG[2,3,4,5,6,7]index 与索引相对应

  • PCF8591 同时读取光敏和电位器电压,需将俩个地址互换即可
  • 判断字符串是否相等 strcmp**(BUF,"** open ") ==0 字符串相等 # include "string.h"
  • 当一个界面有俩个参数需要按键进行改变,设置一个标志位,在按键控制函数里,进行编写
相关推荐
weixin_307779132 小时前
扇形区域拉普拉斯方程傅里叶解法2
算法
鱼圆食不食7 小时前
在资源受限单片机中使用printf等可变参函数时的陷阱(2025年7月22日)
单片机·嵌入式硬件
2301_793121048 小时前
基于单片机的猪舍空气环境监测系统设计
单片机·嵌入式硬件
宴之敖者、8 小时前
数组——初识数据结构
c语言·开发语言·数据结构·算法
亿道电子Emdoor9 小时前
[ARM]MDK出现报错error: A\L3903U的解决方法
arm开发·stm32·单片机·arm
不想学习\??!10 小时前
c练习-c基础
数据结构·算法
CC呢10 小时前
基于单片机智能消毒柜设计
stm32·单片机·嵌入式硬件·消毒柜
伊织code10 小时前
OpenCV 官翻8 - 其他算法
人工智能·opencv·算法·拼接·光流·成像
Ronin-Lotus10 小时前
嵌入式硬件篇---核心板制作
单片机·嵌入式硬件
এ᭄画画的北北12 小时前
力扣-198.打家劫舍
算法·leetcode