微机原理硬件实验报告

时间:2024.4.13

微机硬件实验报告

班级:

姓名:

学号:

实验一 8259中断控制器

一、实验目的

1. 掌握8259的工作原理。

2. 掌握编写中断服务程序的方法。

3. 掌握初始化中断向量的方法。

二、实验内容

用单脉冲发生器的输出脉冲为中断源,每按一次产生一次中断申请,点亮或熄灭发光二极管。

三、实验步骤

1、连线;

单脉冲发生器输出P+与8259的IR0相连;

8259的片选CS8259与CS0相连;

8259的INT与8086的INT相连;

8259的INTA与8086的INTA相连;

CS273与CS1相连;

00与LED1相连;如下图所示。

接线原理图

2、编辑程序,编译链接后,调试程序。

3、调试通过后,在中断服务程序内设置断点,运行程序,当接收到中断请求后,程序停在中断服务程序内的断点处。

四、流程图及实验代码

1、流程图

开始,8259产生中断,点亮/熄灭彩灯,是否有脉冲信号,Y,N 


2、程序


CODE SEGMENT PUBLIC

ASSUME CS:CODE

     ORG 100H          ;因为前面的空间被内部占用了

START:

     MOV DX,4A0H

     MOV AX,13H

     OUT DX,AX             ;ICW1

     MOV DX,4A2H

     MOV AX,80H       ;IR0的中断向量码为80H

     OUT DX,AX            ;ICW2

     MOV AX,01H        

     OUT DX,AX            ;ICW4

     MOV AX,0

OUT DX,AX        ;OCW1一般嵌套,非缓冲方式,非自动EOI

     MOV AX,0            ;写中断向量表              

     MOV DS,AX

     MOV SI,200H

     LEA AX,HINT

     MOV DS:[SI],AX

     ADD SI,2

     MOV AX,CS

     MOV DS:[SI],AX

     STI                            ;等中断

     JMP $                  ;等,原地跳转

HINT:

     XOR CX,0FFH

     MOV DX,4B0H

     MOV AX,CX                     ;输出高低电平控制LED灯的亮灭

     OUT DX,AX

     MOV DX,4A0H

     MOV AX,20H    ; 一般EOI命令,全嵌套方式

     OUT DX,AX

     IRET

CODE ENDS

END START


五、实验现象

每按一次单脉冲发生器产生一次中断申请,点亮或熄灭发光二极管。

六、思考题

1、将P+连线连接到IR1—IR7任意一个;重新编写程序。


CODE SEGMENT PUBLIC

ASSUME CS:CODE

     ORG 100H               ;因为前面的空间被内部占用了

START:

     MOV DX,4A0H

     MOV AX,13H

     OUT DX,AX             ;ICW1

     MOV DX,4A2H

     MOV AX,81H           ; IR1的中断向量码为81H

     OUT DX,AX            ;ICW2

     MOV AX,01H

     OUT DX,AX            ;ICW4

     MOV AX,0

OUT DX,AX            ;OCW1一般嵌套,非缓冲方式,非自动EOI

     MOV AX,0            ;写中断向量表              

     MOV DS,AX

     MOV SI,204H

     LEA AX,HINT

     MOV DS:[SI],AX

     ADD SI,2

     MOV AX,CS

     MOV DS:[SI],AX

     STI                            ;等中断

     JMP $                 ;等,原地跳转

HINT:

     XOR CX,0FFH

     MOV DX,4B0H

     MOV AX,CX                   ; 输出高低电平控制LED灯的亮灭

     OUT DX,AX

     MOV DX,4A0H

     MOV AX,20H    ; 一般EOI命令,全嵌套方式

     OUT DX,AX

     IRET

CODE ENDS

END START


实验现象:实验现象与原来相同。每按一次单脉冲发生器产生一次中断申请,点亮或熄灭发光二极管。

2、设置OCW1,屏蔽某个中断请求,运行程序观察现象。


CODE SEGMENT PUBLIC

ASSUME CS:CODE

     ORG 100H               ;因为前面的空间被内部占用了

START:

     MOV DX,4A0H

     MOV AX,13H

     OUT DX,AX             ;ICW1

     MOV DX,4A2H

     MOV AX,81H           ; IR1的中断向量码为80H

     OUT DX,AX            ;ICW2

     MOV AX,01H

     OUT DX,AX            ;ICW4

     MOV AX,01H          ; OCW1一般嵌套,非缓冲方式,非自动EOI

