微機(jī)原理課設(shè)數(shù)字頻率計(jì)的設(shè)計(jì)_第1頁(yè)
微機(jī)原理課設(shè)數(shù)字頻率計(jì)的設(shè)計(jì)_第2頁(yè)
微機(jī)原理課設(shè)數(shù)字頻率計(jì)的設(shè)計(jì)_第3頁(yè)
微機(jī)原理課設(shè)數(shù)字頻率計(jì)的設(shè)計(jì)_第4頁(yè)
微機(jī)原理課設(shè)數(shù)字頻率計(jì)的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、實(shí)驗(yàn)題目:數(shù)字頻率計(jì)的設(shè)計(jì)1.設(shè)計(jì)目的 通過(guò)數(shù)字頻率計(jì)的設(shè)計(jì),使同學(xué)們進(jìn)一步掌握:(1) 8086/8088匯編語(yǔ)言程序的設(shè)計(jì)和調(diào)試;(2) 信號(hào)頻率的數(shù)字測(cè)量方法;(3) 定時(shí)計(jì)數(shù)器8253的基本工作原理和應(yīng)用;(4) 微機(jī)基本應(yīng)用系統(tǒng)的設(shè)計(jì)方法;2.設(shè)計(jì)內(nèi)容利用微機(jī)原理實(shí)驗(yàn)裝置,設(shè)計(jì)并實(shí)現(xiàn)一個(gè)信號(hào)頻率測(cè)試系統(tǒng),要求頻率測(cè)量范圍不小于5HZ50HZ,測(cè)量誤差不大于1HZ,并將測(cè)得的頻率顯示在LED數(shù)碼顯示器上。3.設(shè)計(jì)要求(1) 針對(duì)實(shí)驗(yàn)裝置已有條件,設(shè)計(jì)頻率測(cè)量原理線路;(2) 編制相應(yīng)的測(cè)試軟件,實(shí)現(xiàn)頻率測(cè)量;(3) 實(shí)際上機(jī)調(diào)試,完成綜合實(shí)驗(yàn);(4) 編寫(xiě)設(shè)計(jì)說(shuō)明書(shū)(含原理圖,程序及說(shuō)

2、明,實(shí)驗(yàn)方法,過(guò)程及結(jié)果)。4.方案設(shè)計(jì)及其說(shuō)明4.1硬件電路設(shè)計(jì)在硬件電路部分我們主要采用的芯片有8088,8253,8259,74LS138等?;竟ぷ髟砣缦拢菏紫扔?253芯片的定時(shí)/計(jì)數(shù)器CT1的OUT1端產(chǎn)生10ms的方波再將OUT1與定時(shí)/計(jì)數(shù)器CT0的CLK0端級(jí)聯(lián)使OUT0端產(chǎn)生1s(測(cè)高頻)或10s(測(cè)低頻)方波計(jì)時(shí),定時(shí)/計(jì)數(shù)器CT2的CLK2端接收待測(cè)信號(hào)進(jìn)行計(jì)數(shù),OUTO端口將計(jì)時(shí)信號(hào)輸出到8259芯片的IR7口使8259芯片產(chǎn)生中斷。中斷產(chǎn)生后,CPU將從CT2中讀出計(jì)數(shù)值并轉(zhuǎn)化為頻率值并在數(shù)碼管顯示該頻率值。具體測(cè)量方法如下:當(dāng)CLK2接收到的待測(cè)信號(hào)為高頻率的脈

3、沖信號(hào)時(shí),令計(jì)時(shí)為1s,即每秒產(chǎn)生一次中斷,即OUT1生成10ms的方波,OUT0出來(lái)的便是1s的方波。利用M法可以知道,在下一個(gè)1s到來(lái)的時(shí)候可以測(cè)出1s經(jīng)過(guò)的CLK2的基本脈沖數(shù)為M,則被測(cè)頻率f=M,此時(shí)將M轉(zhuǎn)換為十進(jìn)制顯示在數(shù)碼管上即可。當(dāng)CLK2接收到的待測(cè)信號(hào)為低頻率的脈沖信號(hào)時(shí),此時(shí)設(shè)定中斷定時(shí)時(shí)間為10s,即OUT1生成的依舊是10ms的方波,OUT0生成10s方波脈沖。在下一個(gè)中斷來(lái)臨時(shí),記下CLK2經(jīng)過(guò)的脈沖數(shù)M個(gè),利用T法可以知道所測(cè)的頻率f=M/10,轉(zhuǎn)換為十進(jìn)制顯示在數(shù)碼管上。4.1.1計(jì)時(shí)部分 8253的CT0和CT1級(jí)聯(lián)產(chǎn)生出1秒的方波?;鶞?zhǔn)時(shí)鐘信號(hào)是CT1的CL

