-
#include
//<
/p>
包括一个
52
标准内核的头文件
#define uchar unsigned char
//
定义一下方便使用
#define uint
unsigned int
#define ulong
unsigned long
//***********
************************************
sbit Trig
=
P3^0; //
产生脉冲引脚
sbit Echo
=
P3^2; //
回波引脚
//sbit test
=
P1^1; //
测试用引脚
uchar code SEG7[10]={0xC0,0xF9,0xA4,0xB
0,0x99,0x92,0x82,0xF8,0x80,0x90};//
数码管<
/p>
0-9
uint distance[4];
//
测距接收缓冲区
uchar
ge,shi,bai,temp,flag,outcomeH,outcomeL,i;
//
自定义寄存器
bit succeed_flag;
//
测量成功标志
//********
函数声明
void conversion(uint temp_data);
void delay_20us();
void
main(void)
//
主程序
{
uint distance_data,a,b;
uchar CONT_1;
i=0;
flag=0;
Trig=0;
//
首先拉低脉冲输入引脚
TMOD=0x11;
//
定时
器
0
,定时器
1
,
16
位工作方式
TR0=1;
//
启动定时器
0
IT0=0;
//
由高电平变低电平,触发外部中断
ET0=1;
//
打开
定时器
0
中断
//ET1=1;
//
打开
定时器
1
中断
EX0=0;
//
关闭外部中断
EA=1;
//
打开总中断
0
while(1)
//
程序循环
{
EA=0;
Trig=1;
delay_20us();
Trig=0;
//
产生
一个
20us
的脉冲,在
Trig
p>
引脚
while(Echo==0); //
等待
< br>Echo
回波引脚变高电平
succeed_flag=0;
//
清测量成功标志
EX0=1;
//
打开外部中断
TH1=0;
//<
/p>
定时器
1
清零
TL1=0;
p>
//
定时器
1
清零
TF1=0;
//
-
-
-
-
-
-
-
-
-
上一篇:单片机STC89C52RC 内部EEPROM
下一篇:医学检查相关参数简介(精)