这是我备考省赛的时候总结的错误点和创新点
那个时候是用来提醒自己的,现在分享给你们看^_^
一考点
二注意点
- 记得初始化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"
- 当一个界面有俩个参数需要按键进行改变,设置一个标志位,在按键控制函数里,进行编写



