附录一
7 附 录
超声波测距电路原理图
23
附录二
超声波测距电路版图
超声波测距电路版图
24
附录三
程序清单
#INCLUDE
#DEFINE CSBOUT P3_5 //超声波发送 #DEFINE CSBINT P3_7 //超声波接收 #DEFINE CSBC=0.034 #DEFINE BG P3_3
UNSIGNED CHAR CSBDS,OPTO,DIGIT,BUFFER[3],XM1,XM2,XM0,KEY,JPJS;//显示标识 UNSIGNED CHAR
CONVERT[10]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};//0~9段码
UNSIGNED INT S,T,I, XX,J,SJ1,SJ2,SJ3,MQS,SX1; BIT CL;
VOID CSBCJ();
VOID DELAY(J); //延时函数 VOID SCANLED(); //显示函数 VOID TIMETOBUFFER(); //显示转换函数 VOID KEYSCAN(); VOID K1CL(); VOID K2CL(); VOID K3CL(); VOID K4CL(); VOID OFFMSD();
25
VOID MAIN() //主函数 {
EA=1; //开中断
TMOD=0X11; //设定时器0为计数,设定时器1定时 ET0=1; // ET1=1; // TH0=0X00; TL0=0X00; TH1=0X9E; TL1=0X57; CSBDS=0; CSBINT=1; CSBOUT=1; CL=0; ōPTO=0XFF; JPJS=0; SJ1=45; SJ2=200; SJ3=400; K4CL();
TR1=1; WHILE(1) {
KEYSCAN(); IF(JPJS<1) { CSBCJ();
定时器0中断允许 定时器1中断允许 26
IF(S>SJ3) {
BUFFER[2]=0X76; BUFFER[1]=0X76; BUFFER[0]=0X76; }
ELSE IF(S BUFFER[2]=0X40; BUFFER[1]=0X40; BUFFER[0]=0X40; } ELSE TIMETOBUFFER(); } ELSE TIMETOBUFFER(); //将值转换成LED段码 OFFMSD(); SCANLED(); //显示函数 IF(S VOID SCANLED() //显示功能模块 { DIGIT=0X04; FOR( I=0; I<3; I++) //3位数显示 { 27