?? dod.c
字號:
//#pragma src
#include<reg52.h>
#include<absacc.h>
//#include <asm.h>
//#pragma OT(4,speed)
//#include<float.h>
#define uint unsigned int
#define uchar unsigned char
#define usv=0.34 //um/us
sbit USOut=P1^0;//us=ultrasonic
sbit USIn=P3^3;
sbit dula=P2^6;
sbit wela=P2^7;
int a;
uchar USBuffer=0,Byturns=1,T1times=0,T0times=0,th,tl,tt=0;
uchar i,j,k,qian_c,bai_c,shi_c,ge_c;
uint s=0,ss;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, //數碼管編碼
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
extern void send(void);
void delay(uchar i)
{
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
void display(uchar qian_c,uchar bai_c,uchar shi_c,uchar ge_c)
{
//P0=0xff;
dula=0;
P0=table[qian_c];
dula=1;
dula=0;
//P0=0xff;
wela=0;
P0=0xfe;
wela=1;
wela=0;
delay(3);
dula=0;
P0=table[bai_c];
dula=1;
dula=0;
//P0=0xff;
wela=0;
P0=0xfd;
wela=1;
wela=0;
delay(3);
dula=0;
P0=table[shi_c];
dula=1;
dula=0;
//P0=0xff;
wela=0;
P0=0xfb;
wela=1;
wela=0;
delay(3);
dula=0;
P0=table[ge_c];
dula=1;
dula=0;
//P0=0xff;
wela=0;
P0=0xf7;
wela=1;
wela=0;
delay(3);
}
void send(void);
void main(void)//主函數
{
dula=0;
delayus();
wela=0;
EA=1;
IT0=1;
//ET0=1;
ET1=1;
EX1=1;
TMOD=0x10;
TH1=0x3C;
TL1=0xB0;
//TH0=0xFF;//13us
//TL0=0xF3;
USOut=1;
USIn=1;
TR1=1;
TR0=1;
for(;;)
{
//SOut=1;
//USIn=1;
display(qian_c,bai_c,shi_c,ge_c);
if(tt)
{
send:
nop
tt=0;
}
}
}
/*void timer0(void) interrupt 1 using 1
{
TH0=0xFF;
TL0=0xF3;
USOut=!USOut;
Byturns=!Byturns;
T0times++;
if(T0times>=10)
{
//T0times=0;
TR0=0;//關閉定時器0
ET0=0;
//USOut=!USOut;
}
}
*/
void timer1(void) interrupt 3 //using 2
{
TH1=0x3C;
TL1=0xB0;
T1times++;
if(T1times>=20)
{
T1times=0;
// T0times=0;
TR0=1;
ET0=1;
tt=1;
}
//display(15,15,15,15);
}
void intsvr1(void) interrupt 2 //using 3
{
th=TH1-0x3C;
tl=TL1-0xB0;
//a=1;
tt=1;
s=(th*256+tl);//mm
s=s*usv/2;
// s=8694;
qian_c=s/1000;
bai_c=s%1000/100;
shi_c=s%100/10;
ge_c=s%10;
EX1=0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -