微机原理与接口技术课程设计
在方式0下,A端口、B端口和C端口都可提供简单的输入输出操作,对每个端口不需要固定的应答联络信号。工作在方式0时,在程序中可以直接使用输入命令(IN)和输出命令(OUT)指令对个端口进行读写。方式0的基本定义是2个8位的端口和2个4位端口。任何一个端口都可以作为输入或输出 ,输出的数据可以被锁存,输入的数据不能锁存。方式0常用于与外设无条件数据传送或查询方式数据传送。
(2)方式1:单向选通输入/输出方式
方式1是一种带选通信号的单方向输入/输出工作方式,其特点是:与外设传送数据时,需要联络信号进行协调,允许用查询或中断方式传送数据。由于C端口的PC0, PC1和PC2定义为B端口工作在方式1的联络信号线,PC3, PC4和PC5定义为A端口工作方式1的联络信号线,因此只允许A端口和B端口工作在方式1。为了能实现用中断方式传送数据,在8255A内部设有一个中断允许触发器INTE,当触发器为“1”时允许中断,为“0”时禁止中断。
(3)方式2:双向选通输入/输出方式
在双向的传输中,8255A可以向外设发送数据,同时CPU通过这8位数据线有接收外设的数据是方式1输入和输出的组合,即同一端口的信号线既可以输入又可以输出。方式2 的基本定义是,只能适用于A端口,一个8位的双向端口(A端口)和1个5位的控制端口(C端口)。A端口的输入和输出都可以被锁存。5位的控制端口用来传送8位双向端口的控制和状态信息。当A端口工作方式2时,由PC7~PC0作为8位数据线,因为要由C端口对A端口进行控制,所以称为带选通的双向传输方式。在此方式下,C端口中有5位PC7~PC3作为控制信号和状态信息使用,剩下的3位PC2~PC0仍可以作为基本I/O线,工作在方式0。当控制字的D0位为1时,PC2~PC0作输入;当控制字的D0位为0时,PC2~PC0作输出。需要注意的是:输入和输出公用一个中断请求线PC3,但中断允许触发器有两个,即输入中断允许触发器为INTE2,由PC4写入设置,输出中断允许触发器为INTE1,由PC6写入设置。
1.3 ADC0809功能
ADC0809是采样频率为8位的、以逐次逼近原理进行模—数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
1.4 8259功能
Intel8259A时被广泛使用的可编程中断控制器,它用来管理CPU的可屏蔽中断请求。
8259A的主要功能如下:
10
微机原理与接口技术课程设计
①一片8259A可以直接接受并管理8级可屏蔽中断请求,即可以直接管理8个中断源,级联方式下不用附加电路就可以管理64级可屏蔽中断元源,并具有优先权判决优先控制。
②能为中断源提供中断向量码。
③对每一级中断进行屏蔽控制。
④具有多种工作方式,并可通过编程来加以选择。 8259内部结构图如下:
图3 8259内部结构图
2.系统设计
2.1系统原理
该系统设计主要是围绕对Intel8255、8253、8259以及ADC0809应用展开的。首先,通过传感器采集外界信号,将湿度和温度等非电学量信号转化成电信号。只将温度传感器所检测到的模拟信线号通过ADC0809的IN0~IN7的8路模拟输入通道输入到ADC0809,然后通过D0~D7将转换后的8位数字量输出到8255的PA0~PA7,即将数字信息输入8255进行锁存。同时,8255通过B组控制电路部分通道向ADC0809的ADDC~ADDA引脚输入信号,控制8路模拟开关的3位地址选通端,以选择对应的输入通道。8255的C端口、ADC0809的OE受到EOC的作用(转化结束信号控制输出允许信号,并将此信号输入到8255中)。8255的C端口的一低位输入缓冲器需要接收度传感器的信号,C端口的高位需要作为数据输出器作为环境调节器的启动信号,并控制8253的计数器0和计数器2的门控信号。另外,A1、A0配合其他引脚进行对8255进行端口操作,即实现对寄存器选择和操作。
11
微机原理与接口技术课程设计
8253的通道0、通道1和通道2均工作在工作方式3,即方波发生器。通道0和通道2所接受的计数脉冲输入设为1MHz。通道0的脉冲输出作为通道1的输入脉冲,同时,始终保持通道1的门控信号为高电平,使其一直工作,以此达到对单一指标(温度或湿度信号)的监测目的,实现光信号提示。输入端口2主要作用是对湿度和温度同时满足条件时进行声音提示。另外,A1、A0配合其他引脚进行对8253进行端口操作,即实现对寄存器选择和操作。
系统的另外一部分是实现手动调节部分主要是由Intel8259完成,因为它是具有可编程功能的中断控制器。8259拥有8个中断申请器IR0~IR7,因此可以通过手动开关对中断控制器的中断请求锁存器进行控制。电路连接图可见附录1。
8255的端口地址范围:80H~83H 8253的端口地址范围:40H~43H 8259的端口地址范围:20H~21H
下图是我所设计系统的原理框图:
8255 ADC0809 温度传感器 湿度传感器 外界响应设备 CPU 数 据 总线 8253 发光二极管 扬声器 8259 解除警报信号 手动提示信号 图 4 系统框图
12
微机原理与接口技术课程设计
2.2芯片的初始化
2.2.1 8255初始化
8255A的三个独立端口A端口、B端口、C端口,它们彼此独立,都是8位的数据口,用来完成和外设之间的信息交换。
A端口对应一个8位的数据输入锁存器和一个8位的数据输出锁存器和缓冲器。因此,A端口适合用在双向的数据传输场合,用A端口传送数据,不管是输入还是输出,都可以锁存。B端口、C端口分别是由一个8位的数据输入缓冲器和一个8位的数据输出锁存器和缓冲器组成。一次用B端口和C端口传输数据作输出端口时,数据信息可以实现锁存功能;而用作输入端口时,则不能对数据实现锁存。A端口和B端口常用作独立的输入口和输出口,而C端口常用来配合A端口和B端口的工作使用。C分成两个4位的端口,这两个4位的端口分别作为A端口和B端口的控制信号和输入状态信号使用。
控制电路分为A组控制电路和B组控制电路。A组控制电路控制A端口和C端口的高4位(PC4~PC7)。B组控制电路控制B端口和C端口的低4(PC0~PC7)由它们内部的控制寄存器接收CPU输出的方式控制命令字,还接受来自读/写控制逻辑电路读/写命令,根据控制命令决定A组合B组的工作方式和读/写操作。 8255A的A,B,C三个端口的工作方式是在初始化编程时,通过向8255A的控制端口写入控制字来设定的。
8255A由编程写入的控制字有两个:方式控制字和C端口置位/复位控制字。方式控制字用于设置端口A, B, C的工作方式和数据传送方向;置位/复位控制字用于设置C口的PC7~PC0中某一条口线PCi(i=0~7)的电平。两个控制字公用一个端口地址,由控制字的最高位作为区分这两个控制字的标志位。 (1)8255A工作方式控制字的格式
D0:设置PC3~PC0的数据传送方向。D0=1为输入;D0=0为输出。 D1:设置B口的数据传送方向。D1=1为输入;D1=0为输出. D2:设置B口的工作方式。D2=1为方式1;D2=0为方式0。
D3:设置PC7~PC4的数据传送方向。D3=1为输入;D3=0为输出。 D4:设置A口的数据传送方向。D4=1为输入;D4=0为输出。
D6D5:设置A口的工作方式。D6D5=00为方式0,D6D5=01为方式1,D6D5=10或11为方式2。
D7:方式控制字的标志位,恒为1。
(2)C端口口置位/复位控制字的格式
8255A C口置位/复位控制字用于设置C口某一位口线PCi(i=0~7)输出为高电平(置位)或低电平(复位),对各端口的工作方式没有影响。 D3~D1:8种状态组合000~111对应表示PC0~PC7。
D0:用来设定指定口线PCi为高电平还是低电平。当D0=1时,指定口线PCi输出高电平;当D0=0时,指定口线PCi输出低电平。
13
微机原理与接口技术课程设计
D6~D4没有定义,状态可以任意,通常设置为0。D7位作为标志位,恒为0。例如,若把PC2口线输出状态设置为高电平,则置位/复位控制字为00000101B。 (3)8255A初始化编程
8255A的初始化编程比较简单,只需要将工作方式控制字写入控制端口即可。另外,C口置位/复位控制字的写入只是对C口指定位输出状态起作用,对A口和B口的工作方式没有影响,因此只有需要在初始化时指定C口某一位的输出电平时,才写入C口置位/复位控制字。
初始化思路为:
① 地址确定 ② 控制字确定 ③ 初始化程序
按照系统要求对8255进行初始化,具体程序如下:
MOV AL,91H ;设置8255工作方式,输出方式0 OUT 83H,AL
MOV AL,00H ;C端口初始化 OUT 82H,AL
2.2.2 8259初始化
8259A时可编程控制器,它通过对控制字的编程控制,来初始化来控制初始
化和控制8259A工作方式,使其完成规定的功能。CPU对8259A的控制命令分为 两类:初始化控制字(ICW),从工作命令字(OCW)。8259A共有7个控制字, 其中4个是初始化控制字,3个是操作控制字。
8259A的编程分为两部分:一是初始化程序,它是通过初始化控制字来完成对8259A初始状态的设定,在计算机加电初始化时有BIOS完成的:而是操作方式的编程,它是通过操作命令字控制8259A的工作方式,操作命令字可在8259A初始化后的任何时间写入。
按照系统要求,8259A的初始化程序为:
MOV AL,13H ;初始化8259ICW1 OUT 20H,AL
MOV AL,08H ;送中断类型码基值 OUT 21H,AL
MOV AL,0DH ;一般中断结束方式 OUT 21H,AL
2.2.3 2583的初始化
14