微机原理-8259下降沿中断-计数实验

1.  首先附上原理图,引脚连接的方式是网络标号的形式,分模块进行原理图的绘画,这样使原理图更加清晰。

2.  实验案例运用的主要芯片有8255、8259, 下面分别对这两个芯片进行主要的讲解。

首先对8255进行端口定义,如下图所示,可以看到在8255A的A0和A1引脚连接的是AB1、AB2,CS引脚连接的是138译码器。那么8255控制字,AD15-AD0分别为:0000 0000 1000 0110B,转化为16进制就是 86H。那么控制A端口自然就是,0000 0000 1000 0000B,即80H,在本实验中,只用到了8255的端口A,所以只对A端口进行定义。

                        

对 8255 端口的定义完成后,需要对8255的工作方式进行定义。

三种工作方式可用软件编程对控制口设置来指定。三种基本的工作方式为: 方式0-基本的输入输出,方式1-选通输入输出方式, 方式2-双向传送方式。本实验的功能是,在每次按键按下后,触发 8259 下降沿中断,进入中断后,对八个LED灯实现16进制的累加,进而对LED灯的控制亮灭。因此,命令8255工作在方式0,A端口为输出状态。

故8255控制字(D7-D0)为:1000 0000B,16进制为 80H。

 3.  8259的链接图如下所示。

      首先对 ICW1写控制字,本实验为上升沿触发,一片 8255 使用 , 写IW4,因此 ICW1控制字为(D7-D0):0001 0011B。

      再对 ICW2写控制字 , 中端号为20H。故 ICW2控制字为(D7-D0):0010 0000B。

      最后对 ICW4写控制字,显然 ICW4控制字为(D7-D0):0000 0001B。

 

本图片来源:中断控制器8259——工作方式、命令字_花无凋零之时的博客-CSDN博客_8259

 

  本图片来源:中断控制器8259——工作方式、命令字_花无凋零之时的博客-CSDN博客_8259

4. 从图中可以看出,LED是共阳的。即初始化变量 CNT = 0FFH , 为LED为全灭状态。若按键按下,8259触发下降沿中断,进入中断函数之中。只需在中断函数之中,把变量 CNT 减 1 , 则实现了16进制的自减。

(1)第一次按下按键,8255 的A端口输出为 0FEH, 转化为 2 进制为 1111 1110B,故是PA0为低电平 , PA1-PA7都为高电平。因此此时只有LED0亮起 , LED1-LED7保持熄灭转态。如下图所示:

 (2)第二次按下按键,8255 的A端口输出为 0FDH, 转化为 2 进制为 1111 1101B,故是PA1为低电平 , PA0和P2-PA7都为高电平。因此此时只有LED1亮起 ,其他 LED 保持熄灭转态。如下图所示:

(3)再次按下,同理可得。

5. 总体工程代码如下:

mode    equ 080H   ; 8255 工作方式
A8255   equ 080H   ; 8255 port A
COM8255 equ 086H   ; 设置 com口

A8259 equ 090H
B8259 equ 092H

icw1    equ 00010011b   ; 单片8259,下降沿中断,要写ICW4
icw2    equ 00100000b   ; 中断号为20H
icw4    equ 00000001b   ; 工作在8086/88方式
ocw1    equ 11111110b   ; 只响应IR0中断  
IntBase equ 20H         ; 基号:IRO 对应的中断号

data segment
    CNT DB 0FFH
data ends

sseg segment stack 'stack'
    STA DB 100 dup(?)
    ;TOP equ lengtH STA
sseg ends
code segment
    assume cs:code,ds:data,ss:sseg  

start:
    mov ax,data
    mov ds,ax         
;----SET 8255-----    
    mov dx,COM8255
    mov al,mode
    out dx,al     
;------------------------
    cli       
    pusH ds
;------------------------    
    mov ax,0
    mov ds,ax
    mov bx,IntBase*4        ; 20H*4=128 interrupt number   中断号为20H的中断向量入口 
    mov ax,code
    mov cl,4       
    sHl ax,cl               ; =*16
    add ax,offset IENTER    ; interrupt subroutine entry address 中断入口地址偏移地址
    mov [bx],ax    
    mov ax,0
    inc bx   
    inc bx
    mov [bx],ax             ; segment address is 0    
    pop ds
