完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
#include
#include #include #define uchar unsigned char #define uint unsigned int ***it RX=P1^1; ***it TX=P1^2; ***it D5=P1^4; unsigned char flag_uart,flag_on,flag_s=0; uchar a; void Star_srch04(); //SR_HC04启动函数 void Count(); //计算函数 void init() //初始化 { TMOD=0X21; SCON=0X50; TH0=0; TL0=0; TH1=0XFD; TL1=0XFD; TR1=1; ET0=1; SM0=0; SM1=1; REN=1; EA=1; ES=1; } void main() { init(); while(1) { if(flag_uart==1) { flag_uart=0; ES=0; ti=1; switch(flag_on) { case 0:puts("turn on hcsr04!n"); Star_hcsro4(); Count(); break; case 1:puts("turn off hcsr04!n"); TX=0; break; case 2:puts("Error!n"); break; } while(!TI); TI=0; ES=1; } } } void Star_hcsr04() { TX=0; TX=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0; while(!RX); TR0=1; D5=0; while(RX); TR0=0; D5=1; } void Count() { float s; unsigned char time; time=TH0*256+TL0; TH0=0; TL0=0; s=(time*1.845)/10; if(flag_s==1) { flag_s=0; ES=0; TI=1; puts("----n"); while(!TI); TI=0; ES=1; } ES=0; TI=1; printf("the distance is %fmmn,s"); while(!TI); TI=0; ES=1; } void T0_time() interrupt 1 { flag_s=1; TH0=0; TL0=0; } void ser() interrupt 4 { RI=0; a=SBUF; flag_uart=1; if(a==1) flag_on=0; else if(a==2) flag_on=1; else flag_on=2; } |
|
相关推荐
4个回答
|
|
|
求各位帮忙 谢谢了
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
【瑞萨RA6E2】瑞萨E2S软件安装过程,等待过程玩下97_e2 studio_ZGZZ
331 浏览 0 评论
532 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
842 浏览 0 评论
1383 浏览 2 评论
824 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16911 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 10:35 , Processed in 1.020699 second(s), Total 81, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1232