国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

畢業(yè)設(shè)計(jì) 基于單片機(jī)的導(dǎo)盲拐杖設(shè)計(jì)(源碼+硬件+論文)

這篇具有很好參考價(jià)值的文章主要介紹了畢業(yè)設(shè)計(jì) 基于單片機(jī)的導(dǎo)盲拐杖設(shè)計(jì)(源碼+硬件+論文)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


0 前言

??
這兩年開始畢業(yè)設(shè)計(jì)和畢業(yè)答辯的要求和難度不斷提升,傳統(tǒng)的畢設(shè)題目缺少創(chuàng)新和亮點(diǎn),往往達(dá)不到畢業(yè)答辯的要求,這兩年不斷有學(xué)弟學(xué)妹告訴學(xué)長自己做的項(xiàng)目系統(tǒng)達(dá)不到老師的要求。

為了大家能夠順利以及最少的精力通過畢設(shè),學(xué)長分享優(yōu)質(zhì)畢業(yè)設(shè)計(jì)項(xiàng)目,今天要分享的是

?? 畢業(yè)設(shè)計(jì) 基于單片機(jī)的導(dǎo)盲拐杖設(shè)計(jì)(源碼+硬件+論文)

??學(xué)長這里給一個(gè)題目綜合評分(每項(xiàng)滿分5分)

  • 難度系數(shù):3分
  • 工作量:3分
  • 創(chuàng)新點(diǎn):4分

?? 項(xiàng)目分享:

https://gitee.com/sinonfin/sharing文章來源地址http://www.zghlxwxcb.cn/news/detail-449240.html

畢業(yè)設(shè)計(jì) 基于單片機(jī)的導(dǎo)盲拐杖設(shè)計(jì)(源碼+硬件+論文)

1 主要功能

本設(shè)計(jì)模仿蝙蝠的超聲應(yīng)用能力和原理,在研究現(xiàn)有的電子式超聲波測距系統(tǒng)的基礎(chǔ)上,應(yīng)用回聲定位的原理,通過傳感器發(fā)送超聲波,然后獲得并分析障礙物的回波信息,研制的一套超聲波導(dǎo)盲系統(tǒng)[11]。系統(tǒng)采用STC89C52RC單片機(jī)作為控制器,利用超聲測距的原理,設(shè)計(jì)了一種超聲波導(dǎo)盲裝置,該裝置可以對盲人前方道路上的障礙物進(jìn)行距離探測并把障礙物距離信息轉(zhuǎn)換成語音提示,盲人可以根據(jù)提示音,避讓障礙同時(shí)達(dá)到導(dǎo)盲作用。該系統(tǒng)具有硬件結(jié)構(gòu)簡單、工作可靠、測量誤差小等特點(diǎn)。
主要的設(shè)計(jì)有:

主機(jī)功能

  1. 超聲波測距測試距離并且顯示;
  2. 可以按鍵設(shè)置報(bào)警距離,在閾值內(nèi)可以發(fā)出語音播報(bào)和震動(dòng)提示盲人如何行走;
  3. 按鍵按下可以播報(bào)當(dāng)前時(shí)間,時(shí)鐘ds1302獲取;
  4. 整點(diǎn)報(bào)時(shí);
  5. 具有g(shù)ps定位系統(tǒng),并可以通過sim800模塊發(fā)送經(jīng)緯坐標(biāo)到家人手機(jī)上;
  6. 手機(jī)號(hào)可以自行設(shè)置;
  7. dht11檢測濕度,當(dāng)濕度過高時(shí),發(fā)出語音提示;
  8. 角度傳感器檢測角度,判斷是否摔倒,如果摔倒發(fā)送短信到預(yù)設(shè)手機(jī)號(hào)。

從機(jī)為藍(lán)牙耳機(jī)

  1. 接受主機(jī)發(fā)送的提示信號(hào);
  2. 播放相應(yīng)狀態(tài)下的語音。

2 硬件設(shè)計(jì)(原理圖)

該系統(tǒng)由單片機(jī)、超聲波發(fā)射接收電路、液晶顯示電路、聲光報(bào)警模塊、溫濕度采集模塊,GPS定位模塊、短信SIM800模塊、時(shí)鐘模塊、藍(lán)牙模塊以及運(yùn)動(dòng)軸模塊組成,控制核心為單片機(jī)。單片機(jī)在接收到傳感器的信息后,將傳感器的信號(hào)轉(zhuǎn)換為距離信息,通過語音播報(bào)或振動(dòng)提示。

畢業(yè)設(shè)計(jì) 基于單片機(jī)的導(dǎo)盲拐杖設(shè)計(jì)(源碼+硬件+論文)
畢業(yè)設(shè)計(jì) 基于單片機(jī)的導(dǎo)盲拐杖設(shè)計(jì)(源碼+硬件+論文)
畢業(yè)設(shè)計(jì) 基于單片機(jī)的導(dǎo)盲拐杖設(shè)計(jì)(源碼+硬件+論文)
畢業(yè)設(shè)計(jì) 基于單片機(jī)的導(dǎo)盲拐杖設(shè)計(jì)(源碼+硬件+論文)