OUT DX,AX           

     MOV AX,01H            ;写中断屏蔽字OCW1              

     MOV DS,AX                            ;屏蔽IR0中断

     MOV SI,200H         ;中断类型号为80H

     LEA AX,HINT

     MOV DS:[SI],AX

     ADD SI,2

     MOV AX,CS

     MOV DS:[SI],AX

     STI                            ;等中断

     JMP $                 ;等,原地跳转

HINT:

     XOR CX,0FFH

     MOV DX,4B0H

     MOV AX,CX                   ; 输出高低电平控制LED灯的亮灭

     OUT DX,AX

     MOV DX,4A0H   ;OCW2的地址

     MOV AX,20H    ; 一般EOI命令,全嵌套方式

     OUT DX,AX

     IRET

CODE ENDS

END START


实验现象:每按单脉冲发生器一次产生一次中断申请,但连接的发光二极管一直不亮。

3、设置OCW2,了解中断结束方式与设置优先权。


CODE SEGMENT PUBLIC

ASSUME CS:CODE

     ORG 100H               ;因为前面的硬件占用了

START:

     ;MOV CL,0AAH

     MOV CL,0FH

     XOR CL,0FFH      

     MOV DX,4A0H

     MOV AX,13H

     OUT DX,AX             ;ICW1

     MOV DX,4A2H

     MOV AX,80H         ;中断向量码

     OUT DX,AX            ;ICW2

     MOV AX,01

     OUT DX,AX            ;ICW4

     MOV AX,0

     OUT DX,AX            ;OCW1

     ;----------------------                ;写中断向量表

     MOV AX,0              

     MOV DS,AX

     MOV SI,204H

     LEA AX,HINT1

     MOV DS:[SI],AX

     ADD SI,2

     MOV AX,CS

     MOV DS:[SI],AX

     ;----------------------                ;写中断向量表

     MOV AX,0              

     MOV DS,AX

     MOV SI,200H

     LEA AX,HINT0

     MOV DS:[SI],AX

     ADD SI,2

     MOV AX,CS

     MOV DS:[SI],AX

     ;-----------------------------

     STI              ;等中断

     JMP $    ;等,原地跳转

HINT1:

     STI

     MOV CX,0FFFFH

K2:LOOP K2                    ;防止竞争

     MOV CL,01H

     MOV DX,4B0H

     MOV AX,CX

     OUT DX,AX     ;彩灯1

     MOV CX,0FFFFH

JJ: PUSH CX

JJJ:  LOOP JJJ

     POP CX      

     LOOP JJ               ;延时

     MOV DX,4A0H

     MOV AX,E0H

     OUT DX,AX

     IRET

HINT0:

     STI

     MOV CX,0FFFFH

K1:LOOP K1                    ;防止竞争

     MOV CL,0F0H

     MOV DX,4B0H

     MOV AX,CX

     OUT DX,AX    ;彩灯0

     MOV CX,0FFFFH

J:  PUSH CX

JJJJ:

     LOOP JJJJ

     POP CX      

     LOOP J                 ;延时

     MOV DX,4A0H

     MOV AX,E0H

     OUT DX,AX

     IRET

CODE ENDS

END START


实验现象:HINT0优先响应,低四位彩灯亮,再按脉冲按钮一次,HINT1优先响应,高四位的彩灯亮。优先级反复。

七、实验体会

此次实验加深了我对8259A的内部寄存器的认识,并掌握了8259A的初始化。由于硬件的配合,使学习更直观。

实验二 8255并行接口实验

一、实验目的

掌握8255的编程原理。

二、实验内容

8255的A口作为输入口,与逻辑电平开关相连。8255的B口作为输出口,与发光二极管相连。编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。

三、实验步骤

1、连线;

8255的PA0—PA7分别与逻辑电平开关的K1—K8相连;

PB0—PB7分别与发光二极管电路的LED1—LED8相连;

CS0与8255的片选CS8255相连。如下图所示。

接线原理图

2、编辑程序,编译链接后,单步运行,调试程序;

3、调试通过后,全速运行,观察实验结果。

四、流程图及实验代码

1、流程图

2、程序

CODE SEGMENT PUBLIC

ASSUME CS:CODE

ORG 100H

START:

MOV DX,04A6H   ; 控制寄存器

MOV AX,90H   ; 写控制字,A组工作在方式0,A口输入,B组工作在方式0,B口输出

OUT DX,AX

START1:

MOV DX,04A0H   ;A口

IN AX,DX         ;读A口数据

MOV DX,04A2H   ;B口

OUT DX,AX       ;把A口开关的信号读进来,点亮相应的灯

JMP START1

CODE ENDS

END START

五、实验现象

控制A的任意开关可控制相应的LED的亮灭。开关拨下后LED灭,推上后LED亮。而LED低电平亮,高电平灭,可见开关拨下为低电平。

六、思考题

1、将片选线接到CS1—CS7;重新编写程序。

程序如下:

CODE SEGMENT PUBLIC

ASSUME CS:CODE

ORG 100H

START:

MOV DX,04C6H  ;CS0-CS4分别对应A-E,实验中选择CS2

MOV AX,90H    ; 写控制字,A组工作在方式0,A口输入,B组工作在方式0,B口输出

OUT DX,AX

START1:

MOV DX,04C0H    ;A口

IN AX,DX         ;读A口数据

MOV DX,04C2H   ;B口

OUT DX,AX     ; 把A口开关的信号读进来,点亮相应的灯

JMP START1

CODE ENDS

END START

实验现象:与原实验现象相同。

2、交换A --B接线,A口输出、B口输入;重新编写程序。

程序如下:

CODE SEGMENT PUBLIC

ASSUME CS:CODE

ORG 100H

START:

MOV DX,04A6H  ; 控制寄存器

MOV AX,82H    ; 写控制字,A组工作在方式0,A口输出,B组工作在方式0,B口输入

OUT DX,AX

START1:

MOV DX,04A2H    ;B口

IN AX,DX         ;读B口数据

MOV DX,04A0H   ;A口

OUT DX,AX     ; 把B口开关的信号读进来,点亮相应的灯

JMP START1

CODE ENDS

END START

实验现象:与原实验现象相同,开关可有效控制LED的亮灭。

3、C口4位接LED;4位接开关;重新编写程序。

程序如下:

CODE SEGMENT PUBLIC

ASSUME CS:CODE

ORG 100H

START:

MOV DX,04A6H  ; 控制寄存器

MOV AX,81H    ;

OUT DX,AX

START1:

MOV DX,04A4H    ;C口低四位

IN AX,DX          ;AL就够了

MOV CL,4

SHL AX,CL         ;将低四位移到高四位上

MOV DX,04A4H    ;C口高四位

OUT DX,AX        ;将高四位的数输出进来,点亮相应的灯

JMP START1

CODE ENDS

END START

实验现象:控制四个开关可控制四盏灯中相应的LED的亮灭。开关拨下后LED灭,推上后LED亮。

七、实验体会

此次8255的实验帮我更好地掌握8255芯片的初始化和程序编写。在做第二个思考题的过程中和同学忘了一条线的更改,使得出了小错误,这也让我们更重视线路颜色的选用,比如一种颜色代表一种功能线,这样便于检查线路错误。

实验三 8253可编程定时/计数器接口实验

一、实验目的

掌握8253定时/计数器的编程原理。

二、实验内容

8253计数器0,1,2工作于方波方式,观察其输出。

三、实验步骤

1、连线;

CS0与8253的片选CS8253相连;

CLK3(750KHz)与8253CLK0相连;

8253的OUT0与8253CLK2相连;

OUT2与发光二极管LED1相连。如下图所示。

接线原理图

2、编辑程序,编译链接后,单步运行,调试程序;

3、调试通过后,全速运行,观察实验结果。

四、流程图及实验代码

1、流程图

2、程序

CODE SEGMENT PUBLIC

ASSUME CS:CODE

ORG 100H

START:

MOV DX,04A6H  ; A1A0接的是A2A1!故为偶数地址。04A6和04A7代表控制寄存器。

MOV AX,36H    ;计数器0、16位、方式3、二进制计数

OUT DX,AX

MOV DX,04A0H

MOV AX,7CH

OUT DX,AX

MOV AX,92H

OUT DX,AX      ;先写低8位,再写高8位。分频:927CH=37500

MOV DX,04A6H

MOV AX,0B6H   ;计数器2、16位、方式3、二进制计数

OUT DX,AX

MOV DX,04A4H

MOV AX,4

OUT DX,AX

MOV AX,0

OUT DX,AX      ;先写低8位,再写高8位

;分频:0004H=4

JMP $          ;最终分频:750KHz/4/37500=5Hz

CODE ENDS