4、K1自帶的內(nèi)部晶振1.8432MHZ。當(dāng)CT1寫(xiě)入初值18432時(shí), OUT1即可輸出10ms的方波信號(hào)再輸入給CLKO。CT0寫(xiě)初值100(1000)從OUT0輸出1s(10s)的脈沖時(shí)鐘信號(hào)??刂谱秩缦拢篊TO:00110110 定時(shí)計(jì)數(shù)器0 先低8位再高8位讀寫(xiě) 工作方式3 二進(jìn)制CT1:01110110 定時(shí)計(jì)數(shù)器1 先低8位再高8位讀寫(xiě) 工作方式3 二進(jìn)制4.1.2計(jì)數(shù)部分用8253的CT2產(chǎn)生計(jì)數(shù)。CLK2是待測(cè)信號(hào)脈沖的輸入端。OUT2懸空不接線。初值定為65535,即從65535開(kāi)始,每一個(gè)脈沖周期自減一??刂谱秩缦拢篊T2:10110000定時(shí)計(jì)數(shù)器2 先低8位再高8位讀寫(xiě)

5、工作方式0 二進(jìn)制4.1.3片選尋址部分實(shí)驗(yàn)中用了8253和8259兩片芯片。故需要進(jìn)行地址的片選。8259的地址是FFE0H FFE3H。對(duì)應(yīng)的各地址線如下:A19A9A8A7A6A5A4A3A2A1A0地址11111100000FFE0H11111100001FFE1H11111100010FFE2H11111100011FFE3H對(duì)應(yīng)的片選接74LS138的Y0口8253的地址是FFF8H FFFBH。對(duì)應(yīng)的各地址線如下:A19A9A8A7A6A5A4A3A2A1A0地址11111111000FFF8H11111111001FFF9H11111111010FFFAH11111111011

6、FFFBH對(duì)應(yīng)的片選接74LS138的Y6口4.1.4中斷部分將8253的OUT0的計(jì)時(shí)信號(hào)給8259的IR7口產(chǎn)生中斷。寫(xiě)入控制字令接收到上升沿產(chǎn)生中斷。通過(guò)實(shí)驗(yàn)箱的內(nèi)部已接好的輸出電路給數(shù)碼管顯示。4.1.5硬件線路圖(1)電路原理圖D0-D7 A1A0 A2A3A4 D0-D7 GATE1 CLK1 OUT1A1 A0 CLK0 GATE0 OUT0 CLK2CS OUT2 GATE2AB Y6C Y0CS IR7數(shù)碼管顯示待測(cè)信號(hào)+5V+5V+5V80888253825974LS138(2)完整電路圖(見(jiàn)附頁(yè))TT1=18432TT2=100T1T2=1000T1每10s上升沿產(chǎn)生中斷

7、每1s上升沿產(chǎn)生中斷每次中斷之內(nèi)經(jīng)過(guò)的脈沖個(gè)數(shù)M,則被測(cè)頻率F=M4.1.6操作時(shí)序圖 CLK1:(時(shí)基信號(hào))OUT1:(10ms方波 )OUT0:(1S方波)OUT0:(10S方波)INTR1:(1S中斷)INTR2:(10S中斷)CLK2:(被測(cè)信號(hào))4.2軟件電路設(shè)計(jì)軟件部分共劃分為如下幾個(gè)模塊:1. 8253芯片定時(shí)模塊2. 8253芯片計(jì)數(shù)模塊3. 8259芯片中斷模塊4. 顯示模塊4.2.1軟件流程圖主程序: 開(kāi)始數(shù)碼管初始化8259初始化8253初始化關(guān)中斷定時(shí)計(jì)數(shù)初值開(kāi)中斷等待中斷顯示結(jié)束開(kāi)始寫(xiě)初始命令I(lǐng)CW1寫(xiě)初始命令I(lǐng)CW2寫(xiě)OCW1RET 8259初始化子程序開(kāi)始8253

