• 方案介紹
    • 1.? 簡介
    • 2.? 主要功能
    • 3.? 源程序(Keil5)
    • 4.? 仿真proteus8.6
    • 5.? 設(shè)計報告
    • 6.? 資料清單
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

基于51單片機的數(shù)碼管超聲波測距系統(tǒng)設(shè)計

04/11 08:17
858
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

單片機仿真設(shè)計合集資料獲取.pdf

共1個文件

資料清單:C程序+仿真+設(shè)計報告+使用說明+元件清單+操作視頻

仿真版本:Proteus8.6及以上版本

程序編譯:Keil5 C51

編程語言:C語言

設(shè)計編號:【H01】

1.? 簡介

? 本文提出了一種基于51單片機數(shù)碼管超聲波測距系統(tǒng)。該設(shè)計使用ATC89C51單片機、HC_SR04超聲波測距模塊、數(shù)碼管顯示模塊以及聲光報警模塊。用戶可設(shè)置報警閾值,當(dāng)實際距離小于設(shè)定閾值時啟動聲光報警。

2.? 主要功能

a.通過數(shù)碼管顯示實際距離、報警閾值。

b.通過獨立按鍵設(shè)置報警閾值。

c.當(dāng)實際距離小于設(shè)定閾值時啟動聲光報警。

3.? 源程序(Keil5)

本設(shè)計采用keil5 C51軟件(內(nèi)附安裝包)實現(xiàn)程序設(shè)計。如需用keil4打開程序,可自行通過.c和.h文件新建工程即可。

#include <reg52.H>//器件配置文件
#include <intrins.h>
//傳感器接口
sbit RX  = P3^2;
sbit TX  = P3^3;
//按鍵聲明
sbit S1  = P1^4;
sbit S2  = P1^5;
sbit S3  = P1^6;
//蜂鳴器
sbit Feng= P2^0;

sbit W1=P1^0;
sbit W2=P1^1;
sbit W3=P1^2;
sbit W4=P1^3;
//變量聲明
unsigned int  time=0;
unsigned int  timer=0;
unsigned char posit=0;
unsigned long S=0;
unsigned long BJS=20;//報警距離80CM
//模式 0正常模式 1調(diào)整
char Mode=0;
bit  flag=0;
bit flag_KEY=0;
unsigned char const discode[] ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0xff/*-*/};	
//數(shù)碼管顯示碼0123456789-和不顯示unsigned char const positon[4]={0xfd,0xfb,0xf7,0xfe};	//位選
unsigned char disbuff[4]	   ={0,0,0,0};		 //數(shù)組用于存放距離信息
unsigned char disbuff_BJ[4]	={0,0,0,0};//報警信息
void Display();
//延時20ms(不精確)
void delay(void)
{
    unsigned char a,b,c;
    for(c=2;c>0;c--)
        for(b=38;b>0;b--)
            for(a=60;a>0;a--);
}

//按鍵掃描
void Key_()
{
	if(flag_KEY==0)
	{
		if(Mode!=0)
		{
			//+
			if(S1==0)
			{
				delay();	   //延時去抖
				if(S1==0)
				{
					BJS++;	 //報警值加
					flag_KEY=1;
					if(BJS>=151) //最大151
					{
						BJS=0;
					}
//					while(S1==0)
//					Display();
				}
				
			}
			//-
			if(S2==0)
			{
				delay();
				if(S2==0)
				{
					BJS--;	 //報警值減
					flag_KEY=1;
					if(BJS<=1)	 //最小1
					{
						BJS=150;
					}	
//					while(S2==0)
//					Display();
				}
				
			}
		}
		//功能
		if(S3==0)		//設(shè)置鍵
		{
			delay();
			if(S3==0)
			{
				Mode++;		//模式加
				flag_KEY=1;
				if(Mode>=2)		//加到2時清零
				{
					Mode=0;
				}
				while(S3==0)
				Display();
			}
		}
	}

4.? 仿真proteus8.6

? 本設(shè)計采用proteus8.6軟件(內(nèi)附安裝包)實現(xiàn)仿真設(shè)計,如下圖所示。proteus軟件一般存在高低版本兼容問題,該仿真是通過proteus8.6導(dǎo)出的,所以請盡量使用proteus8.6打開文件,低于proteus8.6的版本不能夠正常使用,高于proteus8.6的版本除了proteus8.8/8.9理論上可以正常使用。

設(shè)置報警閾值:

當(dāng)實際距離小于設(shè)定閾值時啟動聲光報警:

5.? 設(shè)計報告

設(shè)計報告主要包括硬件電路、軟件設(shè)計、仿真調(diào)試等等,僅供參考。

6.? 資料清單

設(shè)計資料主要包括C程序+仿真+設(shè)計報告+使用說明+元件清單+操作視頻等。

百度網(wǎng)盤下載鏈接:【H01】百度網(wǎng)盤下載鏈接

更多單片機仿真設(shè)計合集:單片機仿真設(shè)計合集

  • 單片機仿真設(shè)計合集資料獲取.pdf
    下載

相關(guān)推薦