版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 目 錄</p><p> 第1章 頻率計數(shù)器設(shè)計………………………………………………</p><p> 1.1設(shè)計內(nèi)容、要求及目的…………………………………………</p><p> 1.2 基本原理與總體方框圖………………………………………</p><p> 硬件系統(tǒng)設(shè)計…………………………………
2、…………</p><p> 2.1各部分方案及說明………………………………………………</p><p> 2.1.1 單片機部分…………………………………………………</p><p> 2.1.2 狀態(tài)譯碼器…………………………………………………</p><p> 2.1.3數(shù)據(jù)顯示電路………………………………………………………<
3、;/p><p> 第3章 軟件系統(tǒng)設(shè)計……………………………………………</p><p> 3.1 應(yīng)用系統(tǒng)的程序設(shè)計………………………………………………</p><p> 3.1.1 1s定時………………………………………………………………</p><p> 3.1.2 T1計數(shù)程序………………………………………………………<
4、/p><p> 3.1.3 進制轉(zhuǎn)換………………………………………………………</p><p> 3.1.4 數(shù)碼顯示………………………………………………………</p><p> 3.2 程序調(diào)試………………………………………………………………</p><p> 第4章 設(shè)計總結(jié)體會…………………………………………… </p
5、><p> 參考文獻………………………………………………………………</p><p> 附錄………………………………………………………………………………</p><p> 第1章 頻率計數(shù)器設(shè)計</p><p> 1.1 設(shè)計的內(nèi)容、要求及目的</p><p><b> 設(shè)計內(nèi)容:</b>
6、</p><p> 本課題以單片機為核心,設(shè)計和制作一個頻率計數(shù)器,來完成對輸入的信號進行頻率計數(shù),計數(shù)的頻率結(jié)果通過6位動態(tài)數(shù)碼管顯示出來。要求能夠?qū)?-250KHZ的信號頻率進行準(zhǔn)確計數(shù),計數(shù)誤差不超過±1HZ。</p><p><b> 設(shè)計要求:</b></p><p> 設(shè)計方案要合理、正確;</p>&
7、lt;p><b> 系統(tǒng)硬件設(shè)計;</b></p><p> 完成必要元器件選擇;</p><p> 系統(tǒng)軟件設(shè)計及調(diào)試;</p><p><b> 寫出設(shè)計報告</b></p><p><b> 實驗?zāi)康?lt;/b></p><p> 本
8、應(yīng)用系統(tǒng)實驗的目的是通過在“單片機原理及應(yīng)用”課堂上學(xué)習(xí)的知識,以及查閱資料,培養(yǎng)一種自學(xué)的能力。并且引導(dǎo)一種創(chuàng)新的思維,把學(xué)到的知識應(yīng)用到日常生活當(dāng)中。在設(shè)計的過程中,不斷的學(xué)習(xí),思考和同學(xué)間的相互討論,運用科學(xué)的分析問題的方法解決遇到的困難,掌握單片機系統(tǒng)一般的開發(fā)流程,學(xué)會對常見問題的處理方法,積累設(shè)計系統(tǒng)的經(jīng)驗,充分發(fā)揮教學(xué)與實踐的結(jié)合。全能提高個人系統(tǒng)開發(fā)的綜合能力,開拓了思維,為今后能在相應(yīng)工作崗位上的工作打下了堅實的基礎(chǔ)。
9、</p><p> 1.2 基本原理與總體方框圖</p><p><b> 基本原理</b></p><p> 頻率計數(shù)器的主要功能是測量周期信號的頻率。頻率是單位時間( 1S )內(nèi)信號發(fā)生周期變化的次數(shù)。如果我們能在給定的 1S 時間內(nèi)對信號波形計數(shù),并將計數(shù)結(jié)果顯示出來,就能讀取被測信號的頻率。測量過程中定時/計數(shù)器T0和T1的工作方
10、式設(shè)置,T1是工作在計數(shù)狀態(tài)下,對輸入的頻率信號進行計數(shù),在本次設(shè)計使用的98C51單片機,由于檢測一個由“1”到“0”的跳變需要兩個機器周期,前一個機器周期測出“1”,后一個周期測出“0”。故輸入時鐘信號的最高頻率不得超過單片機晶振頻率的二十四分之一,最大計數(shù)值為fOSC/24,由于fOSC=12MHz,因此:T1的最大計數(shù)頻率為0.5mHz。對于頻率的概念就是在一秒只數(shù)脈沖的個數(shù),即為頻率值。所以T0工作在定時狀態(tài)下,每定時1秒中到
11、,就停止T1的計數(shù),而從T1的計數(shù)單元中讀取計數(shù)的數(shù)值,然后進行數(shù)據(jù)處理。送到數(shù)碼管顯示出來。</p><p><b> 總體方框圖 </b></p><p> 課題設(shè)計的是一種以單片機為主控制的頻率計。數(shù)字頻率計主要由以下幾部分組成:定時計數(shù)、采集數(shù)據(jù)、進制轉(zhuǎn)換和數(shù)碼顯示。 本課題主要是以單片機AT89C51 為核心, 通過計數(shù)電路, 以及軟件程序的編寫,
12、 實現(xiàn)脈沖頻率的顯示。頻率計系統(tǒng)總體框圖如下:</p><p> 圖1 頻率計系統(tǒng)總體框圖</p><p> 第2章 硬件系統(tǒng)設(shè)計</p><p> 此次設(shè)計要求制作一頻率計系統(tǒng),需要使用的硬件主要包括51單片機芯片,74LS138譯碼器和數(shù)碼管。另外還是用到排線若干,下載線及電源線。</p><p> 2.1 各部分方案選定、功能
13、</p><p> 2.1.1 單片機部分</p><p> 本次設(shè)計采用了AT89C51 單片機, AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS8位微處理器。如圖2所示:</p><p> 圖2 AT89C52引腳圖</p><p> AT89C51擁有五個中斷源,當(dāng)有外部脈沖到來時可實現(xiàn)中斷的
14、響應(yīng),另外AT89C51擁有定時/ 計數(shù)器(T0、T1),可實現(xiàn)定時與計數(shù)的功能。單片機AT89C51的P0、P2的4個8位并行I/O口可進行外部存儲設(shè)備擴展。 </p><p> 2.1.2 狀態(tài)譯碼器(74LS138)</p><p> 圖3 74LS138譯碼器</p><p> 74LS138譯碼器輸出的狀態(tài)控制數(shù)碼管的亮與滅,它有6個狀態(tài),
15、連接到數(shù)碼管的位選,達到點亮數(shù)碼管點亮的要求。</p><p> 2.1.3 數(shù)據(jù)顯示電路</p><p><b> 圖4 顯示電路圖</b></p><p> 數(shù)據(jù)顯示電路由限流電路和7段數(shù)碼管組成,采用器件LED 顯示器。本設(shè)計中采用了六個七段數(shù)碼管進行數(shù)據(jù)顯示, 將五個數(shù)碼管串接起來進行顯示, 顯示數(shù)據(jù)即是對頻率計的測量結(jié)果。&l
16、t;/p><p> 系統(tǒng)板上硬件連線 :</p><p> 把“單片機系統(tǒng)”中的P0.0-P0.7口連接動態(tài)數(shù)碼的段選ABCDEFGH端口。</p><p> 把“單片機系統(tǒng)”中的P2.0-P2.2與譯碼器74LS138的A、B、C、引腳相連,再把譯碼器經(jīng)“非門”與“動態(tài)數(shù)碼顯示”區(qū)域中的1、2、3、4、5、6端口用6芯排線連接 。</p><
17、p> 把“單片機系統(tǒng)”中的P3.5(T1)端子用導(dǎo)線連接到“頻率源”的端子上。</p><p> (4) 把P3.2(/INT1)與按鍵連接。</p><p> 第3章 軟件系統(tǒng)設(shè)計</p><p> 3.1 應(yīng)用系統(tǒng)的程序設(shè)</p><p> 3.1.1 1s定時</p><p> 采用T0定時5
18、0,連續(xù)循環(huán)定時20次即可完成1定時,用一個計數(shù)單元20H存放循環(huán)的次數(shù),每一次循環(huán)20H單元自減1,當(dāng)20H單元為零時則1定時到時。其程序流程圖如圖5所示。</p><p> 圖5 1s定時流程圖</p><p> 3.1.2 T1計數(shù)程序</p><p> 設(shè)計中T1采用計數(shù)功能,思路是除了計數(shù)器T1的TH1和TL1用于計數(shù)外,再選用一個計數(shù)單元23H
19、,每當(dāng)計數(shù)器T1溢出回零時產(chǎn)生中斷,中斷程序執(zhí)行23H單元自增1,這樣,當(dāng)一秒到時時采集的計數(shù)數(shù)據(jù),23H單元存放的是數(shù)據(jù)的最高位,TH1存放的是數(shù)據(jù)的次高位,TL1存放的是數(shù)據(jù)的最低位。當(dāng)然,這里所說的“最高位”“次高位”以及“最低位”都是針對十六進制而言的。T1計數(shù)程序的流程圖如圖6所示。</p><p> 圖6 T1計數(shù)流程圖</p><p> 3.1.3 進制轉(zhuǎn)換<
20、/p><p> 算法的基本思路是:第一步將最高位的高半字節(jié)提出來,除以10,把商存儲起來,余數(shù)與最高位的低半字節(jié)組合成一個字節(jié),再除以10,再存儲商,余數(shù)以此類推,直到最后一次計算得到的余數(shù)即為十進制數(shù)的個位;第二步把第一步存儲的商組合成一個字節(jié),依次除以10,仍然把每次得到的商存儲起來,以此類推最后一次得到的余數(shù)即為十進制數(shù)的十位;以后也是以此類推得到十進制數(shù)的百位、千位……以上算法必須要注意的一個為題是,每次得
21、到的余數(shù)與低位的半字節(jié)組合成一個字節(jié)時,余數(shù)必須放在該字節(jié)的高半字節(jié),否則計算錯誤。該本次頻率計系待測的時鐘信號的最高頻率為460800Hz,對應(yīng)的十六進制數(shù)為70800H,這里就以70800H轉(zhuǎn)換為十進制數(shù)為例來說明這種算法。</p><p> 第一步:用7H除以10,商0H余7H,把商0存儲在24H單元,余數(shù)7H與下一個字節(jié)08H的高半字節(jié)0H組合成一個字節(jié)70H。70H除以10,商BH余2H,把商BH存儲
22、在25H單元,余數(shù)2H與8H組合成一個字節(jié)28H。28H除以10,商4H余0H,把商4H存儲在26H單元,余數(shù)0H與0H組合成一個字節(jié)00H。00H除以10,商0H余0H,把商0H存儲在27H單元,余數(shù)0H與0H組合成一個字節(jié)00H。00H除以10,商0H余0H,把商0H存儲在28H單元,余數(shù)0即為所需十進制數(shù)的個位。</p><p> 第二步:把存儲在24H與25H單元的商組合成一個字節(jié)0BH。0BH除以10
23、,同第一步,存儲商,余數(shù)與下一個商組合成一個字節(jié),再除以10,一次類推得到十進制數(shù)的十位0。</p><p> 第三步:方法同第二步,得到十進制數(shù)的百位8。</p><p> 第四步:方法同第三步,得到十進制數(shù)的千位0。</p><p> 第五步:方法同第四步,得到十進制數(shù)的萬位6和十萬位4。</p><p> 最后得到了十進制數(shù)46
24、0800。</p><p> 3.1.4 數(shù)碼顯示</p><p> 將十進制數(shù)轉(zhuǎn)換為相應(yīng)的LED顯示的代碼,最容易實現(xiàn)的編程方法就是查表,因數(shù)碼管最多只需要顯示六位,只需要查六次表就可以了,圖7是將十進制數(shù)對應(yīng)的LED顯示代碼存入以60H為首單元的流程圖。</p><p> 圖7 十進制數(shù)轉(zhuǎn)換為顯示代碼流程圖</p><p>&l
25、t;b> 3.2 程序的調(diào)試</b></p><p> 編寫的頻率計總體程序編譯成HEX文件,寫入51單片機內(nèi),在觀察數(shù)碼管顯示的時候,發(fā)現(xiàn)高位的“0”仍然能夠顯示,而通常十進制的高位的“0”通常是省略的。為了解決這個問題,需要另外添加一段屏蔽高位的“0”的程序。具體程序編寫如下:</p><p> PINGBI: MOV 20H,#06H</p>
26、<p> MOV R1,#55H</p><p> PANDUAN:MOV A,@R1</p><p> JNZ SCANNUM</p><p><b> DEC R1</b></p><p><b> DEC 20H</b></p><p> AJMP
27、 PANDUAN </p><p> 程序經(jīng)過調(diào)試以后,數(shù)碼管從高位第一位不為“0”的數(shù)開始顯示。</p><p><b> 參考文獻</b></p><p> 《單片機原理與應(yīng)用》 王迎旭等編 機械工業(yè)出版社</p><p> 《51系列單片機設(shè)計實例》 樓然苗等編 北京航空航天大學(xué)出版社</p>
28、;<p> 《計算機硬件技術(shù)基礎(chǔ)實驗教程》 黃勤等編 重慶大學(xué)出版社</p><p> 4、《微型計算機接口技術(shù)及應(yīng)用》 劉樂善主編 華中科技大學(xué)出版社</p><p> 5、《單片微型計算機原理及接口技術(shù)》陳光東等 華中科技大學(xué)出版社</p><p><b> 附錄1</b></p><p>
29、;<b> 源程序清單:</b></p><p><b> ADD A,25H</b></p><p> MOV B,#0AH</p><p><b> DIV AB</b></p><p> MOV 24H,A ;存儲第一位商</p>&l
30、t;p> MOV A,B M EQU 15</p><p><b> N EQU 5</b></p><p><b> ORG 0000H</b></p><p><b> AJMP MAIN</b></p><p><b> ORG 0003H<
31、;/b></p><p> AJMP CNINT0</p><p><b> ORG 000BH</b></p><p> AJMP T0INT</p><p><b> ORG 001BH</b></p><p> AJMP T1INT</p>
32、<p><b> ORG 0030H</b></p><p> MAIN:MOV SP,#70H</p><p> MOV IE,#8BH ;開放EA、T1、T0中斷</p><p> MOV TMOD,#51H;初始化程序</p><p> MOV TH0,#3DH</p><
33、;p> MOV TL0,#71H</p><p> MOV 20H,#20</p><p> MOV TH1,#00H</p><p> MOV TL1,#00H</p><p> MOV 21H,#00H</p><p> MOV 22H,#00H</p><p> MOV
34、 23H,#00H</p><p><b> SETB IT0</b></p><p><b> SJMP $</b></p><p> CNINT0:SETB TR0</p><p><b> SETB TR1</b></p><p><
35、b> RETI</b></p><p> T0INT:DJNZ 20H,NEXT1;定時中斷服務(wù)程序</p><p><b> CLR TR1</b></p><p><b> CLR TR0</b></p><p> MOV 22H,TH1</p><
36、;p> MOV 21H,TL1</p><p> AJMP TRANSBD</p><p> NEXT1:MOV TH0,#3CH</p><p> MOV TL0,#0B0H</p><p><b> EXIT:RETI</b></p><p> T1INT:INC 23H;計
37、數(shù)中斷服務(wù)程序</p><p><b> RETI</b></p><p> TRANSBD:MOV SP,#70H;將十六進制數(shù)轉(zhuǎn)換成十進制數(shù)</p><p><b> MOV A,23H</b></p><p> MOV B,#0AH</p><p><b&
38、gt; DIV AB</b></p><p> MOV 24H,A ;存儲第一位商</p><p><b> MOV A,B</b></p><p> MOV 30H,22H</p><p> ANL 30H,#0F0H</p><p><b> ADD
39、 A,30H</b></p><p><b> SWAP A</b></p><p> MOV B,#0AH</p><p><b> DIV AB</b></p><p> MOV 25H,A ;存儲第二位商</p><p><b>
40、; MOV A,B</b></p><p><b> SWAP A</b></p><p> ANL 22H,#0FH</p><p><b> ADD A,22H</b></p><p> MOV B,#0AH</p><p><b> D
41、IV AB</b></p><p> MOV 26H,A ;存儲第三位商</p><p><b> MOV A,B</b></p><p> MOV 30H,21H</p><p> ANL 30H,#0F0H</p><p><b> ADD A,30
42、H</b></p><p><b> SWAP A</b></p><p> MOV B,#0AH</p><p><b> DIV AB</b></p><p> MOV 27H,A ;存儲第四位商</p><p><b> MO
43、V A,B</b></p><p><b> SWAP A</b></p><p> ANL 21H,#0FH</p><p><b> ADD A,21H</b></p><p> MOV B,#0AH</p><p><b> DIV AB
44、</b></p><p> MOV 28H,A ;存儲第五位商</p><p> MOV 50H,B ;存儲十進制數(shù)個位</p><p><b> MOV A,24H</b></p><p><b> SWAP A</b></p><p&
45、gt;<b> SWAP A</b></p><p><b> ADD A,26H</b></p><p> MOV B,#0AH</p><p><b> DIV AB</b></p><p> MOV 25H,A ;存儲第二位商</p>
46、<p><b> MOV A,B</b></p><p><b> SWAP A</b></p><p><b> ADD A,27H</b></p><p> MOV B,#0AH</p><p><b> DIV AB</b><
47、;/p><p> MOV 26H,A ;存儲第三位商</p><p><b> MOV A,B</b></p><p><b> SWAP A</b></p><p><b> ADD A,28H</b></p><p> MOV B,
48、#0AH</p><p><b> DIV AB</b></p><p> MOV 27H,A ;存儲第四位商</p><p> MOV 51H,B ;存儲十進制數(shù)十位</p><p><b> MOV A,24H</b></p><p><
49、;b> SWAP A</b></p><p><b> ADD A,25H</b></p><p> MOV B,#0AH</p><p><b> DIV AB</b></p><p> MOV 24H,A ;存儲第一位商</p><p&
50、gt;<b> MOV A,B</b></p><p><b> SWAP A</b></p><p><b> ADD A,26H</b></p><p> MOV B,#0AH</p><p><b> DIV AB</b></p>
51、;<p> MOV 25H,A ;存儲第二位商</p><p><b> MOV A,B</b></p><p><b> SWAP A</b></p><p><b> ADD A,27H</b></p><p> MOV B,#0AH&l
52、t;/p><p><b> DIV AB</b></p><p> MOV 26H,A ;存儲第三位商</p><p> MOV 52H,B ;存儲十進制數(shù)百位</p><p><b> MOV A,24H</b></p><p><b>
53、 SWAP A</b></p><p><b> ADD A,25H</b></p><p> MOV B,#0AH</p><p><b> DIV AB</b></p><p> MOV 24H,A ;存儲第一位商</p><p><
54、;b> MOV A,B</b></p><p><b> SWAP A</b></p><p><b> ADD A,26H</b></p><p> MOV B,#0AH</p><p><b> DIV AB</b></p><
55、;p> MOV 25H,A ;存儲第二位商</p><p> MOV 53H,B ;存儲十進制數(shù)千位</p><p><b> MOV A,24H</b></p><p><b> SWAP A</b></p><p><b> ADD A,25H<
56、;/b></p><p> MOV B,#0AH</p><p><b> DIV AB</b></p><p> MOV 54H,B ;存儲十進制數(shù)萬位</p><p> MOV 55H,A ;存儲十進制數(shù)十萬位</p><p> DISPLAY:MOV R0,#6
57、0H;對60H-65H清零</p><p> MOV R1,#06H</p><p> NEXT2: MOV @R0,#00H</p><p><b> INC R0</b></p><p> DJNZ R1,NEXT2</p><p> MOV R0,#50H;將數(shù)碼管要顯示的頻率送
58、到60H開頭的內(nèi)存</p><p> MOV R1,#5FH</p><p> MOV R2,#06H</p><p> MOV DPTR,#TAB</p><p> NEXT3: MOV A,@R0</p><p> MOVC A,@A+DPTR</p><p><b>
59、 INC R0</b></p><p><b> INC R1</b></p><p><b> MOV @R1,A</b></p><p> DJNZ R2,NEXT3</p><p> PINGBI: MOV 20H,#06H</p><p>
60、MOV R1,#55H</p><p> PANDUAN:MOV A,@R1</p><p> JNZ SCANNUM</p><p><b> DEC R1</b></p><p><b> DEC 20H</b></p><p> AJMP PANDUAN
61、 </p><p> SCANNUM:MOV R0,#60H;將60H開始的數(shù)送到數(shù)碼管顯示</p><p> MOV R1,#00H</p><p> MOV R2,20H</p><p> LIGHT:MOV A,@R0</p><p><b> MOV P0,A</b>&
62、lt;/p><p><b> MOV A,R1</b></p><p><b> MOV P2,A</b></p><p><b> INC R0</b></p><p><b> INC R1</b></p><p> AC
63、ALL DELAY</p><p> DJNZ R2,LIGHT</p><p> AJMP SCANNUM</p><p> DELAY:MOV R5,M</p><p> WAIT:MOV R6,N</p><p> WAITT:DJNZ R6,WAITT</p><p><
64、b> DEC R5</b></p><p> DJNZ R5,WAIT</p><p><b> RET</b></p><p> TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H</p><p><b> END</b&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設(shè)計--簡易頻率計數(shù)器
- 基于單片機的頻率計數(shù)器的設(shè)計.pdf
- 頻率計數(shù)器課程設(shè)計
- 基于單片機的頻率計數(shù)器的設(shè)計3.pdf
- 單片機課程設(shè)計----手動計數(shù)器
- 單片機課程設(shè)計---倒數(shù)計數(shù)器
- 單片機計數(shù)器課程設(shè)計報告
- 倒數(shù)計數(shù)器單片機課程設(shè)計
- 電子電工課程設(shè)計頻率計數(shù)器
- 單片機課程設(shè)計----語言報數(shù)計數(shù)器
- 單片機課程設(shè)計(語言報數(shù)計數(shù)器)
- 單片機頻率計課程設(shè)計
- 課程設(shè)計--基于單片機的頻率計
- 單片機課程設(shè)計報告--- 基于單片機的頻率計設(shè)計
- 單片機頻率計課程設(shè)計
- 單片機課程設(shè)計外部脈沖計數(shù)器
- 頻率計數(shù)器
- 單片機課程設(shè)計報告(零件計數(shù)器)
- 簡易頻率計單片機課程設(shè)計
- 單片機簡易頻率計課程設(shè)計
評論
0/150
提交評論