END START

五、实验现象

         LED灯以等时间间隔闪烁,频率为5Hz,亮灭的时间相同。

六、思考题

1、定时器2计数值改为20H;观察其现象。

       实验现象:频率为0.625Hz,周期变为原来的八分之一,闪烁加快。

2、将定时器2改为方式2分频器方式;观察其现象。

       程序如下:

CODE SEGMENT PUBLIC

ASSUME CS:CODE

ORG 100H

START:

MOV DX,04A6H  ; A1A0接的是A2A1!故为偶数地址。04A6和04A7代表控制寄存器。

MOV AX,36H    ;计数器0、16位、方式3、二进制计数

OUT DX,AX

MOV DX,04A0H

MOV AX,7CH

OUT DX,AX

MOV AX,92H

OUT DX,AX      ;先写低8位,再写高8位。分频:927CH=37500

MOV DX,04A6H

MOV AX,0B4H   ;计数器2、16位、方式2、二进制计数

OUT DX,AX

MOV DX,04A4H

MOV AX,20H

OUT DX,AX

MOV AX,0

OUT DX,AX      ;先写低8位,再写高8位

;分频:20H=32

JMP $        

CODE ENDS

END START

实验现象:频率为0.625Hz,周期变为原来的八分之一,即闪烁加快。

3、将GATE2 接到开关上;观察其现象。

实验现象:GATE2在方式2是高电平启动计数,故从下往上推开关后不在技术,从上往下推开关后,过一小会才会亮。

4、将GATE2 接到PUL P+开关上,计数器2 改为方式1 ;观察其现象。

CODE SEGMENT PUBLIC

ASSUME CS:CODE

ORG 100H

START:

MOV DX,04A6H  ; A1A0接的是A2A1!故为偶数地址。04A6和04A7代表控制寄存器。

MOV AX,36H    ;计数器0、16位、方式3、二进制计数

OUT DX,AX

MOV DX,04A0H

MOV AX,7CH

OUT DX,AX

MOV AX,92H

OUT DX,AX      ;先写低8位,再写高8位。分频:927CH=37500

MOV DX,04A6H

MOV AX,0B2H   ;计数器2、16位、方式1、二进制计数

OUT DX,AX

MOV DX,04A4H

MOV AX,20H

OUT DX,AX

MOV AX,0

OUT DX,AX      ;先写低8位,再写高8位

;分频:20H=32

JMP $        

CODE ENDS

END START

实验现象:将MOV AX,0B4H改为MOV AX,0B2H。按下去脉冲按钮灯马上亮,亮32个单位时间,灭1个单位时间。每次当灯熄灭后,按动开关,LED1灯会产生同第一次相同的亮灭情况。每次在灯未熄灭时,按动PUL P0开关,则灯亮的时间变长,对应示波器的低电平时间加长。 

5、将GATE2 接到PUL P+开关上,计数器2 改为方式5 ;观察其现象。

CODE SEGMENT PUBLIC

ASSUME CS:CODE

ORG 100H

START:

MOV DX,04A6H  ; A1A0接的是A2A1!故为偶数地址。04A6和04A7代表控制寄存器。

MOV AX,36H    ;计数器0、16位、方式3、二进制计数

OUT DX,AX

MOV DX,04A0H

MOV AX,7CH

OUT DX,AX

MOV AX,92H

OUT DX,AX      ;先写低8位,再写高8位。分频:927CH=37500

MOV DX,04A6H

MOV AX,0BAH   ;计数器2、16位、方式5、二进制计数

OUT DX,AX

MOV DX,04A4H

MOV AX,20H

OUT DX,AX

MOV AX,0

OUT DX,AX      ;先写低8位,再写高8位

;分频:20H=32

JMP $        

CODE ENDS

END START

实验现象:将AX,0B2H 改成AX,0BAH。按一下脉冲按钮,灭32个单位,亮1个单位。长时间按着只能亮一下。

七、实验体会

使用8553的过程中加深了我对各计数器和计数方式的学习。实验过程中对控制字的了解程度直接影响程序编写和修改的进度。

实验四   串行接口实验

一、实验目的

1.熟悉串行通信的一般原理和8250的工作原理。

2.了解RS—232串行接口标准及连接方法。

3.掌握8250芯片的编程方法。

二、实验内容

在实验箱与PC机(上位机)之间实现串行通信,主机每下传一个字符,若通讯正确,则下位机返回一个同样的字符;若不正确,则无返回值或者返回值不同。

