數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第1頁(yè)
數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第2頁(yè)
數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第3頁(yè)
數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第4頁(yè)
數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、電子信息與電氣工程系課程設(shè)計(jì)報(bào)告設(shè)計(jì)類(lèi)型:課程設(shè)計(jì)綜合設(shè)計(jì)設(shè)計(jì)題目:數(shù)據(jù)采集系統(tǒng)B系別:電子信息與電氣工程系年級(jí)專(zhuān)業(yè):組員:課程設(shè)計(jì)任務(wù)書(shū)設(shè)計(jì)題目數(shù)據(jù)采集系統(tǒng)B設(shè)計(jì)類(lèi)型應(yīng)用型導(dǎo)師姓名主要內(nèi)容及目標(biāo)應(yīng)用 0809A /D 轉(zhuǎn)換和 8086 系列接口芯片設(shè)計(jì)一個(gè) A/D 轉(zhuǎn)換器接口將 A/D 轉(zhuǎn)換器的數(shù)字量用 LED 七段數(shù)碼管顯示出來(lái)。編寫(xiě) A/D 轉(zhuǎn)換程序,要求能將 IN 端的 0-5V 的直流信號(hào)轉(zhuǎn)換為數(shù)字量并送 LED 顯示;具有的設(shè)計(jì)條件需要購(gòu)買(mǎi)電子元件一批。計(jì)算機(jī)。星研試驗(yàn)箱。計(jì)劃學(xué)生數(shù)及任務(wù)計(jì)劃需要3人,需要對(duì)整體方案進(jìn)行設(shè)計(jì),完成程序編寫(xiě),做出數(shù)據(jù)采集系統(tǒng)并完成報(bào)告。計(jì)劃設(shè)計(jì)進(jìn)程1

2、、從接題開(kāi)始收集資料、準(zhǔn)備設(shè)計(jì)2、第1周 畫(huà)出設(shè)計(jì)框圖,制定設(shè)計(jì)方案,畫(huà)出電路原理圖。3、第2周 ,進(jìn)行實(shí)驗(yàn),電路調(diào)試和完善,同時(shí)編寫(xiě)設(shè)計(jì)報(bào)告。參考文獻(xiàn)1.周荷琴,微機(jī)原理與接口技術(shù),中國(guó)科技大學(xué),2009.6第4版2、16-32位微型計(jì)算機(jī)技術(shù)及應(yīng)用清華大學(xué)出版社戴梅萼 史嘉權(quán)編著3、匯編語(yǔ)言程序設(shè)計(jì)南京大學(xué)出版社姚君遺編著4、匯編語(yǔ)言程序設(shè)計(jì)教程清華大學(xué)出版社楊記文編著5、微型計(jì)算機(jī)原理及接口技術(shù)實(shí)驗(yàn)指導(dǎo)書(shū)組員分工表組員分工 主要負(fù)責(zé)硬件電路的設(shè)計(jì)和仿真,并協(xié)助其他組員完成任務(wù)。 主要負(fù)責(zé)軟件程序的編寫(xiě)及調(diào)試,并協(xié)助其他組員完成任務(wù)。 主要負(fù)責(zé)完成設(shè)計(jì)報(bào)告,并協(xié)助其他組員完成任務(wù)。目錄1摘

3、要42總體方案設(shè)計(jì)42.1設(shè)計(jì)原理42.2數(shù)據(jù)采集模塊52.3數(shù)據(jù)轉(zhuǎn)換模塊52.4顯示模塊73軟件設(shè)計(jì)83.1流程框圖84程序調(diào)試85總結(jié)學(xué)習(xí)96附錄10數(shù)據(jù)采集系統(tǒng)(B)的設(shè)計(jì)1摘要數(shù)據(jù)采集系統(tǒng)的任務(wù),具體地說(shuō),就是采集傳感器輸出的模擬信號(hào)并轉(zhuǎn)換成計(jì)算機(jī)能識(shí)別的數(shù)字信號(hào),然后送入計(jì)算機(jī),根據(jù)不同的需要由計(jì)算機(jī)進(jìn)行相應(yīng)的計(jì)算和處理,得出所需的數(shù)據(jù)。與此同時(shí),將計(jì)算得到的數(shù)據(jù)進(jìn)行顯示和打印,以便復(fù)現(xiàn)對(duì)某些物理量的監(jiān)視。關(guān)鍵詞:數(shù)據(jù) 采集 系統(tǒng) 8086 2總體方案設(shè)計(jì)2.1設(shè)計(jì)原理基于8086的數(shù)據(jù)采集系統(tǒng)它是由8086及其一些外圍芯片構(gòu)成的數(shù)據(jù)采集系統(tǒng),具有如下特點(diǎn):系統(tǒng)不具有自主開(kāi)發(fā)能力。因