3 核心軟件設(shè)計(jì)

本次設(shè)計(jì)采用是以單片機(jī)為主控核心,C語言為編程語言,所以采用的軟件設(shè)計(jì)平臺(tái),我采用了Keil為主要的編譯平臺(tái)。該平臺(tái)是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、鏈接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境將這些部分組合在一起。運(yùn)行Keil軟件需要WIN系列操作系統(tǒng)。

傳感器對盲人拐杖狀態(tài)的判定以及對周圍環(huán)境的判定。
畢業(yè)設(shè)計(jì) 基于單片機(jī)的導(dǎo)盲拐杖設(shè)計(jì)(源碼+硬件+論文)
從機(jī)部分將通過語音播報(bào)模塊做出相應(yīng)的語音播報(bào)
畢業(yè)設(shè)計(jì) 基于單片機(jī)的導(dǎo)盲拐杖設(shè)計(jì)(源碼+硬件+論文)
本次按鍵模塊需要軟件邏輯設(shè)計(jì)實(shí)現(xiàn)對經(jīng)緯度的顯示、時(shí)間正點(diǎn)播報(bào)、時(shí)間設(shè)定以及安全距離設(shè)定。
畢業(yè)設(shè)計(jì) 基于單片機(jī)的導(dǎo)盲拐杖設(shè)計(jì)(源碼+硬件+論文)
超聲波電機(jī)振動(dòng)警報(bào)模塊檢測到有障礙物在安全距離內(nèi)時(shí)也會(huì)發(fā)出語音警報(bào),同時(shí)主機(jī)的聲光報(bào)警系統(tǒng)也會(huì)發(fā)出響聲警報(bào)。
畢業(yè)設(shè)計(jì) 基于單片機(jī)的導(dǎo)盲拐杖設(shè)計(jì)(源碼+硬件+論文)
為了避免盲人摔倒的意外發(fā)生,使用了MPU6050角度運(yùn)動(dòng)傳感器,當(dāng)盲人出了什么意外的時(shí)候,通過SIM800模塊向盲人家屬傳遞盲人摔倒的信息。
畢業(yè)設(shè)計(jì) 基于單片機(jī)的導(dǎo)盲拐杖設(shè)計(jì)(源碼+硬件+論文)

關(guān)鍵代碼

#include "main.h"
#include "uart.h"
#include"lcd.h"
#include"ds1302.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <INTRINS.H> 



sbit     key_1    =  P1 ^ 0;	  //按鍵
sbit     key_2    =  P1 ^ 1;	  //按鍵
sbit     key_3    =  P1 ^ 2;	  //按鍵
sbit     key_4    =  P1 ^ 3;	  //按鍵

sbit     sw    =  P3 ^ 4;	  //串口切換
sbit     ele    =  P3 ^ 6;	  //電機(jī)
sbit  DHT11  = P3^7 ;  //dht11引腳定義
sbit  buz  = P2^0 ;  //聲光報(bào)警
sbit     RX_1    =  P1 ^ 6;	   //超聲波模塊
sbit     TX_1    =  P1 ^ 7;	  //超聲波模塊 


unsigned int  time_juli=0;

bit  flag =0;
int juli_a = 0;
bit chao_flag = 0;	  //超聲波標(biāo)量
int juli_down = 300; //小于距離



int X_mpu6050 = 0;
int Y_mpu6050 = 0;

char zf[3];


unsigned char hour=0,min=0;sec=0;   //定義uchar類型變量 時(shí) 分 秒

unsigned char warCount=0;//摔倒計(jì)數(shù)

//unsigned char num=0;  


int weidu_A = 0;		 //維度顯示A、B、C度分秒
int weidu_B = 0;
int weidu_C = 0;
int jingdu_A = 0;		 //精度顯示A、B、C度分秒
int jingdu_B = 0;
int jingdu_C = 0;


unsigned char user_number[11]= {0x31,0x33,0x31,0x30,0x30,0x32,0x36,0x31,0x30,0x36,0x39};//手機(jī)號(hào)

unsigned char humiDown=0;//濕度下限

bit showMode=0;//0-正常顯示數(shù)據(jù) 1-顯示gps

unsigned char count = 0;
int i=0; //用于for循環(huán)


unsigned char   U8FLAG,k;
unsigned char   U8count,U8temp;
unsigned char   U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;
unsigned char   U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;
unsigned char   U8comdata;
unsigned char dht11_temp = 0; //dht11溫度 
unsigned char dht11_humi = 0; //dht11濕度

