当前位置:文档之家› 计算机接口实验报告

计算机接口实验报告

计算机接口技术实验电子与信息工程班级:电子0911姓名:学号:2012年5月9日实验一、I/O地址译码一、实验目的掌握I/O地址译码电路的工作原理。

二、实验原理和内容实验电路如图1-1所示,图中线路两端有节点的信号线需要用户用实验导线连接起来。

其中74LS74为D触发器,可直接使用实验台上部系统板上的D触发器。

74LS138为地址译码器。

译码输出端Y0~Y7在实验台中间系统板上引出,每个输出端包含8个地址,即:Y0:280H~287H;Y4:2A0H~2A7H;Y1:288H~28FH;Y5:2A8H~2AFH;Y2:290H~297H;Y6:2B0H~2B7H;Y3:298H~29FH;Y7:2B8H~2BFH;当CPU执行I/ O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。

例如:执行下面两条指令,对应的译码输出脚输出一个负脉冲。

MOV DX,PORT1OUT DX,AL(或IN AL,DX)执行下面两条指令,对应的译码输出脚输出一个负脉冲。

MOV DX,PORT2OUT DX,AL(或IN AL,DX)利用这个负脉冲控制发光二极管L0闪烁发光(亮灭循环),时间间隔通过软件延时实现。

注意:命令中的端口地址PORT1、PORT2 是根据DVCC卡的I/O基址再加上偏移量计算出来的,不同的微机DVCC卡的I/O基址可能不同,需要事先查找出来,详细见《用户手册》第五章节5.3中第10~12点介绍的查找方法。

计算公式如下:PORT1 = 查找出的DVCC卡的I/O基址 + 偏移量其中:偏移量 = Y0~Y7中所选定的任意一个译码地址值-280H。

下面的程序用到Y4,即2A0H。

假设DVCC卡的I/O基地址=0C400H,经计算PORT1= 0C420H。

三、编程提示1.实验电路中D触发器的CLK 端输入脉冲时,上升沿使Q端输出高电平,L0发光,CLR端加低电平L0灭。

四、原理图五、程序;*******************************; ;* I/O地址译码 *; ;*******************************;ioport equ 0c400h-0280h outport1 equ ioport+2a0h outport2 equ ioport+2a8hcode segmentassume cs:codestart:mov dx,outport1out dx,alcall delay ;调延时子程序mov dx,outport2out dx,alcall delay ;调延时子程序mov ah,1int 16hje startmov ah,4chint 21hdelay proc near ;延时子程序mov bx,2000lll: mov cx,0ll: loop lldec bxjne lllretdelay endpcode endsend start六、实验心得通过此次I/O地址译码实验,让我对硬件的连线有了进一步的熟化,在做第一个实验的时候,我们将clk接口接在了Y0和clr接在了Y1上面,发现接在L4灯上信号没有反应,后来在反复的检查中发现它们应该接在Y4和Y5上,这与程序的编译的地址有关,在许老师的解释下我们终于搞懂了。

虽然我们习惯了C语言的编程,而且现在所有的设计题都是用的C语言,但是汇编也是比较重要的语言,所以今后学习还得熟化。

实验二、可编程定时计数器1一、实验目的掌握8253的基本工作原理和编程方法。

二、实验内容1.按图接线,将计数器0设置为方式0,计数器初值为N(N≤0FH,本例程中为0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用L0或逻辑笔观察OUT0电平变化,初始时OUT0为高电平,当输入N个脉冲时,OUT0变为低电平,当输入N+1个脉冲后OUT0变高电平)。

三、原理图四、实验流程图五、程序;*************************;;* 8253方式0计数器实验 *;;*************************;ioport equ 0C400h-0280hio8253k equ ioport+283hio8253a equ ioport+280hcode segmentassume cs:codestart:mov al,14h ;设置8253通道0为工作方式2,二进制计数 mov dx,io8253kout dx,almov dx,io8253a ;送计数初值为08Hmov al,08hout dx,allll: in al,dx ;读计数初值call disp ;调显示子程序push dxmov ah,06hmov dl,0ffhint 21hpop dxjz lllmov ah,4ch ;退出int 21hdisp proc near ;显示子程序push dxand al,0fh ;首先取低四位mov dl,alcmp dl,9 ;判断是否<=9jle num ;若是则为'0'-'9',ASCII码加30Hadd dl,7 ;否则为'A'-'F',ASCII码加37Hnum: add dl,30hmov ah,02h ;显示int 21hmov dl,0dh ;加回车符int 21hmov dl,0ah ;加换行符int 21hpop dxret ;子程序返回disp endpcode endsend start六、实验心得本实验的实验现象是在实验箱上按动按键,在电脑屏幕上出现的字符由程序设定,然后按键以后,电脑上的字符会相应的变化,当计数到零时L0灯会亮起,但程序的缺点是无法再次计数使L0灯熄灭。

