用C语言编写单片机程序
实现功能:编程从P1.0口产生40KHz方波,经超声波发射头发射,接收头接收后产生负脉冲,在P3.2产生中断,编程实现测距并输出声音报警,要求超声波发出后屏蔽一段时间再接...
实现功能:编程从P1.0口产生40KHz方波,经超声波发射头发射,接收头接收后产生负脉冲,在P3.2产生中断,编程实现测距并输出声音报警,要求超声波发出后屏蔽一段时间再接收
展开
2个回答
展开全部
#include <REG52.H>
sbit csb_SAT= P1^0; //定义超声波发生脚
void delay(void) //延时25微秒,12T芯片用12M误差 0us
{
unsigned char a;
for(a=11;a>0;a--);
}
void csb_fs(int dat) {while(dat--){csb_SAT=1;delay();csb_SAT=0;delay();}} //发射
void main()
{
EA=1;
while(1)
{
csb_fs(10);
delay();delay();delay();delay();delay();delay();delay();delay();delay();
IE=0x83; //INT0允许中断
while(IE);
P1_1=1;delay();P1_1=0;delay();P1_1=1;delay();P1_1=0;delay();P1_1=1;delay();P1_1=0;delay();
}
}
void int0_chuankou(void) interrupt 0 using 1 //外部INT0中断子程序
{
IE=0;//禁止INT0中断
}
sbit csb_SAT= P1^0; //定义超声波发生脚
void delay(void) //延时25微秒,12T芯片用12M误差 0us
{
unsigned char a;
for(a=11;a>0;a--);
}
void csb_fs(int dat) {while(dat--){csb_SAT=1;delay();csb_SAT=0;delay();}} //发射
void main()
{
EA=1;
while(1)
{
csb_fs(10);
delay();delay();delay();delay();delay();delay();delay();delay();delay();
IE=0x83; //INT0允许中断
while(IE);
P1_1=1;delay();P1_1=0;delay();P1_1=1;delay();P1_1=0;delay();P1_1=1;delay();P1_1=0;delay();
}
}
void int0_chuankou(void) interrupt 0 using 1 //外部INT0中断子程序
{
IE=0;//禁止INT0中断
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询