?? ultrasonic.c
字號:
#include<P89V51.H>
//#include<reg51.H>
#include<LCD.C>
sbit P1_6 =P1^6;
sbit P1_7 =P1^7;
sbit P3_3 =P3^3;
unsigned char a,b;
unsigned int c;
void DisplayInt(Uchar X,Uchar Y,Uint f);
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);
void Delay(unsigned char c,unsigned char d,unsigned char e)
{
unsigned char i,j,k;
for(i=0;i<=c;i++)
{
for(j=0;j<=d;j++)
for(k=0;k<=e;k++);
}
}
void RigourTimer(unsigned char m)
{
unsigned char i;
for(i=0;i<m;i++)
{
TMOD=0x00;
TH0=0xff30/256;
TL0=0xff30%256;
TR0=1;
EX1=1;
do{}
while(!TF0);
TF0=0;
}
TR0=0;
EX1=0;
}
/*void counter(void) interrupt 2 using 3 //測出往返時間
{
EX1=0;
P1_7=!P1_7;
EA=1;
TR1=0;
a=TL1;
b=TH1;
//EX1=1;
}*/
////////////////////////////////////////////////////////////
void timer1(void) interrupt 3 using 2
{
TR1=0;
}
/////////////////////////////////////////////////////////////
main()
{
PSB=1;
RST=0;
Delay(10,1,1);
RST=1;
Delay(1,10,1);
Delay(10,1,1);
LCMInit();
Delay(10,1,1);
EA=1;
EX1=0;
//TR0=1;
//IE1=1;
while(1)
{
//P3_3=0;
//ET0=1;
IE1=0;
EX1=0;
EA=1;
P1_6=1;
RigourTimer(2);
P1_6=0;
RigourTimer(40);
//P1_7=1;
//ET1=1;
TMOD=0x10;
TH1=0;
TL1=0;
//ET1=1;
TR1=1;
//IE1=1;
PX1=1;
EA=1;
IT1=0;
//EX1=1;
//IE1=1;
//Delay(20,10,5);
while(P3_3==0)
{
TR1=0;
a=TL1;
b=TH1;
c=((unsigned int)b<<8)+a;
DisplayInt(0,0,c);
Delay(20,10,50);
WriteCommandLCM(0x02,1);
}
//DisplayOneChar(0,0,0x41);
//DisplayOneChar(1,0,0x42);
Delay(1,10,50);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -