ADC0809实验
實驗十 ADC0809實驗
?
一、實驗目的
熟悉A/D轉換的基本原理,掌握ADC0809的使用方法。
二、實驗設備
MUT—Ⅲ型實驗箱、8086CPU模塊。
三、實驗內容
從ADIN0輸入一路模擬信號,啟動A/D轉換,用簡單輸入口(74LS244)查詢EOC信號,轉換結束后查看轉換結果。同時用萬用表測量輸入的模擬電壓,與轉換后的數字量比較。作圖,橫坐標是模擬電壓,縱坐標是轉換的數字量,檢查A/D轉換的線性度。
其它通道實驗與通道0類似,相應修改地址即可。
四、實驗原理介紹
本實驗用到兩部分電路:簡單I/O口擴展電路、A/D電路
八路八位A/D實驗電路由一片ADC0809,一片74LS04,一片74LS32組成,該電路中,ADIN0—ADIN7是ADC0809的模擬量輸入插孔,CS0809是0809的AD啟動和片選的輸入插孔,EOC是0809轉換結束標志,高電平表示轉換結束。齊納二極管LM336-5提供5V的參考電源,ADC0809的參考電壓,數據總線輸出,通道控制線均已接好。
五、實驗步驟
1、實驗連線
AN0 ? ADIN0?? CS0 ?CS0809? CS1 ?CS244? EOC ?IN0
用實驗箱左上角的“VERF.ADJ”電位器調節ADC0809 12腳上的參考電壓至5V。
3、編寫程序并全速運行。
4、檢查顯示數據是否與電位器輸出的電壓相符合。
六、實驗提示
實驗電路中啟動信號START與地址鎖存信號相連,所以啟動A/D轉換的方法為:
MOV? DX,ADDRESS????? ;ADDRESS是ADC0809的端口地址
??????? OUT? ?DX, ?AL???????? ??;發片選及IOW信號,啟動0通道
七、實驗結果
在輸入電壓AN0分別為0V,1V,2V,3V,4V,5V時顯示數據分別為00H,33H,66H,99H,0CCH,0FFH(數據低位略有偏差屬正常現象)。
以下圖為當模擬電壓為4V時,輸出的數據量為CFH。
?
八、程序框圖
?
九、實驗程序
con8279 equ 0492hdat8279 equ 0490hassume cs:codecode segment publicorg 100hstart:jmp start1segcod db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71hstart1:mov dx,04a0hout dx,ax ;啟動通道 0wait1: mov dx,04b0h ;CS244in ax,dx ;讀 EOCand ax,1cmp ax,1jne wait1 ;如果EOC=0,waiting....mov dx,04a0hin ax,dx ;讀轉換結果and ax,0ffhmov bx,axnopdisp: mov di,offset segcodmov ax,08h ;工作方式,16位,左入mov dx,con8279out dx,axmov ax,90h mov dx,con8279out dx,ax ;寫顯示RAM命令,地址自增mov dx,dat8279push bxand bx,0f0h ;取高4位mov cl,4shr bx,cladd di,bxmov al,cs:[di]mov ah,0out dx,ax ;寫RAM0nopnopmov di,offset segcodpop bxand bx,0fh ;取低4位add di,bxmov al,cs:[di]mov ah,0out dx,ax ;寫RAM1delay: mov cx,0ffffh ;time delaydelay1: nopnoploop delay1jmp start1code endsend start?? ?
十、實驗拓展
1、查詢方式
????? (1)程序流程圖
(2)程序清單
assume cs:code code segment publicorg 100h start: start1: mov dx,00hmov ax,00hout dx,ax ;啟動通道0 wait1: mov dx,20h ;in ax,dx ;讀 EOCand ax,1cmp ax,1jne wait1 ;如果EOC=0,waiting....mov dx,00hin ax,dx ;讀轉換結果mov dx,40hout dx,al code ends end start?
(3)仿真實驗連線圖
2、中斷方式
(1)程序流程圖
(2)程序清單
assume cs:codecode segment publicorg 100hstart: cli;設置中斷向量mov ax,0mov es,axmov si,60h*4mov ax,offset int0mov es:[si],axmov ax,800h ;8086仿真模型中程序裝入段地址mov es:[si+2],ax;8259初始化mov dx,20h ;8259偶地址,設置ICW1mov al,13h ;邊沿觸發,單片,ICW4 NEEDEDout dx,al mov dx,22h ;8259奇地址,設置ICW2mov al,60h ;中斷類型號為60hout dx,al mov al,03h ;ICW4,自動清除中斷,8086CPUout dx,al mov al,00h ;OCW1, 開放所有中斷out dx,al ;設置指示燈的初始狀態mov bl,1mov al,blmov dx,40hout dx,almov dx,00hout dx,ax stilp:jmp lpint0: mov dx,00hin ax,dx ;讀轉換結果mov dx,40hout dx,aliret ;返回主程序retcode endsend start(3)仿真實驗連線圖
?
十一、實驗總結
(1)proteus中ADC0809和下圖中第一個ADC0808不支持仿真。
(2)實驗臺中斷方式不成功。仿真實驗中斷方式能進行成功,然而在實驗臺上,我們正確連好線路,將程序拷貝過來(中斷向量程序裝入段地址已改),實驗進行失敗,小燈亮的情況為設置的初始狀態。
?
?
?
總結
- 上一篇: 大连理工大学城市学院计算机类,大连理工大
- 下一篇: OMAPL138 TI官网开发资源合集