三、实验步骤

1、无须接线,内部已经连好。8250的端口地址为0480H起始的偶地址单元。

2、编写下位机程序,编译链接后,全速运行。

3、退出“8086实验系统”,运行“串口调试助手”上位机程序。

4、将“串口调试助手”程序输入和输出都调整为16进制格式,发送一个16进制数,观察返回的是否是同样一个16进制数。

接线原理图

四、流程图及实验代码

1、流程图

2、程序


CODE    SEGMENT PUBLIC

ASSUME  CS:CODE

ORG     100H

START:

MOV     DX,486H        

MOV     AX,80H         

OUT     DX,AX

MOV     DX,480H        

MOV     AX,12          ;波特率除数锁存器(低字节)

OUT     DX,AX

MOV     DX,482H        

MOV     AX,0           ;波特率除数锁存器(高字节)

OUT     DX,AX

MOV     DX,486H        

MOV     AX,3           

OUT     DX,AX

MOV     DX,482H        

MOV     AX,0            ;中断允许寄存器,不响应中断

OUT     DX,AX

MOV     DX,48AH        

IN      AX,DX         ;清除原始错误状态

MOV     DX,480H        

IN      AX,DX         ;清除原始状态

LOOP1:

CALL    RECV          ;从上位机接收数据

CALL    SEND         ;将数据发送到上位机显示

JMP     LOOP1

SEND:

PUSH    AX           ;保护数据避免覆盖

MOV     DX,48AH        

IN      AX,DX          

TEST    AX,20H       ;比较数据避免为空

JNZ     SEND2     ;接收到数据后准备发送

POP     AX             

JMP     SEND

SEND2:

POP     AX             

MOV     DX,480H       

OUT     DX,AX          

RET

RECV:

MOV     DX,48AH      

IN      AX,DX          

TEST    AX,1           

JZ      RECV           

MOV     DX,480H       

IN      AX,DX          

RET

CODE    ENDS

END     START


五、实验现象

选择ASC码发送,十六进制显示,实验结果如图中所示。

六、思考题

1、连接8255 将接收到的16 进制数;驱动8个彩灯;观察其现象。

实验过程中,将8255的PA0—PA7分别与LED1-LED8相连,CS0与8255的片选CS8255相连。在程序开头对8255进行初始化,在SEND2代码段中将数据输出,点亮彩灯。程序如下所示。


CODE    SEGMENT PUBLIC

ASSUME  CS:CODE

ORG     100H

START:

MOV     DX,04A6H  ;对8255进行初始化

MOV     AX,80H       ;A口最为输出,与LED连接

OUT     DX,AX ;

MOV     DX,486H        

MOV     AX,80H         

OUT     DX,AX

MOV     DX,480H        

MOV     AX,12          

OUT     DX,AX

MOV     DX,482H        

MOV     AX,0

OUT     DX,AX

MOV     DX,486H        

MOV     AX,3           

OUT     DX,AX

MOV     DX,482H        

MOV     AX,0           

OUT     DX,AX

MOV     DX,48AH        

IN      AX,DX          

MOV     DX,480H        

IN      AX,DX

LOOP1:

CALL    RECV           

CALL    SEND           

JMP     LOOP1

SEND:

PUSH    AX             

MOV     DX,48AH        

IN      AX,DX          

TEST    AX,20H         

JNZ     SEND2          

POP     AX             

JMP     SEND

SEND2:

POP     AX              将获得的数据从堆栈中弹出

MOV     DX,4A0H        ;从A口将数据输出,点亮彩灯

OUT     DX,AX          

RET

RECV:

MOV     DX,48AH     从上位机接收数据

IN      AX,DX          

TEST    AX,1           

JZ      RECV           

MOV     DX,480H       

IN      AX,DX          

RET

CODE    ENDS

END     START


实验现象:从上位机输入01,LED1灭,其他彩灯亮。

2、连接8255 将开关的状态以16 进制数的方式发送到PC机;观察其现象。

实验过程中,将8255的PA0—PA7分别与K1-K8相连,CS0与8255的片选CS8255相连。在程序开头对8255进行初始化,在RECV代码段中将数据输入给8255,,在上位机上显示。程序如下所示。


CODE    SEGMENT PUBLIC

ASSUME  CS:CODE

ORG     100H

START:

MOV DX,04A6H         ;对8255进行初始化

MOV AL,90H                          ;A口输入