8、初始化子程序?qū)慍T0控制字置CT0初值寫(xiě)CT1控制字置CT1初值RET8259中斷子程序開(kāi)始關(guān)中斷讀取CT2鎖存值并得到對(duì)應(yīng)頻率值高頻顯示模式 N YAX>2000AX<2000N Y N Y高頻模式轉(zhuǎn)為低頻模式低頻模式轉(zhuǎn)為 高頻模式高頻模式顯示低頻模式顯示關(guān)中斷循環(huán)顯示斷點(diǎn)恢復(fù)開(kāi)中斷結(jié)束二進(jìn)制-十進(jìn)制轉(zhuǎn)化子是否除盡?RET初始化清零SI SI-1SI SI+5程序(高頻)開(kāi)始AX/10 余數(shù)存入SI N Y二進(jìn)制十進(jìn)制轉(zhuǎn)化子程序(低頻)開(kāi)始初始化清零SI SI+5AX/10 余數(shù)存入SISI SI-1AX/10 余數(shù)帶小數(shù)點(diǎn)存入SISI SI-1AX/10 余數(shù)存入SI是否除盡?

9、RET N Y4.2.2源程序代碼(見(jiàn)附頁(yè))5試驗(yàn)中出現(xiàn)問(wèn)題及解決方法 在實(shí)驗(yàn)硬件接線成功將完整程序裝載后進(jìn)行測(cè)試時(shí)候發(fā)現(xiàn)測(cè)試不出來(lái)數(shù)據(jù),經(jīng)過(guò)小組成員討論認(rèn)為可能是高低頻計(jì)算轉(zhuǎn)換算法有問(wèn)題,于是我們決定不論高低頻都用M法測(cè)量定時(shí)一秒發(fā)現(xiàn)測(cè)量結(jié)果是正確的,但誤差過(guò)大,于是將定時(shí)時(shí)間設(shè)為十秒,采用有小數(shù)點(diǎn)顯示算法測(cè)量結(jié)果發(fā)現(xiàn)測(cè)量結(jié)果都是亂碼,經(jīng)過(guò)小組成員討論認(rèn)為是實(shí)驗(yàn)箱有問(wèn)題于是換了一臺(tái)試驗(yàn)箱測(cè)試,結(jié)果發(fā)現(xiàn)當(dāng)送給CT2的待測(cè)信號(hào)是由74LS393的T6、T7給出的時(shí),測(cè)量結(jié)果是正確的,但當(dāng)由函數(shù)發(fā)生器給出待測(cè)信號(hào)時(shí)測(cè)量結(jié)果是亂碼,經(jīng)過(guò)老師知道我們知道了函數(shù)發(fā)生器產(chǎn)生的方波信號(hào)是由負(fù)值的需要調(diào)整才可

10、產(chǎn)生正確的信號(hào),經(jīng)調(diào)整函數(shù)發(fā)生器產(chǎn)生正確方波信號(hào)后測(cè)得正確的結(jié)果。6. 實(shí)驗(yàn)結(jié)果及分析 用函數(shù)發(fā)生器給頻率計(jì)輸入方波信號(hào),可較精確的測(cè)得信號(hào)頻率。測(cè)量范圍為0.1Hz 65534Hz,經(jīng)與函數(shù)發(fā)生器比較,測(cè)量誤差為高頻1Hz,低頻0.1Hz。 部分測(cè)量結(jié)果如下表:高頻待測(cè)(Hz)4450531165259222036實(shí)測(cè)(Hz)4450631166259232035低頻待測(cè)(Hz)7.832.8121.91034.9實(shí)測(cè)(Hz)7.732.7121.81035.07. 課程設(shè)計(jì)心得體會(huì) 為期兩周的微機(jī)原理課程設(shè)計(jì)結(jié)束了,在這兩周的時(shí)間里使我學(xué)到了許多東西,首先通過(guò)此次課設(shè),加強(qiáng)了我們的動(dòng)手、思

