《微机原理与接口技术》上机实验报告
学号: 姓名: 班级: 上机内容:模/数转换器 课程名称:微型计算机原理与接口技术 实验性质: □ 综合性实验 □ 设计性实验 ■ 验证实验 实验时间: 年12月19 日 实验地点:汽车学院107 实验设备 TPC—2003A微机实验箱 示波器 实验报告:(包括目的、方法、原理、结果或实验小节等)。 一、实验目的 了解模/数转换的基本原理,掌握ADC0809的使用方法。 二、实验内容 1、实验电路原理图如图12-1。通过实验台左下角电位器RW1输出0~5V直流电压送入ADC0809通道0(IN0),利用debug的输出命令启动A/D转换器,输入命令读取转换结果,验证输入电压与转换后数字的关系。 启动IN0开始转换: Out 0298 0 读取转换结果: In 0298 2、编程采集IN0输入的电压,在屏幕上显示出转换后的数据(用16进制数)。 三、实验提示 1、ADC0809的IN0口地址为298H,IN1口地址为299H。 2、IN0单极性输入电压与转换后数字的关系参考原理图: 其中Ui为输入电压,UREF为参考电压,这里的参考电压为PC机的+5V电源。 3、一次A/D转换的程序可以为 MOV DX,口地址 OUT DX,AL ;启动转换 ;延时 IN AL,DX ;读取转换结果放在AL中 ;*******************************; ;*接收A/D转换器数据在屏幕上显示*; ;*******************************; io0809a equ 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 push dx mov ah,06h ;判断是否有键按下 mov dl,0ffh int 21h pop dx je start ;若没有转START mov ah,4ch ;退出 int 21h disp proc near ;显示子程序 mov dl,al cmp dl,9 ;比较DL是否>9 jle ddd ;若不大于则为'0'-'9',加30h为其ASCII码 add dl,7 ;否则为'A'-'F',再加7 ddd: add dl,30h ;显示 mov ah,02 int 21h ret disp endp code ends end start 五、实验小结 通过实验,了解和掌握模/数转换的工作原理,熟悉汇编代码的编写。在实验过程中,我们小组相互帮助,共同连接电线,第一次并没有达到理想的结果,在老师们的帮助下,我们及时更正了错误,最终完成了实验,通过实验的过程,让我们对于课本的理论知识有了进一步了解。 实验图片 实验十二 模/数转换器 一、实验目的 了解模/数转换的基本原理,掌握ADC0809的使用方法。 二、实验内容 1、实验电路原理图如图12-1。通过实验台左下角电位器RW1输出0~5V直流电压送入ADC0809通道0(IN0),利用debug的输出命令启动A/D转换器,输入命令读取转换结果,验证输入电压与转换后数字的关系。 启动IN0开始转换: Out 0298 0 读取转换结果: In 0298 2、将JP3的1、2短接,使IN2处于双极性工作方式,并给IN1输入一个低频交流信号(幅度为±5V),编程采集这个信号数据并在屏幕上显示波形。 三、实验提示 1、ADC0809的IN0口地址为298H,IN1口地址为299H。 2、IN0单极性输入电压与转换后数字的关系请参考原理图: 3、一次A/D转换的程序可以为 MOV DX,口地址 OUT DX,AL ;启动转换 ;延时 IN AL,DX ;读取转换结果放在AL中 ;****************************; ;* AD转换器2--示波器 *; ;* 采集数据在屏幕是作图 *; ;****************************; io0809b equ 299h code segment assume cs:code start: mov ax,0012h ;设屏幕显示方式为VGA 640X480模示 int 10h start1: mov ax,0600h int 10h ;清屏 and cx,0 ;cx为横坐标 draw: mov dx,io0809b ;启动A/D转换器通道1 out dx,al mov bx,200;500 ;延时 delay: dec bx jnz delay in al,dx ;读入数据 mov ah,0 mov dx,368 ;dx为纵坐标 sub dx,ax mov al,0ah ;设置颜色 mov ah,0ch ;画点 int 10h cmp cx,639 ;一行是否满 jz start1 ;是则转start inc cx ;继续画点 push dx mov ah,06h ;是否有键按下 mov dl,0ffh int 21h pop dx je draw ;无,则继续画点 mov ax,0003 ;有恢复屏幕为字符方式 int 10h mov ah,4ch ;返回 int 21h code ends end start 实验结果
《微机原理与接口技术》上机实验报告
学号: 姓名: 班级: 上机内容:简单并行接口 课程名称:微型计算机原理与接口技术 实验性质: □ 综合性实验 □ 设计性实验 ■ 验证实验 实验时间: 年12月19 日 实验地点:汽车学院107 实验设备 TPC—2003A微机实验箱 实验报告:(包括目的、方法、原理、结果或实验小节等)。 一、实验目的 掌握简单并行接口的工作原理及使用方法。 二、实验内容 1、按下面图一简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。 2、编程从键盘输入一个字符或数字,将其ASCⅡ码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性。 3、按下面图二简单并行输入接口电路图连接电路(74LS244插通用插座,74LS32用实验台上的“或门”)。74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0~K7,8个数据输出端分别接数据总线D0~D7。 4、用逻辑电平开关预置某个字母的ASCⅡ码,编程输入这个ASCⅡ码,并将其对应字母在屏幕上显示出来。 图一 图二 三、实验中使用到的程序 对于简单并行输出接口: stack1 segment stack 'stack' dw 32 dup(0) stack1 ends data segment baseport equ 0ec00h-280h;实际基址 port equ baseport+2a8h;基址+偏移地址 data ends code segment assume ss:stack1,ds:data,cs:code start: mov ax,data mov ds,ax again: mov ah,1 int 21h cmp al,1BH je exit mov dx,port out dx,al mov ah,2 mov dl,0dh int 21h mov ah,2 mov dl,0ah int 21h jmp again exit: mov ah, 4ch int 21h code ends end start 对于简单并行输入接口: stack1 segment stack'stack' dw 32 dup(0) stack1 ends data segment baseport equ 0ec00h-280h;实际基址 port equ baseport+aA0h;实际地址 data ends code segment assume cs:code,ds:data,ss:stack1 start: mov ax,data mov ds,ax again: mov dx,port in al,dx;输入指令 mov ah,2 mov dl,al int 21h;显示字符 mov ah,0Bh int 21h;判断是否有键按下 cmp al,0 jz again mov ah.4ch int 21h code ends end start 四、实验小结 通过本次实验,掌握了简单并行接口的工作原理及使用方法。对于输入输出指令有了进一步的理解。能区分dos功能调用与输入输出指令的区别。在实验中,能够将书本上的理论知识用具体的应用例子体现出来,使我印象更加深刻。 273软件显示程序: ;****************************; ;* 简单的并行输出实验 *; ;****************************; ls273 equ 2a8h code segment assume cs:code start: mov ah,2 ;回车符 mov dl,0dh int 21h mov ah,1 ;等待键盘输入 int 21h cmp al,27 ;判断是否为ESC键 je exit ;若是则退出 mov dx,ls273 ;若不是,从2A8H输出其ASCII码 out dx,al jmp start ;转start exit: mov ah,4ch ;返回 int 21h code ends end start实验连接图片 实验二 简单并行接口 一、实验目的 掌握简单并行接口的工作原理及使用方法。 二、实验内容 1、按下面图2-1简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。 2、编程从键盘输入一个字符或数字,将其ASCⅡ码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性。 三、编程提示 1、上述并行输出接口的地址为2A8H,并行输入接口的地址为2A0H,通过上述并行接口电路输出数据需要3条指令: MOV AL,数据 MOV DX,2A8H OUT DX,AL 通过上述并行接口输入数据需要2条指令: MOV DX,2ADH IN AL,DX 244软件显示程序: ;********************************; ;* 简单并行输入实验 *; ;********************************; ls244 equ 2a0h code segment assume cs:code start:mov dx,ls244 ;从2A0输入一数据 in al,dx mov dl,al ;将所读数据保存在DL中 mov ah,02 int 21h mov dl,0dh ;显示回车符 int 21h mov dl,0ah ;显示换行符 int 21h mov ah,06 ;是否有键按下 mov dl,0ffh int 21h jnz exit je start ;若无,则转start exit: mov ah,4ch ;返回 int 21h code ends end start 实验连接图片
《微机原理与接口技术》上机实验报告
学号: 姓名: 班级: 上机内容:可编程定时器/计数器(8253) 课程名称:微型计算机原理与接口技术 实验性质: □ 综合性实验 □ 设计性实验 ■ 验证实验 实验时间: 年12月19 日 实验地点:汽车学院107 实验设备 TPC—2003A微机实验箱 示波器 实验报告:(包括目的、方法、原理、结果或实验小节等)。 一、实验目的 掌握8253的基本工作原理和编程方法。 二、实验内容 1、按图3-1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。 三、实验中使用到的程序 ;*************************; ;* 8253方式0计数器实验 *; ;*************************; io8253a equ 283h io8253b equ 280h code segment assume cs:code start: mov al,14h ;设置8253通道0为工作方式2,二进制计数 mov dx,io8253a out dx,al mov dx,io8253b ;送计数初值为0FH mov al,0fh out dx,al lll: in al,dx ;读计数初值 call disp ;调显示子程序 push dx mov ah,06h mov dl,0ffh int 21h pop dx jz lll mov ah,4ch ;退出 int 21h disp proc near ;显示子程序 push dx and al,0fh ;首先取低四位 mov dl,al cmp dl,9 ;判断是否<=9 jle num ;若是则为'0'-'9',ASCII码加30H add dl,7 ;否则为'A'-'F',ASCII码加37H num: add dl,30h mov ah,02h ;显示 int 21h mov dl,0dh ;加回车符 int 21h mov dl,0ah ;加换行符 int 21h pop dx ret ;子程序返回 disp endp code ends end start ; 四、实验小结 通过实验,了解和掌握定时器的工作原理,熟悉汇编代码的编写。在实验过程中,我们小组相互帮助,共同连接电线,第一次并没有达到理想的结果,在老师们的帮助下,我们及时更正了错误,最终完成了实验,通过实验的过程,让我们对于课本的理论知识有了进一步了解。 实验连接图片 实验结果图 实验三 可编程定时器/计数器(8253) 一、实验目的 掌握8253的基本工作原理和编程方法。 二、实验内容 1、按图3-2连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。 三、编程提示 1、8253控制寄存器地址 283H 计数器0地址 280H 计数器1地址 281H CLK0连接时钟 1MHZ ;******************* ;* 8253分频 * ;******************* io8253a equ 280h io8253b equ 281h io8253c equ 283h code segment assume cs:code start:mov dx,io8253c ;向8253写控制字 mov al,36h ;使0通道为工作方式3 out dx,al mov ax,1000 ;写入循环计数初值1000 mov dx,io8253a out dx,al ;先写入低字节 mov al,ah out dx,al ;后写入高字节 mov dx,io8253c mov al,76h ;设8253通道1工作方式2 out dx,al mov ax,1000 ;写入循环计数初值1000 mov dx,io8253b out dx,al ;先写低字节 mov al,ah out dx,al ;后写高字节 mov ah,4ch ;程序退出 int 21h code ends end start 实验三 可编程定时器/计数器(8253) 一、实验目的 掌握8253的基本工作原理和编程方法,用示波器观察不同方式下的波形。 二、实验原理和内容 1、按图3-3连接电路,将计数器0设置为方式3(方波),计数器设置为方式2(分频)。 2、实现计数器0的输出为方波,计数器1的输出是计数器0输出的分频波形。 3、人机交互界面设计:实现在显示屏幕上提示输入计数器0(方波)的参数和计数器1(分频信号)的参数。如下所示: counter0:____ counter1:____ continue?(y/n)____ 4、实现用键盘直接输入修改程序中方波的参数和分频信号的参数,以改变方波的宽度,分频信号的周期和分频数,不需重新修改源代码。 5、用示波器观察计数器0和计数器1的输出波形及其关系,并在纸上画出CLK0、OUT0、OUT1的波形。 ;*************************; ;* 8253 program *; ;*************************; data segment mesg0 db 13,10,'******************************* 8253 progam *******************************',13,10,'$' mesg1 db 13,10,'counter0:','$' mesg2 db 13,10,'counter1:','$' mesg3 db 13,10,'continue?(y/n)','$' mesg4 db 13,10,13,10,'Thank You!',13,10,'$' errorm db 13,10,'Input Error!','$' counter0 dw 0 counter1 dw 0 data ends code segment assume cs:code,ds:data main proc far start: mov dx,seg data mov ds,dx mov dx,offset mesg0 mov ah,09h int 21h do: sub bx,bx sub ax,ax mov counter0,0 mov counter1,0 ;init l1: mov dx,offset mesg1 mov ah,09h int 21h rd1 : ;read counter0 mov ah,01 ;read a char int 21h cmp al,13 ;if enter je fdone1 jmp tdone1 fdone1: jmp done1 tdone1: cmp al,10 je fdone1 cmp al,'0' ;if input<0 or input>9 error jb error cmp al,'9' ja error push ax mov ax,10 mul counter0 mov counter0,ax ;counter0=counter0*10 pop ax sub bx,bx mov bl,al sub bl,30h add counter0,bx ;counter0=counter0+input jmp rd1 error: mov dx,offset errorm mov ah,09h int 21h mov dl,7 mov ah,2 int 21h jmp done3 tr: ;for jmp do mov dl,al mov ah,02h int 21h mov dl,10 int 21h mov dl,13 int 21h jmp do l2: mov dx,offset mesg2 mov ah,09h int 21h rd2: ;read counter1 mov ah,01 int 21h cmp al,13 ;if enter je fdone2 cmp al,10 je fdone2 jmp tdone2 fdone2: jmp done2 tdone2: cmp al,10 je fdone2 cmp al,'0' jb error cmp al,'9' ja error push ax mov ax,10 mul counter1 mov counter1,ax ;counter1=counter1*10 pop ax sub bx,bx mov bl,al sub bl,30h ;bh=0 add counter1,bx ;counter1=counter1+input jmp rd2 done1: jmp l2 done2: jmp out8253 ;after enter two counters ; set 8253 and do it done3: mov dx,offset mesg3 mov ah,09h int 21h l3: mov ah,07h int 21h cmp al,'Y' je tr cmp al,'y' je tr cmp al,'N' je quit cmp al,'n' je quit mov dl,7 mov ah,02h int 21h jmp l3 out8253: ;work code mov al,00110110b mov dx,283h out dx,al mov ax,counter0 mov dx,280h out dx,al mov al,ah out dx,al mov al,01110100b mov dx,283h out dx,al mov ax,counter1 mov dx,281h out dx,al mov al,ah out dx,al mov cx,2801 delay: loop delay jmp done3 quit: ;return to DOS mov dx,offset mesg4 mov ah,9 int 21h mov ax,4c00h int 21h main endp code ends end start
《微机原理与接口技术》上机实验报告
学号: 姓名: 班级: 上机内容:I/O地址译码 课程名称:微型计算机原理与接口技术 实验性质: □ 综合性实验 □ 设计性实验 ■ 验证实验 实验时间: 年12月19 日 实验地点:汽车学院107 实验设备 TPC—2003A微机实验箱 实验报告:(包括目的、方法、原理、结果或实验小节等)。 一、实验目的 掌握I/O地址译码电路的工作原理。 二、实验内容 实验电路如图1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D 触发器,74LS138为地址译码器。译码输出端Y0~Y7在实验台上I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH,„„ 当CPU执行I/ O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。 注意:命令中的端口地址 D820、D82A 是根据PCI卡的基址再加上偏移量计算出来的,不同的微机器PCI卡的基址可能不同,需要事先查找出来。 计算公式如下: 计算出的地址查找出的PCI卡的基址+偏移量; (其中:偏移量 =2A0H - 280H或 2A8H –A80H) 图一 图1-1 三、实验中使用到的程序 CODE SEGMENT ASSUME CS:CODE START: LOOP1: MOV CX,0FFFFH LP1: MOV DX,2AOH IN AL,DX LOOP LP1 MOV CX,0FFFFH LP2: NOP LOOP LP2 MOV CX,0FFFFH LP3: MOV DX,2A8H IN AL,DX LOOP LP3 MOV CX,0FFFFH LP4: NOP LOOP LP4 MOV AH,0BH INT 21H CMP AL,0 JZ LOOP1 MOV AH,4CH INT 21H CODE ENDS END START ; 四,电脑软件显示程序 *******************************; ;* I/O地址译码 *; ;*******************************; outport1 equ 2a0h outport2 equ 2a8h code segment assume cs:code start: mov dx,outport1 out dx,al call delay ;调延时子程序 mov dx,outport2 out dx,al call delay ;调延时子程序 mov ah,1 int 16h je start mov ah,4ch int 21h delay proc near ;延时子程序 mov bx,200 lll: mov cx,0 ll: loop ll dec bx jne lll ret delay endp code ends end start 五、实验小结 通过实验,了解和掌握I/O地址译码电路的工作原理,熟悉汇编代码的编写。在实验过程中,我们小组相互帮助,共同连接电线,第一次并没有达到理想的结果,在老师们的帮助下,我们及时更正了错误,最终完成了实验,通过实验的过程,让我们对于课本的理论知识有了进一步了解。 实验图片
因篇幅问题不能全部显示,请点此查看更多更全内容