• 方案介紹
    • 一、前言
    • 二、硬件連線(xiàn)說(shuō)明
    • 三、XKC-KL200激光測(cè)距模塊
    • 四、項(xiàng)目代碼設(shè)計(jì)
    • 五、總結(jié)
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

基于STC89C52單片機(jī)設(shè)計(jì)的激光測(cè)距儀(采用XKC-Kl200模塊)

5小時(shí)前
267
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

更多詳細(xì)資料請(qǐng)聯(lián)系.docx

共1個(gè)文件

一、前言

隨著科技的不斷進(jìn)步和應(yīng)用需求的增加,測(cè)距儀成為了許多領(lǐng)域必備的工具之一。傳統(tǒng)的測(cè)距儀價(jià)格昂貴、體積龐大,使用起來(lái)不夠方便。本項(xiàng)目采用STC89C52單片機(jī)作為主控芯片,結(jié)合XKC-KL200激光測(cè)距模塊和LCD1602顯示器,實(shí)現(xiàn)了一個(gè)簡(jiǎn)易且高效的激光測(cè)距儀。這個(gè)測(cè)距儀可以幫助用戶(hù)快速準(zhǔn)確地測(cè)量目標(biāo)與測(cè)距儀之間的距離,并將結(jié)果通過(guò)LCD1602顯示器直觀(guān)地展示出來(lái)。

目前很多測(cè)距儀主要采用超聲波或紅外線(xiàn)等技術(shù)進(jìn)行測(cè)量,但這些方法存在一定的局限性,比如受到環(huán)境干擾、測(cè)量距離有限等問(wèn)題。而激光測(cè)距技術(shù)在測(cè)量精度和穩(wěn)定性方面具有顯著優(yōu)勢(shì)。XKC-KL200模塊是一款基于激光測(cè)距原理的模塊,具有高精度、快速測(cè)量等特點(diǎn)。通過(guò)與STC89C52單片機(jī)相結(jié)合,能夠利用模塊提供的數(shù)據(jù)和功能,快速實(shí)現(xiàn)一個(gè)功能完善的激光測(cè)距儀。

LCD1602顯示器作為輸出設(shè)備,能夠直觀(guān)地顯示測(cè)得的距離信息,具有體積小巧、低功耗、易于集成等特點(diǎn),非常適合作為測(cè)距儀的顯示屏。通過(guò)將測(cè)量結(jié)果轉(zhuǎn)換為字符串,并利用LCD1602的命令和數(shù)據(jù)寫(xiě)入函數(shù),可以在顯示器上清晰地展示出測(cè)得的距離值。

基于STC89C52單片機(jī)和XKC-KL200激光測(cè)距模塊的激光測(cè)距儀項(xiàng)目,結(jié)合了激光測(cè)距技術(shù)和單片機(jī)控制技術(shù),通過(guò)LCD1602顯示器直觀(guān)地展示出測(cè)得的距離信息。這個(gè)項(xiàng)目不僅滿(mǎn)足了測(cè)距需求,而且具有成本低、體積小、使用方便等優(yōu)勢(shì),無(wú)論是在建筑、工程、地理測(cè)量還是運(yùn)動(dòng)、航空等領(lǐng)域,這個(gè)激光測(cè)距儀都可以正常使用。

image-20230913145314290

image-20230913145440968

image-20230913145503883

二、硬件連線(xiàn)說(shuō)明

【1】LCD1602模塊

(1)VSS 引腳連接到單片機(jī)的GND引腳(地線(xiàn))

