1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 55 基于51单片机超声波测距仪数码管系统设计 (程序+原理图+PCB图+参考论文+开题报告

55 基于51单片机超声波测距仪数码管系统设计 (程序+原理图+PCB图+参考论文+开题报告

时间:2022-02-06 20:40:47

相关推荐

55 基于51单片机超声波测距仪数码管系统设计 (程序+原理图+PCB图+参考论文+开题报告

一、设计简介:

本设计是基于51单片机超声波测距仪数码管系统设计,主要实现以下功能:

1. 单片机型号:STC89C52/51、AT89C52/51、AT89S52/51 可通用。

2.产品自带单片机上电复位电路、手动复位电路(复位按键)、晶振电路(给单片机提供时钟周期)。

3.数码管显示超声波测到的距离。

4.当超声波测出的距离小于设定的距离时就会使得蜂鸣器报警。

5.可设置 报警距离,按下设置键后 就可以再按 加减键 就可以修改报警距离并具有掉电保存功能。

6.HC-SR04超声波传感器模块测距,测量范围:2cm--5m。

主要硬件组成:

51单片机+HC-SR04超声波传感器+数码管+按键+蜂鸣器

二、原理图

三、PCB图

四、程序源码

部分代码:

/******************小延时函数*****************/

void delay()

{

_nop_(); //执行一条_nop_()指令就是1us

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

}

/*********************超声波测距程序*****************************/

void send_wave()

{

c_send = 1; //10us的高电平触发

delay();

c_send = 0;

TH0 = 0; //给定时器0清零

TL0 = 0;

TR0 = 0;//关定时器0定时

while(!c_recive); //当c_recive为零时等待

TR0=1;

while(c_recive)//当c_recive为1计数并等待

{

flag_time0 = TH0 * 256 + TL0;

if((flag_time0 > 40000)) //当超声波超过测量范围时,显示3个888

{

TR0 = 0;

flag_csb_juli = 2;

distance = 888;

break ;

}

else

{

flag_csb_juli = 1;

}

}

if(flag_csb_juli == 1)

{

TR0=0; //关定时器0定时

distance =flag_time0; //读出定时器0的时间

distance *= 0.017; // 0.017 = 340M / 2 = 170M = 0.017M 算出来是米

if((distance > 600))//距离 = 速度 * 时间

{

distance = 888;//如果大于6m就超出超声波的量程

}

}

}

/*********************定时器0、定时器1初始化******************/

void time_init()

{

EA = 1; //开总中断

TMOD = 0X11; //定时器0、定时器1工作方式1

ET0 = 0; //关定时器0中断

TR0 = 1; //允许定时器0定时

ET1 = 1; //开定时器1中断

TR1 = 1; //允许定时器1定时

}

/***************主函数*****************/

void main()

{

beep = 0; //开机叫一声

delay_1ms(150);

P0 = P1 = P2 = P3 = 0xff; //初始化单片机IO口为高电平

time_init(); //定时器初始化程序

while(1)

{

flag_300ms ++; //加1

if(flag_300ms >= 300)

{

flag_300ms = 0;

send_wave(); //测距离函数

if(menu_1 == 0)

{

dis_smg[0] = smg_du[distance % 10]; //显示距离

dis_smg[1] = smg_du[distance / 10 % 10];

dis_smg[2] = smg_du[distance / 100 % 10] & 0xdf; ;

dis_smg[3] = 0xff;//不显示

}

clock_h_l(); //报警函数

}

五、资源获取

本项目包含的所有文件都可以点击下面的名片,发送 “55、基于51单片机超声波测距仪数码管系统设计” 获取!

项目纯手打,不是免费的哦~

希望可以帮到你哈!

55 基于51单片机超声波测距仪数码管系统设计 (程序+原理图+PCB图+参考论文+开题报告+元器件清单等)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。