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

正文內(nèi)容

電子測量技術(shù)與儀器專業(yè)--基于at89s51單片機(jī)的數(shù)字頻率計(jì)設(shè)計(jì)-資料下載頁

2024-12-06 03:29本頁面

【導(dǎo)讀】數(shù)字頻率計(jì)是直接用十進(jìn)制數(shù)字來顯示被測信號頻率的一種測量裝置。部信號脈沖計(jì)數(shù)。利用匯編語言在keilc51開發(fā)環(huán)境中編制系統(tǒng)的功能程序。單片機(jī)仿真系統(tǒng),對本系統(tǒng)的軟、硬件進(jìn)行了調(diào)試。本文主要研究了本頻率計(jì)的工作原理和工作過程。數(shù)器進(jìn)行設(shè)置,使單片機(jī)內(nèi)部計(jì)數(shù)器T1能夠精確地測出加到T1引腳的正脈沖個數(shù),本頻率計(jì)可以測量方波,正弦波和三角波等波形的頻。它具有硬件電路簡單,擴(kuò)展容易,測量準(zhǔn)確度高,有很好的開發(fā)前景等優(yōu)點(diǎn),適。于各行各業(yè),尤其是在工業(yè)控制方面的應(yīng)用,前景將更廣大。單片機(jī)的使用還將進(jìn)一步降低智能儀。應(yīng)用領(lǐng)域,將推動單片機(jī)技術(shù)向更高、更新的方向發(fā)展。電子測量儀器就是其中一種,它也是實(shí)。映出一個國家的生產(chǎn)力發(fā)展和現(xiàn)代化水平。路實(shí)驗(yàn)和設(shè)備檢測中具有十分廣泛的用途。實(shí)現(xiàn)定時和計(jì)算脈沖個數(shù),并采用并行輸出將測得的頻率實(shí)時地顯示出來。平有限,本設(shè)計(jì)有很多地方還需改善,請各位老師多批評指正。

  

