freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的超聲波測距系統(tǒng)設(shè)計(jì)-資料下載頁

2024-12-04 00:57本頁面

【導(dǎo)讀】隨著科學(xué)技術(shù)的快速發(fā)展超聲波將在測距儀中的應(yīng)用越來越廣。高定位高精度的方向發(fā)展,以滿足日益發(fā)展的社會需求。無庸置疑未來的超聲波。測距儀將與自動化智能化接軌與其他的測距儀集成和融合,形成多測距儀。微型化數(shù)字顯示超聲波測距儀的硬件電路和軟件設(shè)計(jì)方法。該系統(tǒng)電路設(shè)計(jì)合理、度方面能達(dá)到工業(yè)實(shí)用的要求。

  

【正文】 部中斷子程序流程圖如下: 第 22 頁 共 42 頁 外 部 中 斷 入 口Model=~modle結(jié) 束 返 回 圖 外部中斷流程圖 模式 0 子程序 模式 0 負(fù)責(zé)正常的測距和相應(yīng)的功能, 當(dāng)系統(tǒng)工作在模式 0 時 ,程序是一個小的死循環(huán)程序 , 先調(diào)用測距子程序 調(diào)用顯示子程序 調(diào)用報(bào)警子程序 調(diào)用存儲子程序 – 返回循環(huán)首部 。 測距子程序 測距子程序是工作在模式 0 下面的,先開啟超聲波模塊, 把 端口置高電平,讓其自動發(fā)送 40K Hz 的超聲波信號,延時,關(guān)閉發(fā)射,等待從 返回的回波信號,當(dāng)回波信號到達(dá)時,開啟定時器 0,待返回信號結(jié)束,關(guān)閉定時器 0,結(jié)束計(jì)時,根據(jù)定時器 0 里記錄的時間和測距原理的公式,計(jì)算出距離 S。 其流程圖如下: 測 距 入 口T 0 溢 出 ?T = T H 0 * 2 5 6 + T L 0S = T * v / 2結(jié) 束 返 回y e sn os t a r t M o d e l發(fā) 射 信 號等 待 回 波 信號開 啟 定 時 器 T 0計(jì) 時等 待 回 波 信 號結(jié) 束 , 關(guān) 閉 T 0 圖 顯示子程序 1602 的數(shù)據(jù)端口并行連接的是 SCM 的 P0 口, 先設(shè)置好 LCD 的環(huán)境參數(shù)和 準(zhǔn) 第 23 頁 共 42 頁 備好要寫入的數(shù)據(jù)數(shù)組, 因?yàn)橐淮沃荒軐懭胍粋€字符;循環(huán)把數(shù)組里準(zhǔn)備好的數(shù)據(jù)寫入 1602 顯示子程序的流程圖如下: 顯 示 入 口設(shè) 置 起 始 坐 標(biāo)達(dá) 到 顯 示 末 尾 ?寫 入 命 令寫 入 數(shù) 據(jù)結(jié) 束 返 回y e sn o 圖 顯示子程序流程圖 語音 模塊 子程序 蜂鳴器的正端連接到 SCM 的 端口,當(dāng) SCM 給 端口以不同的頻率置高低電平時,蜂鳴器會以不同的頻率發(fā)出不同的聲音 報(bào)警 報(bào)警子程序流程圖如下 : 語 音 入 口S 2 m ?語 音 提 示結(jié) 束Y esN o 圖 語音子程序流程圖 存儲子程序 E2PROM 用的是 STC89C52RC 自帶的 E2PROM, STC89C52RC 已經(jīng)給E2PROM 分配好寄存器, 可 通過訪問寄存器直接對 E2PROM 進(jìn)行讀寫操作 存儲子程序流程圖如下: 第 24 頁 共 42 頁 存 儲 入 口S 1 m ?B l o c k O f f s e t % 8 = 0 ?B l o c k O f f s e t 5 0 4 ?獲 取 系 統(tǒng) 時 鐘寫 入 時 鐘 和 距離 到 f l a s hy e sy e sy e s結(jié) 束 返 回B l o c k O f f s e t + +n oB l o c k F l a g + + 。B l o c k O f f s e t = 0n on o 圖 存儲子程序流程圖 模式 1 子程序 模式 1 的工作相對比較簡單, 只負(fù)責(zé)遍歷顯示存儲在 E2PROM 里面的測距記錄, 完了以后回到模式 0。 模 式 1 子程序流程圖如下: 模 式 1 入 口B l o c k F l a g 8 ?B l o c k O f f s e t 5 0 4 ?讀 取 一 條 距 離時 間 記 錄顯 示 記 錄B l o c k O f f s e t = 0 。B l o c k F l a g + +n o結(jié) 束 返 回M o d e l = 0y e sy e sy e s 圖 模式 1程序流程圖 第 25 頁 共 42 頁 結(jié)束語 目前超聲波測距已得到廣泛應(yīng)用,國內(nèi)一般使用專用集成電路根據(jù)超聲波測距原理設(shè)計(jì)各種測距儀器,但是專用集成電路的成本較高、功能單一。而以單片機(jī)為核心的測距儀器可以實(shí)現(xiàn)預(yù)置、多端口檢測、顯示、報(bào)警等多種功能,并且成本低、精度高、操作簡單、工作穩(wěn)定可靠。本文簡要介紹了利用 51 系列單片機(jī)實(shí)現(xiàn)超聲波測距的原理以及實(shí)現(xiàn)的方法。 單片機(jī)其卓越的性能,本設(shè)計(jì)中得到了很好的體現(xiàn),尤其在檢測,控制領(lǐng)域中,具 有以下特點(diǎn): ( 1) 小巧靈活,成本低,易于產(chǎn)品化,它能方便地組裝成各種智能測試,控制設(shè)備及各種智能儀器表。 ( 2) 可靠性好,適應(yīng)范圍廣,單片機(jī)芯片本身是按工業(yè)測控環(huán)境要求設(shè)計(jì)的,能適應(yīng)各種惡劣的環(huán)境,這是其它原件無法比擬的。 ( 3) 易擴(kuò)展,很容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng),控制功能強(qiáng)。單片機(jī)的邏輯控制功能很強(qiáng),指令系統(tǒng)有各種控制功能所用的指令。 ( 4) 可以很方便地實(shí)現(xiàn)多機(jī)制分布式控制。 在一個學(xué)期的設(shè)計(jì)和學(xué)習(xí)當(dāng)中,我逐步了解了整個設(shè)計(jì)內(nèi)容和過程,并且學(xué)到了很多新的東西。通過對實(shí)際工程的了解、設(shè)計(jì)不但使我加深了對理 論知識的理解,對專業(yè)知識的全面認(rèn)識,更重要的是將理論知識應(yīng)用到了實(shí)踐中,應(yīng)用到了實(shí)際工程中,真正做到了學(xué)以致用、理論與實(shí)踐相結(jié)合。同時,通過對設(shè)計(jì)中困難的克服,也鍛煉了我的思考問題、解決問題的能力以及自學(xué)能力,在這次設(shè)計(jì)中我也對本專業(yè)前沿的一些知識和發(fā)展方向有了了解,開闊了我的眼界、擴(kuò)大了我的知識面,這些都將為我以后的工作奠定良好的基礎(chǔ)。在這次論文設(shè)計(jì)過程中,我學(xué)會了怎樣去根據(jù)課題的要求去設(shè)計(jì)電路和調(diào)試電路。動手能力得到很大的提高。從中我發(fā)現(xiàn)自己并不能很好的熟練去使用我所學(xué)到的知識。在以后工作和學(xué)習(xí)中我要加 強(qiáng)對使用電路的設(shè)計(jì)和選用能力。 第 26 頁 共 42 頁 附錄 程序清單 : /************************* 頭文件 ************************/ ifndef HEADER_H define HEADER_H include include define uchar unsigned char define uint unsigned int //管腳定義 define SPK P2^0。 define TX P2^1 define RX P2^2 define LCM_E P2^3 //定義 LCD 引腳 define LCM_RW P2^4 define LCM_RS define LCM_Data P0 define Busy 0x80 //用于檢測 LCM 狀態(tài)字中的 Busy 標(biāo)識 define T_CLK P1^0 /*實(shí)時時鐘時鐘線引腳 */ define T_IO P1^1 /*實(shí)時時鐘數(shù)據(jù)線引腳 */ define T_RST P1^2 /*實(shí)時時鐘復(fù)位線引腳 */ //全局變量定義 uint BlockSize = 512。 //flash 每個扇區(qū)的大小 uint ADDR = 0x2021。 //flash 扇區(qū)起始地址 uint BlockOffset = 0。 uchar BlockFlag = 0。 //扇區(qū)標(biāo)示,指定對那個扇區(qū)( 4)進(jìn)行操作 ,默認(rèn)為第 0 扇區(qū) uint addr = 0。 //ADDR + BlockFlag * BlockSize。 uint time=0。 uint distance = 0。 bit flag = 0。 bit model = 1。 unsigned char Range[] = ==Range Finder==。//LCD1602 顯示格式 unsigned char ASCII[13] = 。 unsigned char table[] = Distance:。 unsigned char table1[] = !!! Out of range。 unsigned char Err[] = Error!!。 第 27 頁 共 42 頁 unsigned char disbuff[4]={0,0,0,0}。 // 用于裝距離的個十百千 位( mm) unsigned char initTimeBuf[8] = {00,00,13,28,05,02,12}。 //初始化時鐘芯片的初始時間 // void flashClear(unsigned int addr)。 void flashWrite(unsigned int addr,unsigned char dat)。 unsigned char flashRead(unsigned int addr)。 void flashClose()。 void writeByte_DS1302(unsigned char d) 。 unsigned char readByte_DS1302(void)。 unsigned char ReadData_DS1302(unsigned char ucAddr)。 void WriteData_DS1302(unsigned char ucAddr, unsigned char ucDa)。 void setTime_DS1302(unsigned char *pClock) 。 void WriteTime_DS1302(unsigned char *pSecDa)。 void ReadTime_DS1302(unsigned char *pSecDa)。 void Start_DS1302(void)。 void witedata_flash(unsigned char distance) 。 void LCDdisplay(void)。 // void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)。 void DisplayListChar(unsigned char X, unsigned char Y, unsigned char *DData)。 unsigned int Count_display(void)。 void beep(unsigned int distance)。 void timerInit(void)。 void Timer_Count(void)。 void LCMInit(void) 。 void Delay_Ms(unsigned int ms)。 void StartModule(void)。 endif /*****************************************/ include /******************** //寫數(shù)據(jù) ***************************/ void WriteDataLCM(unsigned char WDLCM) { LCM_Data = WDLCM。 LCM_RS = 1。 第 28 頁 共 42 頁 LCM_RW = 0。 LCM_E = 0。 //若晶振速度太高可以在這后加小的延時 LCM_E = 0。 //延時 LCM_E = 1。 } /******************* //寫指令 ****************************/ void WriteCommandLCM(unsigned char WCLCM) { LCM_Data = WCLCM。 LCM_RS = 0。 LCM_RW = 0。 LCM_E = 0。 LCM_E = 0。 LCM_E = 1。 } /********************* //LCM 初始化 **************************/ void LCMInit(void) { LCM_Data = 0。 WriteCommandLCM(0x38,0)。 //三次顯示模式設(shè)置,不檢測忙信號 Delay_Ms(1)。 WriteCommandLCM(0x38,0)。 Delay_Ms(1)。 WriteCommandLCM(0x38,0)。 Delay_Ms(1)。 WriteCommandLCM(0x38,1)。 //顯示模式設(shè)置 ,開始要求每次檢測忙信號 WriteCommandLCM(0x08,1)。 //關(guān)閉顯示 WriteCommandLCM(0x01,1)。 //顯示清屏 WriteCommandLCM(0x06,1)。 // 顯示光標(biāo)移動設(shè)置 WriteCommandLCM(0x0c,1)。 // 顯示開及光標(biāo)設(shè)置 } /******************//按指定位置顯示一個字符 *******************/ void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData) { Y amp。= 0x1。
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1