51單片機接超聲波傳感器控制LED燈的暗滅主程序

更新時間:2016-05-18本文內(nèi)容轉載自互聯(lián)網(wǎng)
#include "reg51.h"#include #define uchar unsigned char//無符號字符8位#define uint unsigned int //無符號整數(shù)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中斷用來計數(shù)器溢出,超過測距范圍{flag=1; //中斷溢出標志}/********************************************************/void zd3 interrupt 3 //T1中斷用來掃描數(shù)碼管和計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; //開啟計數(shù)whileRX; //當RX為1計數(shù)并等待TR0=0; //關閉計數(shù)Conut; //計算}}用的是常見HC-SR04模塊
有用 0 無用 0 我要提問