完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
程序如下:
/***********************************************************************************************************/ //HC-SR04 3?éù2¨2a?à?£?é DEMO 3ìDò //?§??£o11?£0592 //3ìDò QQ£o 517535000 //taobaoμê?ì£ohttp://shop58246706.taobao.com //?ó??£o?£?éTRIG?ó P1.2 ECH0 ?óP1.1 //′??ú2¨ì??ê9600 /***********************************************************************************************************/ #include #include #include ***it Beep = P1^5 ; ***it RX = P1^1; ***it TX = P1^2; #define uchar unsigned char #define uint unsigned int unsigned int time=0; unsigned int timer=0; float S=0; bit flag =0; /********************************************************/ void Conut(void) { time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.87)/100; } void delayms(unsigned int ms) { unsigned char i=100,j; for(;ms;ms--) { while(--i) { j=10; while(--j); } } } void zd0() interrupt 1 //T0?D??ó?à′??êy?÷ò?3?,3?1y2a?à·??§ { flag=1; //?D??ò?3?±ê?? } /********************************************************/ void StartModule() //T1?D??ó?à′é¨?èêy??1üoí??800MS???ˉ?£?é { TX=1; //800MS ???ˉò?′??£?é _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0; if (S<15) { Beep= '1'; delayms(3000); } else { Beep= '0'; delayms(3000); } } /********************************************************/ void main(void) { TMOD=0x21; //éèT0?a·?ê?1£?GATE=1£? SCON=0x50; TH1=0xFD; TL1=0xFD; TH0=0; TL0=0; TR0=1; ET0=1; //?êDíT0?D?? TR1=1; //?a???¨ê±?÷ TI=1; EA=1; //?a??×ü?D?? while(1) { StartModule(); while(!RX); //μ±RX?aá?ê±μè′y TR0=1; //?a????êy while(RX); //μ±RX?a1??êy2¢μè′y TR0=0; //1?±???êy Conut(); //???? delayms(100); //100MS } } |
|
相关推荐
6个回答
|
|
|
原来两个分开的程序分别是蜂鸣器报警和测距串口显示都没问题
蜂鸣器: #include ***it Beep = P1^5 ; void delay(unsigned int i) ; void main() { Beep= 1; delay(5); Beep= 0; delay(5); } void delay(unsigned int i) { char j; for(i; i > 0; i--) for(j = 200; j > 0; j--); } 串口超声波测距: /***********************************************************************************************************/ //HC-SR04 ³¬Éù²¨²â¾àÄ£¿é DEMO ³ÌÐò //¾§Õñ£º11¡£0592 //³ÌÐò QQ£º 517535000 //taobaoµêÆÌ£ºhttp://shop58246706.taobao.com //½ÓÏߣºÄ£¿éTRIG½Ó P1.2 ECH0 ½Ó1.1 //´®¿Ú²¨ÌØÂÊ9600 /***********************************************************************************************************/ #include #include #include #define uchar unsigned char #define uint unsigned int #define RX P1_1 #define TX P1_2 unsigned int time=0; unsigned int timer=0; float S=0; bit flag =0; /********************************************************/ void Conut(void) { time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.87)/100; //Ëã³öÀ´ÊÇCM if(flag==1) //³¬³ö²âÁ¿ { flag=0; printf("-----n"); } printf("S=%fn",S); } /********************************************************/ void delayms(unsigned int ms) { unsigned char i=100,j; for(;ms;ms--) { while(--i) { j=10; while(--j); } } } /********************************************************/ void zd0() interrupt 1 //T0ÖжÏÓÃÀ´¼ÆÊýÆ÷Òç³ö,³¬¹ý²â¾à·¶Î§ { flag=1; //ÖжÏÒç³ö±êÖ¾ } /********************************************************/ void StartModule() //T1ÖжÏÓÃÀ´É¨ÃèÊýÂë¹ÜºÍ¼Æ800MSÆô¶¯Ä£¿é { TX=1; //800MS Æô¶¯Ò»´ÎÄ£¿é _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0; } /********************************************************/ void main(void) { TMOD=0x21; //ÉèT0Ϊ·½Ê½1£¬GATE=1£» SCON=0x50; TH1=0xFD; TL1=0xFD; TH0=0; TL0=0; TR0=1; ET0=1; //ÔÊÐíT0ÖÐ¶Ï TR1=1; //¿ªÆô¶¨Ê±Æ÷ TI=1; EA=1; //¿ªÆô×ÜÖÐ¶Ï while(1) { StartModule(); while(!RX); //µ±RXΪÁãʱµÈ´ý TR0=1; //¿ªÆô¼ÆÊý while(RX); //µ±RXΪ1¼ÆÊý²¢µÈ´ý TR0=0; //¹Ø±Õ¼ÆÊý Conut(); //¼ÆËã delayms(100); //100MS } } |
|
|
|
|
|
有人吗
|
|
|
|
|
|
程序问题
|
|
|
|
|
|
我又把程序改了一下 不过蜂鸣器响声很小
/***********************************************************************************************************/ //HC-SR04 超声波测距模块 DEMO 程序 //晶振:11。0592 //程序 QQ: 517535000 //taobao店铺:http://shop58246706.taobao.com //接线:模块TRIG接 P1.2 ECH0 接P1.1 //串口波特率9600 /***********************************************************************************************************/ #include #include #include #define uchar unsigned char #define uint unsigned int ***it RX=P1^1; ***it TX=P1^2; ***it Beep=P1^5; void delay(unsigned int i) ; unsigned int time=0; unsigned int timer=0; float S=0; bit flag =0; /********************************************************/ void Conut(void) { time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.87)/100; //算出来是CM if(flag==1) //超出测量 { flag=0; printf("-----n"); } printf("S=%fn",S); { } if(S<15) Beep=1; delay(5); Beep=0; delay(5); } /********************************************************/ void delay(unsigned int i) { char j; for(i; i > 0; i--) for(j = 200; j > 0; j--); } /********************************************************/ void zd0() interrupt 1 //T0中断用来计数器溢出,超过测距范围 { flag=1; //中断溢出标志 } /********************************************************/ void StartModule() //T1中断用来扫描数码管和计800MS启动模块 { TX=1; //800MS 启动一次模块 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0; } /********************************************************/ void main(void) { TMOD=0x21; //设T0为方式1,GATE=1; SCON=0x50; TH1=0xFD; TL1=0xFD; TH0=0; TL0=0; TR0=1; ET0=1; //允许T0中断 TR1=1; //开启定时器 TI=1; EA=1; //开启总中断 while(1) { StartModule(); while(!RX); //当RX为零时等待 TR0=1; //开启计数 while(RX); //当RX为1计数并等待 TR0=0; //关闭计数 Conut(); //计算 delay(100); //100MS } } |
|
|
|
|
|
有人帮忙吗
|
|
|
|
|
|
if(S<15)
Beep=1; delay(5); Beep=0; delay(5); }你有想过这样子写蜂鸣器怎么响吗,,,流水灯闪灭还需要加个死循环的的呀。。你这响一声就没。。。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
2071 浏览 0 评论
imx6ull 和 lan8742 工作起来不正常, ping 老是丢包
4792 浏览 0 评论
4273 浏览 9 评论
3863 浏览 16 评论
4433 浏览 1 评论
4261浏览 3评论
3435浏览 0评论
1203浏览 0评论
2888浏览 0评论
3952浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-14 14:24 , Processed in 0.873700 second(s), Total 87, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
370