北京交通大学微机原理实验报告 联系客服

发布时间 : 星期三 文章北京交通大学微机原理实验报告更新完毕开始阅读

56

mov ds,ax

mov dx,offset int_proc mov al,int_vect mov ah,25h int 21h

in al, 21h ;设置中断掩码 and al, irq_mask_2_7 out 21h, al in al, 0a1h

and al, irq_mask_9_15 out 0a1h, al mov ax,data mov ds,ax

mov dx,offset msg2 mov ah,09h int 21h

mov dx,offset msg3 mov ah,09h int 21h

mov irq_times,0ah sti loop1:

cmp irq_times,0 ;等待中断并判断中断10次后退出 jz exit mov ah,1 int 16h

jnz exit ;按任意键退出 jmp loop1 exit: cli

mov bl, irq_mask_2_7 ;恢复中断掩码 not bl in al, 21h or al, bl out 21h, al

mov bl, irq_mask_9_15 not bl in al, 0a1h 57

or al, bl out 0a1h, al

mov dx,ipreg ;恢复原中断向量 mov ax,csreg mov ds,ax

17

mov ah,25h mov al,int_vect int 21h

mov dx,ioport_cent+68h ;设置 tpc 卡中9054芯片io口,关闭中断 in ax,dx

and ax,0f7ffh out dx,ax mov ax,4c00h int 21h

int_proc proc far ;中断处理程序 cli

push ax push dx push ds

dec irq_times

mov ax,data ;Interrupt to do mov ds,ax

mov dx,offset msg1 mov ah,09h int 21h

mov al,20h ;Send EOI out 0a0h,al out 20h,al pop ds pop dx pop ax sti iret

int_proc endp code ends

四、模/数转换器

一、实验目的

了解模/数转换的基本原理,掌握ADC0809的使用方法。

18

二、实验内容

1、实验电路原理图如图38。通过实验台左下角电位器RW1输出0~5V直流电压送入ADC0809通道0(IN0),利用debug的输出命令启动A/D转换器,输入命令读取转换结果,验证输入电压与转换后数字的关系。 启动IN0开始转换: Out 0298 0 读取转换结果: In 0298

2、编程采集IN0输入的电压,在屏幕上显示出转换后的数据(用16进制数)。 3、将JP3的1、2短接,使IN2处于双极性工作方式,并给IN1输入一个低频交流信号(幅度为±5V),编程采集这个信号数据并在屏幕上显示波形。 三、实验提示

1、ADC0809的IN0口地址为298H,IN1口地址为299H。

2、IN0单极性输入电压与转换后数字的关系为:

其中Ui为输入电压,UREF为参考电压,这里的参考电压为PC机的+5V电源。 3、一次A/D转换的程序可以为 MOV DX,口地址

OUT DX,AL ;启动转换 ;延时

IN AL,DX ;读取转换结果放在AL中 四、参考流程图

19

五、参考程序1:AD_1.ASM ioport equ 0d400h-0280h io0809a equ ioport+298h code segment assume cs:code

start:mov dx,io0809a ;启动A/D转换器 out dx,al

mov cx,0ffh ;延时 delay:loop delay

in al,dx ;从A/D转换器输入数据 mov bl,al ;将AL保存到BL mov cl,4

shr al,cl ;将AL右移四位

call disp ;调显示子程序显示其高四位 mov al,bl and al,0fh

call disp ;调显示子程序显示其低四位 mov ah,02

mov dl,20h ;加回车符 int 21h mov dl,20h int 21h

20