51单片机接超声波传感器控制LED灯的暗灭主程序
#include "reg51.h"#include #define uchar unsigned char//无符号字符8位#define uint unsigned int //无符号整数16位uint time=0;uint timer=0;uint stoptime=0;uint ringtimes=0;unsigned long S=0;bit flag =0;sbit LED=P3^7;unsigned char l_disbuff[4]={ 0xff,0,0,0,};//显示缓冲unsigned char l_posit=1; //位选择sbit RX = P1^1; //模块引脚sbit TX = P1^0;/********************************************************//**************1ms延时程序******************/delay1msuint t{uint i,j;fori=0;iforj=0;j<120;j++;}/********************************************************/void Conutvoid{ time=TH0*256+TL0;TH0=0;TL0=0;S=time*1.7/100; //算出来是CMifS>=40||flag==1 //超出测量范围显示“-”{flag=0;LED=1; }else{LED=0; }}/********************************************************/void zd0 interrupt 1 //T0中断用来计数器溢出,超过测距范围{flag=1; //中断溢出标志}/********************************************************/void zd3 interrupt 3 //T1中断用来扫描数码管和计1S启动模块{TH1=0xf8;TL1=0x30;timer++;iftimer>=500{timer=0;TX=1; //1S 启动一次模块_nop_;_nop_;_nop_;_nop_;_nop_;_nop_;_nop_;_nop_;_nop_;_nop_;_nop_;_nop_;_nop_;_nop_;_nop_;_nop_;_nop_;_nop_;_nop_;_nop_;_nop_;TX=0;}}/*********************************************************/void main void { TMOD=0x11; //设T0,T1为方式1TH0=0;TL0=0; TH1=0xf8; //2MS定时TL1=0x30;ET0=1; //允许T0中断ET1=1; //允许T1中断TR1=1; //开启定时器EA=1; //开启总中断while1{while!RX; //当RX为零时等待TR0=1; //开启计数whileRX; //当RX为1计数并等待TR0=0; //关闭计数Conut; //计算}}用的是常见HC-SR04模块

热门搜索
- 2018-07-318月8号成都出发去色达,自驾游,有2个位置可以结伴
- 2018-07-31这地方热吗?莫干山不错的,下渚湖怎样热不热
- 2018-07-31儿童超过120m要买票吗
- 2018-07-31准备去大理旅游三天,从昆明出发 求大神推荐路线
- 2018-07-31从厦大学生公寓到南普陀寺怎么走,要多长时间到?
- 2018-07-31问一哈从宜宾到济南,怎么走最划算