OUT DX,AL

MOV     DX,486H        

MOV     AX,80H         

OUT     DX,AX

MOV     DX,480H        

MOV     AX,12           

OUT     DX,AX

MOV     DX,482H        

MOV     AX,0

OUT     DX,AX

MOV     DX,486H        

MOV     AX,3           

OUT     DX,AX

MOV     DX,482H        

MOV     AX,0           

OUT     DX,AX

MOV     DX,48AH        

IN      AX,DX          

MOV     DX,480H        

IN      AX,DX

LOOP1:

CALL    RECV            ;从下位机接受数据

CALL    SEND           

JMP     LOOP1

SEND:

PUSH    AX             

MOV     DX,48AH        

IN      AX,DX          

TEST    AX,20H         

JNZ     SEND2          

POP     AX              

JMP     SEND

SEND2:

POP     AX             

MOV     DX,480H       

OUT     DX,AX          

RET

RECV:

MOV     DX,4A0H        ;选择A口地址

IN      AX,DX           ;接受开关信号

RET

CODE    ENDS

END     START


实验想象:将开关均置为低,上位机将显示一连串相同的00信号。当开关置为其他状态后,上位机将显示一连串其他相同信号。结果如下图所示。

七、实验体会

这次试验要求预习时就能够熟悉实验的每个过程,所用到的芯片的连接方式。这样才能有效地完成实验。多个芯片的共同使用也加深了我对芯片电路、芯片初始化的认识。

实验五  AD0809实验

一、实验目的

1、掌握转换的基本原理。

2、掌握的使用方法。

二、实验内容

按查询方式采样一路A/D转换数据,用简单输入口74LS244查询EOC信号。每循环一次0通道采样一次。0通道的采样结果放入AX中,AL有效。

三、实验步骤

1、连线

将可变电位器AN0与ADC0809的ADIN相连;

将CS0与ADC809的片选CS0809端相连;

将ADC0809的EOC与74LS244的IN0相连;

将CS1与74LS244的片选CS244端相连。   连线如图所示。

2、编先程序并调试。

3、调试通过后设置断点全速运行,并观察实验结果。

4、撰写实验报告。

四、流程图及实验代码

1、流程图

2、程序

CODE  SEGMENT  PUBLIC

ASSUME  CS:CODE

ORG  100H

START:

MOV     DX,4A0H       ;IN0,模拟量存入此

CALL    GETAD          ;调用转换子程序,取得值

JMP      START

DELAY:                     ;延时子程序

MOV    BP,1000

DELAY1:

DEC     BP

CMP     BP,0

JNE     DELAY1

RET

GETAD:                   ; A/D转换子程序

PUSH    DX            

MOV     AX,34H         ;任意值均可,只要写入即工作

OUT     DX,AX         

CALL    DELAY         

MOV    DX,4B0H         ;指向74LS244地址

WAIT1:

IN      AX,DX           ;EOI=1则表转换结束

TEST    AX,1          

JZ      WAIT1          

POP     DX             

IN      AX,DX        

MOV     AH,0          ;必须清零,不然高位保持不变,数据变化不明显

RET

CODE    ENDS

END     START

五、实验现象

打开软件中的“波形图”,转动电位器,将会看到波形图中的曲线将之发生变化。

六、思考题

1、将采到的数据发送到8250 上;在PC 机观察数据。

实验过程中无需连线。在读取AD值得代码段中将上一个实验8250的代码加入程序中,去除LOOP1和CALL RECV,只用到SEND和SEND2的命令。程序如下。


CODE  SEGMENT  PUBLIC

ASSUME  CS:CODE

ORG  100H

START:

     MOV     DX,486H              ;对0809进行初始化

MOV     AX,80H         

OUT     DX,AX

MOV     DX,480H        

MOV     AX,12          

OUT     DX,AX

MOV     DX,482H         

MOV     AX,0

OUT     DX,AX

MOV     DX,486H        

MOV     AX,3           

OUT     DX,AX

MOV     DX,482H        

MOV     AX,0           

OUT     DX,AX

MOV     DX,48AH        

IN      AX,DX          

MOV     DX,480H        

IN      AX,DX

;

MOV     DX,4A0H      

CALL    GETAD         

JMP      START

DELAY:                    

MOV    BP,1000

DELAY1:

DEC     BP

CMP     BP,0

JNE     DELAY1

RET

GETAD:

PUSH    DX         

