給你改了一下試試。
- #include <reg52.h>
- #include <stdio.h>
- #include <intrins.h>
- sbit Trig=P2^0; //???
- sbit Echo=P2^1; //???
- sbit pwm =P0^1; //PWM????
- sbit jia =P1^2; //????????IO?
- sbit jan =P1^1; //????????IO?
- unsigned char count;
- unsigned char jd; //????
- unsigned char T0RH=0;
- unsigned char T0RL=0;
- void Time0_Init() //??????
- {
- TMOD = 0x01; //???0?????1
- IE = 0x82;
- TH0 = 0xfe;
- TL0 = 0x33; //11.0592MZ??,0.5ms
- TR0=1; //?????
- }//????????
- void time_init()
- {
- EA=1;
- TMOD=0x11;
- TH0 = 0;
- TL0 = 0;
- } //?????????
- void Delay_us(unsigned char t)
- {
- while(--t);
- }
- void timer0() interrupt 1
- {
- TH0 = 0;
- TL0 = 0;
- } //???? ????? ???? ?????? ????
- void chaoshenbo_kongzhi() //???????
- {
- unsigned int time, distance, last;
- Trig=0;
- Echo=0;
- jd=3;
- time_init();
- while(1)
- {
- Trig=1;
- Delay_us(5);
- Trig=0;
- while(Echo==0);
- TR0=1;
- while(Echo);
- TR0=0;
- time=TH0*256+TL0;
- distance=(int)(time*0.017); //???? ???cm
- TH0=0;
- TL0=0;
- if(distance<100) //??????100cm ????
- {
- last=distance;
- jd=4;
- Delay_us(10);
- if(distance<last)
- {
- jd=1;
- }
- if(distance>last)
- {
- jd=5;
- }
- }
- if(distance>100)
- jd=3;
- }
- }
- void main()
- {
- jd=3;
- count=0;
- chaoshenbo_kongzhi();
- }
復制代碼 |