通过此次实验,让我们对可编程定时计数器8253A的0方式编程有了进一步的认识,正所谓学有所用,只在书本上看程序不如在实际中应用的有感觉,而且,所有的学科都来源于生活,没有生活的具体要求,所有的研究都是徒劳,所以我们应该将书本的知识与实际联系起来才能更加的深刻。

实验三、可编程定时计数器2一、实验目的掌握8253的基本工作原理和编程方法。

二、实验内容1.按图连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用电平指示灯L0或逻辑笔观察OUT1输出电平的变化,要求输出频率1HZ的分频信号。

三、原理图四、实验流程图、五、程序;*******************;* 8253分频 *;*******************ioport equ 0C400h-0280hio8253a equ ioport+280h io8253b equ ioport+281h io8253k equ ioport+283hcode segmentassume cs:codestart:mov dx,io8253k ;向8253写控制字mov al,36h ;使0通道为工作方式3out dx,almov ax,1000 ;写入循环计数初值1000mov dx,io8253aout dx,al ;先写入低字节mov al,ahout dx,al ;后写入高字节mov dx,io8253kmov al,76h ;设8253通道1工作方式2out dx,almov ax,1000 ;写入循环计数初值1000mov dx,io8253bout dx,al ;先写低字节mov al,ahout dx,al ;后写高字节mov ah,4ch ;程序退出int 21hcode endsend start六、实验心得本实验的实验现象是电脑上程序运行一遍以后,电脑屏幕会退出编译界面,L4灯会闪烁,分析程序后发现,原来程序没有加入循环环节,所以只能向芯片发送一次程序,这些都是可以通过程序来改进的。

连接电路时,我是把所有线全部拆了再连接这个电路的,最后发现其实有好多的连线与上一个实验相同,这就告诉我们,在做一件事之前,我们得做好充分的准备再做事才能事半功倍。

实验四、可编程并行接口一、实验目的掌握8255方式0的工作原理及使用方法。

二、实验内容1.按图接线,8255C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。

2. 编程从8255C口输入数据,再从A口输出。

3.由于DVCC卡使用PCI总线,所以分配的IO地址每台微机可能都不同,编程时需要了解当前的微机使用那段IO地址并进行设置,获取方法见《用户手册》第五章节5.3第10~12点中的介绍。

下面的程序D8255_1.ASM(在文件夹“ASM_汇编例程”中)是需要用户自己根据查找到的DVCC卡的I/O基址替换到程序中带下划线的位置(0C400H)。

三、编程提示1.8255控制寄存器端口地址 28BH,A口的地址 288H,C口的地址 28AH。

四、原理图五、实验流程图六、程序;*******************************;;* 8255方式0的C口输入,A口输出 *; ;*******************************;ioport equ 0C400h-0280hio8255a equ ioport+288hio8255b equ ioport+28bhio8255c equ ioport+28ahcode segmentassume cs:codestart: mov dx,io8255b ;设8255为C口输入,A口输出mov al,8bhout dx,alinout: movdx,io8255c ;从C口输入一数据in al,dxmov dx,io8255a ;从A口输出刚才自C口out dx,al ;所输入的数据mov dl,0ffh ;判断是否有按键mov ah,06hint 21hjz inout ;若无,则继续自C口输入,A口输出mov ah,4ch ;否则返回int 21hcode endsend start七、实验心得在做并行口8255C的实验的时候,我们将8255CS信号线连接在一个开关上,这就使得选通8255芯片的控制权交到了实验者得手上,只有拨动开关时才能使8255工作,为了方便起见,我们只连接了一盏灯和一个开关来进行实验的,拨动开关时,看到相应接的灯有亮灭的变化。

实验五、七段数码管显示程序1一、实验目的掌握数码管显示数字的原理二、实验内容1. 静态显示:数码管为共阴极,通过BCD码译码驱动器CD4511驱动,其输入端A~D输入4位BCD码,位码输入低电平选中。

按图连接好电路,将8255的A口PA0~PA3与七段数码管LED1的BCD码驱动输入端A1~D1相连,8255的A口PA4~PA7与七段数码管LED2的BCD码驱动输入端A2~D2相连),8255的B 口PB0~PB3与七段数码管LED3的BCD码驱动输入端A3~D3相连,8255的B口PB4~PB7与七段数码管LED4的BCD码驱动输入端A4~D4相连,8255的C口PC0~PC3分别与七段数码管LED1~LED4的位驱动输入端DG1~DG4相连。

相关主题