今天做了一下第七届的决赛题,逻辑比初赛复杂的多,但是原理都相同,主要是时间不够。
简单总结一下一些荣翻译忘记的地方:
(1)矩阵键盘中:
P36 replaced by P44,P37 replaced by P42,写的时候注意在ISP文件中添加P4有关的定义。
(2)今天脑子抽了,居然用P0 = 0X00;来消影,记住是
P0 = 0XFF。
(3)关于DS1302,在写时间的时候需要取消写保护,写完数据记得上写保护(具体参照datasheet)。
(4)读完一次时间后记得
Ds1302_Single_Byte_Write(0x00, 0x00);!!!!
(5)iic协议在使用的时候,对于PSF8591与AT24C02的读过程是不同的,请比赛的时候一定参照datasheet写。
附图:
PCF8591读数据过程
AT24C02读数据过程
(注意需要开启两次iic协议):
(6)iic协议第一步写地址字的时候记得读与写的区别(
0与1)
----------------------------------------------------------------------------------------------------------------------------------
(7)该onewire.c中的延时函数的时候不要改错了,是在
while(t--)内加12次减运算
(8)超声波中的RX TX需要自己定义,参照原理图定义:
RX(连接在N_B1上,是CX20106A的输出,
P11),
TX(连接在N_A1上,连接驱动电路,由
P10驱动)
(9)判断是否收到的时候,当RX == 0是收到了,程序里应该写为:while(
RX == 1
&& timeflag >= 2);
(10)超声波波速计算的时候是
332 + temper *
0.607
(11)ISP自动生成串口配置的时候记得
ES = 1允许中断
(12)使用规范的锁存器使用方法:
P2 = (P2&0x1f)|0Xa0;
P0 |= 0x40;
P2 &= 0X1f;
先清空高三位再赋值,使用完锁存器后直接选中Y0,Y0无外接元件。
(13)温度的命令常量如果头文件没有,就去datasheet找一下
-----------------------------------------------------------------------------------------------------------------------------------
做个标记:明天需要做的事情:
1、今天测频率出了点问题,具体看一下
2、写一个测温度的练练手
//done
3、写一个超声波的练练手
//done
4、看看外部中断的配置
5、看看串口的例程
//done
6、看一下模电中关于放大器的题目(包括电压放大、电流量转换成电压量即:ad原理)
//done
7、看一下理论题
//done