11、索和解決問(wèn)題的能力,也加深了對(duì)在課本上所學(xué)理論知識(shí)的理解,特別是更加熟悉了對(duì)常用芯片比如8253,8259,74LS138等的應(yīng)用,同時(shí)在這次課設(shè)中也加深了我對(duì)匯編語(yǔ)言的理解更掌握了8086 的調(diào)試環(huán)境,使我能更好地將在課本上學(xué)到的的理論知識(shí)與實(shí)踐相結(jié)合,同時(shí)在課設(shè)過(guò)程中查閱了許多資料從而更加拓寬了我的知識(shí)面,在這次課設(shè)中也使我更加熟練地掌握了示波器的運(yùn)用,同時(shí)也學(xué)會(huì)了函數(shù)發(fā)生器的使用。 在這次課設(shè)中也使我更加明白了團(tuán)隊(duì)合作的重要性,在課設(shè)過(guò)程中我們遇到了許多問(wèn)題但經(jīng)過(guò)與組員們探討都一一解決了,課設(shè)的成功離不開(kāi)組員們的配合與指導(dǎo)老師的悉心指導(dǎo),在此感謝各位組員的配合與老師的悉心指導(dǎo)。附頁(yè):源程

12、序代碼CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 3400HH8: JMP P8259ZXK EQU 0FFDCHZWK EQU 0FFDDHLED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;09 DB 040H,079H,24H,30H,19H,12H,02H,78H,00H,10H,0FFH ;0.9.BUF1 DB ? ;定義緩沖區(qū)用于存放高低頻的選擇值BUF DB ?,?,?,?,?,? ;定義緩沖區(qū)存放數(shù)碼管要顯示的頻率值Port0 EQU 0FFE0H ;8259首地址Por

13、t1 EQU 0FFE1H ;8253首地址P8259: CLI ;關(guān)中斷 CALL WP ;數(shù)碼管初始狀態(tài)為0 MOV AX,OFFSET INT8259;獲得中斷服務(wù)程序入口地址 MOV BX,003CH MOV BX,AX MOV BX,003EH MOV AX,0000H MOV BX,AX ;以上是寫(xiě)中斷向量表 CALL FOR8259 ;對(duì)8259初始化設(shè)置 CALL FOR8253 ;對(duì)8253初始化設(shè)置 CALL FOR8253X ;對(duì)頻率范圍進(jìn)行設(shè)置 MOV SI,OFFSET BUF1 MOV AL,01H MOV SI,AL ;默認(rèn)為高頻 STI PPP: CALL DI

14、S JMP PPP ;循環(huán)顯示等待中斷;8259初始化;-FOR8259:MOV AL,13H ;上升沿產(chǎn)生中斷(ICW1) MOV DX,Port0 OUT DX,AL MOV AL,08H ;ICW2的設(shè)置 MOV DX,Port1 OUT DX,AL MOV AL,09H ;ICW4的設(shè)置 OUT DX,AL MOV AL,07FH ;設(shè)置IR7為中斷源,并且屏蔽其它的中斷源 OUT DX,ALRET;-;8253初始化(一秒信號(hào));-FOR8253: MOV DX,0FFFBH MOV AL,36H ;0011 0110 CT0,方式3 OUT DX,AL MOV AL,76H ;01

15、11 0110 CT1,方式3 , OUT DX,AL MOV DX,0FFF9H MOV AX,18432 ;CT1置初值 產(chǎn)生10ms方波 OUT DX,AL MOV AL,AH OUT DX,AL MOV DX,0FFF8H MOV AX,100 ;CT0置初值100產(chǎn)生1s定時(shí)信號(hào) OUT DX,Al MOV AL,AH OUT DX,ALRET;-;8253初始化(十秒信號(hào));-FOR8253b:MOV DX,0FFFBH MOV AL,36H ;CT0,方式3 OUT DX,AL MOV AL,76H ;CT1,方式3 OUT DX,AL MOV DX,0FFF9H MOV AX,

16、18432 ; CT1置初值產(chǎn)生10ms方波 OUT DX,AL MOV AL,AH OUT DX,AL MOV DX,0FFF8H MOV AX,1000 ; CT0置初值1000產(chǎn)生10S定時(shí)信號(hào) OUT DX,AL MOV AL,AH OUT DX,AL RET;-;控制CT2計(jì)數(shù),設(shè)置頻率范圍;-FOR8253X: MOV DX,0FFFBH ;控制口地址 MOV AL,0B0H ;CT2,方式0 OUT DX,AL MOV DX,0FFFAH ;CT2地址 MOV AX,65535 ;T2計(jì)數(shù)的最大值 OUT DX,AL MOV AL,AH OUT DX,AL MOV CX,10 ;

17、延時(shí)GOOD: LOOP GOODRET;-;二 十進(jìn)制轉(zhuǎn)化(高頻無(wú)小數(shù)點(diǎn),利用了M法測(cè)量);-BTRO: MOV CL,6 XOR CH,CH XOR DX,DX MOV BX,10 MOV SI,OFFSET BUF ADD SI,5 ;從低位到高位存儲(chǔ)NEXT: DIV BX MOV SI,DL ;除以10的余數(shù)存放低位 DEC SI AND AX,AX JZ STOP ;判斷是否除盡 MOV DL,0 ;將存放余數(shù)的清零 LOOP NEXTSTOP: RET;- ;二 十進(jìn)制轉(zhuǎn)化(低頻有小數(shù)點(diǎn),利用了T法測(cè)量);-BTROb:MOV CL,3 XOR CH,CH XOR DX,DX M

18、OV BX,10 MOV SI,OFFSET BUF ADD SI,5 ;使其從數(shù)碼管的低位開(kāi)始顯示 DIV BX MOV SI,DL DEC SI MOV DL,0 ;將存放余數(shù)的清0 DIV BX ADD DL,10 ;查表將該位的小數(shù)點(diǎn)顯示出來(lái) MOV SI,DL DEC SI AND AX,AX ;檢測(cè)商是否為0,若為0程序跳出,否則繼續(xù) JZ STOP1 MOV DL,0NEXT1: DIV BX MOV SI,DL DEC SI AND AX,AX JZ STOP1 MOV DL,0 LOOP NEXT1 ;由于數(shù)碼管只能顯示5位,則CL=3STOP1: RET;-;8259的中斷

19、子程序;-INT8259: PUSH AX PUSH DX PUSH BX ;斷點(diǎn)保護(hù) CLI MOV DX,0FFFBH MOV AL,80H OUT DX,AL ;鎖存CT2的值,方便下面讀取CT2接口的值 MOV DX,0FFFAH IN AL,DX MOV Bl,AL IN AL,DX MOV BH,AL ;讀取CT2的值,此時(shí)值為剩余的計(jì)數(shù)值 MOV AX,BX MOV DX,65535 SUB DX,AX ;將讀取CT2的值轉(zhuǎn)化為頻率值 MOV AX,DX PUSH AX ;保護(hù)頻率值 MOV SI,OFFSET BUF1 MOV BL,SI CMP BL,1 ;判斷新頻率進(jìn)來(lái)之前

20、的顯示模式 JNZ DIPIN ;低頻跳轉(zhuǎn),高頻繼續(xù)向下執(zhí)行 CMP AX,2000 JB OTHER ;若小于2000,測(cè)的頻率為低頻,跳轉(zhuǎn),否則繼續(xù)向下GOM: CALL FOR8253X CALL WP POP AX CALL BTRO ;將頻率值轉(zhuǎn)化為十進(jìn)制,無(wú)小數(shù) JMP X59DIPIN: CMP AX,20000 ;低頻時(shí),判斷是否為高頻 JNB OTHER2 ;大于20000則為高頻,跳轉(zhuǎn)GOM2: CALL FOR8253X CALL WP POP AX ;出棧 CALL BTROb ;將頻率值轉(zhuǎn)化為十進(jìn)制,此時(shí)帶有小數(shù) JMP X59OTHER: CALL ANTHER ;調(diào)用高頻轉(zhuǎn)低頻程序,設(shè)定標(biāo)志位和中斷時(shí)間(10s) JMP GOMOTHER2: CALL ANTHER2 ;調(diào)用低頻轉(zhuǎn)高頻程序,設(shè)定標(biāo)志位和中斷時(shí)間(1s) JMP GOM2X59: MOV AL,20H MOV DX,Port0 OUT DX,AL ;中斷響應(yīng)后,將ISR相應(yīng)位清0 MOV CX,0050H ;置循環(huán)顯示的次數(shù)XX59: PUSH CX CALL DIS ;調(diào)用顯示程序,將頻率值顯示在數(shù)碼管上 POP

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論