蓝桥杯51单片机

发布于:2025-07-23 ⋅ 阅读:(12) ⋅ 点赞:(0)

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

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

一考点


二注意点

  • 记得初始化Y4,Y5,Y6,Y7(所学)→STC15系列头文件概括
  • 注意在主函数中,重新定义跟随模式(要不然乱七八糟)→初始化进化,锁存器开后关闭
  • 注意初始化的内容,若多次使用,可变为一个函数
  • 操作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
  • Ds1302read 写进要运行的代码即数码管显示上面
  • 按键消抖时间小于十毫秒display_dly<10ms(放在开头)
  • 数码管显示smg_dly<300LED显示,数据采集,collect_dly<500
  • 如果要用到定时器中断,就打开stc的选项,(比如测频率的就是定时器0计数不打开,定时器1计时打开)
  • Ds18b20是温度传感器,需要加入时间750ms确保温度的正确读出,数值比较大,所以用int类型,先读低八位,再读高八位,后整合十六位,再确定小数点(几位数字)
  • 用矩阵键盘的时候,注意大括号的else if** && **)内容与一开始赋值1的对应
  • Ds1302每次数值改变,记得重新写入
  • 独立按键是BTN模式,矩阵键盘是KBD模式
  • AT24C02中数值改变,每次都要重新读取
  • Ds1302中,sbit的地址是连续的P21,P23,P17
  • 矩阵键盘赋值,用数组进行存储,下标进行++

  • 有函数名基本相同,需要改变自定义函数名

  • 函数定义有一个参数,而使用的时候,未加

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

    • 注意区间

    • 温度测量 temp*0.0625 23   temp*0.625236
    • 超声波测距离,可以直接先用SPI波特率计算,再加putchar()函数即可
    • 若用按键决定发射串口,再按键位置置一个标志位,再collect()函数内printf(),注意printf发射数据的格式
    • 串口通信,先确定TXRX的引脚位置,再用延时函数确定12us的延时,再确定5个周期的发射超声波,在读取超声波函数内,先CMOD=0,定时初始值位0,在CR=1开始计时接收到的超声波时间while(!CF && RX);CR=0
    • 取模不可以是浮点数
    • 若要PCF8591显示光敏电阻或者电位器的俩位小数(三位数),
    • light/RB2=read0x01/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"
    • 当一个界面有俩个参数需要按键进行改变,设置一个标志位,在按键控制函数里,进行编写

     


    网站公告

    今日签到

    点亮在社区的每一天
    去签到