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

正文內(nèi)容

超聲波測距儀設計開發(fā)畢業(yè)論文(編輯修改稿)

2025-07-24 16:20 本頁面
 

【文章內(nèi)容簡介】 。 D:控制整體顯示的開與關,高電平表示開顯示,低電平表示關顯示C:控制光標的開與關,高電平表示有光標,低電平表示無光標 B:控制光標是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標。指令6:功能設置命令 DL:高電平時為4位總線,低電平時為8位總線 N:低電平時為單行顯示,高電平時雙行顯示 F: 低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符。指令7:字符發(fā)生器RAM地址設置。指令8:DDRAM地址設置。指令9:讀忙信號和光標地址BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。: 讀操作時序 寫操作時序LCD1602的RAM地址映射液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認模塊的忙標志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符。 LCD1602內(nèi)部顯示地址例如第二行第一個字符的地址是40H,那么是否直接寫入40H就可以將光標定位在第二行第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位D7恒定為高電平1所以實際寫入的數(shù)據(jù)應該是01000000B(40H)+10000000B(80H)=11000000B(C0H)。在對液晶模塊的初始化中要先設置其顯示模式,在液晶模塊顯示字符時光標是自動右移的,無需人工干預。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態(tài)。1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯數(shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”。四、按鍵電路考慮到實現(xiàn)超聲波測距儀的附加功能,本次設計一共設有5個4腳按鍵,分別對應的功能是鎖定當前值便于記錄、解鎖并繼續(xù)測距、在測距狀態(tài)下存儲當前距離值、查詢已存的歷史值、返回測距。5個按鍵分別于單片機的5個I/O口連接,當按下按鍵時單片機檢測到對應的I/O口為低電平,即執(zhí)行相應的程序。 按鍵電路五、下載電路MAX232MAX232芯片是美信公司專門為電腦的RS232標準串口設計的接口電路,使用+5v單電源供電。MAX232是一種雙組驅(qū)動器/接收器,片內(nèi)含有一個電容性電壓發(fā)生器以便在單5V電源供電時提供EIA/TIA232E電平。每個接收器將EIA/TIA232E電平輸入轉換為5V TTL/CMOS電平。,而且可以接收177。30V的輸入。每個驅(qū)動器將TTL/CMOS輸入電平轉換為EIA/TIA232E電平。所有的驅(qū)動器、接收器及電壓發(fā)生器都可以在德州儀器公司的LinASICTM元件庫中得到標準單元。MAX232的工作溫度范圍為0℃至70℃,MAX232I的工作溫度范圍為40℃至85℃。內(nèi)部結構基本可分三個部分:第一部分是電荷泵電路。由6腳和4只電容構成。功能是產(chǎn)生+12v和12v兩個電源,提供給RS232串口電平的需要。第二部分是數(shù)據(jù)轉換通道。由11114腳構成兩個數(shù)據(jù)通道。其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉換成RS232數(shù)據(jù)從T1OUT、T2OUT送到電腦DB9插頭;DB9插頭的RS232數(shù)據(jù)從R1IN、R2IN輸入轉換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。第三部分是供電。15腳GND、16腳VCC(+5v)。主要特點: ① 單5V電源工作;② LinBiCMOSTM工藝技術;③ 兩個驅(qū)動器及兩個接收器;④ 177。30V輸入電平;⑤ 低電源電流:典型值是8mA;⑥ 符合甚至優(yōu)于ANSI標準 EIA/;⑦ ESD保護大于MILSTD883(方 法3015)標準的2000V。 MAX232下載電路第三節(jié) 本章小結在硬件設計上由于直接使用的超聲波傳感器測距模塊,使得硬件電路設計方面簡化很多,也為軟件編寫提供了方便,使所測距離更準確,顯示更及時。另外,在硬件設計上也有很多不足,比如電路整體布局上欠考慮,一開始沒有很好的規(guī)劃,造成了跳線過多,硬件不夠美觀。而且在最初設計中考慮到實現(xiàn)掉電保存距離值的功能,在電路板上添加了AT24C02芯片,但在軟件調(diào)試過程中,芯片工作不穩(wěn)定,于是放棄使用AT24C02的掉電寄存功能,直接使用片內(nèi)寄存器存儲距離值。再者,總體設計時設計了復位電路,但在后續(xù)軟件調(diào)試中復位功能被其他功能所代替??偟膩碚f,本次硬件設計不夠完美,有待改進。第三章 系統(tǒng)軟件設計第一節(jié) 軟件設計總體方案一、主程序設計總體思路系統(tǒng)的主要功能是距離測量,整個系統(tǒng)軟件程序包括主程序、測距子程序、顯示子程序、按鍵子程序、以及各種中斷子程序。系統(tǒng)軟件程序大體上包括下面幾個過程:① 初始化LCD;② 單片機對中斷經(jīng)行初始化,并開啟總中斷。;③ 單片機對超聲波傳感器Trig接口發(fā)出10us脈沖觸發(fā)信號作為啟動信號;④ Echo引腳檢測到回波信號,關定時器,計算高電平持續(xù)時間,得出距離;⑤ 顯示測量結果;⑥ 若有按鍵按下,執(zhí)行相應的按鍵程序。開始系統(tǒng)初始化啟動超聲波傳感器模塊等待傳感器返回信號計算所測距離是是否有按鍵按下執(zhí)行按鍵程序否大于或小于預設值顯示警告是否顯示距離 主程序流程圖二、測距子程序軟件設計超聲波傳感器模塊HCSR04軟件設計啟動HCSR04需要單片機I/O給Trig引腳一個10us的TTL脈沖觸發(fā)信號,HCSR04內(nèi)部將發(fā)出8個40KHz周期電平并檢測回波,一旦檢測到有回波信號則輸出回響信號?;仨懶盘柕拿}沖寬度與所測的距離成正比。由此通過發(fā)射信號到收到的回響信號時間間隔可以計算得到距離。公式:s=v*t/2,s為所測距離,v為聲速,t為回響信號高電平持續(xù)時間。 超聲波測距模塊HCSR04時序圖測距程序設計由定時器T0計算回響信號高電平持續(xù)時間,T0為方式1,啟動模塊后,等待,若檢測到Echo變?yōu)?,開啟計數(shù),當Echo變?yōu)?,關閉計數(shù),計算所測距離s。具體測距程序如下所示:void StartModule() //啟動模塊{ Trig=1。 //啟動一次模塊 delay_ms(5)。 Trig=0。}void Conut_m(void){ time=TH0*256+TL0。 TH0=0。 TL0=0。 S=(time*)/100。 //算出來是CM LCD_m()。 }三、顯示程序設計LCD1602的初始化程序void LCD_Init(){ Write_Cmd(0x38)。 /*顯示模式設置*/ delay_ms(5)。 Write_Cmd(0x38)。 delay_ms(5)。 Write_Cmd(0x38)。 delay_ms(5)。 Write_Cmd(0x38)。 Write_Cmd(0x08)。 /*顯示關閉*/ Write_Cmd(0x01)。 /*顯示清屏*/ Write_Cmd(0x06)。 /*顯示光標移動設置*/ delay_ms(5)。 Write_Cmd(0x0C)。 /*顯示開及光標設置*/}距離顯示程序?qū)崿F(xiàn)實時顯示定時器T0測得的距離值s,并設定測量范圍為2cm3m,測量精度為cm,若超出或小于測量范圍則顯示警告“Warning”。具體顯示程序如下: void LCD_m(){ uchar i。 if((S=300)|(S3)|flag==1) //超出測量范圍顯示W(wǎng)arning { flag=0。 Write_Cmd(0x00|0x80)。 i=0。 while(line_data[i]!=39。\039。) { Write_Data(line_data[i])。 i++。 } Write_Cmd(0x40|0x80)。 i=0。 while(warning[i]!=39。\039。) { Write_Data(warning[i])。 i++。 } } else { Write_Cmd(0x00|0x80)。 i=0。 while(line_data[i]!=39。\039。) { Write_Data(line_data[i])。 i++。 } disbuff[0]=S%1000/100。 disbuff[1]=S%1000%100/10。 disbuff[2]=S%1000%10%10。 Write_Cmd(0x80+0x40)。 Write_Data(ASCII[disbuff[0]])。 Write_Data(ASCII[10])。 //顯示點 Write_Data(ASCII[disbuff[1]])。 Write_Data(ASCII[disbuff[2]])。 Write_Data(ASCII[12])。 //顯示m } }四、按鍵程序設計按鍵key1實現(xiàn)鎖定當前值功能,即關閉總中斷EA即可。按鍵key2實現(xiàn)解鎖,即開啟總中斷EA。按鍵key3實現(xiàn)將當前值存入片內(nèi)寄存器功能,以供查詢調(diào)用。按鍵key4實現(xiàn)查詢片內(nèi)寄存器值功能。按鍵key5實現(xiàn)返回測距狀態(tài)功能[9]。具體按鍵程序如下所示:if(key1==0) { while(1) { EA=0。//存儲鎖定當前距離值 if(key2==0) break。//返回繼續(xù)測距 } }if(key3==0) { p= 0x30。 //片內(nèi)RAM地址為0x30 *p=S。 }if(key4==0) { uchar i。 mid=*p。 while(1) { if((mid=300)|(mid3)|flag==1) { flag=0。 Write_Cmd(0x00|0x80)。 i=0。 while(line_data[i]!=39。\039。) { Write_Data(line_data[i])。 i++。 } Write_Cmd(0x40|0x80)。 i=0。 while(warning[i]!=39。\039。) { Write_Data(warning[i])。 i++。 } } else { Write_Cmd(0x00|0x80)。 i=0。 while(line_data[i]!=39。\039。) { Write_Data(line_data[i])。 i++。 } disbuff[0]=mid%1000/100。 disbuff[1]=mid%1000%100/10。 disbuff[2]=mid%1000%10%10。 Write_Cmd(0x80+0x40)。 Write_Data(ASCII[disbuff[0]])。 Write_Data(ASCII[10])。 //顯示點 Write_Data(ASCII[disbuff[1]])。 Write_Data(ASCII[disbuff[2]])。 Write_Data(ASCII[12])。 //顯示m } if(key5==0) break。 } }第二節(jié) 本章小結超聲波測距的軟件設計基本實現(xiàn)了任務要求,實現(xiàn)了精確測量距離,實時顯示,存儲并可調(diào)用查詢所存歷史距離值。有所不足的是,可存儲的距離值個數(shù)不多,而且未能實現(xiàn)掉電保存歷史距離值的功能,有待改進。第四章 超聲波測距的誤差分析第一節(jié) 超聲波測距測量結果一、測量結果硬件電路制作應避
點擊復制文檔內(nèi)容
醫(yī)療健康相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1