




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn)匯編語言+ 微型計算機技術信息系2012年8月28日2012年9月9日長江大學工程技術學院課程設計報告課設題目課程名稱系部班級學生姓名學號序號指導教師時間目錄長江大學工程技術學院 錯誤! 未定義書簽。一、設計目的 錯誤!未定義書簽。二、設計內容 錯誤!未定義書簽。三、硬件設計及分析 錯誤! 未定義書簽。1總體結構圖 錯誤!未定義書簽。2. 各部件端口地址設計及分析 錯誤! 未定義書簽。3. 各部件的組成及工作原理 錯誤! 未定義書簽。四、軟件設計及分析 錯誤! 未定義書簽。1總體流程圖 錯誤!未定義書簽。2. 主要程序編寫及分析 錯誤! 未定義書簽。五、系統(tǒng)調試 錯誤!
2、未定義書簽。1. 調試環(huán)境介紹 錯誤!未定義書簽。2. 各部件的調試 錯誤! 未定義書簽。3. 調試方法及結果 錯誤! 未定義書簽。六、總結與體會 錯誤! 未定義書簽。七、附錄 錯誤!未定義書簽。數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn)一、設計目的1. 通過本設計,使學生綜合運用微型計算機技術、 匯編語言程序設計以及電子技術等課程的內容,為以后從事計算機檢測與控制奠定一定的基礎。2. 主要掌握并行I/O 接口芯片8253、8255A ADC080吸中斷控制芯片8259A 等可編程器件的使用,掌握譯碼器 74LS138的使用。3. 學會用匯編語言編寫一個較完整的實用程序。4. 掌握微型計算機技術應用開發(fā)的全過程
3、:分析需求、設計原理圖、選用元器件、布線、編程、調試、撰寫報告等步驟。二、設計內容1. 功能要求 利用匯編語言+微型計算機系統(tǒng)課程中所學的可編程接口芯片8253、8255A、ADC080導口微機內部的中斷控制器 8259A (從保留的IRQ2或TRQ1郵弓| 入)設計一個數(shù)據(jù)采集系統(tǒng)、并且編程與調試。 用8253定時器定時10MS每次定時10MS后啟動一次模/數(shù)轉換,要求 對所接通道變化的模擬電壓值進行采集。 每次模 / 數(shù)轉換結束后,產(chǎn)生一次中斷,在中斷服務程序中,采集來的數(shù)字量被讀入微處理器的累加器 AL中,然后通過8255A輸出到8個LED發(fā)光二 極管顯示。2. 設計所需器材與工具 微機
4、原理與接口綜合仿真實驗平臺。 可編程接口芯片8253、8255A、ADC080和譯碼器芯片74LS138 74LS245 等。 可調電位器Q一個。 其他邏輯器件、導線若干。 萬用表、常用工具等。三、硬件設計及分析1 .總體結構圖圖1一框架總圖2 .各部件端口地址設計及分析8255端口地址:208-20FH,端口 A輸入,端口 B輸出。A 口地址:208H, B 口 地址:209H C 口 地址:20AH8259端口地址:210-217H, ICW1應寫入8259A偶地址端口,它的D7D5位, 當8259A應用于8088/8086系統(tǒng)時無效,故以0填充。D4位是ICW1的標志位, 為1。需要多片
5、8259A級聯(lián)時才需要輸入ICW3 D0位表示初始化編程時是否需 要寫入ICW4這樣,ICW1的命令字就是:00011011,即十六進制的1BH8253端口地址:200-207H。本實驗中計數(shù)器按方式0工作。即十六位二進制 計數(shù)器。當計數(shù)設置好后,計數(shù)器就開始計數(shù)。如果要讀入計數(shù)器的值,要先鎖 存計數(shù)值,才能讀到計數(shù)值。同時OUT卻輸出一個高電平。實驗時,可以將OUT0 接到LED上,觀察計數(shù)器是否工作。ADC080端口地址:218-21FH, CS79接譯碼處 21821FHg個插孔。A/D 的 CS# 譯碼處20820F這個插孔,0809的IN0接至電位器 W1的中心抽頭插孔。3 .各部件
6、的組成及工作原理8255A有三個并行輸入/輸出接口,分別為A B C三個端口。分別為:方式0 :基本的輸入輸出方式,即無須聯(lián)絡就可以直接進行的I/O方式。其中A、B、C 口的高四位或低四位可分別設置成輸入或輸出。方式1 :選通I/O,此時接口和外圍設備需聯(lián)絡信號進行協(xié)調,只有 A口和B 口可以工作在萬式 1 ,止匕時C 口的某些線被規(guī)定為 A 口或B 口與外圍設備的聯(lián)絡信號,余下的線只有基本的I/O功能,即只工作在方式00方式2:雙向I/O方式,只有A 口可以工作在這種方式,該I/O線即可輸入又可輸出,此時 C 口有5條線被規(guī)定為 A口和外圍設備的雙向聯(lián)絡線, C 口剩下的三條線可作為B 口方
7、式1的聯(lián)絡線,也可以和B 口一起方式0的I/O 線。然后根據(jù)在程序中是設置的那種工作方式去與74LS245進行連接。在程序中我所使用的是B口輸入,A口輸出的輸出方式。在這個模塊中最主要的就是去 怎樣設置好輸入與輸出端口。這就要要求我們在對8255A進行初始化的時候就要考慮清楚這個問題。218-21F3436二D0D1D2D3D4D5D6D7RD WRA0A1RESETCS8 255APA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC7423321415fFF一一一19-1A0A1A2A3A4A5B0B1
8、B2B3B4B5B6B7CEAB/BA1817161574LS245D7LEDR810k圖 2-8255中斷管理模塊主要74LS138來完成,74LS138為3-8譯碼器,可以產(chǎn)生8片 選,但是在這個程序中只要用四個片選, 即200-207、208-20F、210-217、218-21F。 74LS138其工作原理如下:當一個選通端(G1)為高電平,另兩個選通端(/(G2A) 和/(G2B)為低電平。可將地址端(A、B、C)的二進制編碼在一個對應的輸出 端以低電平譯出。同時,中斷管理模塊需要做的工作有設置中斷向量。 在對中斷進行設置的時 候可以對中斷類型號進行修改。其實中斷類型號的設置在對 8
9、259進行初始化的 時候就完成了。數(shù)據(jù)采集本K塊是用ADC080歌完成的,通過ADC080歐進行模數(shù)轉換, ADC080所采集的模擬信號轉換為數(shù)字信號。這個模塊是用來對數(shù)據(jù)進行采集、 處理、轉換的部分。在這個模塊里我們要注意的是如何去處理在設計過程中該怎 樣去處理送入軟件里面的信號的頻率,我們在實驗中ADC080前接入的頻率為1MHZ但是也可以去使用2MHZ勺這樣一個頻率,因為是 8253的ADC08091模/ 數(shù)轉換器。其內部有一個 8通道多路開關,它可以根據(jù)地址碼鎖存譯碼后的 信號,只選通8路模擬輸入信號中的一個進行A/D轉換。IN3連接一個滑動電阻器,通過該電阻器改變電阻得到不同的電壓值
10、,經(jīng)過數(shù)據(jù)采集并轉換 后通過LED顯示得到結果U2(IN0)U2262728IN0ADD A1012IN1IN2IN3IN4IN5IN6IN7STARTEOCOUTPUT ENABLECLOCKVCCVREF(+)VREF(-)ADC0809ADD BADD CALE2523 122? -1MSB2 -22 -32 -42 -52 -62 -72 -8LSBGND212019188-151417474LS0:74LS02- U6:BU6:A1R9 10k圖 3-ADC08098253內部有三個計數(shù)器,分別成為計數(shù)器0、計數(shù)器1和計數(shù)器2,他們的機構完全相同。每個計數(shù)器的輸入和輸出都決定于設置在
11、控制寄存器 中的控制字,互相之間工作完全獨立。每個計數(shù)器通過三個引腳和外部聯(lián)系,一個為時鐘輸入端 CLK, 一個為門控彳S號輸入端GATE另一個為輸出端OUT每個計數(shù)器內部有一個8位的控制寄存器,還有一個16位的計數(shù)初值寄存器CR 一個計數(shù)執(zhí)行部件 CE和一個輸出鎖存器 OL。8253可編程計數(shù)器/定時器,內部有三個計數(shù)器,分別成為計數(shù)器計數(shù)器1和計數(shù)器2,他們的機構完全相同。每個計數(shù)器的輸入和輸出都決0、定于設置在控制寄存器中的控制字,互相之間工作完全獨立。工作原理:8253具有3個獨立的計數(shù)通道,采用減1計數(shù)方式。在門控信號有效時,每輸入 1個計數(shù)脈沖,通道作 1次計數(shù)操作。當計數(shù)脈沖是已
12、 知周期的時鐘信號時,計數(shù)就成為定時。8765432122231920D0D1D2D3D4D5D6D7RDWRA0A1CLK0 GATE0 OUTCLK1 GATE1 OUTCLK2 GATE2 OUT91110151413181617U3CS200-2078253A圖 4-8253四、軟件設計及分析1 .總體流程圖8259的初始化圖5-主程序流程圖2. 主要程序編寫及分析I/o 調通端口 地址:208H20FH從端口 A輸入開關的狀態(tài),端口 B輸出接到發(fā)光二極管上,然后由二極管是否發(fā) 光來判斷芯片是否正常start: mov dx,20bhmov al,90hout dx,alabc: mo
13、v dx,208h ; 端口 A 讀入in al,dxmov dx,209h ; 端口 B輸出out dx,aljmp abc2.通過按鈕產(chǎn)生中斷脈沖,向8259申請中斷,在中斷服務程序中 8255A I/o 思路:設置ICW1, ICW2?口 ICW4設置ICW1用于指定中斷觸發(fā)方式和芯片的數(shù)量,ICW2設置用于中斷類型號,設置ICW4主要用于中斷結束的方式start: mov al,13h; icw1mov dx,210h; 8259out dx,almov al,8; icw2mov dx,211hout dx,almov al,1; icw4out dx,almov ax,0mov d
14、s,axlea ax,int0mov ds:4*8,axmov ax,csmov ds:4*8+2,axin al,dxand al,0fehout dx,almov dx,203hmov al,80hout dx,almov bl,1mov al,blmov dx,200hout dx,al ;pa0stirepeat:hltjmp repeatint0 proc nearrol bl,1mov al,blmov dx,200hout dx,almov dx,210hmov al,20h out dx,al iretint0 endp3. 用 8253 定時,產(chǎn)生中斷,重復第二步。 思路:將
15、中斷服務程序的段基地址和偏移地址保存在中斷向量表中,即設置ip和cs,可以將中斷類型號改為8,中斷從IR0端啟動。start:mov al,13h ; 設置 ICW1 初始化命令字(00011011)mov dx,210h out dx,al ;將ICW1輸出到偶地址端口mov al,0ah ;ICW2 中斷類型號基值(0ah) , IR2 啟動mov dx,211h out dx,al ;將ICW2輸出到奇地址端口mov al,1 ;ICW4 ,一般結束中斷的方式 out dx,al mov ax,0 mov ds,ax lea ax,int0 mov ds:4*0ah,ax ;INT0 中
16、斷偏移地址,即設置ip, 設置 csmov ax,cs mov ds:4*0ah+2,ax;in al,dx;and al,0feh;out dx,al;8255 初始化mov dx,203h; 控制端口地址,送控制字mov al,80hout dx,almov bl,1mov al,blmov dx,200hout dx,al ;端口 A輸出,輸出1;8253初始化(200H-207H)f=1mhz,t=1us , T=10ms啟動mov dx, 20bHmov al,00110110B ; 選擇計數(shù)器0,方式3,先低后高out dx ,al mov dx,208H mov ax,1000
17、out dx,al mov al,ah out dx,almov dx, 20bH; 送計數(shù)方式控制字; 選擇計數(shù)器0; 后送高八位; 先送低八位mov al,01110110B ; out dx ,al mov dx,209H mov ax,1000 out dx,al mov al,ah out dx,al選擇計數(shù)器1,方式 3,先低后高; 送計數(shù)方式控制字; 選擇計數(shù)器0; 后送高八位; 先送低八位stirepeat: hlt;jmp repeat; 中斷服務程序int0 proc nearrol bl,1mov al,bl ;mov dx,200h out dx,al mov dx,2
18、10h mov al,20h out dx,al iret等待中斷移位后從端口 A輸出int0 endp4. 定時中斷,ADC 8255 I/o思路:設置控制端口,初始化8253,使用計數(shù)器0 和計數(shù)器1,采用方式3, OU琢輸出方波,送數(shù)據(jù)時先送低 8位,后送高8位,Clockl使用1MHZ勺 脈沖頻率。將兩個計數(shù)器級聯(lián),最后 OU琢輸出的方波的周期是:T=1us*1000*1000設置ICW1初始化命令字(00011011)將ICW1輸出到偶地址端口0ah) , IR2 啟動start:mov al,13h;ICW2將ICW2輸出到奇地址端口mov dx,210h out dx,al mo
19、v al,0ah mov dx,211h out dx,al ;般結束中斷的方式中斷偏移地址,即設置ip, 設置 cs控制端口地址,送控制字mov al,1 ;ICW4 out dx,almov ax,0 mov ds,ax lea ax,int0mov ds:4*0ah,ax ;INT0 mov ax,csmov ds:4*0ah+2,ax;in al,dx;and al,0feh ;out dx,al ;8255 初始化 mov dx,203h mov al,80h out dx,al mov bl,1mov al,blmov dx,200hout dx,al ;端口 A輸出,輸出1;82
20、53 初始化(200H-207H)f=1mhz,t=1us , T=10ms啟動mov dx, 20bHmov al,00110110B ; 選擇計數(shù)器0,方式3,先低后高out dx ,al; 送計數(shù)方式控制字mov dx,208H; 選擇計數(shù)器0mov ax,1000out dx,al; 后送高八位mov al,ahout dx,al; 先送低八位mov dx, 20bHmov al,01110110B ; 選擇計數(shù)器1,方式3,先低后高out dx ,al; 送計數(shù)方式控制字mov dx,209H; 選擇計數(shù)器0 mov ax,1000五、系統(tǒng)調試1. 調試環(huán)境介紹out dx,al m
21、ov al,ah out dx,alSTI ; 開中斷ABC: HLT ; 等待中斷 JMP ABC ; 中斷服務程序INT0 Proc NEAR mov dx,218H mov al,0 ; out dx, al CALL DELAY IN al, dx ; 輸出mov dx,200H out dx, al ; 自動結束中斷mov dx,210H mov al,20H out dx, al STI IRETINT0 endpDELAY Proc near push cx mov al,0F00H LOOP $ ; 這條指令 pop cx RETDELAY endp; 后送高八位; 先送低八位
22、; 定義過程NEAR;ADC0809 的地址 -> dx 初始化一個低電平; 調用延時子程序; 讀轉換結果->AL 中a. 運行 hk88te 這兩個軟件進行繪圖和調試。其運行環(huán)境如下圖所示:; 開中斷; 中斷返回;CX<-CX-1; 出棧; 從子程序返回; 子程序結束7TK 7.T系實龔機IB試蚊外TTKRflTFSTACKS E C ME NT STfiCKSTftD Vf 1 2S DUPf?)STACKENDScod? segmpnt 3三qump c與:end。,&仁:虧七merlemou al v 1; lcv>1ima udxOh;829outdx
23、, almu ual, 8 ;1c.uj2UkU udx 1 11koutdxalmo unJ. ,1 :±CbJ4|outdM , almo uax , 9no ud s, ax;與目ZW中斷程序的入口地址圖6b.進行編譯。c.將試驗箱與電腦連接好后先進行串口測試。其圖如下:圖7d.串口測試通過后就是編譯并鏈接,其圖如下:文件名: c: kkse+eeeas92M. 他©最后修改時間:2。12年明月06日21:12加羲到實驗機段地址:8100H 加載到安蕊機偏移地址;OOOOH加就進度;o *e.最后全速運行,得出結果文件名:c:hk08 teV8BasiB259.醍屯最
24、后修改時間:ELM £年加月06日21:1?加羲到實盹機段地址;aiaoM加載到實盹機偏移地址:OOOOM加薪進度:0 %2.各部件的調試I/O調通通過觀察LED丁是否亮,來判斷芯片是否正常工作。將輸出端口 A改為B端 口時,燈理論上是不亮的。然后將程序的輸出端口改為209H時,燈理論上會亮。 將輸出端口 A改為C端口時,燈理論上是不亮的。然后將程序的輸出端口改為 20AH時,燈理論上會亮.A 口地址為208H, B 口地址為209H, C 口地址為20AH 控制口地址為20BH將對應的控制碼寫入控制口即可完成初始化。當輸出端口 為A時,程序的輸出端口應為208Hb.用按鈕產(chǎn)生中斷脈
25、沖,向8259申請中斷,在中斷服務程序中 8255A I/O 8255連接到200-207。8259連接到210-217IR0連接到UP脈沖按紐INTR, INTA 連接至ij HK958®配板的INTR, INTAA0-A2連接至ij HK958®配板的A0-A2編譯連接下載再全速運行,每當按一次脈沖 LED燈循環(huán)左移一次c.用8253定時,產(chǎn)生中斷,重復第二步。將頻率設置為1MHZ用2個計數(shù)器, 計數(shù)器 0 的大小設置為1000, 計數(shù)器 2 大小設置為2000, 則時間間隔為2s。(時間間隔=周期*擴大倍數(shù))。通過觀看LED的閃爍快慢可以知道你的時間問隔的大小,閃爍越
26、快時間間隔越短,閃爍越慢時間間隔越長。8255:210-217H,8253:208-20FH, 8255:200-207H。d.定時中斷。ADC0809。8255A I/O。通過旋轉模擬量發(fā)生器控制 8個LED燈的 亮與滅,選擇 ADC0809勺片選為218-21F, 8255的片選為200-207H。ADC0809 的 Clock 選擇。3. 調試方法及結果調試8255芯片時,選取合適的片選。通過觀察 LED丁是否亮,來判斷芯片 是否正常工作。將端口 A改為端口 B時,燈不亮。然后將程序的輸入端口改為 209H時,燈亮。將端口結果。將端口 A改為端口 C時,燈不亮。然后將程序的 輸入端口改為
27、20AH時,燈亮:結果表明在輸出 A端口: 208H, B端口 : 209H, C 端口: 20AH才能確保實驗的正確。4 個接口芯片的端口地址可以改變,程序也就改變。當改變芯片的端口地址時,我將程序的初始化地址與芯片的端口地址保持一致, 在測試ADC0809寸運行 時不能產(chǎn)生中斷循環(huán),經(jīng)檢查是沒有將結束端口與 8259A的地址保持一致。且片 選地址與8253芯片共用一個端口地址,在修改了 ADC0809勺片選地址之后,結 果正常顯示。在改變程序初始化順序時,將8255、 8253放在 8259的前面,實驗不能正常運行。將8259 放在最前面,8255A、 8253隨意放置,實驗可以正常運行。
28、結果:在初始化時必須將8259A放在最前面。六、總結與體會通過本實驗的學習,讓我學會了一些在課堂不能學到的東西。同時,在實驗中遇到的問題,通過解決問題的過程中,讓我從中學到了不少的東西。尤其是在遇到問題時,經(jīng)過和同學討論,以及請教老師而使問題得以解決時,自己中從收獲的會更多;更甚者,當遇到問題時,通過自己查閱資料而將問題解決,這樣自己心里對自己做的東西會更加的感興趣。在此, 就應該說說在實驗過程中遇到的問題,比如在實驗過程中,當我們做中斷脈沖時,在編譯、調試一切通過的前提下, 得出的結果與實驗的真實結果不一致時,現(xiàn)在我們前進的步伐再次受阻,現(xiàn)在的我們不得不自己靜下心來解決問題;在此過程中,通過
29、對試驗箱等一些外在因素的逐一排除下,我們開始對代碼進行分析,通過這些檢查,發(fā)現(xiàn)出現(xiàn)這一問題的原因是:在用8253A計數(shù)時,選擇不同計數(shù)器的方式控制字出現(xiàn)了一點問題。原本應該選擇兩個不同的計數(shù)器,結果給兩個計數(shù)器輸入的方式控制字給的是一樣的,這樣最終導致實驗出現(xiàn)了錯誤的結果。在課設中,最常說的就是對8255A輸入輸出端口的設置,以及如何來實現(xiàn)對端口設置的交換,做這樣的改動我們該怎樣去進行等等問題。在通過老師和同學的幫助下,我們完成了這樣的操作,這讓我再次感受到,在實驗過程中,一起發(fā)現(xiàn)問題,在一起通過請教和討論得出答案,這個過程給我們帶來的收獲。在本次課程設計中,我明白了幾種芯片的初始化編程方法,以及對這幾個芯片的功能以及該如何將其功能與其他芯片之間很好的結合起來。除此之外,這次課設讓我感覺到,當我們遇到問題時,首先要靜得下心,耐心地慢慢找出問題出在什么地方,再慢慢的解決問題,不要遇到問題就心浮氣躁,這樣不但不能解決問題,反而會適得其反。七、附錄STACK SEGMENT PARA STACK 'STACK'DB 128 dup()STACK ENDSCODE SEGMENT PARA PUBLIC 'CODE'ASSUME CS:CODE,SS:STACK,DS:CODE; 對 8259 初始化START:MOV AL,0001101
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 無錫職業(yè)技術學院《建設工程監(jiān)理》2023-2024學年第一學期期末試卷
- 山西同文職業(yè)技術學院《設計軟件應用Ⅲ(photoshop)(景觀設計)》2023-2024學年第二學期期末試卷
- 天津師范大學《牙體形態(tài)學》2023-2024學年第一學期期末試卷
- 福建省晉江市安溪一中、養(yǎng)正中學2024-2025學年高三下學期學習能力診斷(一模)語文試題含解析
- 天津中醫(yī)藥大學《高級法語II》2023-2024學年第一學期期末試卷
- 南京中醫(yī)藥大學翰林學院《創(chuàng)作與草圖》2023-2024學年第二學期期末試卷
- 山西醫(yī)科大學《武術選項》2023-2024學年第二學期期末試卷
- 2024-2025學年黑龍江省雞西市雞東縣二中高三下學期階段性考試生物試題含解析
- 阜陽師范大學信息工程學院《西班牙語寫作》2023-2024學年第一學期期末試卷
- 武漢外語外事職業(yè)學院《日語會話(二)》2023-2024學年第二學期期末試卷
- GB/T 44979-2024智慧城市基礎設施緊湊型城市智慧交通
- 2025年保密知識試題庫附參考答案(精練)
- 臨床微生物學檢驗技術知到智慧樹章節(jié)測試課后答案2024年秋濟寧醫(yī)學院
- 分級護理質量考核標準
- 食品廠衛(wèi)生安全員工培訓
- 幼兒園校園欺凌自查報告2022
- 肝脾常見變異
- 水土保持方案投標文件技術部分
- 《人力資源管理》大學期末測試題庫500題(含答案)
- 《農(nóng)村中小學音樂教學現(xiàn)狀與對策研究》課題開題報告
- 一般固體廢物處理合同范本
評論
0/150
提交評論