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

正文內容

基于單片機的超聲波測距儀的設計參考論文(編輯修改稿)

2025-07-24 19:48 本頁面
 

【文章內容簡介】 次測量距離;若按鍵k2沒有閉合,則顯示器恒定顯示最新一次的測量結果;若要進行下一次測量,則先要按下k3重新開始,再按下按鍵k1才執(zhí)行新一次測量。由于不需輸入數據,鍵盤只設置了3個按鍵,用于開始測量距離并顯示溫度功能設置等。NYNYNYYN開始系統初始化顯示測量距離測溫,根據溫度和時間計算距離顯示溫度5s發(fā)射超聲波,T1計時K2閉合?T1停止定時,保存定時值N接收到反射波?K1閉合?K3閉合? 主程序流程圖 子程序設計 超聲波發(fā)送子程序及超聲波接收中斷子程序(頻率約40kHz的方波),脈沖寬度為12μs左右,同時把計數器T1打開進行計時,定時器T1工作在方式0。超聲波測距儀主程序利用外中斷1檢測返回超聲波信號,一旦接收到返回超聲波信號(即引腳出現低電平),立即進入中斷程序。進入中斷后就立即關閉計時器T1停止計時,并將測距成功標志字賦值1。如果當計時器溢出時還未檢測到超聲波返回信號,則定時器T1溢出中斷將外中斷1關閉,并將測距成功標志字賦值0表示此次測距不成功。T0中斷服務程序如下:sbit send=P1^0。void timer0(void)interrupt 1 { send=!send。 TH0=0x1f。 TL0=0xf4。}超聲波接收(外部中斷1)程序:void int1(void)interrupt 2 { if(TH1!=0x00amp。amp。TH0!=0x00) { b=1。 TR1=0。 TR0=0。 t=TH1*256+TL1。 t=t/1000000。 TH0=0x1f。 TL0=0xf4。 TH1=0x00。 TL1=0x00。 } else { b=0。 TR1=0。 TR0=0。 TH0=0x1f。 TL0=0xf4。 TH1=0x00。 TL1=0x00。 } } 測溫子程序測溫的主要器件是DS18B20,現場溫度直接以“一線總線”的數字方式傳輸,DS18B20中有兩個存測得的溫度值的兩個8位存貯器RAM,用11位存貯溫度值,最高位(5位)為符號位。對應的溫度計算:當符號位S=0時,直接將二進制位轉換為十進制;當S=1時,先將補碼變換為原碼,再計算十進制值。: LS Byte bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0232221202-12-22-32-4MS Byte bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 SSSSS262524 DS18B20的溫度存儲方式負溫度時S=1,正溫度時S=0。因此我們只需要逐位讀出它的溫度就可以了。讀出一個字節(jié)C代碼如下: uchar readbyte(void) //直接讀一字節(jié)程序{ uchar i,k。 i=8。 k=0。 while(i) { tem_in=1。 delay_us(1)。 tem_in=0。 k=k1。 tem_in=1。 NOP。 if(tem_in)k |= 0x80。 //tem_in為1時,則該位也為1 delay_us(4)。 } return(k)。} 距離計算子程序當前溫度和超聲波往返時間均測量出來后,用C語言根據公式計算距離來編程是比較簡單的算法。根據測量距離,而其中,故可簡化為:,其實現程序算法如下:includevoid distance(void){double radical,dist,t。radical=sqrt(1+(temnum+273)/273)。dist=*t*radical。return(dist)。} 顯示子程序和鍵盤掃描子程序顯示電路由四位LED組成動態(tài)掃描電路,編程非常簡單。又雖然本設計共有四個按鍵,k0控制電源輸入,不需軟件編程;而k3為手動復位按鍵,亦不需軟件編程;只有kk2分別測距開始按鍵和距離與溫度切換顯示按鍵,級易實現。所以不贅述顯示子程序和鍵盤掃描子程序,詳情可見附錄二。湖南工業(yè)大學本科畢業(yè)設計(論文)第7章 軟件調試及系統仿真 軟件編譯調試環(huán)境——Keil單片機開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)镃PU可以執(zhí)行的機器碼有兩種方法,一種是手工匯編,另一種是機器匯編,目前已極少使用手工匯編的方法了。機器匯編是通過匯編軟件將源程序變?yōu)闄C器碼,用于MCS51單片機的匯編軟件有早期的A51,隨著單片機開發(fā)技術的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開發(fā)MCS51系列單片機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。掌握這一軟件的使用對于使用51系列單片機的愛好者來說是十分必要的,如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調試工具也會事半功倍。 Keil工程文件的建立、設置與目標文件的獲得 Keil工程的建立首先啟動Keil軟件的集成開發(fā)環(huán)境,如果已正確安裝了該軟件,可以從桌面上直接雙擊uVision的圖標以啟動該軟件。uVison啟動后,程序窗口的左邊有一個工程管理窗口,該窗口有3個標簽,分別是Files、Regs、和Books,這三個標簽頁分別顯示當前項目的文件結構、CPU的寄存器及部份特殊功能寄存器的值(調試時才出現)和所選CPU的附加說明文件,如果是第一次啟動Keil,那么這三個標簽頁全是空的。1) 源文件的建立使用菜單“FileNew”或者點擊工具欄的新建文件按鈕,即可在項目窗口的右側打開一個新的文本編緝窗口,在該窗口中輸入匯編語言或C語言源程序,然后保存該文件,注意必須加上擴展名(匯編語言源程序一般用asm或a51為擴展名,而C語言源程序一般用c為擴展名)。需要說明的是,源文件就是一般的文本文件,不一定使用Keil軟件編寫,可以使用任意文本編緝器編寫,而且,Keil的編緝器對漢字的支持不好,建議使用UltraEdit之類的編緝軟件進行源程序的輸入。2) 建立工程文件 加入文件 選擇目標CPU在項目開發(fā)中,并不是僅有一個源程序就行了,還要為這個項目選擇CPU(Keil支持數百種CPU,而這些CPU的特性并不完全相同),確定編譯、匯編、連接的參數,指定調試的方式,有一些項目還會有多個文件組成等,為管理和使用方便,Keil使用工程(Project)這一概念,將這些參數設置和所需的所有文件都加在一個工程中,只能對工程而不能對單一的源程序進行編譯(匯編)和連接等操作。點擊“ProjectNew Project…”菜單,出現一個對話框,要求給將要建立的工程起一個名字,可以在編緝框中輸入一個名字(設為exam1),不需要擴展名。點擊“保存”按鈕,出現第二個對話框,這個對話框要求選擇目標CPU,Keil支持的CPU很多,我們選擇Atmel公司的89C51芯片。點擊ATMEL前面的“+”號,展開該層,點擊其中的89C51,然后再點擊“確定”按鈕,回到主界面,此時,在工程窗口的文件頁中,出現了“Target1”,前面有“+”號,點擊“+”號展開,可以看到下一層的“Source Group1”,這時的工程還是一個空的工程,里面什么文件也沒有,需要手動把剛才編寫好的源程序加入,點擊“Source Group1”使其反白顯示,然后,點擊鼠標右鍵,出現一個下拉菜單。選中其中的“Add file toGroup”Source Group1”,出現一個對話框,要求尋找源文件,注意:該對話框下面的“文件類型”默認為C source file(*.c),也就是以C為擴展名的文件,而我們的文件是以asm為擴展名的,要將文件類型改掉,點擊對話框中“文件類型”后的下拉列表,找到并選中“Asm Source File(*.a51,*.asm),這樣。,將文件加入項目,注意,在文件加入項目后,該對話框并不消失,等待繼續(xù)加入其它文件,如果誤認為操作沒有成功而再次雙擊同一文件,這時會出現重復加入文件錯誤的對話框,提示你所選文件已在列表中,此時應點擊“確定”,返回前一對話框,然后點擊“Close”即可返回主界面,返回后,點擊“SourceGroup 1”前的加號。雙擊文件名,即打開該源程序。 工程的詳細設置工程建立好以后,還要對工程進行進一步的設置,以滿足要求。首先點擊左邊Project窗口的Target 1,然后使用菜單“ProjectOption for target‘target1’”即出現對工程設置的對話框,這個對話框可謂非常復雜,共有8個頁面,要全部搞清可不容易,好在絕大部份設置項取默認值就行了。 對目標進行設置設置對話框中的Target頁面,Xtal后面的數值是晶振頻率值,默認值是所選目標CPU的最高可用頻率值,對于我們所選的AT89C51而言是24M,該數值與最終產生的目標代碼無關,僅用于軟件模擬調試時顯示程序執(zhí)行時間。正確設置該數值可使顯示時間與實際所用時間一致,一般將其設置成與你的硬件所用晶振頻率相同,如果沒必要了解程序執(zhí)行的時間,也可以不設,這里設置為12。Memory Model用于設置RAM使用情況,有三個選擇項,Small是所有變量都在單片機的內部RAM中;Compact是可以使用一頁外部擴展RAM,而Larget則是可以使用全部外部的擴展RAM。Code Model用于設置ROM空間的使用,同樣也有三個選擇項,即Small模式,只用低于2K的程序空間;Compact模式,單個函數的代碼量不能超過2K,整個程序可以使用64K程序空間;Large模式,可用全部64K空間。Use onchip ROM選擇項,確認是否僅使用片內ROM(注意:選中該項并不會影響最終生成的目標代碼量);Operating項是操作系統選擇,Keil提供了兩種操作系統:Rtx tiny和Rtx full,關于操作系統是另外一個很大的話題了,通常我們不使用任何操作系統,即使用該項的默認值:None(不使用任何操作系統);Off Chip Code memory用以確定系統擴展ROM的地址范圍,Off Chip xDatamemory組用于確定系統擴展RAM的地址范圍,這些選擇項必須根據所用硬件來決定,由于該例是單片應用,未進行任何擴展,所以均不重新選擇,按默認值設置。 對輸出進行控制設置對話框中的OutPut頁面,這里面也有多個選擇項,其中Creat Hex file用于生成可執(zhí)行代碼文件(可以用編程器寫入單片機芯片的HEX格式文件,),默認情況下該項未被選中,如果要寫片做硬件實驗,就必須選中該項,在此特別提醒注意。選中Debug information將會產生調試信息,這些信息用于調試,如果需要對程序進行調試,應當選中該項。Browse information是產生瀏覽信息,該信息可以用菜單viewBrowse來查看,這里取默認值。按鈕“Select Folder for objects”是用來選擇最終的目標文件所在的文件夾,默認是與工程文件在同一個文件夾中。Name of Executable用于指定最終生成的目標文件的名字,默認與工程的名字相同,這兩項一般不需要更改。工程設置對話框中的其它各頁面與C51編譯選項、A51的匯編選項、BL51連接器的連接選項等用法有關,這里均取默認值,不作任何修改。以下僅對一些有關頁面中常用的選項作一個簡單介紹。 代碼生成控制Listing標簽頁用于調整生成的列表文件選項。在匯編或編譯完成后將產生(*.lst)的列表文件,在連接完成后也將產生(*.m51)的列表文件,該頁用于對列表文件的內容和形式進行細致的調節(jié),其中比較常用的選項是“C Compile Listing”下的“Assamble Code”項,選中該項可以在列表文件中生成C語言源程序所對應的匯編代碼。C51標簽頁用于對Keil的C51編譯器的編譯過程進行控制,其中比較常用的是“CodeOptimization”組,該組中Level是優(yōu)化等級,C51在對源程序進行編譯時,可以對代碼多至9級優(yōu)化,默認使用第8級,一般不必修改,如果在編譯中出現一些問題,可以降低優(yōu)化級別試一試。Emphasis是選擇編譯優(yōu)先方式,第一項是代碼量優(yōu)化(最終生成的代碼量?。?;第二項是速度優(yōu)先(最終生成的代碼速度快);第三項是缺省。默認的是速度優(yōu)先,可根據需要更改。設置完成后按確認返回主界面,工程文件建立、設置完畢。 編譯、連接 有關編譯、連接、項目設置的工具條 正確編譯、連接之后的結果在設置好工程后,即可進行編譯、連接。選擇菜單ProjectBuild target,對當前工程進行連接,如果當前文件已修改,軟件會先對該文件進行編譯,然后再連接以產生目標代碼;如果選擇Rebuild All target files將會對當前工程中的所有文件重新進行編譯然后再連接,確保最終生產的目標代碼是最新的,而Translate….項則僅對該文件
點擊復制文檔內容
黨政相關相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1