MOV     AX,34H         

OUT     DX,AX         

CALL    DELAY         

MOV    DX,4B0H

WAIT1:

IN      AX,DX          

TEST    AX,1          

JZ      WAIT1          

POP     DX            

IN      AX,DX        

MOV     AH,0      

CALL    SEND                      ;         

    

RET

SEND:                       ;将数字信号输出到上位机界面

PUSH    AX             

MOV     DX,48AH        

IN      AX,DX          

TEST    AX,20H         

JNZ     SEND2          

POP     AX             

JMP     SEND

SEND2:

POP     AX             

MOV     DX,480H       

OUT     DX,AX          

RET

CODE    ENDS

END     START


实验现象:旋转电位计,上位机将显示不同的字符串;如果保持电位器不变,则上位机将显示连续的相同字符串。结果如下所示。

七、实验体会

       实验过程中,刚开始使用波形图功能时不熟悉,因此向同学询问了很久,然后才解决。加入8250进行编程时,进一步加深了我对8250功能的认识及其程序编写。

更多相关推荐:
微机原理 实验报告

微机原理与接口技术实验指导书班级学号099074姓名安徽工业大学计算机学院实验一存贮器读写实验一实验内容对指定地址区间的RAM4000H4FFH先进行写数据55AAH然后将其内容读出再写到5000H5FFH中二...

微机原理完整实验报告+程序

实验题目8253定时计数器实验一实验目的与要求1学会8253芯片和微机接口原理和方法2掌握8253定时器计数器的工作方式和编程原理二实验内容1实验原理本实验原理图如图1所示8253A的A0A1接系统地址总线A0...

微机原理实验报告

微机原理实验报告实验一两个多位十进制数相加的实验一实验目的学习数据传送和算术运算指令的用法熟悉在PC机上建立汇编链接调试和运行汇编语言程序的过程二实验内容将两个多位十进制数相加要求被加数和加数均以ASCII码形...

答案版_微机原理实验报告

微机原理及接口技术实验报告20xx20xx学年第一学期班级姓名学号指导教师实验一Emu8086软件的使用一实验目的1熟悉汇编语言开发环境2掌握Emu8086软件使用方法3理解寻址方式的意义二实验环境1硬件环境微...

微机原理实验报告

大连理工大学本科实验报告课程名称计算机原理课程设计学院系电气工程学院专业电气工程及其自动化班级学号学生姓名20xx年12月30日大连理工大学实验报告实验时间年月日星期四时间13001505实验室房间号实验台号码...

微机原理实验报告1

微机原理实验报告班级:电气93姓名:学号:实验一:顺序程序的设计一、实验目的:1.学习8086/8088指令系统中一些基本指令的用法和程序设计的基本方法。2.熟悉在PC机上建立、汇编、链接、调试和运行8086、…

微机原理实验报告一

西安郵電學院微机原理实验报告一题目寻址方式与基本指令实验院系名称计算机学院专业名称软件工程专业班级软件0902学生姓名许艳莉学号8位040950581实验目的1熟悉80x86寻址方式及基本指令的功能进一步理解和...

微机原理实验报告

姓名:XXX学号:XXXXXX指导教师:XXX实验一Debug命令及汇编指令和寻址的应用一、实验内容1、设堆栈段指针SP=1000H,AX=4000H,BX=8000H;请编写一段程序将AX和BX的内容进行交换…

微机原理实验报告

计算机学院微机接口实验报告专业计算机科学与技术班级姓名学号实验一汇编语言程序设计实验一实验目的熟悉汇编语言程序设计及TDPITE80X86实验环境的使用二实验设备PC机一台TDPITE实验装置或TDPITC实验...

微机原理实验报告

洛阳理工学院实验报告12345洛阳理工学院实验报告678洛阳理工学院实验报告9101112洛阳理工学院实验报告1314洛阳理工学院实验报告151617

微机原理实验报告

微机原理实验课程实验研究性学习手册姓名学号班级微机教师微机实验老师时间20xx年12月上课时间实验一IO地址译码与交通灯控制实验一实验目的1掌握并行接口8255的基本原理2掌握8255的编程方法3掌握利用X86...

微机原理实验报告

微机接口与原理实验报告学院信息科学与工程学院专业班级姓名学号1目录第一部分硬件实验311实验一312实验二413实验三414实验四515实验五616实验六617实验七718实验八819实验九8110实验十9第二...

微机原理实验报告(31篇)