100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 13-基于51单片机超声波水位测量报警系统源程序 原理图 元件清单实物制作

13-基于51单片机超声波水位测量报警系统源程序 原理图 元件清单实物制作

时间:2020-11-27 19:16:16

相关推荐

13-基于51单片机超声波水位测量报警系统源程序 原理图 元件清单实物制作

功能介绍:采用51单片机作为主控CPU,LCD1602显示水位,SRF04超声波采集水位高度,可以通过按键设置水位高度,超过水位上限值蜂鸣器进行报警,并且通过串口可以将数据上发到电脑串口助手,文末有资料分享:

13-基于51单片机超声波水位测量报警系统(程序+原理图+元件清单全套资料)

程序部分展示,有中文注释,新手容易看懂unsigned int time=0;//计时变量unsigned int timer=0;//计时变量unsigned int S=0;//当前值unsigned int SET_H=200;//最高值和最低值bit flag =0; //测量标志位unsigned char Table[5],Table1[5];//显示数组unsigned char KEY_flag=0; //按键选择标志//延时函数void Delay_ms(int jj) //延时函数{int ii;//延时变量while(jj--)//延时n毫秒for(ii=0;ii<116;ii++);//延时1毫秒}void Conut(void) //测量函数{time=TH0*256+TL0; //距离计数TH0=0; //定时器清零TL0=0; //定时器清零S=(time*1.87)/10;//算出来是CM、转换if((S>=7000)||flag==1) //超出测量范围显示“-”{ flag=0; //数据无效标志}else{Table1[0]= S/1000+0X30;//显示当前值Table1[1]= S/100%10+0X30;//显示当前值Table1[2]= S/10%10+0X30;//显示当前值Table1[3]= '.';//显示当前值Table1[4]= S%10+0X30; //显示当前值}}void delayms(unsigned int x){unsigned int i;while(x--)for(i=125;i>0;i--);}/** UART 发送一字节*/void UART_send_byte(char dat){SBUF = dat;//发送while (TI == 0);//等待发送完毕TI = 0;//清发送完毕中断请求标志位 }/** UART 发送字符串*/void Send_Str(unsigned char *buf){while (*buf != '\0'){UART_send_byte(*buf++);}}void Send_DATA(char *buffer){Send_Str(buffer);//发送数据Send_Str("\r\n");delayms(50);}void StartModule() //超声波模块Trig控制端给大于10us的高电平触发模块测距{TX=1;_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); //_nop_(); //_nop_();//_nop_(); //_nop_(); //_nop_(); TX=0;}

下面是原理图文件展示:

百度云盘资料分享链接

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。