51 단편기 초음파 거리 측정 디지털 파이프 디스플레이
3007 단어 단편기
//
// : Z H
// 2015/11/29
//Trig = P2^0
//Echo = P3^2
#include
#define uchar unsigned char
#define uint unsigned int
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f}; //0-9
uint time = 0;
uint timeH = 0;
uint timeL = 0;
uint succeed_flag;
sbit dula=P2^0; //
sbit wela=P2^1; //
sbit Trig = P2^2;
sbit Echo = P3^2;
//
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=125;y>0;y--);
}
//
void delay_20us()
{
uchar a ;
for(a=0;a<100;a++);
}
//***************************************************************
//
void display(uint temp)
{
uchar qian,ge,shi,bai;
qian = temp/1000;
bai=temp/100%10;
shi=temp%100/10;
ge=temp%10;
wela=1;
//P0=0xf7;
P0 = 0xfe;
wela=0;
dula=1;
P0=table[qian];
dula=0;
delay(5);
wela=1;
//P0=0xf7;
P0 = 0xfd;
wela=0;
dula=1;
P0=table[bai];
dula=0;
delay(5);
dula=1;
P0=0x00; //
dula=0;
wela=1;
//P0=0xef;
P0 = 0xfb;
wela=0;
dula=1;
P0=table[shi];
dula=0;
delay(5);
dula=1;
P0=0x00; //
dula=0;
dula=1;
P0=table[ge];
dula=0;
wela=1;
//P0=0xdf;
P0 = 0xf7;
wela=0;
delay(5);
dula=1;
P0=0x00; //
dula=0;
}
//***************************************************************
void main()
{
uint distance;
uint test =0;
Trig=0; //
EA=1; // 0
TMOD=0x10; // 1,16
while(1)
{
EA=0; //
Trig=1; //
delay_20us(); // 20us
Trig=0; // 20us
while(Echo==0); // Echo
succeed_flag=0; //
EA=1;
EX0=1; // 0
TH1=0; // 1
TL1=0; // 1
TF1=0; //
TR1=1; // 1
delay(20); //
TR1=0; // 1
EX0=0; // 0
if(succeed_flag==1)
{
time=timeH*256+timeL;
distance=time*0.172; //
display(distance);
}
if(succeed_flag==0)
{
distance=0; //
test = !test; //
}
}
}
//***************************************************************
// 0,
void exter() interrupt 0 // 0 0
{
timeH =TH1; //
timeL =TL1; //
succeed_flag=1;//
EX0=0; //
}
//****************************************************************
// 1 ,
void timer1() interrupt 3 //
{
TH1=0;
TL1=0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 출력 포인터 변수 주소(16진수)텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.