版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、微型計算機技術(shù)課程設(shè)計 模擬電壓采集電路指導教師: 學生班級: 學生姓名: 學 號: 班內(nèi)序號: 41 課設(shè)日期:2013年1月11日2013年1月16日 同組隊員:24 目錄一 設(shè)計任務、設(shè)計要求、設(shè)計目的-1二 課題設(shè)計思路-2三 設(shè)計儀器、器件-3 以及芯片介紹-3 74LS138-3 8253-4 8255A-5 ADC0809-6 ADC0809與8255A的連接-7 8259內(nèi)部結(jié)構(gòu)及原理-7 數(shù)碼管-9四 芯片初始化編程程序初始化8255和8253-10(1) 初始化8255-10(2) 初始化8253-10編寫中斷服務子程序-11五 程序流程圖-12ADC主程序編寫-12中斷流
2、程-12六 硬件連接圖-13七 程序代碼-14八 主要難點及解決思路和辦法-19九 課設(shè)設(shè)結(jié)果及分析-20十收獲、體會和建議-21一、設(shè)計任務利用微型計算機原理課程中所學的主要可編程接口芯片74LS138、8253、8255A、ADC0809和中斷控制器8259設(shè)計一個模擬電壓采集電路。采用ADC0809設(shè)計一個單通道模擬電壓采集電路,要求對所接通道變化的模擬電壓值進行采集,采集來的數(shù)字量送至數(shù)碼管LED指示,采集完100個數(shù)據(jù)后停止采集過程。設(shè)計要求1、 選用8088CPU和適當?shù)拇鎯ζ餍酒?、接口芯片完成相應的功能?、 畫出詳細的硬件連接圖。3、 畫出各程序的詳細框圖。4、 給出RAM地址
3、分配表及接口電路的端口地址。5、 給出設(shè)計思路。6、 給出程序所有清單并加上必要的注釋。7、 完成設(shè)計說明書。設(shè)計目的1. 通過本設(shè)計,使學生綜合運用微型計算機技術(shù)、匯編語言程序設(shè)計以及電子技術(shù)等課程的內(nèi)容,為以后從事計算機檢測與控制工作奠定一定的基礎(chǔ)。2. 主要掌握并行I/O接口芯片8253、8255A、ADC0809及中斷控制芯片8259A等可編程器件的使用,掌握譯碼器74LS138的使用。3. 學會用匯編語言編寫一個較完整的實用程序。4. 掌握微型計算機技術(shù)應用開發(fā)的全過程:分析需求、設(shè)計原理圖、選用元器件、布線、編程、調(diào)試、撰寫報告等步驟。2、 設(shè)計思路: 本設(shè)計是利用已給芯片配搭相應
4、輔助器件完成一個對電壓的采集并顯示的過程。我對這個課題的設(shè)計思路如下: 先用ADC0809模數(shù)轉(zhuǎn)換芯片作為與外部測量到的模擬量相連接,如果ADC0809接收到模擬量時,將其轉(zhuǎn)化為相應的數(shù)字信號。然后中斷芯片8259不停地對外設(shè)進行探測,沒有發(fā)現(xiàn)中斷就繼續(xù)探測,當有模擬量轉(zhuǎn)化為數(shù)字量時,就有中斷執(zhí)行。8088開始工作,通過接口電路8255A對數(shù)據(jù)進行傳輸,最后顯示在數(shù)碼管上!100個數(shù)據(jù)還得分配相應的內(nèi)存空間(本設(shè)計中沒有畫出相應的存儲芯片)。本設(shè)計以8088為中心,通過譯碼器74LS138對個芯片的工作進行地址分配,控制各個芯片工作在何種狀態(tài)。 當?shù)谝粋€模擬信號通過采集放到內(nèi)存并顯示后,中斷執(zhí)
5、行結(jié)束,8088通過控制分頻器8253,在一定時間間隔后再對模擬電壓量進行采集,知道執(zhí)行100次之后,采集電壓過程結(jié)束!三、設(shè)計儀器、器件1、一臺微機原理與接口實驗裝置一套。2、可編程芯片8253、8255A 、ADC0809和譯碼器芯片74LS138、8259中斷芯片、數(shù)據(jù)總路線緩沖器74LS245各一片。3、四位數(shù)碼管4、其它邏輯器件、導線若干、示波器、萬用表、常用工具等。74LS138芯片圖:控制方式圖:當一個選通端為高電平,另兩個選通端為低電平時,可將地址端(A、B、C)的二進制編碼在Y0至Y7對應的輸出端以低電平譯出。比如:ABC=110時,則Y6輸出端輸出低電平信號。8253825
6、3內(nèi)部有三個計數(shù)器,分別稱為計數(shù)器0、計數(shù)器1和計數(shù)器2,他們的機構(gòu)完全相同。每個計數(shù)器的輸入和輸出都決定于設(shè)置在控制寄存器中的控制字,互相之間工作完全獨立。每個計數(shù)器通過三個引腳和外部聯(lián)系,一個為時鐘輸入端CLK,一個為門控信號輸入端GATE,另一個為輸出端OUT。每個計數(shù)器內(nèi)部有一個8位的控制寄存器,還有一個16位的計數(shù)初值寄存器CR、一個計數(shù)執(zhí)行部件CE和一個輸出鎖存器OL。8255A8255A在使用前要寫入一個方式控制字,選擇A、B、C三個端口各自的工作方式,共有三種;方式0 :基本的輸入輸出方式,即無須聯(lián)絡就可以直接進行的 I/O方式。其中A、B、C口的高四位或低四位可分別設(shè)置成輸入
7、或輸出。方式1 :選通I/O,此時接口和外圍設(shè)備需聯(lián)絡信號進行協(xié)調(diào),只有A口和B口可以工作在方式1,此時C口的某些線被規(guī)定為A口或B口與外圍設(shè)備的聯(lián)絡信號,余下的線只有基本的I/O功能,即只工作在方式0.方式2: 雙向I/O方式,只有A口可以工作在這種方式,該I/O線即可輸入又可輸出,此時C口有5條線被規(guī)定為A口和外圍設(shè)備的雙向聯(lián)絡線,C口剩下的三條線可作為B口方式1的聯(lián)絡線,也可以和B口一起方式0的I/O線。8255A是一個并行輸入、輸出器件,具有24個可編程設(shè)置的I/O口,包括3組8位的I/O為PA口、PB口、PC口,又可分為2組12位的I/O口:A組包括A口及C口高4位,B組包括B口及C
8、組的低4位。A口可以設(shè)置為方式0、方式1、方式2,B口與C口只能設(shè)置為方式0或方式1.ADC08091、提供一個8通道的多路開關(guān)和尋址邏輯l IN0IN7:8個模擬電壓輸入端l ADDA、ADDB、ADDC:3個地址輸入線l ALE:地址鎖存允許信號2、ALE的上升沿用于鎖存3個地址輸入的狀態(tài),然后由譯碼器從8個模擬輸入中選擇一個模擬輸入端進行A/D3、ADC0809的轉(zhuǎn)換時序:4、ADC0809內(nèi)部鎖存轉(zhuǎn)換后的數(shù)字量5、具有三態(tài)數(shù)字量輸出端D0D76、配合輸出允許信號OE7、當輸出允許信號OE為高電平有效時,將三態(tài)鎖存緩沖器的數(shù)字量從D0D7輸出(4).8255A與ADC0809的連接中斷控
9、制器8259 8259芯片的工作原理一個外部中斷請求信號通過中斷請求線IRQ,傳輸?shù)絀MR(中斷屏蔽寄存器),IMR根據(jù)所設(shè)定的中斷屏蔽字(OCW1),決定是將其丟棄還是接受。如果可以接受,則8259A將IRR(中斷請求暫存寄存器)中代表此IRQ的位置位,以表示此IRQ有中斷請求信號,并同時向CPU的INTR(中斷請求)管腳發(fā)送一個信號。但CPU這時可能正在執(zhí)行一條指令,因此CPU不會立即響應。而當這CPU正忙著執(zhí)行某條指令時,還有可能有其余的IRQ線送來中斷請求,這些請求都會接受IMR的挑選。如果沒有被屏蔽,那么這些請求也會被放到IRR中,也即IRR中代表它們的IRQ的相應位會被置1。當CP
10、U執(zhí)行完一條指令時后,會檢查一下INTR管腳是否有信號。如果發(fā)現(xiàn)有信號,就會轉(zhuǎn)到中斷服務,此時,CPU會立即向8259A芯片的INTA(中斷應答)管腳發(fā)送一個信號。當芯片收到此信號后,判優(yōu)部件開始工作,它在IRR中,挑選優(yōu)先級最高的中斷,將中斷請求送到ISR(中斷服務寄存器),也即將ISR中代表此IRQ的位置位,并將IRR中相應位置零,表明此中斷正在接受CPU的處理。同時,將它的編號寫入中斷向量寄存器IVR的低三位(IVR正是由ICW2所指定的,不知你是否還記得ICW2的最低三位在指定時都是0,而在這里,它們被利用了?。┻@時,CPU還會送來第二個INTA信號,當收到此信號后,芯片將IVR中的內(nèi)
11、容,也就是此中斷的中斷號送上通向CPU的數(shù)據(jù)線。數(shù)碼管數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是哪個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。4、 芯片初始化(1)初始化8255:8255有四個寄存器,地址為300h-303h,分別為A口,B口,C口,和控制口,首先要向C口寫入控制字,控制字格式
12、如下:工作方式控制D7 D6 D5 D4 D3 D2 D1 D0特征位1A組方式選擇端口A輸入/輸出C口高四位輸入/輸出B組方式選擇端口B輸入/輸出端口C低四位輸入/輸出C端口置位/復位控制D7 D6 D5 D4 D3 D2 D1 D0特征位0任意位選擇置位/復位 0為復位,1為置位可用如下代碼初始化8255:MOV DX,303H MOV AL,10011001bOUT DX,AL(2)初始化82538253控制字格式如下D7 D6 D5 D4 D3 D2 D1 D0計數(shù)器選擇讀寫格式工作方式計數(shù)方式輸入時鐘信號為0.5MHZ,需要寫入的計數(shù)初值為2,選用計數(shù)器0,工作方式3,代碼如下:MO
13、V DX,307H MOV AL,00110110b OUT DX,AL MOV AX,2 MOV DX,304H OUT DX,AL MOV AL,AH OUT DX,AL(3)編寫中斷服務子程序首先要設(shè)置好中斷向量,這里是調(diào)用72H號中斷,在里面寫入A/D轉(zhuǎn)換的中斷服務子程序地址,所以要保存原來72H中斷向量表里面的內(nèi)容,最后在程序完成時要恢復72H里的內(nèi)容,在執(zhí)行這些操作的時候是不容許中斷的,所以要關(guān)中斷,操作完成后要開中斷,可以用一下指令來完成:CLI;獲取原中斷向量里的內(nèi)容并保存 IN AL,0A1H;設(shè)置中斷屏蔽寄存器,系統(tǒng)自動產(chǎn)生72號中斷 AND AL,0FBH OUT 0A1
14、H,AL MOV AX,3572H INT 21H MOV INTOFF,BX MOV INTSEG,ES PUSH DS MOV DX,OFFSET CONVERT_PROC;設(shè)置新的中斷向量 MOV AX,SEG CONVERT_PROC MOV DS,AX MOV AX,2572H INT 21H POP DSSTI;開中斷,進行判斷選擇按什么鍵CLI;恢復1C號中斷向量 MOV DX,INTOFF MOV AX,INTSEG MOV DS,AX MOV AX,2572H INT 21H STI中斷服務子程序:要想啟動0809進行轉(zhuǎn)換,首先必須有一個start信號,該信號為:在轉(zhuǎn)換的時候
15、通過EOC信號來判斷轉(zhuǎn)換是否結(jié)束,當EOC信號由0變?yōu)?時就代表轉(zhuǎn)換結(jié)束,此時讓OE引腳為1,這時轉(zhuǎn)換出來的數(shù)據(jù)就輸出了。五、程序流程圖 ADC主程序編寫開 始8253初始化8255初始化中斷向量的設(shè)置啟動8253分頻啟動ADC有 中 斷?中斷處理采集100次到否?有ESC按下?結(jié) 束 六、詳細的硬件連接圖七、程序代碼STACK1 SEGMENT STACKDW 200 DUP(?)STACK1 ENDSDATA SEGMENTMESG1 DB '8255 checkself 8253 checkself and A/Dconversion',0ah,0dh DB 'E
16、xit with Esc',0ah,0dh,'$'LEDDATA DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FHNUM db 0 count1 db 0INT0A_OFF DW(?)INT0A_SEG DW(?) DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATADELAY PROC PUSH CX PUSH BX MOV BX,0FFFHLOOP2:MOV CX,0FFFFHLOOP1:LOOP LOOP1 DEC BX JNZ LOOP2 POP BX POP CX RET DELAY END
17、P ;延時程序START: MOV AX,DATA MOV DS,AX MOV AH,09H MOV DX,OFFSET MESG1 INT 21h ;顯示提示信息 MOV DX,303H ;初始化8255 MOV AL,80H OUT DX,AL MOV DX,301H ;LED燈亮4盞滅四盞 MOV AL,0F0H OUT DX,AL MOV AX,3572H ;獲取原中斷向量 INT 21H MOV INT0A_OFF,BX ;保存原中斷向量 MOV BX,ES MOV INT0A_SEG,BX CLI ;關(guān)中斷 MOV AX,2572H MOV DX,SEG LEDLIGHT ;設(shè)置新
18、的中斷向量 PUSH DS MOV DS,DX MOV DX,OFFSET LEDLIGHT INT 21H POP DS STI ;開中斷 IN AL,0A1H ;打開IRQ10 AND AL,0FBH OUT 0A1H,AL IN AL,21H ;打開IRQ2 AND AL,0FBH OUT 21H,AL MOV DX,307H ;8253定時1S MOV AL,01110110B OUT DX,AL MOV DX,305H MOV AL,0E8H OUT DX,AL MOV AL,03H OUT DX,AL MOV DX,307H MOV AL,10110110B OUT DX,AL M
19、OV DX,306H MOV AL,0E8H OUT DX,AL MOV AL,03H OUT DX,ALL1: MOV AH,0BH ;檢查是否有Esc鍵按下 INT 21H INC AL JNZ NEXT0 ; 若無鍵按下,則程序往下執(zhí)行 MOV AH,08H ;如有Esc鍵按下,則程序退出 INT 21H CMP AL,27 JZ EXIT NEXT0: CALL DELAY JMP L1 EXIT: MOV AX,2572H ;恢復中斷向量 MOV DX,INT0A_SEG PUSH DS MOV DS,DX MOV DX,INT0A_OFF INT 21H POP DS IN AL,
20、0A1H ;屏蔽IRQ10 OR AL,04H OUT 0A1H,AL IN AL,21H ;屏蔽IRQ2 OR AL,04H OUT 21H,AL MOV AX,4C00H ;程序退出 INT 21H LEDLIGHT PROC FAR ;中斷服務程序 PUSH AX INC count1 MOV AL,count1 CMP AL,100 POP AX JZ EXIT ;采集到100次后退出 CLI ;關(guān)中斷 MOV DX,303H MOV AL,10011000B OUT DX,AL ;重寫8255方式字,A口輸入,C口低四位輸出,C口高四位輸入lop: MOV DX,303H MOV A
21、L,1H OUT DX,AL ;先使PC0為1 MOV CX,0F00Hlop1: LOOP lop1 ;延時 MOV DX,303H MOV AL,00H ;使PC0為0下降沿啟動信號 OUT DX,ALlopsub: MOV DX,302 IN AL,DX AND AL,10H JZ lopsub ;判斷PC4是否為高,即判斷轉(zhuǎn)換是否結(jié)束 MOV DX,303H MOV AL,5H OUT DX,AL ;使PC2為高,發(fā)出OE MOV DX,300H IN AL,DX ;從A口讀數(shù)據(jù) MOV BL,AL PUSH AX MOV DX,303H MOV AL,10011001B OUT DX
22、,AL MOV DX,301H MOV AL,BL OUT DX,AL ;將數(shù)據(jù)輸入發(fā)光二極管顯示 POP AX PUSH AXshow1: ;顯示高四位 AND AL,0F0H SHR AL,4 CMP AL,9 JA HEX2 ADD AL,30H JMP NEXTPROL1 HEX2: ADD AL,37HNEXTPROL1: MOV DL,AL MOV AH,2 INT 21H POP AX AND AL,0FH ;顯示低四位 CMP AL,9 JA HEX3 ADD AL,30H JMP next4 HEX3: ADD AL,37H next4: PUSH AX INC NUM MO
23、V AL,NUM CMP AL,5 POP AX JNZ NEXT5 ;使一行輸入5個數(shù)據(jù) MOV DL,AL MOV AH,2 INT 21H MOV DL,20H ;向屏幕送空格符 MOV AH,2 INT 21H MOV DL,13 ;向屏幕送回車符 MOV AH,2 INT 21H MOV DL,10 ;向屏幕送換行符 MOV AH,2 INT 21H MOV NUM,0 JMP NEXT NEXT5: MOV DL,AL MOV AH,2 INT 21H MOV DL,20H ;向屏幕送空格符 MOV AH,2 INT 21HNEXT: MOV AL,62H ;發(fā)中斷結(jié)束命令 MOV
24、 DX,0A0H OUT DX,AL ;向從片8259發(fā)EOI命令 OUT 020H,AL ;向主片8259發(fā)EOI命令 STI ;開中斷 IRETLEDLIGHT ENDPCODE ENDS END START八、設(shè)計過程中的主要難點及解決思路和辦法:在本次設(shè)計中,我遇到的問題很多:1、 ADC08009模數(shù)轉(zhuǎn)換芯片的使用,以及對這塊芯片與接口單元8255A的連接很不熟悉。解決方法:先翻閱相關(guān)文獻,了解ADC0809各個接口的功能以及內(nèi)部結(jié)構(gòu)原理,再和本次設(shè)計的課題相結(jié)合,找出它與8255A的連接方式。2、 譯碼器74LS138如何輸出相應的地址控制各個芯片正常工作。解決方法:在設(shè)計前先對這個電路的所有工作方式寫出來,然后通過對相應的芯片的片選端進行置1或置0,從而對每一個方式進行地址譯碼,這樣就可以較簡潔地通過譯碼器輸出相應控制地址。3、 中斷處理器8259如何放入設(shè)計電路中,對中斷進行執(zhí)行。解決方法:整理思路,結(jié)合中斷處理的過程和原理,結(jié)合本次設(shè)計電路的要求,將每次采集的每一個模擬電壓量看作一次中斷,從而將中斷融入到次電路設(shè)計中去。4、74LS245數(shù)據(jù)總路線緩沖器的原理結(jié)構(gòu)及使用方法不太了解。 解決方法:通過網(wǎng)絡、書籍等途徑,對74LS245數(shù)據(jù)總路線緩沖器的內(nèi)部結(jié)構(gòu)、原理進一步了解,熟悉74LS245的功能表,從
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年版財產(chǎn)分割協(xié)議:離婚雙方適用2篇
- 2024年度塔吊司機承包勞務合作協(xié)議書3篇
- 2024年版標準化建筑工程協(xié)議范本版
- 《頜面神經(jīng)痛》課件
- 2024年版專業(yè)養(yǎng)殖場租賃協(xié)議范本一
- 2024年標準版英文個人擔保協(xié)議模板版B版
- 2024年歐洲能源市場交易合同
- 2024年專業(yè)文印室設(shè)備銷售與承包服務合同3篇
- 2024年標準股東擔保借款協(xié)議版B版
- 2025北京市房屋出租居間合同范本
- 2024人教版英語七年級上冊期末全冊知識點復習
- 新聞記者職業(yè)資格《新聞采編實務》考試題庫(含答案)
- 2024-2025學年 數(shù)學二年級上冊冀教版期末測試卷 (含答案)
- 2024-2025學年人教版初中物理九年級全一冊期末考試模擬測試卷1(第13~19章)(原卷版)
- 操作系統(tǒng)-001-國開機考復習資料
- 小兒外科常見疾病護理
- Unit5 The colourful world (說課稿)-2024-2025人教版(PEP)(2024)英語三年級上冊
- Unit 1 Life Choices Topic Talk說課稿 2024-2025學年高中英語北師大版必修第一冊
- 吊裝作業(yè)事故應急演練方案范文
- 快樂讀書吧:中國民間故事(專項訓練)-2023-2024學年五年級語文上冊(統(tǒng)編版)
- 山東省煙臺市2023-2024學年高一上學期期末考試 化學 含解析
評論
0/150
提交評論