void Delay10ms(unsigned int c)   //誤差 0us
{
    unsigned char a, b;
	//--c已經(jīng)在傳遞過來的時(shí)候已經(jīng)賦值了,所以在for語句第一句就不用賦值了--//
    for (;c>0;c--)
	{
		for (b=38;b>0;b--)
		{
			for (a=130;a>0;a--);
		}          
	}       
}


void beep()
{
	buz=0;
	Delay10ms(20);
	buz=1;
	Delay10ms(20);
}

//


//****************************************
// 定義51單片機(jī)端口
//****************************************
sbit    SCL=P3^2;			//IIC時(shí)鐘引腳定義
sbit    SDA=P3^3;			//IIC數(shù)據(jù)引腳定義
//****************************************
// 定義MPU6050內(nèi)部地址
//****************************************
#define	SMPLRT_DIV		0x19	//陀螺儀采樣率,典型值:0x07(125Hz)
#define	CONFIG			0x1A	//低通濾波頻率,典型值:0x06(5Hz)
#define	GYRO_CONFIG		0x1B	//陀螺儀自檢及測量范圍,典型值:0x18(不自檢,2000deg/s)
#define	ACCEL_CONFIG	0x1C	//加速計(jì)自檢、測量范圍及高通濾波頻率,典型值:0x01(不自檢,2G,5Hz)
#define	ACCEL_XOUT_H	0x3B
#define	ACCEL_XOUT_L	0x3C
#define	ACCEL_YOUT_H	0x3D
#define	ACCEL_YOUT_L	0x3E
#define	ACCEL_ZOUT_H	0x3F
#define	ACCEL_ZOUT_L	0x40
#define	TEMP_OUT_H		0x41
#define	TEMP_OUT_L		0x42
#define	GYRO_XOUT_H		0x43
#define	GYRO_XOUT_L		0x44	
#define	GYRO_YOUT_H		0x45
#define	GYRO_YOUT_L		0x46
#define	GYRO_ZOUT_H		0x47
#define	GYRO_ZOUT_L		0x48
#define	PWR_MGMT_1		0x6B	//電源管理,典型值:0x00(正常啟用)
#define	WHO_AM_I			0x75	//IIC地址寄存器(默認(rèn)數(shù)值0x68,只讀)
#define	SlaveAddress	0xD0	//IIC寫入時(shí)的地址字節(jié)數(shù)據(jù),+1為讀取
//****************************************
//延時(shí)
//****************************************
//void delay(unsigned int k)	
//{						
//	unsigned int i,j;				
//	for(i=0;i<k;i++)
//	{			
//		for(j=0;j<121;j++);
//	}						
//}