;------------------------     
Iinit:                      ;设置中断工作方式
    mov dx,A8259            ;写ICW1  
    mov al,icw1             ;00010011B
    out dx,al               ;下升沿触发,间隔为8,单片工作,写ICW4

    mov dx,B8259            ;写ICW2
    mov al,icw2             ;00100000B
    out dx,al     

    mov al,icw4             ;写ICW4
    out dx,al    
    mov al,ocw1             ;写OCW1
    out dx,al      
   
    mov al,CNT              
    mov dx,A8255
    out dx,al
;---------------在proteus 中仿真时做如下处理 ————————————;
    sti                     ; 打开CPU可屏蔽中断
LP:      
dead_wHile:
	mov al,IntBase
	out 0, al       	; 
	jmp dead_wHile  	;    
    jmp LP 
;------------------------    
IENTER:     
    cli
    mov dx,A8255
    dec CNT
    mov al,CNT
    out dx,al   ; out counter number   
 
    mov dx,A8259
    mov al,20H  ; ocw2, end of interrupt
    out dx,al

    sti    
    iret   
code ends 
end start

  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 计算机发展史中计算机诞生时间的三个第一 世界上发明的第一台电子计算机 ENIA C 美国 世界上第一台按存储程序控制功能设计的计算机 EDVA C 1946 1950 美国 世界上第一台投入运行的实现存储顺序控制功能的计算机 EDSA C 1947 英国 2. 计算机发展的四个阶段和计算机时代的开始 计算机发展的分代按照不同的规范有不同的分法。 通常是按计算机中硬件所采用的电子逻辑器件划分成电子管、晶体管、中小规模集 成电路、大规模超大规模集成电路四个阶段; 也有一种观点把计算机的发展大致分为四个时期,即大型机时期、小型机时期、 PC 时期(或客户 / 服务器、 PC/ 服务器)时期和 Internet 或以网络为中心)时期。 通常 所说的计算机时代 " 从何时开始? 认为 1951 年,世界上第一台商品化批量生产的计算机 UNIVA C-I 投产,计算机从此从实验室走向社会,由单纯为军事服务进入为社会公众服务,被认为 是计算机时代的真正开始。 3. 计算机的特点 从计算机的特点理解计算机的定义,要清楚计算机的实质是一种信息处理机 计算机是一种能够输入信息,存储信息,并按照人们意志(这些意志就是顺序)对 信息进行加工处理,最后输出人们所需要信息的自动执行的电子装置。 计算机的特点:处置速度快、处置精度高、可存储、可进行逻辑判断、可靠性高、 通用性强。 4. 计算机的主要性能指标 主频、字长、存储容量、存取周期、运行速度。 运算速度是个综合性的指标, MIPS 含义。 影响运算速度的因素,主要是主频和存取周期,字长和存储容量也有影响。 正确理解 字长 概念。 5. 计算机的主要应用领域 科学计算 信息处置 过程控制 辅助系统 通信 6. 计算机中为什么要采用二进制及二进制的基本运算规则 计算机中采用二进制是由计算机所使用的逻辑器件所决定。这种逻辑器件是具有两 种状态的电路(触发器)好处是 运算简单 实现方便 利息低 要清楚逻辑运算和算术运算规则的不同。 7. 二进制数据与十进制、八进制、十六进制数据之间的转换 要求:这几种进位计数制的数据,一定要会互相转换。 清楚各种数制的表示。如: 1010BH 什么进制 的数?十六进制数,不要答成二进制数。 8. 计算机中字符数据的表示方式 字符数据主要指西文的 A SCII 码和汉字,计算机内是用什么代码表示的 A SCII 码:用 7 位二进制数表示的或用一个字节表示,最高位为 0 这是事实上的国际规范。 汉字编码:用连续的两个字节表示,且规定最高位为 1 这是中国国家规范。 9. 存储容量和地址 存储容量是存储部件存储单元的总和; 地址是存储单元的编号。 要求: 知道地址线,会求寻址空间 知道存储容量和起始地址,会求末地址 难点: 地址总线,地址信号 寻址、寻址空间 存储容量和地址信号的关系 10. 存储顺序和程序控制原理 1945 年,冯 诺依曼提出的现代计算机的理论基础。现代计算机已经发展到第四代,但仍遵循着这个 原理。 存储顺序和程序控制原理的要点是顺序输入到计算机中,存储在内存储器中(存储 原理)运行时,控制器按地址顺序取出存放在内存储器中的指令(按地址顺序访问指令 )然后分析指令,执行指令的功能,遇到转移指令时,则转移到转移地址,再按地址顺 序访问指令(顺序控制) 11. 指令和程序 指令是包括有操作码和地址码的一串二进制代码。其中操作码规定了操作的性质 什么样的操作 地址码表示了操作数和操作结果的存放地址。 顺序是为解决某一问题而设计的一系列排列有序的指令或语句(顺序设计语言的语 句实质包括了一系列指令)集合。 12. 计算机硬件的组成及各组成部分的功能 要理解以存储器为中心的计算机组成原理图 运算器:对信息和数据进行运算和加工处理,运算包括算术运算和逻辑运算。 控制器:实现计算机自身处置过程的自动化,指挥计算机各部件按照指令功能的要 求进行所需要的操作。 存储器:存储顺序和数据。 输入部件:输入顺序和数据。 输出部件:输出计算机的处置结果。 13. CPU 微处理器的概念 CPU 即中央处理单元,计算机的核心部件,包括了运算器和控制器两大部件 微处理器:微型机上使用的 CPU 利用大规模集成电路技术把运算器和控制器制作在一块集成电路中的芯片。 微型计算机:以微处理器为核心,加上用大规模集成电路做成的 RA M 和 ROM 存储芯片、输入输出接口芯片等组成的计算机。 计算机型号和 CPU 型号的关系: Intel80286 286 微机 Intel80386 386 微机 Intel80486 486 微机 14. 构成内存储器的半导体存储部件 RA M 和 ROM 特性 内存储器由两种半导体芯片构成。 RA M 随机存取存储器,也叫读写存储器。用来存放用户输入的顺序
