已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
附:學(xué)生課程設(shè)計(jì) 題目:模擬電壓采集電路設(shè)計(jì) 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 日 期: 2008年3月2日 目 錄一設(shè)計(jì)目的二實(shí)驗(yàn)平臺(tái)和所用器材三設(shè)計(jì)內(nèi)容四設(shè)計(jì)原理五程序流程圖六調(diào)試分析七原理圖設(shè)計(jì)八收獲、體會(huì)和建議九程序清單一設(shè)計(jì)目的1. 通過本設(shè)計(jì),使學(xué)生綜合運(yùn)用微型計(jì)算機(jī)技術(shù)、匯編語言程序設(shè)計(jì)以及電子技術(shù)等課程的內(nèi)容,為以后從事計(jì)算機(jī)檢測(cè)與控制工作奠定一定的基礎(chǔ)。2. 主要掌握并行i/o接口芯片8253、8255a、adc0809及中斷控制芯片8259a等可編程器件的使用,掌握譯碼器74ls138的使用。3. 學(xué)會(huì)用匯編語言編寫一個(gè)較完整的實(shí)用程序。4. 掌握微型計(jì)算機(jī)技術(shù)應(yīng)用開發(fā)的全過程:分析需求、設(shè)計(jì)原理圖、選用元器件、布線、編程、調(diào)試、撰寫報(bào)告等步驟。二實(shí)驗(yàn)平臺(tái)和所用器材 本實(shí)驗(yàn)是在windows xp操作系統(tǒng)上下實(shí)現(xiàn)的,程序的開發(fā)環(huán)境是用實(shí)驗(yàn)室的課設(shè)平臺(tái),所用到的器材如下: 一臺(tái)微機(jī)原理與接口實(shí)訓(xùn)平臺(tái)。 可編程芯片8253、8255a 、adc0809和譯碼器芯片74ls138、數(shù)據(jù)總路線緩沖器74ls245各一片。 可調(diào)電位器4.7k一個(gè)、發(fā)光二極管8個(gè)、74ls06芯片2個(gè)、排電阻1個(gè)。 其它邏輯器件、導(dǎo)線若干。 示波器、萬用表、常用工具等。三設(shè)計(jì)內(nèi)容 采用adc0809設(shè)計(jì)一個(gè)單通道模擬電壓采集電路,要求對(duì)所接通道變化的模擬電壓值進(jìn)行采集,采集來的數(shù)字量一路送至發(fā)光二極管指示,一路送至計(jì)算機(jī)顯示到屏幕上,每行顯示5個(gè)數(shù)據(jù),采集完100個(gè)數(shù)據(jù)后停止采集過程,采集過程中按下esc鍵也可中斷采集過程。 首先要求我們定義出選擇菜單,給出顯示界面。1. 8255的自檢測(cè)這部分要求我們初始化8255,為了能夠正確的看出8255已經(jīng)初始化,當(dāng)8255初始化后向b口送數(shù)據(jù)0fh到發(fā)光二管上顯示,如果能夠正確顯示就說明8255已經(jīng)被初始化。2. 8253的自檢測(cè) 這部分要求我們初始化8253,8253初始化后可以通過示波器觀察輸出的波形是否滿足要求。進(jìn)行a/d轉(zhuǎn)換這部分是本次課設(shè)的關(guān)鍵部分,在做此之前,必須保證8255和8253都被正確的初始化,通過8255的c口控制adc0809對(duì)模擬數(shù)據(jù)的采集,然后從a口讀取轉(zhuǎn)換后的數(shù)據(jù),一路送發(fā)光二極管顯示,一路送顯示器上顯示,這里模擬量由電位器得到。3. 退出系統(tǒng)想結(jié)束程序的時(shí)候,從菜單上選擇此鍵就可以退出程序.四設(shè)計(jì)原理1.要用protues設(shè)計(jì)出正確電路原理圖:a 4.7k電位器一端接+5v,一端接地,調(diào)節(jié)電位器得到變化的模擬電壓,該電壓接至adc0809的某一通道輸入端(如in0),adc0809的時(shí)鐘為500khz,可由總線直接提供,用8253進(jìn)行定時(shí)中斷,中斷后進(jìn)行a/d轉(zhuǎn)換,要求定時(shí)為100ms,8253的端口地址:304h307h b. 編程啟動(dòng)adc0809轉(zhuǎn)換(adc0809完成一次轉(zhuǎn)換的時(shí)間大約為120s),在中斷服務(wù)程序中讀入模數(shù)轉(zhuǎn)換結(jié)果,一路送至發(fā)光二極管指示,一路送至計(jì)算機(jī)顯示到屏幕上。 c. 8255a用做cpu和adc0809間的接口芯片,adc0809的控制信號(hào)(如oe、ale、start等)可由8255a提供,8255a端口地址:300h303h。模數(shù)轉(zhuǎn)換后的數(shù)字量也可經(jīng)8255a的pa口讀入。d. 譯碼電路由74ls138提供,在總線和其它接口芯片之間還必須加入74ls245,起到隔離總線的作用。mfpt pci總線驅(qū)動(dòng)板邏輯結(jié)構(gòu)如圖所示芯片簡(jiǎn)介(1)74ls245的功能表74ls245數(shù)據(jù)總路線緩沖器(2).adc0809簡(jiǎn)介 提供一個(gè)8通道的多路開關(guān)和尋址邏輯l in0in7:8個(gè)模擬電壓輸入端l adda、addb、addc:3個(gè)地址輸入線l ale:地址鎖存允許信號(hào) ale的上升沿用于鎖存3個(gè)地址輸入的狀態(tài),然后由譯碼器從8個(gè)模擬輸入中選擇一個(gè)模擬輸入端進(jìn)行a/dstartd0d7oedata100ms2ms+8t(最大)200ns(最小)adda/b/cfsdaaaa/c/eoc adc0809的數(shù)字輸出 adc0809內(nèi)部鎖存轉(zhuǎn)換后的數(shù)字量 具有三態(tài)數(shù)字量輸出端d0d7 配合輸出允許信號(hào)oe 當(dāng)輸出允許信號(hào)oe為高電平有效時(shí),將三態(tài)鎖存緩沖器的數(shù)字量從d0d7輸出其它的芯片查閱微型計(jì)算機(jī)技術(shù)的書。(3).8255a與adc0809的連接(4).8253定時(shí)/計(jì)數(shù)器 對(duì)8253進(jìn)行編程,定時(shí)100ms后,產(chǎn)生中斷,該定時(shí)信號(hào)(out0)送入到系統(tǒng)預(yù)留給用戶的irq2(或irq10)引腳產(chǎn)生中斷,在中斷服務(wù)子程序中,啟動(dòng)一次adc0809模數(shù)轉(zhuǎn)換,adc0809采用查詢方式工作。irq10中斷向量號(hào)為72h 8253的時(shí)鐘(clk0)取自mfid實(shí)驗(yàn)平臺(tái)。2.編寫程序初始化8255和8253(1)初始化8255:8255有四個(gè)寄存器,地址為300h-303h,分別為a口,b口,c口,和控制口,首先要向c口寫入控制字,控制字格式如下:工作方式控制d7 d6 d5 d4 d3 d2 d1 d0特征位1a組方式選擇端口a輸入/輸出c口高四位輸入/輸出b組方式選擇端口b輸入/輸出端口c低四位輸入/輸出c端口置位/復(fù)位控制d7 d6 d5 d4 d3 d2 d1 d0特征位0任意位選擇置位/復(fù)位 0為復(fù)位,1為置位可用如下代碼初始化8255:mov dx,303h mov al,10011001bout dx,al(2)初始化82538253控制字格式如下d7 d6 d5 d4 d3 d2 d1 d0計(jì)數(shù)器選擇讀寫格式工作方式計(jì)數(shù)方式輸入時(shí)鐘信號(hào)為0.25mhz,要得到100ms定時(shí),需要寫入的計(jì)數(shù)初值為25000,選用計(jì)數(shù)器0,工作方式3,代碼如下:mov dx,307h mov al,00110110b out dx,al mov ax,25000 mov dx,304h out dx,al mov al,ah out dx,al3.編寫中斷服務(wù)子程序首先要設(shè)置好中斷向量,這里是調(diào)用72h號(hào)中斷,在里面寫入a/d轉(zhuǎn)換的中斷服務(wù)子程序地址,所以要保存原來72h中斷向量表里面的內(nèi)容,最后在程序完成時(shí)要恢復(fù)72h里的內(nèi)容,在執(zhí)行這些操作的時(shí)候是不容許中斷的,所以要關(guān)中斷,操作完成后要開中斷,可以用一下指令來完成:cli;獲取原中斷向量里的內(nèi)容并保存 mov ax,3572h int 21h mov intoff,bx mov intseg,es push ds mov dx,offset convert;設(shè)置新的中斷向量 mov ax,seg convert mov ds,ax mov ax,2572h int 21h pop ds sticli;恢復(fù)72號(hào)中斷向量 mov dx,intoff mov ax,intseg mov ds,ax mov ax,2572h int 21h sti中斷服務(wù)子程序:要想啟動(dòng)0809進(jìn)行轉(zhuǎn)換,首先必須有一個(gè)start信號(hào),該信號(hào)為:在轉(zhuǎn)換的時(shí)候通過eoc信號(hào)來判斷轉(zhuǎn)換是否結(jié)束,當(dāng)eoc信號(hào)由0變?yōu)?時(shí)就代表轉(zhuǎn)換結(jié)束,此時(shí)讓oe引腳為1,這時(shí)轉(zhuǎn)換出來的數(shù)據(jù)就輸出了,部分代碼如下:mov dx,303h mov al,10011001b out dx,al mov dx,303h;送啟動(dòng)信號(hào) mov al,00h out dx,al nop mov al,01h out dx,al nop mov al,00h out dx,al mov dx,302h query: in al,dx test al,10h jz query mov dx,300h in al,dx inc dx out dx,al注意在每次轉(zhuǎn)換完后都必須將c端口置位: mov dx,303h;將c口復(fù)位,以保證下次能正確轉(zhuǎn)換數(shù)據(jù) mov al,90h out dx,al mov dx,302h mov al,0ffh out dx,al在中斷服務(wù)子程序結(jié)束之前,必須發(fā)中斷結(jié)束命令: mov al,20h ;結(jié)束中斷 out 20h,al out 0a0h,al 在進(jìn)入a/d轉(zhuǎn)換之前,必須開發(fā)72h號(hào)中斷: in al,0a1h;設(shè)置中斷屏蔽寄存器,系統(tǒng)開放72號(hào)中斷 and al,0fbh out 0a1h,al五程序流程圖 主程序 中斷服務(wù)子程序 六調(diào)試分析 進(jìn)入主菜單后選擇1進(jìn)行8255的初始化,這時(shí)候會(huì)發(fā)現(xiàn)在實(shí)驗(yàn)板上的一半燈亮,一半滅,同時(shí)提示8255 is ok ;選擇2后進(jìn)入8253的初始化,可以用示波器觀察輸出的波形,同時(shí)顯示8253 is ok ,選擇3后進(jìn)入a/d轉(zhuǎn)換,將轉(zhuǎn)換來的數(shù)據(jù)一路送二極管顯示,一路送顯示器。 在調(diào)試的過程中,有很多技巧,剛開始的時(shí)候,我把所有的電路都連接好調(diào)試,結(jié)果那樣帶來了很多的麻煩,而且也不容易找出錯(cuò)誤的所在,最后我把所以的線都拆掉,一個(gè)器件一個(gè)器件的調(diào)試,先從8255開始,直到8255能正確輸出數(shù)據(jù)的時(shí)候才開始下一步的測(cè)試,然后再測(cè)試0809,在測(cè)試0809的時(shí)候遇到了一個(gè)小問題,就是每次轉(zhuǎn)換來的數(shù)據(jù)都一樣,除非讓8255復(fù)位,經(jīng)過認(rèn)真的分析,才知道是8255的c端口的控制信號(hào)沒有置位,接下來測(cè)試的是8253,一開始,分頻率總是不對(duì),計(jì)數(shù)初值沒有問題,經(jīng)過仔細(xì)檢查才發(fā)現(xiàn)8253的芯片出了問題,電源引腳斷了,換芯片后就沒有問題了,在設(shè)計(jì)中斷的時(shí)候,一開始不能讓其自動(dòng)產(chǎn)生中斷,后來查閱資料才知道是在中斷服務(wù)子程序中沒有結(jié)束中斷引起的,這些故障調(diào)試通過后 ,整個(gè)設(shè)計(jì)就完成了。七原理圖設(shè)計(jì)八收獲、體會(huì)和建議本次課程設(shè)計(jì),我學(xué)到了很多的東西,對(duì)匯編語言程序設(shè)計(jì)加深了理解和掌握,我們這次設(shè)計(jì)的要求主要是熟悉微型計(jì)算機(jī)技術(shù)中所學(xué)到的幾中芯片的使用,掌握它們的初始化編程,并學(xué)會(huì)他們的基本應(yīng)用,這是一個(gè)比較全面的設(shè)計(jì),和以前的實(shí)驗(yàn)相比較復(fù)雜很多,一方面要求我們?cè)O(shè)計(jì)硬件電路,另一方面需要對(duì)設(shè)計(jì)的硬件電路進(jìn)行編程,這就需要軟件和硬件相結(jié)合,具體的電路具體分析,在此次設(shè)計(jì)中還用到了中斷,通常來說,中斷是很復(fù)雜,很難的去調(diào)試。在此設(shè)計(jì)中遇到了很多困難,一開始的時(shí)候,硬件電路測(cè)試都沒成功,最后把所有的電路都拆了,一個(gè)一個(gè)測(cè)試,進(jìn)行數(shù)據(jù)轉(zhuǎn)換的時(shí)候,開始轉(zhuǎn)換出來的數(shù)據(jù)都一樣的,無論電位是否發(fā)生變化,經(jīng)過仔細(xì)分析才知道是8255沒有復(fù)位,在中斷的產(chǎn)生過程中,由于沒有寫中斷結(jié)束也帶來了一定的困難。這次課程設(shè)計(jì)后,我對(duì)學(xué)硬件有了一定的體會(huì),它要求我們認(rèn)真仔細(xì)的做好每個(gè)環(huán)節(jié),對(duì)所有的問題要考慮周全,它和軟件不同,對(duì)具體的電路要編寫適合該電路的程序,電路一改,程序也要跟著改,從中我也學(xué)會(huì)了很多實(shí)際應(yīng)用的知識(shí)。最后,還要感謝程世旭老師、趙立輝老師、雷鳴在百忙之中抽出時(shí)間來對(duì)我的幫助和輔導(dǎo),他們給我們講授了一些編程的經(jīng)驗(yàn),這對(duì)于我以后做事幫助很大,由于他們的熱情幫助和支持我才能順利的完成這次課程設(shè)計(jì)的任務(wù)。九程序清單 .model small.386.stack .data intoff dw 0;存放原來中斷向量里的偏移地址intseg dw 0;存放原來中斷向量里的段地址string db this is a a/d converter system,please db input your choice(1-3),0dh,0ah,0ah,0ah,$showline db 23 dup(*),0dh,0ah,$check8255 db *,20h,1 .8255 check self,*,0dh,0ah,$check8253convert db *,20h,2 .8253 check self and a/d convert,*,0dh,0ah,$quit db *,20h,3 .quit the system,*,0dh,0ah,$.code .startup;顯示菜單及提示信息 mov dx,offset string mov ah,9 int 21h mov dx,offset showline mov ah,9 int 21h mov dx,offset check8255 mov ah,9 int 21h mov dx,offset check8253convert mov ah,9 int 21h mov dx,offset quit mov ah,9 int 21h mov dx,offset showline mov ah,9 int 21h cli;獲取原中斷向量里的內(nèi)容并保存 in al,0a1h;設(shè)置中斷屏蔽寄存器,系統(tǒng)自動(dòng)產(chǎn)生72號(hào)中斷 and al,0fbh out 0a1h,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 ds sti;開中斷,進(jìn)行判斷選擇按什么鍵 jmp choicexwait_press: nop nop nop jne wait_presschoicex: mov ah,1 int 21h cmp al,33h;退出系統(tǒng) je quit_system choice2: cmp al,32h;當(dāng)選擇2的時(shí)候進(jìn)行8253自檢 jne choice3 mov dl,13 ;向屏幕送回車符 mov ah,2 int 21h mov dl,10 ;向屏幕送換行符 mov ah,2 int 21h mov dx,307h mov al,00110110b out dx,al mov ax,25000 mov dx,304h out dx,al mov al,ah out dx,al in al,0a1h;設(shè)置中斷屏蔽寄存器,系統(tǒng)自動(dòng)產(chǎn)生72號(hào)中斷 and al,0fbh out 0a1h,al jmp wait_press choice3:cmp al,31h;8255自檢,將結(jié)果輸出到顯示器和發(fā)光二極管 jne choicex mov dl,35h mov ah,2 int 21h mov dx,303h mov al,10011001b out dx,almov al,0fhmov dx,301hout dx,al jmp choicex quit_system: cli mov dx,intoff;恢復(fù)1c號(hào)中斷向量 mov ax,intseg mov ds,ax mov ax,2572h int 21h sti .exit 0convert_proc proc mov dx,303h mov al,10011001b out dx,al mov dx,303h;送啟動(dòng)信號(hào) mov al,00h out dx,al nop mov al,01
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《chap會(huì)計(jì)憑證》課件
- 《服裝行業(yè)櫥窗展示》課件
- 《建設(shè)項(xiàng)目質(zhì)量管理》課件
- 2024-2025學(xué)年天津市第三中學(xué)高三上學(xué)期10月月考?xì)v史試題(解析版)
- 單位管理制度集合大全【員工管理】十篇
- 單位管理制度集粹選集【人員管理】十篇
- 《中國(guó)心力衰竭診斷和治療指南(2024)》解讀完整版
- 單位管理制度匯編大全【職工管理】
- 單位管理制度合并選集職員管理
- 《電阻的串聯(lián)和并聯(lián)》課件
- 手衛(wèi)生知識(shí)答題及答案
- GB/T 11017.1-2024額定電壓66 kV(Um=72.5 kV)和110 kV(Um=126 kV)交聯(lián)聚乙烯絕緣電力電纜及其附件第1部分:試驗(yàn)方法和要求
- 華為任職資格體系介紹
- 專題06手拉手模型(原卷版+解析)
- 《珍愛生命拒絕毒品》主題班會(huì)課件
- 儲(chǔ)能鋰離子電池 液冷熱管理系統(tǒng)運(yùn)行和維護(hù)規(guī)范
- GB/T 32399-2024信息技術(shù)云計(jì)算參考架構(gòu)
- 2024AI Agent行業(yè)研究報(bào)告
- 宮腔鏡手術(shù)并發(fā)癥及處理
- 安全生產(chǎn)治本攻堅(jiān)三年行動(dòng)方案2024~2026(工貿(mào))
- 2024版內(nèi)蒙古自治區(qū)勞動(dòng)合同書(臨時(shí)工、季節(jié)工、農(nóng)民輪換工)
評(píng)論
0/150
提交評(píng)論