//**************************************
//延時(shí)5微秒(STC90C52RC@12M)
//不同的工作環(huán)境,需要調(diào)整此函數(shù)
//當(dāng)改用1T的MCU時(shí),請調(diào)整此延時(shí)函數(shù)
//**************************************
void Delay5us()
{
	_nop_();_nop_();_nop_();_nop_();
	_nop_();_nop_();_nop_();_nop_();
	_nop_();_nop_();_nop_();_nop_();
	_nop_();_nop_();_nop_();_nop_();
	_nop_();_nop_();_nop_();_nop_();
	_nop_();_nop_();_nop_();_nop_();
}
//**************************************
//I2C起始信號(hào)
//**************************************
void I2C_Start()
{
    SDA = 1;                    //拉高數(shù)據(jù)線
    SCL = 1;                    //拉高時(shí)鐘線
    Delay5us();                 //延時(shí)
    SDA = 0;                    //產(chǎn)生下降沿
    Delay5us();                 //延時(shí)
    SCL = 0;                    //拉低時(shí)鐘線
}
//**************************************
//I2C停止信號(hào)
//**************************************
void I2C_Stop()
{
    SDA = 0;                    //拉低數(shù)據(jù)線
    SCL = 1;                    //拉高時(shí)鐘線
    Delay5us();                 //延時(shí)
    SDA = 1;                    //產(chǎn)生上升沿
    Delay5us();                 //延時(shí)
}
//**************************************
//I2C發(fā)送應(yīng)答信號(hào)
//入口參數(shù):ack (0:ACK 1:NAK)
//**************************************
void I2C_SendACK(bit ack)
{
    SDA = ack;                  //寫應(yīng)答信號(hào)
    SCL = 1;                    //拉高時(shí)鐘線
    Delay5us();                 //延時(shí)
    SCL = 0;                    //拉低時(shí)鐘線
    Delay5us();                 //延時(shí)
}
//**************************************
//I2C接收應(yīng)答信號(hào)
//**************************************
bit I2C_RecvACK()
{
    SCL = 1;                    //拉高時(shí)鐘線
    Delay5us();                 //延時(shí)
    CY = SDA;                   //讀應(yīng)答信號(hào)
    SCL = 0;                    //拉低時(shí)鐘線
    Delay5us();                 //延時(shí)
    return CY;
}
//**************************************
//向I2C總線發(fā)送一個(gè)字節(jié)數(shù)據(jù)
//**************************************
void I2C_SendByte(uchar dat)
{
    uchar i;
    for (i=0; i<8; i++)         //8位計(jì)數(shù)器
    {
        dat <<= 1;              //移出數(shù)據(jù)的最高位
        SDA = CY;               //送數(shù)據(jù)口
        SCL = 1;                //拉高時(shí)鐘線
        Delay5us();             //延時(shí)
        SCL = 0;                //拉低時(shí)鐘線
        Delay5us();             //延時(shí)
    }
    I2C_RecvACK();
}
//**************************************
//從I2C總線接收一個(gè)字節(jié)數(shù)據(jù)
//**************************************
uchar I2C_RecvByte()
{
    uchar i;
    uchar dat = 0;
    SDA = 1;                    //使能內(nèi)部上拉,準(zhǔn)備讀取數(shù)據(jù),
    for (i=0; i<8; i++)         //8位計(jì)數(shù)器
    {
        dat <<= 1;
        SCL = 1;                //拉高時(shí)鐘線
        Delay5us();             //延時(shí)
        dat |= SDA;             //讀數(shù)據(jù)               
        SCL = 0;                //拉低時(shí)鐘線
        Delay5us();             //延時(shí)
    }
    return dat;
}
//**************************************
//向I2C設(shè)備寫入一個(gè)字節(jié)數(shù)據(jù)
//**************************************
void Single_WriteI2C(uchar REG_Address,uchar REG_data)
{
    I2C_Start();                  //起始信號(hào)
    I2C_SendByte(SlaveAddress);   //發(fā)送設(shè)備地址+寫信號(hào)
    I2C_SendByte(REG_Address);    //內(nèi)部寄存器地址,
    I2C_SendByte(REG_data);       //內(nèi)部寄存器數(shù)據(jù),
    I2C_Stop();                   //發(fā)送停止信號(hào)
}
//**************************************
//從I2C設(shè)備讀取一個(gè)字節(jié)數(shù)據(jù)
//**************************************
uchar Single_ReadI2C(uchar REG_Address)
{
	uchar REG_data;
	I2C_Start();                   //起始信號(hào)
	I2C_SendByte(SlaveAddress);    //發(fā)送設(shè)備地址+寫信號(hào)
	I2C_SendByte(REG_Address);     //發(fā)送存儲(chǔ)單元地址,從0開始	
	I2C_Start();                   //起始信號(hào)
	I2C_SendByte(SlaveAddress+1);  //發(fā)送設(shè)備地址+讀信號(hào)
	REG_data=I2C_RecvByte();       //讀出寄存器數(shù)據(jù)
	I2C_SendACK(1);                //接收應(yīng)答信號(hào)
	I2C_Stop();                    //停止信號(hào)
	return REG_data;
}
//**************************************
//初始化MPU6050
//**************************************
void InitMPU6050()
{
	Single_WriteI2C(PWR_MGMT_1, 0x00);	//解除休眠狀態(tài)
	Single_WriteI2C(SMPLRT_DIV, 0x07);
	Single_WriteI2C(CONFIG, 0x06);
	Single_WriteI2C(GYRO_CONFIG, 0x18);
	Single_WriteI2C(ACCEL_CONFIG, 0x01);
}
//**************************************
//合成數(shù)據(jù)
//**************************************
int GetData(uchar REG_Address)
{
	uchar H,L;
	H=Single_ReadI2C(REG_Address);
	L=Single_ReadI2C(REG_Address+1);
	return (H<<8)+L;   //合成數(shù)據(jù)
}




void Delay(unsigned int j)
{
	unsigned char i;
	for(;j>0;j--)
	{
		for(i=0;i<27;i++);
	}
}
void Delay_10us(void)
{
	unsigned char i;
	i--;
	i--;
	i--;
	i--;
	i--;
	i--;
}

void  COM(void)
{    
	unsigned char i;
          
    for(i=0;i<8;i++)	   
	{
		
	   	U8FLAG=2;	
	while((!DHT11)&&U8FLAG++);
		Delay_10us();
		Delay_10us();
		Delay_10us();
	  	U8temp=0;
	if(DHT11)U8temp=1;
		U8FLAG=2;
	while((DHT11)&&U8FLAG++);
	   	//超時(shí)則跳出for循環(huán)		  
	if(U8FLAG==1)break;
	   	//判斷數(shù)據(jù)位是0還是1	 	   	   
		// 如果高電平高過預(yù)定0高電平值則數(shù)據(jù)位為 1 	   	 
		U8comdata<<=1;
	   	U8comdata|=U8temp;        //0
	}//rof	   
}

