“倒车雷达”案例程序设计说明
1 工程文件下载:
2 程序设计流程图

3 相关寄存器设置
开启定时器0和1,以及初始化定时器1初始值:
TMOD=0x11;
EA=1; //打开总的中断
ET1=1; //开启定时器1中断
TH1=(65535-60000)/256; //T1定时大约60ms
TL1=(65535-60000)%256;
TR1=1; //启动定时器
T2L=(65535-1)/256; //定时器2,16位自动重装
T2H=(65535-1)%256; //赋初值
AUXR |= 0x10; //允许定时器2运行
IE2 |= 0x04; //允许定时器2产生中断
4 程序设计框架
4.1 void main()
完成各部分功能模块的初始化;
设置P0、P2为推挽模式;
开启定时器0和1,以及初始化定时器1初始值:
4.2 void SEG_Display();
在数码管上显示所测量的数据;
4.3 void Delay(int n);
延时函数
4.4 void Timer1_Routine() interrupt 3
(1)进入T1中断后,发送20us的高电平信号,等待回响信号变为高电平,打开计时器0,测出回响信号持续高电平的时间;
(2)利用T0的时间,计算出距离。
4.5 void Timer2_Routine() interrupt 12
判断超声波测出的距离distance,利用if语句,得出其蜂鸣器发声的间隔。