4、此,系統(tǒng)的軟硬件開(kāi)發(fā)必須借助開(kāi)發(fā)工具。系統(tǒng)的軟硬件設(shè)計(jì)與配置規(guī)模都是以滿(mǎn)足數(shù)據(jù)采集系統(tǒng)功能要求為原則,因此系統(tǒng)的軟硬件應(yīng)用,配置比接近于,具有最佳的性?xún)r(jià)比;系統(tǒng)的軟件一般都有應(yīng)用程序。系統(tǒng)的可靠性好,使用方便。應(yīng)用程序在中運(yùn)行不會(huì)因外界的干擾而破壞,而且上電后系統(tǒng)立即進(jìn)入用戶(hù)狀態(tài)。05V電位器ADC08098086LED顯示8255圖(1)設(shè)計(jì)原理數(shù)據(jù)采集系統(tǒng),這種系統(tǒng)主要功能是將通過(guò)05v電位器采集來(lái)的信號(hào)通過(guò)外部的采樣和轉(zhuǎn)換后的數(shù)字信號(hào)通過(guò)接口電路送入微機(jī)進(jìn)行處理,然后再經(jīng)過(guò)8255將處理結(jié)果通過(guò)數(shù)碼管顯示出來(lái)。1, 連線(xiàn)說(shuō)明G4區(qū):CS-A3區(qū):CS1G4區(qū):ADDA、ADDB、ADDC

5、-ES-PCI:A0、A1、A2(選擇通道)G4區(qū):CLK-B2區(qū):500KG4區(qū)IN0-D2區(qū):05v表(1) 連線(xiàn)說(shuō)明2, 調(diào)節(jié)05V電位器(D2區(qū))輸出電壓,顯示屏上的電壓數(shù)字量會(huì)隨之變化。用萬(wàn)用表驗(yàn)證AD轉(zhuǎn)換的結(jié)果。根據(jù)原理設(shè)計(jì)電路,并得到電路仿真圖如下圖圖(2) 數(shù)據(jù)采集系統(tǒng)的仿真圖2.2數(shù)據(jù)采集模塊當(dāng)用計(jì)算機(jī)來(lái)構(gòu)成數(shù)據(jù)采集系統(tǒng)時(shí),所要采集的外部信號(hào)或被控制對(duì)象的參數(shù),往往是溫度、流量、壓力、聲音、位移等連續(xù)變化的模擬量。此次試驗(yàn)的被采集的信號(hào)為電壓信號(hào)。2.3數(shù)據(jù)轉(zhuǎn)換模塊(1)ADC0809的功能簡(jiǎn)介ADC0809是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的CMOS工藝8通道,8位逐次逼近式A/D轉(zhuǎn)

6、換器。其內(nèi)部有一個(gè)8通道多路開(kāi)關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號(hào),只選通8路模擬輸入信號(hào)中的一個(gè)進(jìn)行A/D轉(zhuǎn)換。圖(3)和圖(4)分別是ADC0809的工作時(shí)序圖以及采樣狀態(tài)圖。時(shí)序圖中,START為轉(zhuǎn)換啟動(dòng)控制信號(hào),高電平有效,ALE為模擬信號(hào)輸入宣統(tǒng)端口地址所存信號(hào),上升沿有效;一旦START有效后,狀態(tài)信號(hào)EOC變?yōu)榈碗娖?,表示進(jìn)入轉(zhuǎn)換狀態(tài),轉(zhuǎn)換時(shí)間約為100us。轉(zhuǎn)換結(jié)束后,EOC將變?yōu)楦唠娖?。此后外部控制可使OE由低電平變?yōu)楦唠娖剑ㄝ敵鲇行В?,此時(shí),ADC0809的輸出數(shù)據(jù)總線(xiàn)D70從原來(lái)的高阻態(tài)變?yōu)檩敵鰯?shù)據(jù)有效。圖(3) ADC0809的工作時(shí)序圖(4) ADC0809在狀態(tài)圖中

