河南农业大学理学院本科毕业论文
图4.18 显示模块原理图
4.7 总体设计与原理图
图4.19 总体设计原理图
23
河南农业大学理学院本科毕业论文
5系统软件设计
5.1 总程序流程图
主程序如下: void main() {
TMOD=0x11; TH0=0;
TL0=0;
TH1=0xf8;
启动 初始化液晶与18B20 设置T0T1初值 采集传感器温度信息 显示温度值 处理各个传感器的信息检测到的信息 控制电机转动 图5.1 总程序的流程图
//设T0为方式1,GATE=1;
//2MS定时
24
河南农业大学理学院本科毕业论文
}
TL1=0x30;
ET0=1; //允许T0中断 ET1=1; TR1=1; EA=1; stop(); while(1) {
if(RX)
{
TR0=1;
//开启计数
//当RX为1计数并等待 //关闭计数
//当RX为1时
if(key1) stop(); else {
if(key2)
//允许T1中断 //开启定时器
//开启总中断
pwm(1,20);
else pwm(1,2);
while(RX); } infrared();
TR0=0; Conut();
}
}
//计算
5.2 显示模块的流程图
单片机把小车前进方向与温度信息传递给LCD1602,具体的流程图如下:
25
河南农业大学理学院本科毕业论文
初始化液晶 采集温度信息 显示温度 接受单片机传来的小车运行状态 显示小车状态与报警信息 图5.2 显示模块的流程图
当小车处于不同状态是显示器显示相应的内容和环境温度,相应程序如下: void display(uchar n) {
uchar num;
write_com(0x80+3); if(n==1) { } if(n==2) {
for(num=0;num<10;num++) { }
write_date(disp1[num]); delay(5);
26
河南农业大学理学院本科毕业论文
for(num=0;num<10;num++) { write_date(disp2[num]); delay(5);
}
}
if(n==3) { for(num=0;num<10;num++) { write_date(disp3[num]); delay(5);
}
} if(n==4) { for(num=0;num<10;num++) { write_date(disp4[num]); delay(5);
}
} if(n==5) { for(num=0;num<10;num++) { write_date(disp5[num]); delay(5);
}
}
27