资源简介
/*
CX20106A 超声波发送与接受程序
40KHz脉冲由单AT89S52单片机P1.0口送出,由P3.2(INT0)采用中断方式接收。
定时器0,定时器1中断方式工作,T1为8位自动重装模式(定时12.5us),T0为16位定时器(定时约65ms)
超声波接受采用外部中断INT0,接受到返回脉冲后,在外部中断程序中计算距离。
65ms超声波传播距离约65×10^(-3) × 340m/s =22.1m,距离足够了,远超CX20106A的测量范围。
40KHz对应波周期T=1/40KHz =25us,方波高占空比50%,高低电平宽度分别占0.5T=12.5us。
定时器T1采用8位自动重装模式(定时12.5us), 在单片机采用12MHz晶振的前提下,(2^8-X)×12/12 us =12.5us
(1) 当X=0xF3时,2^8-X=13, (2) 当X=0xF4时,2^8-X = 12,
所以,取X=0xF3,0xF4均可以满足计时要求。
距离显示在4位数码管上,单位为cm。
*/
/*
单片机P2口接74HC138(三八译码器)P2.3--74HC138:/EI、P2.2--74HC138:A2、P2.1--74HC138:A1、P2.0--74HC138:A0
译码器输出 Y0,Y1、Y2、Y3、Y4、Y5、Y6、Y7均低电平有效,分别选通1~8个数码管。包括2个四位一体数码管LG3641BH,共2x4=8个数码管。
数码管数据口为P0口。数码管为共阳4位一体数码管。
功能:
译码器输出为1——8个数码管的段选信号,轮流选择1——8数码管。
dispaly(uint d)将d(distance)的千、百、十、个依次显示在1~3号数码管上。
显示原理:
1、送出要显示的段数
2、P2译码,选择要显示的位
3、延时1——2ms,时间不能太长,否则会闪烁,也不能太短,否则会很暗。
4、取消段选,消隐!
若要显示多段,重复以上4步!
*/

