【蓝桥杯单片机的备赛旅行日记系列】之国赛决赛第五届多功【蓝桥杯单片机的备赛旅行日记系列】之国赛决赛第五届多功
能事件记录器能事件记录器
目录目录
1.注意事项注意事项
2.部分代码展示部分代码展示
3.完整代码下载完整代码下载
1.注意事项注意事项
这是目前为止做到的最难的一套了,三个驱动都用上了,而且还增加了串口通信,最无奈的是光敏电阻和这是目前为止做到的最难的一套了,三个驱动都用上了,而且还增加了串口通信,最无奈的是光敏电阻和Rb2同时用上同时用上
了。了。
ADC读取的时候读的是上一个值,也就是说,你以为你读的是Rb2,其实是光敏电阻,网上说的有两种解决方法
(1).每个值读两次,我是采用这种方法的,
(2).二者的地址反着取,
但是两种方法都会有问题,目前还没有找到完美解决方法,找到了我会放上来,大家注意一下就好了。
2.部分代码展示
主函数:
void main()
{
uchar last_sec,k,m,index;
bit light_start=0;
uchar temp,shidu,light;
uchar hour,min,sec;
uchar stay_hour,stay_min,stay_sec;
uint stay_time;
AllInit();
rd_temperature();
Delay750ms();
set_time(23,59,55);
light_InitVal=read_adc(0x01)-20;
Delay20ms();
Timer0Init();
UartInit();
while(1)
{
//获取温、湿、亮度
temp=rd_temperature();
EA=0;
shidu=read_adc(0x03)*0.389 ;
EA=1;
Delay20ms();
EA=0;
shidu=read_adc(0x03)*0.389 ;
EA=1;
Delay20ms();
EA=0;
sec=Read_Ds1302_Byte(0x81);
min=Read_Ds1302_Byte(0x83);
hour=Read_Ds1302_Byte(0x85);
EA=1;
Delay20ms();
EA=0;
light=read_adc(0x01);
EA=1;
Delay20ms();
EA=0;
light=read_adc(0x01);
EA=1;
Delay20ms();