(2)VDD 引腳連接到單片機(jī)的5V引腳(正電源

(3)VO 引腳可以通過(guò)一個(gè)10K電位器連接到單片機(jī)的GND引腳,用于調(diào)節(jié)背光亮度

(4)RS 引腳連接到單片機(jī)的P0口(作為命令/數(shù)據(jù)選擇引腳)

(5)RW 引腳連接到單片機(jī)的GND引腳(將LCD設(shè)為寫(xiě)模式)

(6)E 引腳連接到單片機(jī)的P1口(作為使能引腳)

(7)D0 ~ D7 引腳分別連接到單片機(jī)的P2 ~ P7口(作為數(shù)據(jù)引腳)

【2】XKC-KL200激光測(cè)距模塊

(1)VCC 引腳連接到單片機(jī)的5V引腳(正電源)

(2)GND 引腳連接到單片機(jī)的GND引腳(地線(xiàn))

(3)TX 引腳連接到單片機(jī)的RXD引腳(串口接收引腳)

(4)RX 引腳連接到單片機(jī)的TXD引腳(串口發(fā)送引腳)

三、XKC-KL200激光測(cè)距模塊

XKC-KL200 是一款智能非接觸式開(kāi)關(guān)、帶有 UART 串口,高低電平或 NPN 驅(qū)動(dòng)輸出的激光測(cè)距傳感器。

該傳感器利用激光對(duì)物體漫反射原理:當(dāng)人或物體進(jìn)入傳感器設(shè)定的感應(yīng)區(qū)域,傳感器輸出信號(hào),同時(shí)能精確輸出
距離;人或物體離開(kāi)感應(yīng)區(qū)后傳感器則關(guān)閉輸出。

通信協(xié)議

硬件采用 uart。 棕色(VCC)、黃色(信號(hào)輸出)藍(lán)色(GND)、黑色(RXD)

供電 5~24V

在客戶(hù) MCU 電源與 OUTPUT(黃線(xiàn))之間跨接一個(gè) 1K 左右的上拉電阻

串口默認(rèn)配置: 波特率:9600 、數(shù)據(jù)位:8 、校驗(yàn)位:無(wú) 、停止位:1

應(yīng)用范圍

(1)智能感應(yīng)潔具。

(2)家居安防。

(3)智能檢測(cè),智能控制。

(4)機(jī)器人障礙識(shí)別。

(5)實(shí)時(shí)顯示距離。

(6)水龍頭感應(yīng)、大小便斗自動(dòng)沖水、自動(dòng)烘手機(jī)、防盜器、自動(dòng)門(mén)鈴、樓梯過(guò)道感應(yīng)、電視近距離收看電視

提醒器、自動(dòng)門(mén)、廣告燈箱、自動(dòng)垃圾箱。

image-20230913145032404

image-20230913145051094

image-20230913145106603

四、項(xiàng)目代碼設(shè)計(jì)

#include <reg52.h>
#include <stdio.h>

// LCD1602引腳連接
sbit LCD_RS = P0^0; // RS引腳接口定義
sbit LCD_E = P1^0; // E引腳接口定義
sbit LCD_D4 = P2^4; // D4引腳接口定義
sbit LCD_D5 = P2^5; // D5引腳接口定義
sbit LCD_D6 = P2^6; // D6引腳接口定義
sbit LCD_D7 = P2^7; // D7引腳接口定義

// 激光測(cè)距模塊引腳連接
sbit laser_TX = P3^0; // TX引腳接口定義
sbit laser_RX = P3^1; // RX引腳接口定義

// LCD1602初始化
void LCD_Init() {
    LCD_WriteCommand(0x02); // 回到Home位置
    LCD_WriteCommand(0x28); // 設(shè)置4位數(shù)據(jù)總線(xiàn)、2行顯示、5x8點(diǎn)陣
    LCD_WriteCommand(0x0C); // 顯示開(kāi),關(guān)游標(biāo)
    LCD_WriteCommand(0x06); // 光標(biāo)右移
    LCD_WriteCommand(0x01); // 清屏
}

// 向LCD寫(xiě)入命令
void LCD_WriteCommand(unsigned char command) {
    LCD_RS = 0; // 將RS置低,指定為寫(xiě)入命令
    LCD_E = 0; // 拉低E線(xiàn),準(zhǔn)備寫(xiě)入
    LCD_D4 = command >> 4 & 0x01; // 寫(xiě)入高4位數(shù)據(jù)
    LCD_D5 = command >> 5 & 0x01;
    LCD_D6 = command >> 6 & 0x01;
    LCD_D7 = command >> 7 & 0x01;
    LCD_E = 1; // 拉高E線(xiàn),寫(xiě)入命令
    DelayMs(1); // 延時(shí)等待
    LCD_E = 0; // 拉低E線(xiàn),結(jié)束寫(xiě)入
    LCD_D4 = command >> 0 & 0x01; // 寫(xiě)入低4位數(shù)據(jù)
    LCD_D5 = command >> 1 & 0x01;
    LCD_D6 = command >> 2 & 0x01;
    LCD_D7 = command >> 3 & 0x01;
    LCD_E = 1; // 拉高E線(xiàn),寫(xiě)入命令
    DelayMs(1); // 延時(shí)等待
    LCD_E = 0; // 拉低E線(xiàn),結(jié)束寫(xiě)入
}

// 向LCD寫(xiě)入數(shù)據(jù)
void LCD_WriteData(unsigned char dat) {
    LCD_RS = 1; // 將RS置高,指定為寫(xiě)入數(shù)據(jù)
    LCD_E = 0; // 拉低E線(xiàn),準(zhǔn)備寫(xiě)入
    LCD_D4 = dat >> 4 & 0x01; // 寫(xiě)入高4位數(shù)據(jù)
    LCD_D5 = dat >> 5 & 0x01;
    LCD_D6 = dat >> 6 & 0x01;
    LCD_D7 = dat >> 7 & 0x01;
    LCD_E = 1; // 拉高E線(xiàn),寫(xiě)入數(shù)據(jù)
    DelayMs(1); // 延時(shí)等待
    LCD_E = 0; // 拉低E線(xiàn),結(jié)束寫(xiě)入
    LCD_D4 = dat >> 0 & 0x01; // 寫(xiě)入低4位數(shù)據(jù)
    LCD_D5 = dat >> 1 & 0x01;
    LCD_D6 = dat >> 2 & 0x01;
    LCD_D7 = dat >> 3 & 0x01;
    LCD_E = 1; // 拉高E線(xiàn),寫(xiě)入數(shù)據(jù)
    DelayMs(1); // 延時(shí)等待
    LCD_E = 0; // 拉低E線(xiàn),結(jié)束寫(xiě)入
}

// 清空LCD顯示
void LCD_Clear() {
    LCD_WriteCommand(0x01); // 清屏指令
    DelayMs(2); // 延時(shí)等待
}

// 在指定位置顯示字符串
void LCD_DisplayString(unsigned char x, unsigned char y, unsigned char *str) {
    unsigned char addr;
    if (y == 0) {
        addr = 0x80 + x; // 第一行地址計(jì)算
    } else {
        addr = 0xC0 + x; // 第二行地址計(jì)算
    }
    LCD_WriteCommand(addr); // 設(shè)置顯示位置
    while (*str != '?') {
        LCD_WriteData(*str); // 逐個(gè)顯示字符
        str++;
    }
}

// 毫秒級(jí)延時(shí)函數(shù)
void DelayMs(unsigned int ms) {
    unsigned int i, j;
    for (i = ms; i > 0; i--) {
        for (j = 110; j > 0; j--);
    }
}

// 串口初始化
void UART_Init() {
    TMOD = 0x20; // 設(shè)置定時(shí)器1為模式2
    TH1 = 0xFD; // 設(shè)置波特率為9600
    TL1 = 0xFD;
    TR1 = 1; // 啟動(dòng)定時(shí)器1開(kāi)始工作
    SCON = 0x50; // 設(shè)置UART為模式1,允許接收
}

// 串口數(shù)據(jù)接收
unsigned char UART_Receive() {
    while (!RI); // 等待接收完成
    RI = 0;
    return SBUF; // 返回接收到的數(shù)據(jù)
}

五、總結(jié)

在本項(xiàng)目中,成功設(shè)計(jì)了一個(gè)激光測(cè)距儀,使用STC89C52作為主控芯片,搭配XKC-Kl200激光測(cè)距模塊。通過(guò)串口通信的方式,能夠獲取到被測(cè)物體與激光測(cè)距模塊之間的距離,并將其實(shí)時(shí)顯示在LCD1602液晶顯示屏上。

項(xiàng)目的實(shí)現(xiàn)過(guò)程中,先進(jìn)行硬件連接,將STC89C52與XKC-Kl200模塊通過(guò)串口相連,連接了LCD1602顯示屏。編寫(xiě)程序代碼,LCD1602和串口通信的初始化函數(shù),以及數(shù)據(jù)的接收和顯示函數(shù)。

通過(guò)激光測(cè)距儀,可以方便地獲得不同物體與測(cè)距模塊之間的距離信息,并通過(guò)LCD1602顯示出來(lái)。這為測(cè)量工作提供了便利,無(wú)論是在科研實(shí)驗(yàn)、工程測(cè)量還是日常生活中,都具有廣泛的應(yīng)用前景。

  • 更多詳細(xì)資料請(qǐng)聯(lián)系.docx
    下載

相關(guān)推薦

方案定制

去合作
方案開(kāi)發(fā)定制化,2000+方案商即時(shí)響應(yīng)!