1、/*T1SmainwhileTX)0*/hc-sr04 DEMO /TRIG P1.2 ECH0 P1.1 #include / #include unsigned int time=0; unsigned int timer=0; unsigned long S=0; / bit flag =0; /sbit dula=P26;sbit wela=P27; /sbit RX=P11; /echosbit TX=P12; /trigsbit D5=P14; /echoD5unsigned long x; /unsigned char code table= /0x3f,0x06,0x5b,0x
2、4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;void Display(unsigned long num);void Delay(unsigned int z); /z=11ms void Conut(void)/ time=TH0*256+TL0; / /12/11.0593Mtime*12/11.0592 TH0=0; /00 TL0=0; S=(time*1.845)/100; /CM/ S=(time*1.845)/10; /mm/time*12*170/(11.0592*1000)mm=time*184
3、5/10000 mmif (S=500) /5m500cmS=888888;if (flag=1) /S=888888;flag=0;TH0=0;TL0=0;/*/ void zd0() interrupt 1 /T0, flag=1; / /0TH0TL00/*/ void zd3() interrupt 3 /T1800MS /1 TH1=0xf8; /2ms TL1=0x30; timer+; if(timer=400) timer=0; TX=1; /800MS Delay(30); /30ms TX=0; /*/void main( void ) TMOD=0x11; /T01GAT
4、E=1TH0=0; /T0T1TL0=0; /0TH1=0xf8; /2MSTL1=0x30;ET0=1; /T0ET1=1; /T1TR1=1; /EA=1; /while(1) while(!RX);/RXecho TR0=1; / D5=0; / while(RX);/RX1 TR0=0;/ D5=1; / Conut();/Display(S); /void Display(unsigned long num) / /main/*sbit dula=P26;sbit wela=P27;*/unsigned int temp; /forunsigned char shiwanwei,wa
5、nwei,qianwei,baiwei,shiwei,gewei;/shiwanwei=num/100000;wanwei=num%100000/10000;qianwei=num%10000/1000;baiwei=num%1000/100;shiwei=num%100/10;gewei=num%10;wela=1;P0=0xdf;/1111 1011 /wela=0;dula=1;P0=tablegewei;dula=0;for(temp=100;temp0;temp-); if(shiwanwei!=0|wanwei!=0|qianwei!=0|baiwei!=0|shiwei!=0)/
6、000wela=1;P0=0x6f; /1111 0110 /wela=0;P0=0xff;dula=1;P0=tableshiwei;dula=0;for(temp=50;temp0;temp-); if(shiwanwei!=0|wanwei!=0|qianwei!=0|baiwei!=0)wela=1;P0=0x77; /1110 1110 /wela=0;P0=0xff;dula=1;P0=tablebaiwei; dula=0;for(temp=50;temp0;temp-);if(shiwanwei!=0|wanwei!=0|qianwei!=0)wela=1;P0=0x7b; /
7、1101 1110 /wela=0;P0=0xff;dula=1;P0=tableqianwei; dula=0;for(temp=50;temp0;temp-);if(shiwanwei!=0|wanwei!=0)wela=1;P0=0x7d; /1011 1110 /wela=0;P0=0xff;dula=1;P0=tablewanwei; dula=0;for(temp=50;temp0;temp-);if(shiwanwei!=0)wela=1;P0=0x7e; /0111 1110 /wela=0;P0=0xff;dula=1;P0=tableshiwanwei; dula=0;for(temp=50;temp0;temp-); void Delay(unsigned int z) /z11msunsigned int a,b;for(a=z; a0; a-)for(b=110; b0; b-);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1