void get_dht11(void)
{
  //主機(jī)拉低18ms 
   DHT11=0;
   Delay(180);
   DHT11=1;
 //總線由上拉電阻拉高 主機(jī)延時(shí)20us
   Delay_10us();
   Delay_10us();
   Delay_10us();
   Delay_10us();
 //主機(jī)設(shè)為輸入 判斷從機(jī)響應(yīng)信號(hào) 
   DHT11=1;
 //判斷從機(jī)是否有低電平響應(yīng)信號(hào) 如不響應(yīng)則跳出,響應(yīng)則向下運(yùn)行	  
   if(!DHT11)		 //T !	  
   {
   U8FLAG=2;
 //判斷從機(jī)是否發(fā)出 80us 的低電平響應(yīng)信號(hào)是否結(jié)束	 
   while((!DHT11)&&U8FLAG++);
   U8FLAG=2;
 //判斷從機(jī)是否發(fā)出 80us 的高電平,如發(fā)出則進(jìn)入數(shù)據(jù)接收狀態(tài)
   while((DHT11)&&U8FLAG++);
 //數(shù)據(jù)接收狀態(tài)		 
   COM();
   U8RH_data_H_temp=U8comdata;
   COM();
   U8RH_data_L_temp=U8comdata;
   COM();
   U8T_data_H_temp=U8comdata;
   COM();
   U8T_data_L_temp=U8comdata;
   COM();
   U8checkdata_temp=U8comdata;
   DHT11=1;
 //數(shù)據(jù)校驗(yàn) 
 
   U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);
   if(U8temp==U8checkdata_temp)
   {
   	  U8RH_data_H=U8RH_data_H_temp;
   	  U8RH_data_L=U8RH_data_L_temp;
	  U8T_data_H=U8T_data_H_temp;
   	  U8T_data_L=U8T_data_L_temp;
	  dht11_temp = U8T_data_H;
	  dht11_humi = U8RH_data_H;

   	  U8checkdata=U8checkdata_temp;
   }
	 

	 
	 //fi
   }//fi

}
///











/********************************************************/
void  StartModule_1() 		         //T1中斷用來掃描數(shù)碼管和計(jì)800MS啟動(dòng)模塊
{
	  TX_1=1;			                 //800MS  啟動(dòng)一次模塊
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_();
	  _nop_(); 
	  _nop_(); 
	  _nop_(); 
	  _nop_();
	  TX_1=0;
}

/*****************測距函數(shù)*******************/
/********************************************************/
void Conut_1(void)
{
//   float a;
   time_juli=TH0*256+TL0;
   TH0=0;
   TL0=0;
   //溫度補(bǔ)償
   juli_a=time_juli*1.87/10;       //算出來是mM	  11。0592M晶振
   if(flag==1)		      //超出測量
   {	 
    	flag=0;
		juli_a = 0;
   }
  
}


void read_juli()
{
	chao_flag = 1; 	  //開始獲取
	//獲取距離
	StartModule_1();	//計(jì)算
 	while(!RX_1);		//當(dāng)RX為零時(shí)等待
	TH0=0;
	TL0=0; 
// 	TR0=1;			    //開啟計(jì)數(shù)
 	while(RX_1);			//當(dāng)RX為1計(jì)數(shù)并等待
// 	TR0=0;				//關(guān)閉計(jì)數(shù)

 	Conut_1();
	chao_flag = 0;	   //停止獲取
}









void Uart1Send(uchar c)
{
	SBUF=c;
	while(!TI);//等待發(fā)送完成信號(hào)(TI=1)出現(xiàn)
	TI=0;	
}


//串行口連續(xù)發(fā)送char型數(shù)組,遇到終止號(hào)/0將停止
void Uart1Sends(uchar *str)
{
	while(*str!='\0')													    
	{
		SBUF=*str;
		while(!TI);//等待發(fā)送完成信號(hào)(TI=1)出現(xiàn)
		TI=0;
		str++;
	}
}

void Uart_1Sends_B(uchar *str)
{
	char i=0;

	
	LCD_Write_Com(0xc0);  
	LCD_Write_Data(user_number[0]);
	LCD_Write_Data(user_number[1]);
	LCD_Write_Data(user_number[2]);
	LCD_Write_Data(user_number[3]);
	LCD_Write_Data(user_number[4]);
	LCD_Write_Data(user_number[5]);
	LCD_Write_Data(user_number[6]);
	LCD_Write_Data(user_number[7]);
	LCD_Write_Data(user_number[8]);
	LCD_Write_Data(user_number[9]);
	LCD_Write_Data(user_number[10]);
	
	
	
	while(*str!='\0')
	{
		if(i==12)
			SBUF = user_number[0];
		else if(i==16)
			SBUF = user_number[1];
		else if(i==20)
			SBUF = user_number[2];
		else if(i==24)
			SBUF = user_number[3];
		else if(i==28)
			SBUF = user_number[4];
		else if(i==32)
			SBUF = user_number[5];
		else if(i==36)
			SBUF = user_number[6];
		else if(i==40)
			SBUF = user_number[7];
		else if(i==44)
			SBUF = user_number[8];
		else if(i==48)
			SBUF = user_number[9];
		else if(i==52)
			SBUF = user_number[10];
		else
			SBUF=*str;
		 	 		
		while(!TI);//等待發(fā)送完成信號(hào)(TI=1)出現(xiàn)
		TI=0;

		str++;
		i++;
	}
}