7、,狀態(tài)st2中需要對(duì)ADC0809工作狀態(tài)信號(hào)EOC進(jìn)行測(cè)試,如果為低電平,表示轉(zhuǎn)換沒(méi)有結(jié)束,仍需要停留在st2狀態(tài)中等待,直到變成高電平后才說(shuō)明轉(zhuǎn)換結(jié)束,在下一個(gè)時(shí)鐘脈沖到來(lái)時(shí)轉(zhuǎn)向狀態(tài)st3。在狀態(tài)st3,由狀態(tài)機(jī)向ADC0809發(fā)出轉(zhuǎn)換好的8位數(shù)據(jù)輸出允許命令,這一狀態(tài)周期同時(shí)可作為數(shù)據(jù)輸出穩(wěn)定周期,以便能在下一狀態(tài)中向鎖存器中鎖入可靠的數(shù)據(jù)。在狀態(tài)st4,由狀態(tài)機(jī)向FPGA中的鎖存器發(fā)出鎖存信號(hào)(LOCK的上升沿),將ADC0809的輸出數(shù)據(jù)進(jìn)行鎖存。圖(5) ADC0809與系統(tǒng)連接原理(2)8086簡(jiǎn)介Intel 8086是一個(gè)由Intel于1978年所設(shè)計(jì)的16位微處理器芯片,是x

8、86架構(gòu)的鼻祖。不久,Intel 8088就推出了,擁有一個(gè)外部的8位數(shù)據(jù)總線(xiàn),允許便宜的芯片用途。它是以8080和8085的設(shè)計(jì)為基礎(chǔ),擁有類(lèi)似的寄存器組,但是數(shù)據(jù)總線(xiàn)擴(kuò)充為16位??偩€(xiàn)界面單元(Bus Interface Unit)透過(guò)6字節(jié)預(yù)存(prefecth) 的隊(duì)列(queue)喂指令給執(zhí)行單元(Execution Unit),所以取指令和執(zhí)行是同步的,8086 CPU有20條地址線(xiàn),可直接尋址1MB的存儲(chǔ)空間,每一個(gè)存儲(chǔ)單元可以存放一個(gè)字節(jié)(8位)二進(jìn)制信息。圖(6) 8086管腳2.4顯示模塊使用LED將轉(zhuǎn)換后的數(shù)據(jù)顯示出來(lái)。圖(7)LED原理3軟件設(shè)計(jì)3.1流程框圖開(kāi)始50&

9、gt;采樣次數(shù)0>AXA/D轉(zhuǎn)換子程序AX+AD轉(zhuǎn)換結(jié)果調(diào)用顯示子G4區(qū):CS-A3區(qū):CS1G4區(qū):ADDA、ADDB、ADDC-ES-PCI:A0、A1、A2(選擇通道)G4區(qū):CLK-B2區(qū):500KG4區(qū):復(fù)位RESETG4區(qū)IN0-D2區(qū):05v1、 調(diào)節(jié)05V電位器(D2區(qū))輸出電壓,顯示屏上的電壓數(shù)字量會(huì)隨之變化。用萬(wàn)用表驗(yàn)證AD轉(zhuǎn)換的結(jié)果。程序取50次AD轉(zhuǎn)換結(jié)果的平均值采樣次數(shù)1=0NY圖(8)總流程圖4程序調(diào)試調(diào)試過(guò)程中,出現(xiàn)了各種各樣的問(wèn)題,有的是程序代碼寫(xiě)錯(cuò),有的是出現(xiàn)硬件線(xiàn)路連接錯(cuò)誤。具體的是在實(shí)驗(yàn)箱中得不到我們想要的結(jié)果,即在LED顯示環(huán)節(jié)不能顯示出來(lái)采集并轉(zhuǎn)

