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

正文內(nèi)容

基于單片機控制的頻率計的-閱讀頁

2024-12-26 02:22本頁面
  

【正文】 示。測量初始化模塊設置堆棧指針(SP)、工作寄存器、中斷控制和定時/計數(shù)器的工作方式。圖41系統(tǒng)軟件流程總圖首先定時/計數(shù)器的計數(shù)寄存器清0,運行控制位TR置1,啟動對待測信號的計數(shù)。計數(shù)寄存器中的數(shù)值經(jīng)過數(shù)制轉(zhuǎn)換程序從十六進制數(shù)轉(zhuǎn)換為十進制數(shù)。定時/計數(shù)器的工作被設置為定時器方式,定時/計數(shù)器的計數(shù)寄存器清0,在判斷待測信號的上跳沿到來后,運行控制位TR置為1,以單片機工作周期為單位進行計數(shù),直至信號的下跳沿到來,運行控制位TR清0,停止計數(shù)。本次設計由于本人知識的有限,所以設計的系統(tǒng)并不是最理想的。此法可保證測頻過程中精度一直很高,但實現(xiàn)的電路和程序都將很復雜。 中斷服務子程序T1中斷服務子程序流程如圖42所示。圖42 T1中斷服務子程序定時/計數(shù)器T0工作在計數(shù)方式, 對信號進行計數(shù),計數(shù)器0中斷流程圖如圖43所示。, 每位保持1mS ,在10mS~20mS 之內(nèi)再點亮一次,重復不止,利用人的視角暫留,好像8 位數(shù)碼管同時點亮。圖44 顯示子程序流程圖 應用軟件簡介此設計需要在Keil軟件平臺上完成程序的調(diào)試,在Proteus軟件平臺上完成仿真顯示。 Keil簡介Keil軟件是目前最流行開發(fā)系列單片機的軟件,Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。因此在仿真和程序調(diào)試時,關心的不再是某些語句執(zhí)行時單片機寄存器和存儲器內(nèi)容的改變,而是從工程的角度直接看程序運行和電路工作的過程和結(jié)果。(1)建立工程文件點擊“ProjectNew project”菜單,出現(xiàn)一個對話框,要求給將要建立的工程起一個名字,你可以在編緝框中輸入一個名字,點擊“保存”按鈕,出現(xiàn)第二個對話框,按要求選擇目標器件片。分別設置“target1”中的“Target,output,debug”各項,使程序匯編后產(chǎn)生HEX文件。在集成開發(fā)環(huán)境中選擇菜單“File → New...”、單擊對應的工具按鈕或者快捷鍵Ctrl +N 將打開一個新的文本編輯窗口,完成匯編語言源文件的輸入,并且完成源程序向當前工程的添加。注意,匯編語言源文件的擴展名應該是“ASM”,它應該與工程文件存儲在同一文件夾之內(nèi)。接著的工作需要把匯編語言源文件加入工程之中。在快捷菜單中選擇“Add File to Group ‘Source Group 1’”,加入文件對話框被打開。雙擊要加入的文件名或者選擇要加入的文件名再單擊“Add”按鈕即可完成把匯編語言源文件加入工程。如果不需要加入其它文件,單擊“Close”按鈕可以關閉加入文件對話框。 需要注意,當把匯編語言源文件加入工程但還沒有關閉加入文件對話框,這時有可能被誤認為文件沒有成功地加入工程而再次進行加入操作,系統(tǒng)將顯示所需的文件已經(jīng)加入的提示。(3)編譯源程序,出現(xiàn)錯誤時,返回上一級對錯誤更改后重新編譯,直到?jīng)]有錯誤為止。他支持匯編和C的混合編程,同時具備強大的軟件仿真和硬件仿真功能。Proteus提供了大量的元件庫有RAM,ROM,鍵盤,馬達,LED,LCD,AD/DA,部分SPI器件,部分IIC器件,它可以仿真單片機和周邊設備,可以仿真51系列、AVR,PIC等常用的MCU,與keil和MPLAB不同的是它還提供了周邊設備的仿真,只要給出電路圖就可以仿真。(1)首先將keil和 Protues兩個軟件安裝好。(3)打開protues軟件,新建一文件將硬件原理圖繪入圖中。(5)在keil中進行debug,同時在proteus中查看直觀的結(jié)果(如LCD顯示??)。利用Proteus與Keil整合進行實驗,具有比較明顯的優(yōu)勢,當然其存在的缺點也是有的。第五章 頻率計的系統(tǒng)調(diào)試頻率計的系統(tǒng)調(diào)試包括系統(tǒng)軟、硬件聯(lián)合調(diào)試。使用軟件仿真,調(diào)試仿真結(jié)果,同時使用數(shù)字萬用表和示波器測試輸出電壓值和輸出波形,調(diào)試出正確的軟硬件電路。搭建好硬件電路,檢查線路連接正確,通電,LED燈亮,LM7805芯片不發(fā)燙,證明電路基本正常工作。圖51 5V輸出波形整形電路采用與非門74LS00構成施密特觸發(fā)器,它對正弦波、三角波等各種波形信號進行整形,使之成為矩形脈沖。選擇虛擬函數(shù)發(fā)生器輸入不同的信號,同時使用數(shù)字示波器測的輸出波形,經(jīng)測試施密特觸發(fā)器可以把1Hz40MHz的正弦波等波形整形為方波信號,仿真結(jié)果如圖53所示。圖54 整形電路實際輸出波形 分頻模塊調(diào)試為了達到1Hz40MHz的頻率范圍,使用外部分頻,搭建分頻電路,測試電路基本正確,選擇函數(shù)發(fā)生器輸入2MHz以下不同頻率的的方波信號,同時使用數(shù)字示波器測的輸出波形,經(jīng)觀察分頻電路可以把2MHz以下不同頻率的方波波形進行十分頻,示波器測得輸入輸出波形如圖55所示。Proteus總體仿真圖56所示。例如輸入信號123Hz,仿真顯示如圖57所示。例如輸入信號10KHz,仿真顯示如圖58所示。 系統(tǒng)軟件調(diào)試經(jīng)軟件的調(diào)試—修改—再調(diào)試,如此反復,排除各種故障最終基本完成了設計所要求的任務。 軟件仿真測量數(shù)據(jù)如下表51所示。經(jīng)過不斷的軟硬件聯(lián)合調(diào)試,修改程序和硬件,最終符合設計功能要求。用這次設計的頻率計對信號進行了測量,使用函數(shù)發(fā)生器輸出各種波形,由實物頻率計測得頻率,記錄數(shù)據(jù)。實際記錄數(shù)據(jù)如下表54所示。但是在硬件調(diào)試中,可能是由于標準元器件本身誤差,如隨著時間的延長,其值相比出廠時產(chǎn)生誤差;造成測量結(jié)果沒有軟件仿真精確。第六章 總結(jié)畢業(yè)設計已經(jīng)結(jié)束,通過這次設計,我受益匪淺。通過本次畢業(yè)設計我得到了很多收獲。其次掌握了C語言的編寫程序,學會了使用PROTUTES和KEIL的仿真來實現(xiàn),同時掌握了如何收集、查閱、應用文獻資料,如何根據(jù)實際需要有選擇的閱讀書籍和正確確定系統(tǒng)所要使用的元器件的類型。面對存在的困難首先分析問題根據(jù)目的要求確定可實現(xiàn)的部分,定出那不準的方面找同學和老師討論研究,再完善、再修改、再發(fā)現(xiàn)問題、再解決培養(yǎng)了自己的耐心、恒心及遇事不亂的精神。在畢業(yè)設計中我的很多方面的能力都得到了提高,尤其在單片機軟件編程方面讓我感觸頗深。通過這次畢業(yè)設計,我分析問題和解決問題的能力有所提高,也鞏固了所學的知識,加深了對理論知識的理解,更重要的是鍛煉自己的獨立性,為我今后的工作和學習打下堅實的基礎。從論文的選題、資料的收集到論文的撰寫編排整個過程中,我得到了許多的熱情幫助。劉老師多次詢問研究進程,并為我指點迷津,幫助我開拓研究思路,精心點撥、熱忱鼓勵。還有在我大學三年悉心教導我的老師們,是你們教會我很多有用的知識,特別是教會了我解決問題思考問題的方式和習慣,我在做論文的時候才能有自己的思想和規(guī)劃,論文工作才有了目標和方向。最后,感謝各位評審老師在百忙中抽出時間對論文進行審稿、參加答辯,并對加答辯會的老師和同學表示謝意。int frequency。 //定義定時器T0、T1中斷次數(shù)計數(shù)器uchar T0_TH0=0,T0_TL0=0,T0_num=0。sbit KHZ=P1^1。 //定義頻率校正信號輸出端uchar code bit_tab[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}。uchar disp_buf[8]。 for(i=xms。i) //i=xms即延時約xms毫秒 for(j=110。j)。 for(i=0。i++) { P2=bit_tab[i]。/***送數(shù)***/ Delay_ms(2)。 } }/********以下是中斷初始化函數(shù)********/void zd(){ EA=1。 //定時器T1為工作方式1,定時方式;T0為工作方式1,計數(shù)方式 TH0=0。 //置計數(shù)初值 ET0=1。 //啟動定時器0 PT0=1。TL1=(6553550000)%256。 //開定時器1中斷 TR1=1。 //頻率值計算 disp_buf[0]=frequency/10000000。 disp_buf[1]=frequency/1000000。 disp_buf[2]=frequency/100000。 disp_buf[3]=frequency/10000。 disp_buf[4]=frequency/1000。 disp_buf[5]=frequency/100。 disp_buf[6]=frequency/10。 //個位 }main(){ zd()。 else if(MHZ==0) K=512。 while(1) { convert()。 }}/********以下是定時器T0中斷函數(shù)(計數(shù)方式,初值為0,計滿65535產(chǎn)生一次溢出中斷)********/void timer0() interrupt 1{ TH0=0。 //重裝計數(shù)初值 T0_count++。 //關閉定時器T1TH1=(6553650000)/256。 //重裝計數(shù)初值T1_count++ 。 //關閉定時器T0,停止計數(shù) T1_count = 0。 //取出定時器T0計數(shù)值高位 T0_TL0 = TL0。 //將定時器T0的中斷次數(shù)送T0_num TH0 = 0。 T0_count = 0。 //開啟定時器T0,繼續(xù)計數(shù) }TR1 = 1。 //頻率校正信號取反輸出}
點擊復制文檔內(nèi)容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1