当前位置:文档之家› 微机原理实验

微机原理实验

河南科技大学
实验题目8253方波发生器
院系国际教育学院
班级计科122 学号 121425020232 姓名叶中满
一. 实验目的
熟悉8253的控制寄存器和初始化编程方法,熟悉8253的6种工作模式。

二. 实验环境
硬件环境:奔3以上处理器,512MB以上内存空间
软件环境:windowsXP以上操作系统,emu8086编译环境,Proteus7.5sp3。

三.实验内容与完成情况
1.仿真电路图
2.8253芯片介绍
8253是一种可编程定/计数器,有三个十六位计数器,其计数频率范围为0~2MHZ,用+5V 单电源供电。

该电路由1片8253组成,8253的片选输入端插孔CS8253,数据口,地址,读写线均已接好,T0、T1、T2时钟输入分别为8253CLK0、8253CLK1、8253CLK2。

定时器输出,GATE 控制孔对应如下:OUT0、GATE0、OUT1、GATE1、OUT2、GATE2、CLK2。

8253的功能用途:
(1)延时中断
(2)可编程频率发生器
(3)事件计数器
(4)二进制倍频器
(5)实时时钟
(6)数字单稳
(7)复杂的电机控制器
8253的六种工作方式:
(1)方式0:计数结束中断
(2)方式1:可编程频率发生
(3)方式2:频率发生器
(4)方式3:方波频率发生器
(5)方式4:软件触发的选通信号
(6)方式5:硬件触发的选通信号
8253的方式控制字
8253的状态字
3.编程调试程序
CODE SEGMENT
ASSUME CS:CODE
START:
MOV DX,316H ;方波发生200Hz,时钟10KHz
MOV AL,00110111B ;通道0,方式3,BCD计数OUT DX,AL
MOV DX,310H
MOV AL,50H
OUT DX,AL
MOV AL,00H
OUT DX,AL;通道0初始化
MOV DX,316H ;计数结束中断方式
MOV AL,01110001B ;通道1,方式0,BCD计数OUT DX,AL
MOV DX,312H
MOV AL,00H
OUT DX,AL
MOV AL,0FEH
OUT DX,AL;通道1初始化
MOV DX,316H ;可编程单稳态输出方式
MOV AL,10010010B ;通道2,方式1,二进制计数
OUT DX,AL
MOV DX,314H
MOV AL,0FEH
OUT DX,AL;通道2初始化
CODE ENDS
END START
四.出现的问题
1.不清楚8253芯片的工作原理;
2.忘记了8086的信息传递方式。

五.对问题的解决方法
1.反复翻阅教材,通过老师深入讲解,明白了8253芯片的工作方式;
2.查阅教材前面的章节,加深了对8086的认识。

河南科技大学
实验题目8255a与LED数码管的显示
院系国际教育学院
班级计科122 学号 121425020232 姓名叶中满
一. 实验目的
掌握8255A的编程原理与LED数码管的显示方法。

二. 实验环境
硬件环境:奔3以上处理器,512MB以上内存空间
软件环境:windowsXP以上操作系统,emu8086编译环境,Proteus7.5sp3。

六.实验内容与完成情况
2.仿真电路图
3.实验原理
(1)8255A可编程I/O接口芯片具有三种工作方式:方式0(简单的输入输出方式)、方式1(选通式输入/输出方式)和方式2(双向数据传送方式)。

它分别能够控制把CPU的控制命令或输出数据送至相应的端口,也可以控制把外设的状态信息或输入的数据通过相应端口送至CPU。

(2)8255芯片具有三个数据端口A、B和C。

每个端口都为8位,可以由编程来选择作为输入端口或输出端口。

在一般情况下,常利用A、B两个端口来完成与外设之间的数据交换过程,而利用C端口来完成与外设的状态控制信息的交换过程。

4.实验过程
首先打开电源,由8086向8255a发出指令,选定8255的工作方式,然后,读A口数据,高四位清零,取LED灯偏移地址。

当4个按钮的开关情况发生变化时,电信号的变化被读入8255a,经一系列的信号处理,从B口输出到LED灯显示数字。

4.编程调试程序
data segment
; add your data here!
PORTD EQU 66H ;CPU-8255控制寄存器
PORTA EQU 60H ;8086 A1接8255 A0;A2 接8255A1
PORTB EQU 62H
PORTC EQU 64H
REGIS EQU 10010000B ;A IN, B OUT,AB口工作方式0
LED DB 3fH,06H,5bH,4fH,66H,6dH,7dH,07H,7fH,6fH,77H,7cH,39H,5eH,79H,71H data ends
stack segment
dw 128 dup(0)
stack ends
code segment
ASSUME CS:code, DS:data
BEGIN:
MOV DX,PORTD ;设置8255工作方式
MOV AL,REGIS ;control byte
OUT DX,AL
G1: MOV DX,PORTA
IN AL,DX ;读A口数据
AND AL,00001111B ;高四位清零
;数码管译码
MOV BX,OFFSET LED
XLAT ;取LED表
;-------------
PUSH CX
MOV CX,40H ;延时
DELAY:LOOP DELAY
POP CX
;-------------
MOV DX,PORTB
OUT DX,AL
JMP G1
code ends
end BEGIN ; set entry point and stop the assembler.
七.出现的问题
3.不知道如何选定8255a的A,B,C三个端口的工作状态;
2.对74ls183的电信号处理机制不清楚。

八.对问题的解决方法
1.查看8255a的方式控制字说明。

2.询问老师,问题得以解决。

相关主题