10、換過(guò)的數(shù)據(jù),分析了所有原因之后,我們認(rèn)為缺少了I/0端口,需要使用8255芯片??傊?jīng)過(guò)仔細(xì)認(rèn)真的糾錯(cuò)后,我們?cè)诶蠋煹闹笇?dǎo)下,糾正了錯(cuò)誤,最終程序能夠正確運(yùn)行。圖(9)程序調(diào)試圖由于設(shè)計(jì)過(guò)程初期,未考慮用8255芯片,導(dǎo)致后來(lái)未能在星研試驗(yàn)箱上顯示采集并轉(zhuǎn)換后信號(hào),在此,就不展示實(shí)物連接圖了!5總結(jié)學(xué)習(xí)我們?nèi)送ㄟ^(guò)本實(shí)驗(yàn)的學(xué)習(xí),學(xué)到了好多專(zhuān)業(yè)方面的知識(shí),也學(xué)會(huì)了一些在課堂不能學(xué)到的東西。同時(shí),在實(shí)驗(yàn)中遇到的問(wèn)題,在解決問(wèn)題的過(guò)程中,讓我從中學(xué)到了不少的東西。尤其是在遇到問(wèn)題時(shí),經(jīng)過(guò)和同學(xué)的討論,以及請(qǐng)教老師而使問(wèn)題得以解決時(shí),自己中從收獲的會(huì)更多;更甚者,當(dāng)遇到問(wèn)題時(shí),通過(guò)自己查閱資料而將問(wèn)題

11、解決,這樣自己心里對(duì)自己做的東西會(huì)更加的感興趣。在此,就應(yīng)該說(shuō)說(shuō)在實(shí)驗(yàn)過(guò)程中遇到的問(wèn)題,比如,在程序調(diào)試過(guò)程中,發(fā)現(xiàn)在LED數(shù)碼管上無(wú)法得結(jié)果,無(wú)任何顯示,我們便開(kāi)始尋找錯(cuò)誤之處;在此過(guò)程中,通過(guò)對(duì)試驗(yàn)箱等一些外在因素的逐一排除下,我們開(kāi)始對(duì)代碼進(jìn)行分析,通過(guò)這些檢查,發(fā)現(xiàn)出現(xiàn)這一問(wèn)題的原因是:LED顯示子程序無(wú)法調(diào)用,最后在老師和同學(xué)們的幫助下,我們完成了本次實(shí)訓(xùn)。在實(shí)驗(yàn)過(guò)程中,一起發(fā)現(xiàn)問(wèn)題,在一起通過(guò)請(qǐng)教和討論得出答案,這個(gè)過(guò)程給我們帶來(lái)的收獲。除此之外,這次課設(shè)讓我感覺(jué)到,當(dāng)我們遇到問(wèn)題時(shí),首先要靜得下心,耐心地慢慢找出問(wèn)題出在什么地方,再慢慢的解決問(wèn)題,不要遇到問(wèn)題就心浮氣躁,這樣不但

12、不能解決問(wèn)題,反而會(huì)適得其反。6附錄程序代碼 .MODEL TINYPCIBAR1 EQU 14H ;pci9052I/O基地址(用于訪(fǎng)問(wèn)局部配置寄存器)PCIBAR3 EQU 1CH ;8位I/O空間基地址(它就是實(shí)驗(yàn)儀的基地址, ;也為DMA&32 BIT RAM板卡上的8237提供基地址)PCIIPR EQU 3CH ;IRQ號(hào)INTCSR EQU 4CH ;PCI9052 INTCSR地址mask_int_9052 EQU 24HVendor_ID EQU 10EBH ;廠商ID號(hào)Device_ID EQU 8376 ;設(shè)備ID號(hào) .STACK 100 .DATAADDR_08

