江苏理工学院毕业设计论文
case rightdata: SendString(\小车正在右转...\\r\\n\\r\\n\ default: break; } } switch(SBUF_DATA) { case leftdata: Turn_Left(Turn_Left_R_DATA,Turn_Left_L_DATA);break; case rightdata: Turn_Right(Turn_Right_R_DATA,Turn_Right_L_DATA);break; case forwarddata: Forward(Forward_R_DATA,Forward_L_DATA);SendString(\小车正在前进...\\r\\n\\r\\n\
case backdata: Back(Back_R_DATA,Back_L_DATA);SendString(\小车正在后退...\\r\\n\\r\\n\ default: break; } Last_SBUF_DATA = SBUF_DATA; Delay1ms(30); } else Stop(); } }
void int0() interrupt 0 { count1++; }
void timer1() interrupt 3 { static unsigned char n=0; TH1=(65536-36815)/256; TL1=(65536-36815)%6; // 20ms n++; if(n>=50) { n=0; speed=(float)count1*1.0053096; count1=0; sprintf(s,\short)speed);//将速度转化为字符串送到S数组中 } }
超声波测距程序
第44页 共55页
江苏理工学院毕业设计论文
/****************************************** ******************************************* 程序名称:超声波测距
设计者:祁星(09机电2Z) 指导老师:李尚荣 学院:机械工程学院
****************************************** *******************************************/ #include
#include \#define TX P4_0 #define RX P2_2
sbit P4_0=0xc0;//P4口地址 void Delay400Ms(void);
unsigned char code Range[] =%unsigned char code ASCII[13] = %unsigned char code table[]=%unsigned char code table1[]=%unsigned char disbuff[4]={0,0,0,0}; void Count(void);//距离计算函数
unsigned int time=0; //用于存放定时器时间值 unsigned long S=0; //用于存放距离的值 bit flag =0; //量程溢出标志位 /********距离计算程序***************/ void Conut(void) { time=TH0*256+TL0; TH0=0; TL0=0; S=time*0.54;//先算出一共的时间是多少微秒 S=S*0.17;//小车距离障碍物的距离 if((S>=5000)||flag==1) //如果S大于5米,超出了测量范围 { flag=0;
DisplayListChar(0, 1, table1); } else {
disbuff[0]=S; disbuff[1]=S/10; disbuff[2]=S/100; disbuff[3]=S/1000; DisplayListChar(0, 1, table); DisplayOneChar(9, 1, ASCII[disbuff[3]]); DisplayOneChar(10, 1, ASCII[disbuff[2]]);
第45页 共55页