代码片段和文件信息
/*
CX20106A 超声波发送与接受程序
40KHz脉冲由单AT89S52单片机P1.0口送出,由P3.2(INT0)采用中断方式接收。
定时器0,定时器1中断方式工作,T1为8位自动重装模式(定时12.5us),T0为16位定时器(定时约65ms)
超声波接受采用外部中断INT0,接受到返回脉冲后,在外部中断程序中计算距离。
65ms超声波传播距离约65×10^(-3) × 340m/s =22.1m距离足够了,远超CX20106A的测量范围。
40KHz对应波周期T=1/40KHz =25us方波高占空比50%,高低电平宽度分别占0.5T=12.5us。
定时器T1采用8位自动重装模式(定时12.5us) 在单片机采用12MHz晶振的前提下,(2^8-X)×12/12 us =12.5us
(1) 当X=0xF3时,2^8-X=13 (2) 当X=0xF4时,2^8-X = 12,
所以,取X=0xF30xF4均可以满足计时要求。
距离显示在4位数码管上,单位为cm。
*/
/*
单片机P2口接74HC138(三八译码器)P2.3--74HC138:/EI、P2.2--74HC138:A2、P2.1--74HC138:A1、P2.0--74HC138:A0
译码器输出 Y0,Y1、Y2、Y3、Y4、Y5、Y6、Y7均低电平有效,分别选通1~8个数码管。包括2个四位一体数码管LG3641BH,共2x4=8个数码管。
数码管数据口为P0口。数码管为共阳4位一体数码管。
功能:
译码器输出为1——8个数码管的段选信号,轮流选择1——8数码管。
dispaly(uint d)将d(distance)的千、百、十、个依次显示在1~3号数码管上。
显示原理:
1、送出要显示的段数
2、P2译码,选择要显示的位
3、延时1——2ms,时间不能太长,否则会闪烁,也不能太短,否则会很暗。
4、取消段选,消隐!
若要显示多段,重复以上4步!
*/
#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit VOUT =P1^0; //P1.0:40KHz发送端子
sbit RX =P1^1; //P1.1: 由亮到灭说明受到了超声波脉冲.
bit success = 0; //接收成功标志位
void delay(uchar x); //x*0.14MS
void display(uint d); //显示距离d(distance)
sbit P2_3 =P2^3; // 74HC138--/EI
sbit P2_2 =P2^2; // 74HC138--A2
sbit P2_1 =P2^1; // 74HC138--A1
sbit P2_0 =P2^0; // 74HC138--A0
uchar num; //超声波脉冲个数控制(为num值的一半)
float time; //超声波传播时间
uint distance; //距离
uchar code table[]={
0xc00xf90xa40xb0
0x990x920x820xf8
0x800x900x880x83
0xc60xa10x860x8e
}; // 共阳数码管0——F
/*******************************************************************/
main()
{
// IE = 0x81; //允许总中断中断使能 INT0 外部中断
// TCON = 0x01; //触发方式为脉冲负边沿触发
uint i;
TMOD = 0x21; //T1为8位自动重装模式,T0为16位定时器
TH0 = 0x00; //65ms初值
TL0 = 0x00; //
TH1 = 0xF3; //12.5us初值
TL1 = 0xF3; //12.5us初值
P0=0xff;
P1=0xff;
P2=0xff;
P3=0xff;
num =4; //超声波脉冲个数控制(为num值的一半)
PX0 = 1; //外部中断优先
ET0 = 1; //允许T0中断
EA = 1;
TR0 =1; //开启测距定时器
while(1)
{
while(success==0) //收到反射信号时,success为1。
{
display(distance);
RX = 0;
}
RX =1;
EA = 0;
for(i=655; i>0; i--) //保持显示一段时间
{
display(distance);
}
EA = 1;
TR0 =1; //重新开启测距定时器
success = 0;
}
} //end main
/**********************************************************/
void exterior() interrupt 0 //外部中断0,收到回波时进入
{
TR0 = 0; //关定时器0
TR1 = 0; //关定时器1
ET1 = 0;
EA = 0;
EX0 = 0;
time = TH0;
time = time*256 + TL0; //time单位:us
distance = time*17/1000; //单位:cm,光速:340m/s.
success = 1;
}
/**********************************************************/
void timer0mode1() interrupt 1 //T0中断,65ms中断一次
{
EA = 0;
TR0 = 0;
TH0 =0x00;
TL0 =0x00;
ET1 =1;
EA = 1;
TR0 =1; //启动定时器T0,用以计算超声波来回时间
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1014784 2014-07-09 16:55 C51超声波测距程序\C51超声波测距.doc
文件 5083 2014-07-09 16:44 C51超声波测距程序\main.c
文件 473148 2014-06-26 13:41 C51超声波测距程序\参考-51单片机超声波测距程序.rar
文件 272670 2014-06-26 13:57 C51超声波测距程序\参考-基于CX20106超声波测距的调试.rar
文件 29950 2014-06-26 13:59 C51超声波测距程序\参考-超声波测距.rar
文件 62522 2014-06-26 13:51 C51超声波测距程序\重要参考-超声波测距仪实现.rar
目录 0 2014-07-09 17:01 C51超声波测距程序
----------- --------- ---------- ----- ----
1858157 7
- 上一篇:在线客服聊天后台系统设计与实现
- 下一篇:室内清洁机器人的全区域路径规划及避障研究
相关资源
- STM32f103超声波模块例程
- 用于无线传感器网络应用的超声波传
- VL53L0X激光测距传感器资料
- 用两个摄像头实现,双目标定,双目
- opencv视觉测距
- 循迹小车51程序(超声波 颜色识别 舵
- 基于51单片机的超声波测距技术实现含
- 51单片机智能小车花式,寻迹,红外,
- 论文研究 - Barkhausen检测距离对冷轧低
- 基于M-BUS的矿用超声波明渠流量计设计
- 超声波遥控开关电路图
- 基于51单片机超声波测距毕业设计
- STM32F103RCT6 TIME4 TIME5 同时捕获六路
- HC-SR04超声波模块(包含基于51stm32配套
- STM32f103C8t6型单片机用于超声波测距
- bumblebee双目标定/伪彩色深度图/鼠标测
- 超声波车速测量系统设计
- 基于单片机控制和超声波传感器的液
- 基于超声波定位的跟随小车
- 基于STM32VET6的身高体重肺活量测量系
- STM32F103_FREERTOS_MPU6050DMP_USART_Timer输入捕
- 超声波传感器全套资料
- 超声波雾化器专用IC
- stm32-超声波避障程序案例
- MSP432蓝牙控制小车并进行超声波测距
- 激光测距模块简易测量(STM32F429).
- 激光测距模块tof10120基于stm32f103开发板
- 单目视觉测距系统
- stm32f103超声波传感器hcsr04控制模板
- 红外测距系统设计
评论
共有 条评论