找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5891|回复: 3
打印 上一主题 下一主题
收起左侧

AJ-SR04M一体化超声波51单片机测试程序

[复制链接]
跳转到指定楼层
楼主
ID:277409 发表于 2018-1-18 15:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
亲测可用,51单片机测试超声波模块

单片机源程序如下:
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. typedef unsigned char uint8;
  4. typedef unsigned int uint16;
  5. sbit Trig=P3^3;//触发引脚定义
  6. sbit Echo=P3^2;//测量引脚定义
  7. uint16 distance;//定义全局变量
  8. /******************************************
  9. 延时让Trig引脚产生大于10us的脉冲
  10. ********************************************/
  11. void delay()
  12. {
  13. uint8 i;
  14. for(i=0;i<100;i++);
  15. }
  16. //初始化
  17. void init()
  18. {
  19. EA=1;//开总中断
  20. IT0=0;//外部中断0,低电平触发
  21. TMOD|=0x01;//定时器0 工作模式1
  22. TH0=0;
  23. TL0=0;
  24. TR0=0;
  25. }
  26. //串口设置
  27. void UART_init()
  28. {
  29. SCON=0x50;
  30. TMOD=0x20;
  31. TH1=0xFD;
  32. TL1=0xFD;
  33. TR1=1;
  34. }
  35. //发送一个字节
  36. void UART_send_byte(uint8 dat)
  37. {
  38. SBUF=dat;
  39. while(TI==0);
  40. TI=0;
  41. }
  42. //发送一组测得的distance
  43. void UART_send_dat(uint16 temp)
  44. {
  45. UART_send_byte((temp/10000)%10 + '0');
  46. UART_send_byte((temp/1000)%10 + '0');
  47. UART_send_byte((temp/100)%10 + '0');
  48. UART_send_byte((temp/10)%10 + '0');
  49. UART_send_byte('.');
  50. UART_send_byte(temp%10 + '0');
  51. UART_send_byte('c');
  52. UART_send_byte('m');
  53. }
  54. //主函数
  55. main()
  56. {
  57. UART_init();//初始化
  58. init();        //初始化
  59. Trig=0;//先把引脚拉低
  60. while(1)//进入循环
  61. {
  62. Trig=1;
  63. delay();//产生脉冲
  64. Trig=0;
  65. while(Echo==0);//等待引脚被拉高
  66. TR0=1;//打开定时器0
  67. EX0=1;//打开中断
  68. while(TH0<250);//正在测量数据,需要等待
  69. TR0=0;
  70. TL0=0;
  71. TH0=0;
  72. UART_send_dat(distance);//向串口发送测得的distance
  73. UART_send_byte('\r');
  74. UART_send_byte('\n');
  75. }
  76. }
  77. void extra_interrupt() interrupt 0        //外部中断0
  78. {
  79. distance=(256*TH0+TL0)*0.184;//测得最小精度位mm(晶振为11059200Hz)
  80. //P0=Echo;
  81. EX0=0;//关闭中断
  82. }
复制代码


所有资料51hei提供下载:
AJ-SR04M测试程序(51).zip (24.05 KB, 下载次数: 60)


评分

参与人数 3黑币 +67 收起 理由
perfect123 + 12 很给力!
HEY1800 + 5 很给力!
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:277550 发表于 2018-1-18 21:55 | 只看该作者

配置直接输出串口的,很方便

~
回复

使用道具 举报

板凳
ID:227688 发表于 2018-10-28 15:50 | 只看该作者
大神,请问一下,为何我的AJ-SR04M模块用这程序,指示灯不亮,串口接到的都是些p483n0什么什么的    这是没驱动成功的原因吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表