#include <SLH89F5162.H>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define RX P1_3 //echo
#define TX P1_4 //trig
uint time=0;
unsigned long S=0;
uint G=0;
bit flag =0;
sbit beep=P1^2;
sbit led =P1^5;
sbit lcden=P1^1;
sbit lcdrs=P1^0;
uchar code ASCII[15] = {'0','1','2','3','4','5','6','7','8','9','.','-','M'};
uchar disbuff[4] ={ 0,0,0,0,};
/********************************************************/
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
/********************************************************/
void beepit(uint s)
{
beep = 0;
delay(1);
beep = 1;
delay(1);
}
/*************************1602*******************************/
void write_com(uchar com)
{
lcdrs=0;
P2=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_data(uchar date)
{
lcdrs=1;
P2=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()
{
lcden=0;
write_com(0x38); //显示模式设置
write_com(0x0e); //开显示 显示光标,光标不闪烁
write_com(0x06); //
write_com(0x01);
write_com(0x80);
}
/****************1602***********************************/
/********************************************************/
void Conut(void)
{
time=TH0*256+TL0;//这是将字节转换成十进制数,
//*比如定时器中装的是0xabcd,转换成十进制数就是d+c*16+b*16*16+a*16*16*16=43981,
//我们可以发现ab*256=(b+a*16)*256=43776,cd=d+c*16=205,43776+205=43981,
//所以TH0*256+TL0成立*/
TH0=0;
TL0=0;
S=(time*1.87)/100; //算出来是CM
/*
S=340×t/2=170×t
因为单片机内部定时器的计时实际上就是对机器周期T的计数,而本设计中时钟频率fosc取11.0592 MHz,设计数值N,则:
T=12/fosc=0.000001085s
t=N×T=N ×0.000001085(s)
S=170×N×T=1.85*n(m)
*/
if((S>=700) || flag==1) //超出测量
{
flag=0;
led = 1;
led = 0;
delay(300);
led = 1;
init();
write_data(0X4E); //n
write_data(0X55); //u
write_data(0X4C); //l
write_data(0X4C); //l
}else
{
if (S<=30 && S>=15)
{
beepit(1);
}
if (S<15 && S>=10)
{
beepit(2);
delay(50);
beepit(2);
}
if (S<10 && S>=2)
{
beepit(3);
delay(20);
beepit(3);
delay(10);
beepit(3);
}
disbuff[0]=(S%1000)/100;
disbuff[1]=S%1000%100/10;
disbuff[2]=S%1000%10 %10;
init();
write_data(ASCII[disbuff[0]]);
write_data(ASCII[10]);
write_data(ASCII[disbuff[1]]);
write_data(ASCII[disbuff[2]]);
write_data(0x4D);
}
}
/********************************************************/
void zd0() interrupt 1 //T0中断用来计数器溢出,超过测距范围
{
flag=1; //中断溢出标志,如果溢出,则超过了距离,因为溢出的时候如果还有效那至少22米以后了。
}
/********************************************************/
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=0x01; //设定时器0为方式1,16位定时定时器
TH0=0;
TL0=0;
ET0=1; //允许T0中断
EA=1;//开启总中断
//RX = 1;
while(1)
{
StartModule();
while(!RX); //当RX为零时等待
TR0=1; //定时器0开始工作
while(RX); //当RX为1计数并等待
TR0=0; //关闭计数
Conut(); //计算
delay(500); //100MS
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于AT89C52RC单片机设计的倒车雷达超声波测距ALTIUM硬件原理图PCB+软件源码文件.zip
共16个文件
bak:2个
lnp:1个
uvproj:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 3 下载量 22 浏览量
2022-04-28
13:46:58
上传
评论 2
收藏 3MB ZIP 举报
温馨提示
基于AT89C52RC单片机设计的倒车雷达超声波测距ALTIUM硬件原理图PCB+软件源码文件,硬件采用2层板设计,大小为120*84mm,包括原理图及PCB及软件测试代码,可供学习设计参考。 void main(void) { TMOD=0x01; //设定时器0为方式1,16位定时定时器 TH0=0; TL0=0; ET0=1; //允许T0中断 EA=1;//开启总中断 //RX = 1; while(1) { StartModule(); while(!RX); //当RX为零时等待 TR0=1; //定时器0开始工作 while(RX); //当RX为1计数并等待 TR0=0; //关闭计数 Conut(); //计算 delay(500); //100MS }
资源推荐
资源详情
资源评论
收起资源包目录
基于AT89C52RC单片机设计的倒车雷达超声波测距ALTIUM硬件原理图PCB+软件源码文件.zip (16个子文件)
超声波PCB和原理图
超声波.SchDoc 131KB
超声波.PcbDoc 642KB
深联华设计大赛项目报告书.doc 2.67MB
超声波程序
chaoshengbo.uvopt 54KB
chaoshengbo 10KB
chaoshengbo.lnp 54B
chaoshengbo.OBJ 11KB
STARTUP.A51 6KB
chaoshengbo.M51 13KB
chaoshengbo.hex 5KB
chaoshengbo.c 4KB
chaoshengbo.LST 9KB
chaoshengbo_uvproj.bak 13KB
chaoshengbo_uvopt.bak 54KB
chaoshengbo.uvproj 13KB
chaoshengbo.plg 181B
共 16 条
- 1
资源评论
- sj2580002023-04-13资源内容详实,描述详尽,解决了我的问题,受益匪浅,学到了。
- m0_739837612022-10-11资源和描述一致,质量不错,解决了我的问题,感谢资源主。
- H35159751172024-03-19资源内容详实,描述详尽,解决了我的问题,受益匪浅,学到了。
探索者我有我路向
- 粉丝: 283
- 资源: 1816
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功