抱歉,我无法为您提供完整的微型计算机实验代码。但我可以给您提供一些关于数据传送的微型计算机实验1的基本知识。 数据传送指的是将数据从一个地方传送到另一个地方。在微型计算机中,数据传送分为两种类型:内部数据传送和外部数据传送。 内部数据传送是指数据在微处理器内部传送,例如从寄存器到寄存器或从寄存器到内存。外部数据传送是指数据在微处理器和外部设备(如输入/输出设备、存储器等)之间传送。 在微型计算机实验1中,您需要了解以下内容: 1. 内部数据传送的指令和操作码 2. 外部数据传送的指令和操作码 3. 内存地址的编码方法 4. 数据传送的实现方法 在数据传送实验中,您需要编写程序来实现将数据从一个位置传送到另一个位置。此外,您还需要使用微型计算机实验箱中的设备(如键盘、显示器等)来进行输入和输出。 下面是一个简单的数据传送实验示例代码: ``` ORG 100H ;程序起始地址 MOV AX, 1234H ;将数据1234H存放到AX寄存器中 MOV BX, AX ;将AX寄存器中的数据传送到BX寄存器中 MOV CX, 5678H ;将数据5678H存放到CX寄存器中 MOV [1000H], CX ;将CX寄存器中的数据传送到内存地址1000H中 MOV DX, [2000H] ;将内存地址2000H中的数据传送到DX寄存器中 HLT ;程序结束 ``` 在上面的示例代码中,我们使用了MOV指令来实现数据传送。MOV指令用于将数据从一个位置传送到另一个位置。在这个例子中,我们将数据存放到寄存器和内存中,并将数据从内存中传送到寄存器中。 在编写完代码后,您需要使用微型计算机实验箱来进行编译和运行。在运行程序时,您需要在键盘上输入数据,并在显示器上查看输出结果。 希望这些信息对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值