13、09 DW 00F0HBUFFER DB 'H.V$'LastAD DB 0 ;上一次AD轉(zhuǎn)換值msg3 DB 'AD轉(zhuǎn)換結(jié)果(前邊是16進(jìn)制數(shù),后邊是十進(jìn)制數(shù)):$'IO8259_0 DW 00F0HRD_IO8259 DW 0000HIO_Bit8_BaseAddress DW ?PCI_IO_BaseAddress0 DW ?PCI_IRQ_NUMBER DB ?INT_Vector DB ?INT_MASK DB ?INT_CS DW ?INT_IP DW ?msg0 DB 'BIOS不支持訪(fǎng)問(wèn)PCI$'msg1 DB '找不到S

14、tar PCI9052板卡$'msg2 DB '讀8位I/O空間基地址時(shí)出錯(cuò)$'msg4 DB '讀IRQ號(hào)出錯(cuò)$'Counter DB ?ReDisplayFlag DB 0 .CODESTART: MOV AX,DATA MOV DS,AX NOP CALL InitPCI CALL ModifyAddress ;根據(jù)PCI提供的基地址,將偏移地址轉(zhuǎn)化為實(shí)地址 MOV AH,00H MOV AL,03H INT 10H ;清屏 MOV AH,09H LEA DX,msg3 INT 21H XOR AL,AL JMP START6START1: MOV

15、 CX,32H MOV BX,0START2: CALL AD0809 XOR AH,AH ADD BX,AXLOOP START2 MOV AX,50 XCHG AX,BX DIV BL ;五十次的平均值 CMP AL,LastAD JZ START3START6: MOV LastAD,AL CALL Display_Data MOV AH,02H MOV DL,43 MOV DH,0 INT 10H MOV AH,09H LEA DX,BUFFER INT 21H ;顯示結(jié)果START3: CALL DLTime CALL IfExit JZ START1 JMP ExitAD0809

16、PROC NEAR PUSH CX MOV AL,0 MOV DX,ADDR_0809 OUT DX,AL MOV DX,IO_Bit8_BaseAddress MOV CX,200AD08091: MOV DX,ADDR_0809 LOOP $ ;延時(shí),等待AD轉(zhuǎn)換完成 MOV DX,ADDR_0809 IN AL,DX POP CX RETAD0809 ENDPToChar PROC NEAR ;轉(zhuǎn)化為可顯示的16進(jìn)制數(shù) ADD AL,'0' CMP AL,'9' JBE ToChar1 ADD AL,07HToChar1: RETToChar ENDPDI

17、SPLAY_DATAPROCNEARMOVAH,ALANDAL,0FHCALLToCharMOVBUFFER+1,ALMOVAL,AHANDAL,0F0HRORAL,4CALLToCharMOVBUFFER,ALMOVAL,AHXORAH,AHMOVBL,51 ;255/51(16進(jìn)制的1=1/51V)DIVBLORAL,'0' ;轉(zhuǎn)化為可顯示的10進(jìn)制數(shù)MOVBUFFER+4,AL ;整數(shù)部分MOVAL,10MULAHDIVBLORAL,'0'MOVBUFFER+6,AL;第一位小數(shù)MOVAL,10MULAHDIVBLORAL,'0'MOVBU

18、FFER+7,AL;第二位小數(shù)RETDISPLAY_DATAENDPDLTimePROCNEAR PUSH AX PUSH DX MOV DX,100 ;延時(shí)100ms MOV AH,0FFH INT 21H POP DX POP AX RETDLTime ENDPExit: MOV AH,4CH INT 21HINT_0: PUSH DX PUSH AX CALL ClearInt JC INT_0_0 MOV DX,RD_IO8259 IN AL,DX IN AL,DX MOV AL,Counter ADD AL,1 DAA MOV Counter,AL MOV ReDisplayFlag