【正文】 6,16 ; 設(shè)置計(jì)數(shù)值 CLR A MOV 1AH,A ; 存放結(jié)果寄存器清零 MOV 19H,A MOV 18H,A LOOP1: CLR C MOV A,R4 ; 取被轉(zhuǎn)換二進(jìn)制數(shù)乘 2 RLC A MOV R4,A MOV A,R5 RLC A MOV R5,A MOV A,1AH ; 十進(jìn)制調(diào)整后轉(zhuǎn)換成 BCD 碼 ADDC A,1AH ; 存入 18H 19H 1AH DA A MOV 1AH,A MOV A,19H ADDC A,19H DA A MOV 19H,A MOV A,18H ADDC A,18H DA A MOV 18H,A DJNZ R6,LOOP1 MOV A,1AH ANL A,00001111B ;取 1AH 的低四位作為個位 MOV 43H,A MOV A,1AH ANL A,11110000B ; 取 1AH 的高四位作為十位 SWAP A MOV 42H,A MOV A,19H 27 ANL A,00001111B ;取 19H 的低四位作為 百位 MOV 41H,A MOV A,19H ANL A,11110000B ;取 19H 的高四位作為千位 SWAP A MOV 40H,A MOV A,18H ANL A,00001111B MOV 3FH,A MOV A,18H ANL A,11110000B SWAP A MOV 3EH,A RET[9] 顯示子程序設(shè)計(jì) ( 一 ) LED 顯示設(shè)計(jì) 先簡單介紹一下 LED 的工作原理。七段發(fā)光二極管 LED( light emitting diode)是一種應(yīng)用很普遍的顯示器件。從單板微型機(jī)、袖珍計(jì)算器到許多微型機(jī)控制系統(tǒng)及數(shù)字化儀器中都用 LED 作為輸出顯示。 LED 的主要部分是七段發(fā)光管,這 七段發(fā)光段分別稱為 a、 b、 c、 d、 e、 f、 g,又的產(chǎn)品還附帶有一個小數(shù)點(diǎn) Dp,七段式發(fā)光管名稱就是由此而來。 通過 7 個發(fā)光段的不同組合,可以顯示 0~9 和 A~F 共 16 個字母數(shù)字,從而實(shí)現(xiàn)十六進(jìn)制數(shù)的顯示。 LED 可以分為共陽極和共陰極兩種結(jié)構(gòu)。如為共陽極結(jié)構(gòu),則數(shù)碼顯示端輸入低電平有效,當(dāng)某一段得到低電平時,便發(fā)光。比如,當(dāng) a、 b、 g、 e、 d 為低電平,而其他段為高電平時,則顯示數(shù)字“ 2”;如為共陰極結(jié)構(gòu),則數(shù)碼顯示端輸入高電平有效,當(dāng)某段處于高電平時便發(fā)光。 (二)多位 LED 顯示原理 實(shí)際使用時,往往要用幾個 顯示管實(shí)現(xiàn)多位顯示。這時,如果每一個 LED 占用一個獨(dú)立的輸出端口,那么,所占用的輸出管道就太多了,而且驅(qū)動電路的數(shù)目也很多。所以,要從硬件和軟件兩方面想辦法來節(jié)省硬件電路。 下面,我們就來介紹一種常用的方法。在這方案中,硬件上用公用的驅(qū)動電路來驅(qū)動個顯示管,在軟件上用掃描方法來實(shí)現(xiàn)數(shù)碼顯示。 用兩個 8 位的并行輸出通道就可以實(shí)現(xiàn) 4 個 LED 的顯示。其中一個通道作為位 28 控制,如果使用共陰極 LED,那么,當(dāng)控制端口輸出的控制碼某一位為高電平時,此位對應(yīng)的 LED 便顯示數(shù)據(jù)。另一個通道輸出七段譯碼值,通過一個 8 位驅(qū)動器組將譯碼值同時送到各顯示管。此通道和 8 位驅(qū)動器組是由 4 個顯示管分時使用的,因?yàn)楫?dāng) CPU 送出一個代碼時,盡管各顯示管的陰極都收到了此代碼,但是,位碼中只有 1 位為高電平,所以,只有一個管子的相應(yīng)段得到導(dǎo)通而顯示數(shù)字,其他管子并不發(fā)光。我們將此通道和 8 位驅(qū)動器組稱為段控制通道。 如果 CPU 往段控制通道連續(xù)送 8 個數(shù)字,并且依次往位控制通道發(fā)出 8 個位掃描代碼,每個掃描碼中,對應(yīng)于要顯示的位為 1,其余各位為 0,這樣,便可以在 4個 LED 顯示出 4 位十進(jìn)制數(shù)字。利用眼睛的視覺慣性,當(dāng)采用一定的頻率不斷地往4 個 LED 輸送顯示碼和 掃描代碼時,從顯示管上便可見到相當(dāng)穩(wěn)定的數(shù)字顯示??梢?,采用這種方案時,硬件上很節(jié)省,不過, CPU 要用較多的時間去輸出掃描代碼和段顯示碼。 為了節(jié)省硬件,在多位顯示時,往往用軟件來完成段譯碼,即 CPU往 LED 直接輸出段碼。圖 為顯示程序框圖。 采用這個流程框圖編制程序時,需要在內(nèi)存中開辟一個緩沖區(qū),用來存放要顯示的十六進(jìn)制數(shù)。緩沖區(qū)的第一個數(shù)據(jù)送往最左邊的 LED,下一個數(shù)據(jù)送到左邊第二個 LED??,最后一個數(shù)據(jù)送到最右邊的 LED。 另外還需要建立一個表,此表中,從上到下依次存放十進(jìn)制數(shù) 09 對應(yīng)的七段代碼。七段代碼的編碼格式和硬件連接有關(guān)。在這個設(shè)計(jì)中, 對應(yīng) LED 的 b 段, 對應(yīng) LED 的 f 段, 對應(yīng) LED 的 a 段, 對應(yīng) LED 的 g 段, 對應(yīng) LED的 c 段, 對應(yīng) LED 的 Dp 段, 對應(yīng) LED 的 d 段, 對應(yīng) LED 的 e 段。這樣得到 09 所對應(yīng)的代碼為 0D7H, 11H, 0CDH, 5DH, 1BH, 5EH, 0DEH, 15H,0DFH, 1FH[10]。 29 圖 顯示子程序 相應(yīng)的程序如下: 設(shè) 40H 為最高位, 43H 為最低位,先掃描高位 DISPLAY: MOV R0,40H MOV R1,08H ;數(shù)碼管位控制 MOV P2,0FFH PLAY: MOV A,R1 MOV P0,A MOV A,@R0 MOV DPTR,TABLE MOVC A,@A+DPTR 指向緩沖區(qū)首址 取段碼表首址 取要顯示的數(shù) 將數(shù)變?yōu)槎未a 段碼送到段控制通道 位碼送到位控制通道 修改緩沖區(qū)指針和位碼 延遲 一定時間 N Y 退出 是否是最右邊一位? 30 MOV P2,A LCALL DELAY 。顯示 1ms INC R0 MOV A,R1 JB ,ENDOUT ;位控制最低位為 0 則返回 RR A MOV R1,A LJMP PLAY ENDOUT: RET DELAY: MOV R7,250 ;延時子程序 DL: DJNZ R7,DL RET TABLE: DB 0D7H,11H,0CDH,5DH,1BH,5EH,0DEH,15H,0DFH,1FH 31 第 4 章 調(diào)試過程 調(diào)試儀器:編輯器,示波器,傳感器實(shí)驗(yàn)臺,信號發(fā)生器,萬用表等。 硬件調(diào)試 信號預(yù)處理調(diào)試 預(yù)期成果:把輸入信號經(jīng)波形變換整形得到單片機(jī)能檢測到的 TTL 信號。 過程: 1)為了降低單片機(jī)對輸入信號的幅值要求,得到更大的測量范圍,所以在輸入端加了三極管 9013 作為放大器。把示波器產(chǎn)生的固定方波作為輸入信號,可是這樣從波形變換電路出來的信號是一條失真的直線,根本得不到放大的方 波。換成別的波形輸入也不行,即使幅值和頻率都增大還是一樣。我去掉三極管 9012 后反而能從示波器上看到不穩(wěn)定的方波(偶爾會跳變成鋸齒波),不過幅值是縮小的。 結(jié)論 1:一般的三極管不能解決對輸入信號放大的問題,要用集成放大器。 2)有方波輸出了,使我看到了希望。我把輸入信號換成傳感器實(shí)驗(yàn)臺產(chǎn)生的音頻信號,頻率范圍為 400Hz~10KHz。效果并不樂觀,得到的是類似于圖 所示的波形。這明顯是失敗的波形。這是為什么呢? 圖 就在 我多次調(diào)試的過程中,偶然的機(jī)會讓我發(fā)現(xiàn)當(dāng)我兩個手分別碰著信號發(fā)出端和信號輸入端時,從示波器上看到的波形有所改善,很自然的我想到了電阻。加個電阻真的能解決問題嗎?于是我從小電阻試起,以千歐級贈加,直到得到很完美的方波,可是此時的電阻值是讓我吃驚的,居然已達(dá)到 。我一時也沒想明白為什么要加這么大的電阻,難道是因?yàn)檩斎氩ú灰粯?,施密特觸發(fā)器的觸發(fā)方式也不一樣?不過,得到的波形讓我感到興奮,因?yàn)檫@個波形看上去很完美。我用實(shí)驗(yàn)實(shí)的信號發(fā)生器再做調(diào)試,換了方波,三角波,正弦波作為輸入信號,都能得到預(yù)想的效果 — 完美 的方波(后來的調(diào)試證明,現(xiàn)在得到的方波,只要輸入信號的幅值足夠大,就能滿足 TTL信號要求)。 結(jié)論 2:這個由 555 定時器構(gòu)成的施密特觸發(fā)器工作正常,調(diào)試成功 [11]。 單片機(jī)電路及顯示電路調(diào)試 預(yù)期成果:用軟件方法使 LED 顯示器正確顯示 1234。 32 過程:通過檢查,確認(rèn)電路連接無誤后,我根據(jù)顯示電路的設(shè)計(jì)給單片機(jī)寫了一段程序,讓四位 LED 顯示器顯示 1234??墒秋@示器全不亮,百思不得其解,后又認(rèn)真學(xué)習(xí) P0 口的功能,嘗試著給 P0 口加 10k 的外部上拉電阻。結(jié)果證明這樣做是正確的,它能正確地顯示 1234 了。顯示程序如下: ORG 0000H START: MOV A, 08H MOV P0,A MOV P2,11H LCALL DELAY RR A MOV P0, A MOV P2,0CDH LCALL DELAY RR A MOV P0,A MOV P2,5DH LCALL DELAY RR A MOV P0,A MOV P2,1BH LCALL DELAY LJMP START DELYA: MOV R0,250 DL: DJNZ R0,DL RET END 結(jié)論:單片機(jī)工作正常; P0 口作為輸出口使用時要加上拉電阻,才能實(shí)現(xiàn)高電平有效;單片機(jī)電路和顯示電路調(diào)試成功。 軟件調(diào)試 預(yù)期成果:系統(tǒng)功能達(dá)到設(shè)計(jì)要求。 我調(diào)試程序用的是 Keil51 軟件。程序調(diào)起來要困難些,總會出現(xiàn)一些莫名其妙的錯誤或警告。我一開始就犯了一個簡單的錯誤,但是由于缺乏經(jīng)驗(yàn),還有對 Keil51還不能熟練操作,我多次修改,編譯,匯編,可還是出現(xiàn)圖 所示的錯誤。這應(yīng)該就是平時 所說的“飛走了”吧。后來在老師的指導(dǎo)下,終于找到了答案,圖 所示。 33 這里讓我學(xué)到很多很有用的知識,基本掌握 Keil51 的調(diào)試程序的技能,使我后面繼續(xù)調(diào)試程序時熟練了很多,節(jié)省了不少時間。不過還是有難點(diǎn)在,下面這個錯誤就讓我費(fèi)了不少勁。我剛開始的程序用了中斷,中斷期間讀取計(jì)數(shù)器計(jì)得的值,然后中斷返回。讀得的數(shù)據(jù)經(jīng)處理后送 P2 口去顯示。我用信號發(fā)生器產(chǎn)生幅值為 5V, 3000Hz的方波,不經(jīng)信號處理,直接送到單片機(jī)的 /INT1( )口。給系統(tǒng)加電后, LED顯示器只顯示 0,對輸入的方波一點(diǎn)反應(yīng)都沒有。我又修 改程序:直接給計(jì)數(shù)器賦值。這樣顯示器能正確顯示所賦數(shù)值。所以我嘗試關(guān)掉中斷,用查詢法查詢定時器 T0 是否產(chǎn)生溢出。溢出了就讀取 T1 的計(jì)數(shù)值。可這樣調(diào)試時就出現(xiàn)圖 所示的警告。思索良久,覺得查詢法很浪費(fèi) CPU。為了提高 CPU的效率,還是采用定時中斷的方式。當(dāng)中斷服務(wù)程序執(zhí)行完了之后,則又回到原來的主程序處繼續(xù)執(zhí)行。這樣才能體現(xiàn)出中斷的高效性和及時性,編程思路也更明朗。
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1