//轉(zhuǎn)換數(shù)據(jù)
void switch_data(uchar a)
{
	switch(a)
	{
		case 0:  UartPrintf("0030"); break;
		case 1:  UartPrintf("0031"); break;
		case 2:  UartPrintf("0032"); break;
		case 3:  UartPrintf("0033"); break;
		case 4:  UartPrintf("0034"); break;
		case 5:  UartPrintf("0035"); break;
		case 6:  UartPrintf("0036"); break;
		case 7:  UartPrintf("0037"); break;
		case 8:  UartPrintf("0038"); break;
		case 9:  UartPrintf("0039"); break;
		default: UartPrintf("002E");break;
	}
}


void sendMes()
{
	
	   	Uart1Sends("AT+CMGF=1\r\n");
		Delay10ms(300);//延時(shí)2秒

   		Uart1Sends("AT+CSCS=\"UCS2\"\r\n");
		Delay10ms(300);//延時(shí)2秒
		
		Uart1Sends("AT+CSCA?\r\n");
		Delay10ms(300);//延時(shí)2秒

		Uart1Sends("AT+CSMP=17,167,0,24\r\n");
		Delay10ms(300);//延時(shí)2秒

		Uart_1Sends_B("AT+CMGS=\"00310033003300330033003300330039003200340033\"\r\n");//此處修改為對
		Delay10ms(300);//延時(shí)2秒
		Uart1Sends("970089815E2E52A9FF0C00670070007357506807FF1A");
		//發(fā)送gps坐標(biāo)
		//維度
		UartPrintf("7EF45EA6");
		switch_data(weidu_A%100/10);
		switch_data(weidu_A%10);
		//度
		UartPrintf("5EA6");
		switch_data(weidu_B%100/10);
		switch_data(weidu_B%10);
		//分
		UartPrintf("5206");
		switch_data(weidu_C%100/10);
		switch_data(weidu_C%10);
		//秒
		UartPrintf("79D20020");

		//經(jīng)度
		UartPrintf("7ECF5EA6");
		switch_data(jingdu_A/100);
		switch_data(jingdu_A%100/10);
		switch_data(jingdu_A%10);
		//度
		UartPrintf("5EA6");
		switch_data(jingdu_B%100/10);
		switch_data(jingdu_B%10);
		//分
		UartPrintf("5206");
		switch_data(jingdu_C%100/10);
		switch_data(jingdu_C%10);
		//秒
		UartPrintf("79D20020");
	
	
	
		Delay10ms(300);//延時(shí)2秒
		Uart1Send(0x1a);
		Delay10ms(300);//延時(shí)2秒
}


//輸入手機(jī)號(hào)
void inputTel()
{

}