19、,1INT_0_0: MOV DX,IO8259_0 MOV AL,20H OUT DX,AL POP AX POP DX IRETIfExit PROC NEAR PUSH AX PUSH DX MOV AH,06H MOV DL,0FFH INT 21H POP DX POP AX JZ IfExit1 JMP ExitIfExit1: RETIfExit ENDPInitPCI PROC NEAR MOV AH,00H MOV AL,03H INT 10H MOV AH,0B1H MOV AL,01H INT 1AH CMP AH,0 JZ InitPCI2 LEA DX,msg0Ini

20、tPCI1: MOV AH,09H INT 21H JMP ExitInitPCI2: MOV AH,0B1H MOV AL,02H MOV CX,Device_ID MOV DX,Vendor_ID MOV SI,0 INT 1AH JNC InitPCI3 ;是否存在Star PCI9052板卡 LEA DX,msg1 JMP InitPCI1InitPCI3: MOV DI,PCIBAR1 MOV AH,0B1H MOV AL,09H INT 1AH ;讀取該卡PCI9052基地址 JNC InitPCI4 LEA DX,msg2 JMP InitPCI1InitPCI4: AND CX

21、,0FFFCH MOV PCI_IO_BaseAddress0,CX MOV DI,PCIBAR3 MOV AH,0B1H MOV AL,09H INT 1AH ;讀取該卡拓展的八位IO基地址 JNC InitPCI5 LEA DX,msg3 JMP InitPCI1InitPCI5: AND CX,0FFFCH MOV IO_Bit8_BaseAddress,CX MOV DI,PCIIPR MOV AH,0B1H MOV AL,09H INT 1AH ;讀取IRQ號(hào) JNC InitPCI6 LEA DX,msg4 JMP InitPCI1InitPCI6: MOV PCI_IRQ_NUM

22、BER,CL RETInitPCI ENDPModifyAddress PROC NEAR PUSH ES MOV AL,PCI_IRQ_NUMBER CMP AL,08H JAE ModifyVector1 ADD AL,08H ;IRQ0.7->中斷向量8.F JMP ModifyVector2ModifyVector1: ADD AL,70H-08H ;IRQ8.F->中斷向量70H.77HModifyVector2: MOV INT_Vector,AL MOV AH,35H INT 21H MOV INT_IP,BX MOV AX,ES MOV INT_CS,AX MOV

23、AL,INT_Vector LEA DX,INT_0 PUSH DS PUSH CS POP DS MOV AH,25H INT 21H POP DS MOV BL,PCI_IRQ_NUMBER MOV DX,21H CMP AL,08H JB ModifyVector3 MOV DX,0A1HModifyVector3: IN AL,DX MOV INT_MASK,AL AND BL,07H MOV CL,BL MOV BL,1 SHL BL,CL NOT BL AND AL,BL OUT DX,AL POP ES STI RETModifyVector ENDPClearInt PROC

24、NEAR ;清除PCI9052、系統(tǒng)中斷控制器的中斷標(biāo)志 MOV DX,PCI_IO_BaseAddress0 ADD DX,INTCSR IN AL,DX AND AL,mask_int_9052 JZ ClearInt3 INC DX IN AL,DX OR AL,0CH OUT DX,AL MOV AL,PCI_IRQ_NUMBER CMP AL,08H JAE ClearInt1 AND AL,7 OR AL,60H MOV DX,20H OUT DX,AL JMP ClearInt2ClearInt1: AND AL,7 OR AL,60H MOV DX,0A0H OUT DX,AL

25、 MOV DX,20H MOV AL,62H OUT DX,ALClearInt2: CLC RETClearInt3: STC RETClearInt ENDP END START .MODEL TINYPCIBAR1 EQU 14H ;pci9052I/O基地址(用于訪(fǎng)問(wèn)局部配置寄存器)PCIBAR3 EQU 1CH ;8位I/O空間基地址(它就是實(shí)驗(yàn)儀的基地址, ;也為DMA&32 BIT RAM板卡上的8237提供基地址)PCIIPR EQU 3CH ;IRQ號(hào)INTCSR EQU 4CH ;PCI9052 INTCSR地址mask_int_9052 EQU 24HVendor

