完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include #include #define Delay4us(){_nop_();_nop_();_nop_();_nop_();} /*宏定义*/ #define uchar unsigned char //无符号8位 #define uint unsigned int //无符号16位 #define ulong unsigned long //无符号32位 /*全局变量定义*/ ***it K1=P1^0; //按下K1后,开始测距 ***it LEDRed=P1^1; //测距指示灯,亮表示正在测距,灭表示测距完成 ***it BEEP=P1^5; //报警测量超出范围 ***it Trig=P1^7; //HC-SR04触发信号输入 ***it Echo=P1^6; //HC-SR04回响信号输出 float xdata DistanceValue=0.0; //测量的距离值 float xdata SPEEDSOUND; //声速 uchar xdata stringBuf[6]; //数值转字符串缓冲 //LCD1602提示信息 uchar code Prompts[][16]= { {"Measure Distance"}, //测量距离 {"- Out of Range -"}, //超出测量范围 {"MAX range 400cm "}, //测距最大值400cm {"MIN range 2cm "}, //测距最小值2cm {" "}, //清屏 {" Press K1 Start "} //按键开始测量 }; uchar xdata DistanceText[]="Range: ";//测量结果字符串 uchar xdata TemperatureText[]="Temperature: ";//测量温度值 /*外部函数声明*/ extern void LCD_Initialize(); extern void LCD_Display_String(uchar *, uchar); extern void ReadTemperatureFromDS18B20(); extern int xdata CurTempInteger; //毫秒延时函数 void DelayMS(uint ms); //20微秒延时函数 void Delay20us(); //HCSR04初始化 void HCSR04_Initialize(); //测量距离 float MeasuringDistance(); //测距的数值排序求平均 float DistanceStatistics(); //输出距离值到LCD1602上 void DisplayDistanceValue(float dat); //将无符号的整数转成字符串,返回字符串长度,不包括' |