void checkWar()
{
	//檢測距離
	if(juli_a<juli_down)
	{
		//發(fā)送播報(bào)信息
		Uart1Send(0xee);//字頭
		Uart1Send(0x03);//指令
		Uart1Send(0x00);
		Uart1Send(0x00);
		ele=0;
		beep();
		beep();
		beep();
		ele=1;
		Delay10ms(30);			
	}
	
	//整點(diǎn)報(bào)時(shí)
	 if((min==0)&&(sec<2))  
	{
		//發(fā)送播報(bào)信息
		Uart1Send(0xee);//字頭
		Uart1Send(0x00);//指令
		Uart1Send(hour);
		Uart1Send(0x00);
		beep();
		
		Delay10ms(30);
	}

4 實(shí)現(xiàn)效果

畢業(yè)設(shè)計(jì) 基于單片機(jī)的導(dǎo)盲拐杖設(shè)計(jì)(源碼+硬件+論文)
畢業(yè)設(shè)計(jì) 基于單片機(jī)的導(dǎo)盲拐杖設(shè)計(jì)(源碼+硬件+論文)
畢業(yè)設(shè)計(jì) 基于單片機(jī)的導(dǎo)盲拐杖設(shè)計(jì)(源碼+硬件+論文)

5 最后

包含內(nèi)容

畢業(yè)設(shè)計(jì) 基于單片機(jī)的導(dǎo)盲拐杖設(shè)計(jì)(源碼+硬件+論文)

?? 項(xiàng)目分享:

https://gitee.com/sinonfin/sharing

到了這里,關(guān)于畢業(yè)設(shè)計(jì) 基于單片機(jī)的導(dǎo)盲拐杖設(shè)計(jì)(源碼+硬件+論文)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【單片機(jī)畢業(yè)設(shè)計(jì)】【mcuclub-dz-196】基于單片機(jī)下的新型智能花盆設(shè)計(jì)

    【單片機(jī)畢業(yè)設(shè)計(jì)】【mcuclub-dz-196】基于單片機(jī)下的新型智能花盆設(shè)計(jì)

    項(xiàng)目名:基于單片機(jī)下的新型智能花盆設(shè)計(jì) 項(xiàng)目名:花盆(實(shí)物) 項(xiàng)目編號(hào):mcuclub-dz-196 單片機(jī)類型:STM32F103C8T6 具體功能: 1、通過防水式DS18B20測量土壤溫度,當(dāng)溫度高于設(shè)置最大值時(shí),進(jìn)行風(fēng)扇降溫,低于設(shè)置最大值,進(jìn)行防水加熱 2、通過土壤濕度傳感器檢測濕度值,

    2024年02月19日
    瀏覽(98)
  • 畢業(yè)設(shè)計(jì) - 基于單片機(jī)的智能飲水機(jī)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) (物聯(lián)網(wǎng) 嵌入式 單片機(jī))

    畢業(yè)設(shè)計(jì) - 基于單片機(jī)的智能飲水機(jī)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) (物聯(lián)網(wǎng) 嵌入式 單片機(jī))

    Hi,大家好,學(xué)長今天向大家介紹一個(gè) 單片機(jī)項(xiàng)目 基于單片機(jī)的智能飲水機(jī)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 大家可用于 課程設(shè)計(jì) 或 畢業(yè)設(shè)計(jì) 這次設(shè)計(jì)的智能飲水機(jī)就是單片機(jī)結(jié)合傳感器的一個(gè)應(yīng)用。 該系統(tǒng)設(shè)計(jì)綜合單片機(jī)以及電子技術(shù)理論,從生活實(shí)際出發(fā),完善了飲水機(jī)的功能。整個(gè)

    2024年02月03日
    瀏覽(107)
  • 【畢業(yè)設(shè)計(jì)】基于單片機(jī)控制的交通燈畢業(yè)設(shè)計(jì)(附源代碼)

    【畢業(yè)設(shè)計(jì)】基于單片機(jī)控制的交通燈畢業(yè)設(shè)計(jì)(附源代碼)

    目 錄 摘 ? 要 Abstract 前 ? 言 一、工程簡介 ( 一)、概述 ( 二 ) 、 工藝 流程圖 二、工程設(shè)計(jì) (一)、控制方案的確定 (二)、硬件部分 ( 1 )、交通燈控制系統(tǒng)的硬件設(shè)計(jì) ( 2 )、硬件系統(tǒng)的設(shè)計(jì)具備以下原則 ( 3 ) 、硬件結(jié)構(gòu)框圖 (如圖 3 所示) ( 4 ) 、交通燈控

    2024年04月23日
    瀏覽(97)
  • 基于單片機(jī)的導(dǎo)盲拐杖設(shè)計(jì)

    基于單片機(jī)的導(dǎo)盲拐杖設(shè)計(jì)

    目??? 錄 引言 1 1 系統(tǒng)概述??????? 1 1.1 設(shè)計(jì)研究的背景和意義??????? 1 1.2 本次設(shè)計(jì)內(nèi)容????? 1 2 系統(tǒng)設(shè)計(jì)的整體方案????? 2 2.1 主控芯片的方案論證?? 2 2.2 顯示模塊的方案論證?? 3 2.3 本章小節(jié)???? 4 3 系統(tǒng)硬件電路設(shè)計(jì) 4 3.1 單片機(jī)最小系統(tǒng)的電路設(shè)計(jì) 4 3.1

    2023年04月15日
    瀏覽(22)
  • 【單片機(jī)畢業(yè)設(shè)計(jì)】【mcuclub-dz-177】基于32單片機(jī)的自動(dòng)扶梯控制系統(tǒng)設(shè)計(jì)

    【單片機(jī)畢業(yè)設(shè)計(jì)】【mcuclub-dz-177】基于32單片機(jī)的自動(dòng)扶梯控制系統(tǒng)設(shè)計(jì)

    項(xiàng)目名:基于32單片機(jī)的自動(dòng)扶梯控制系統(tǒng)設(shè)計(jì) 項(xiàng)目名:扶梯(實(shí)物) 項(xiàng)目編號(hào):mcuclub-dz-177 單片機(jī)類型:STM32F103C8T6 具體功能: 1、通過MX1508驅(qū)動(dòng)兩個(gè)直流電機(jī)模擬上下扶梯(一個(gè)正轉(zhuǎn)代表上行,一個(gè)反轉(zhuǎn)代表下行) 2、每個(gè)扶梯都有兩個(gè)紅外對射管,進(jìn)行人數(shù)計(jì)數(shù),如果扶

    2024年02月21日
    瀏覽(96)
  • 【單片機(jī)畢業(yè)設(shè)計(jì)】【mcuclub-dz-112】基于單片機(jī)的智能飲水機(jī)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    【單片機(jī)畢業(yè)設(shè)計(jì)】【mcuclub-dz-112】基于單片機(jī)的智能飲水機(jī)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    項(xiàng)目名:基于單片機(jī)的智能飲水機(jī)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 項(xiàng)目名:基于單片機(jī)的飲水機(jī)的設(shè)計(jì) 單片機(jī):STC89C52 功能簡介: 1、通過一個(gè)按鍵模擬加熱電源的開關(guān) 2、通過防水式DS18B20檢測水溫,當(dāng)電源打開時(shí),溫度小于設(shè)置最小值,進(jìn)行自動(dòng)加熱,直到加熱到最大值時(shí)停止; 3、通過

    2024年03月09日
    瀏覽(792)
  • 畢業(yè)設(shè)計(jì) 基于51單片機(jī)的電子秤設(shè)計(jì)(源碼+硬件+論文)

    畢業(yè)設(shè)計(jì) 基于51單片機(jī)的電子秤設(shè)計(jì)(源碼+硬件+論文)

    ?? 這兩年開始畢業(yè)設(shè)計(jì)和畢業(yè)答辯的要求和難度不斷提升,傳統(tǒng)的畢設(shè)題目缺少創(chuàng)新和亮點(diǎn),往往達(dá)不到畢業(yè)答辯的要求,這兩年不斷有學(xué)弟學(xué)妹告訴學(xué)長自己做的項(xiàng)目系統(tǒng)達(dá)不到老師的要求。 為了大家能夠順利以及最少的精力通過畢設(shè),學(xué)長分享優(yōu)質(zhì)畢業(yè)設(shè)計(jì)項(xiàng)目,今天

    2024年02月11日
    瀏覽(96)
  • 畢業(yè)設(shè)計(jì) 基于單片機(jī)的GSM智能快遞柜設(shè)計(jì)(源碼+硬件+論文)

    畢業(yè)設(shè)計(jì) 基于單片機(jī)的GSM智能快遞柜設(shè)計(jì)(源碼+硬件+論文)

    ?? 這兩年開始畢業(yè)設(shè)計(jì)和畢業(yè)答辯的要求和難度不斷提升,傳統(tǒng)的畢設(shè)題目缺少創(chuàng)新和亮點(diǎn),往往達(dá)不到畢業(yè)答辯的要求,這兩年不斷有學(xué)弟學(xué)妹告訴學(xué)長自己做的項(xiàng)目系統(tǒng)達(dá)不到老師的要求。 為了大家能夠順利以及最少的精力通過畢設(shè),學(xué)長分享優(yōu)質(zhì)畢業(yè)設(shè)計(jì)項(xiàng)目,今天

    2024年01月23日
    瀏覽(105)
  • 畢業(yè)設(shè)計(jì) 基于51單片機(jī)智能停車場管理車位引導(dǎo)系統(tǒng)設(shè)計(jì)

    畢業(yè)設(shè)計(jì) 基于51單片機(jī)智能停車場管理車位引導(dǎo)系統(tǒng)設(shè)計(jì)

    選題之前,同學(xué)們要弄明白一件事情,做畢業(yè)設(shè)計(jì)是干什么用的! 這里我告訴大家,畢業(yè)設(shè)計(jì)對于你來說,不是讓你去搞研究,掌握運(yùn)用所學(xué)知識(shí)的,也不是讓你去比誰做的畢業(yè)設(shè)計(jì)多么牛逼,多么厲害。 說白點(diǎn),它的作用就是一個(gè),讓你順利畢業(yè),能夠拿到學(xué)位證,畢業(yè)

    2023年04月15日
    瀏覽(93)
  • 畢業(yè)設(shè)計(jì) 基于51單片機(jī)控制LED點(diǎn)陣顯示器的設(shè)計(jì)

    畢業(yè)設(shè)計(jì) 基于51單片機(jī)控制LED點(diǎn)陣顯示器的設(shè)計(jì)

    序 ?? 畢業(yè)設(shè)計(jì)和畢業(yè)答辯的要求和難度不斷提升,傳統(tǒng)的畢設(shè)題目缺少創(chuàng)新和亮點(diǎn),往往達(dá)不到畢業(yè)答辯的要求,這兩年不斷有學(xué)弟學(xué)妹告訴學(xué)長自己做的項(xiàng)目系統(tǒng)達(dá)不到老師的要求。 為了大家能夠順利以及最少的精力通過畢設(shè),學(xué)長分享優(yōu)質(zhì)畢業(yè)設(shè)計(jì)項(xiàng)目,今天要分享的

    2024年02月02日
    瀏覽(95)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包