26、_ID EQU 10EBH ;廠商ID號(hào)Device_ID EQU 8376 ;設(shè)備ID號(hào) .STACK 100 .DATAADDR_0809 DW 00F0HBUFFER DB 'H.V$'LastAD DB 0 ;上一次AD轉(zhuǎn)換值msg3 DB 'AD轉(zhuǎn)換結(jié)果(前邊是16進(jìn)制數(shù),后邊是十進(jìn)制數(shù)):$'IO8259_0 DW 00F0HRD_IO8259 DW 0000HIO_Bit8_BaseAddress DW ?PCI_IO_BaseAddress0 DW ?PCI_IRQ_NUMBER DB ?INT_Vector DB ?INT_MASK DB ?I

27、NT_CS DB ?INT_IP DB ?msg0 DB 'BIOS不支持訪(fǎng)問(wèn)PCI$'msg1 DB '找不到Star PCI9052板卡$'msg2 DB '讀8位I/O空間基地址時(shí)出錯(cuò)$'msg4 DB '讀IRQ號(hào)出錯(cuò)$'Counter DB ?ReDisplayFlag DB 0 .CODESTART: MOV AX,DATA MOV DS,AX NOP CALL InitPCI CALL ModifyAddress ;根據(jù)PCI提供的基地址,將偏移地址轉(zhuǎn)化為實(shí)地址 MOV AH,00H MOV AL,03H INT 1

28、0H ;清屏 MOV AH,09H LEA DX,msg3 INT 21H XOR AL,AL JMP START6START1: MOV CX,32H MOV BX,0START2: CALL AD0809 XOR AH,AH ADD BX,AXLOOP START2 MOV AX,50 XCHG AX,BX DIV BL ;五十次的平均值 CMP AL,LastAD JZ START3START6: MOV LastAD,AL CALL Display_Data MOV AH,02H MOV DL,43 MOV DH,0 INT 10H MOV AH,09H LEA DX,BUFFER I

29、NT 21H ;顯示結(jié)果START3: CALL DLTime CALL IfExit JZ START1 JMP ExitAD0809 PROC NEAR PUSH CX MOV AL,0 MOV DX,ADDR_0809 OUT DX,AL MOV DX,IO_Bit8_BaseAddress MOV CX,200AD08091: MOV DX,ADDR_0809 LOOP $ ;延時(shí),等待AD轉(zhuǎn)換完成 MOV DX,ADDR_0809 IN AL,DX POP CX RETAD0809 ENDPToChar PROC NEAR ;轉(zhuǎn)化為可顯示的16進(jìn)制數(shù) ADD AL,'0

30、9; CMP AL,'9' JBE ToChar1 ADD AL,07HToChar1: RETToChar ENDPDISPLAY_DATAPROCNEARMOVAH,ALANDAL,0FHCALLToCharMOVBUFFER+1,ALMOVAL,AHANDAL,0F0HRORAL,4CALLToCharMOVBUFFER,ALMOVAL,AHXORAH,AHMOVBL,51 ;255/51(16進(jìn)制的1=1/51V)DIVBLORAL,'0' ;轉(zhuǎn)化為可顯示的10進(jìn)制數(shù)MOVBUFFER+4,AL ;整數(shù)部分MOVAL,10MULAHDIVBLORAL,&

31、#39;0'MOVBUFFER+6,AL;第一位小數(shù)MOVAL,10MULAHDIVBLORAL,'0'MOVBUFFER+7,AL;第二位小數(shù)RETDISPLAY_DATAENDPDLTimePROCNEAR PUSH AX PUSH DX MOV DX,100 ;延時(shí)100ms MOV AH,0FFH INT 21H POP DX POP AX RETDLTime ENDPExit: MOV AH,4CH INT 21HINT_0: PUSH DX PUSH AX CALL ClearInt JC INT_0_0 MOV DX,RD_IO8259 IN AL,DX IN AL,DX MOV AL,Counter ADD AL,1 DAA MOV Counter,AL MOV ReDisplayFlag,1INT_0_0: MOV DX,IO8259_0 MOV AL,20H OUT DX,AL POP AX POP DX IRETIfExit PROC NEAR PUSH AX PUSH DX MOV AH,06H MOV DL,0FF

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論