汇编语言 可编程并行接口(一)(8255方式0)
微机原理与汇编语言_实验7_8255并行接口实验
微机原理与汇编语言实验报告姓名x x x学号xxxxxx专业班级计科x班课程名称微机原理与汇编语言实验日期实验名称8255并行接口实验成绩一、实验目的掌握8255A的编程原理。
二、实验内容1、实验原理本实验用到两部分电路:开关量输入输出电路和8255可编程并口电路。
8255A是比较常用的一种并行接口芯片,其特点在许多教科书中均有介绍。
8255A有三个8位的输入输出端口,通常将A端口作为输入用,B端口作为输出用,C端口作为辅助控制用,本实验也是如此。
实验中,8255A工作于基本输入输出方式(方式0)。
2、实验步骤1)实验接线CS0CS8255;PA0~PA7平推开关的输出K1~K8;PB0~PB7发光二极管的输入LED1~LED8。
2)编程并全速或单步运行。
3)全速运行时拨动开关,观察发光二极管的变化。
当开关某位置于L时,对应的发光二极管点亮,置于H时熄灭。
3、实验结果程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。
例如:K2置于L位置,则对应的LED2应该点亮。
三、实验源码及框图assume cs:codecode segment publicorg 100hstart: mov dx,04a6h ;控制寄存器地址mov ax,90h ;设置为A口输入,B口输出out dx,axstart1: mov dx,04a0h ;A口地址in ax,dx ;输入mov dx,04a2h ;B口地址out dx,ax ;输出jmp start1code endsend start四、练习键盘接口实验。
请阅读实验指导手册,根据实验台键盘电路结构,设计实验,编制程序实现键盘的按键识别,并将其代码通过Led指示灯显示。
练习键盘框图:实验源码:assume cs:codecode segment publicorg 100hTimer = 10;延时常量;设置行线接输出端口,列线接输入端口start:mov dx,04a6h;控制端写控制字,设置为A口输入,B口输出mov al,90hout dx,alWait:mov al,00hmov dx,04a2hout dx,al ; 往所有行线上输出低电平movin al,dx ; 读取列值cmp al,0ffh ;是否有列线为低电平jz wait ;否,则循环等待done: call delay ;是,则延迟去抖动mov cx,8 ;行数送CXkey2:mov al,0mov dx,04a2h ;B口作为输出out dx,al ;设置行线全为低mov dx,04a0h ;A口作为输入in al,dx ;读取列值cmp al,0ffhjz key2 ;无闭合键,循环等待push ax ;有闭合键,保存列值push ax;设置行线接输入端口,列线接输出端,A口输出,B口输入mov dx,04a6hmov al,82hout dx,almov dx,04a0h ;A口输出pop axout dx,al;输出列值mov dx,04a2h ;B口输入in al,dx ;读取行值pop bx ;组合行列值mov ah,bl ;此时,al=行值,ah=列值mov si,offset table ;table保存键盘行列值mov di,offset char ;char保存键代码值mov cx,24 ;cx=键的个数key3:cmp ax,[si];与键值比较jz key4 ;相同,说明查到inc si ;不相同,继续比较inc siinc diloop key3jmp start ;全部比较完无相同则再进行扫描一遍jmp wait ;全部比较完,仍无相同,说明是重键key4:mov al,[di];获取键代码送ALpush ax;判断按键是否释放,没有则等待call delay ;按键释放,延时消除抖动;后续处理;将代码值输给小灯mov dx,04a6h;控制寄存器地址mov ax,0080h ;设置C口输出out dx,axmov dx,04a4h ;将键代码从C口输出送给小灯pop axout dx,aldelay procpush bxpush cxmov bx,timer;外循环次数由timer确定delay1: xor cx,cxdelay2: loop delay2 ;内循环dec bxjnz delay1pop cxpop bxretdelay endp;键盘的行列值表table dw 0fefeh ;键1的行列值(键值)dw 0fefdh ;键2的行列值dw 0fefbh ;键3的行列值dw 0fe07h ;键4的行列值dw 0fedfh ;键6的行列值dw 0febfh ;键7的行列值dw 0fe7fh ;键8的行列值dw 0fdfeh ;键9的行列值dw 0fdfdh ;键10的行列值dw 0fdfbh ;键11的行列值dw 0fd07h ;键12的行列值dw 0fdefh ;键13的行列值dw 0fddfh ;键14的行列值dw 0fdbfh ;键15的行列值dw 0fd7fh ;键16的行列值dw 0fbfeh ;键17的行列值dw 0fbfdh ;键18的行列值dw 0fbfbh ;键19的行列值dw 0fb07h ;键20的行列值dw 0fbefh ;键21的行列值dw 0fbdfh ;键22的行列值dw 0fbbfh ;键23的行列值dw 0fb7fh ;键24的行列值……;S25、S26其他键的行列值;键盘的键代码表char db 30h ;键1的代码值db 31h ;键2的代码值db 32h ;键2的代码值db 33h ;键3的代码值db 35h ;键5的代码值db 36h ;键6的代码值db 37h ;键7的代码值db 38h ;键8的代码值db 39h ;键9的代码值db 41h ;键A的代码值db 42h ;键B的代码值db 43h ;键C的代码值db 44h ;键D的代码值db 45h ;键E的代码值db 46h ;键F的代码值db 61h ;键a的代码值db 62h ;键b的代码值db 63h ;键c的代码值db 64h ;键d的代码值db 65h ;键e的代码值db 66h ;键f的代码值db 67h ;键g的代码值db 68h ;键h的代码值……;S25、S26其他键的代码值code endsend start实验现象:按相应的键,LED灯会显示相应的代码。
可编程并行接口芯片8255A有哪几种工作方式
可编程并行接口芯片8255A有哪几种工作方式?每种工作方式有何特点?【解答】方式0:没有固定的用于应答式传送的联络信号线,CPU可以采用无条件传送方式与8255A交换数据。
方式1:有专用的中断请求和联络信号线,因此,方式1通常用于查询传送或中断传送方式。
方式2:PA口为双向选通输入/输出或叫双向应答式输入/输出。
9.2 8255A的方式选择控制字和C口按位控制字的端口地址是否一样?8255A怎样区分这两种控制字?写出端口A作为基本输入,端口B作为基本输出的初始化程序。
【解答】8255A的方式选择控制字和C口按位控制字的端口地址是一样的,通过控制字的最高位D7进行区分:D7=1时,为方式选择控制字;D7=0时,为C口按位控制字。
初始化程序段如下:MOV DX,PORT ;PORT为端口地址MOV AL,10010000BOUT DX,AL9.3 某8255A的端口地址范围为03F8H~03FBH,A组和B组均工作在方式0,A口作为数据输出端口,C口低4位作为状态信号输入口,其它端口未用。
试画出该片8255A与系统的连接图,并编写初始化程序。
【解答】连接图如下:图9-1 8255A与系统的连接图程序如下:MOV AL,81HMOV DX,03FBHOUT DX,AL9.4 试按以下要求对8255A进行初始化编程:(1)设端口A、端口B和端口C均为基本输入/输出方式,且不允许中断。
请分别考虑输入/输出。
(2)设端口A为选通输出方式,端口B为基本输入方式,端口C剩余位为输出方式,允许端口A中断。
(3)设端口A为双向方式,端口B为选通输出方式,且不允许中断。
【解答】(1)端口A、端口B和端口C均为基本输入/输出方式,则为方式0,任何一个口都可用于输入或输出,可出现16种组合,这里只举出2种组合。
若端口A、B为数据输入口;C口的低4位为控制信号输出口,高4位为状态信号输入口,程序段如下:MOV AL,10011010BMOV DX,PORT ;PORT为端口地址OUT DX,ALMOV AL,00001100B ;设PC6为中断信号控制引脚,PC6=0,禁止中断OUT DX,AL若端口A、B为数据输出口;C口的高4位为控制信号输出口,低4位为状态信号输入口,程序段如下:MOV AL,10000000BMOV DX,PORT ;PORT为端口地址OUT DX,ALMOV AL,00001100B ;设PC6为中断信号控制引脚,PC6=0,禁止中断OUT DX,AL(2)端口A为选通输出方式,方式1;端口B为基本输入方式,程序段如下:MOV AL,10100010BMOV DX,PORT ;PORT为端口地址OUT DX,ALMOV AL,00001101B ;设PC6为中断信号控制引脚,PC6=1,允许中断OUT DX,AL(3)端口A为双向方式,方式2;端口B为选通输出方式,程序段如下:MOV AL,11000100BMOV DX,PORT ;PORT为端口地址OUT DX,ALMOV AL,00001100B ;设PC6为中断信号控制引脚,PC6=0,禁止中断OUT DX,AL9.5 采用8255A作为两台计算机并行通信的接口电路,请画出查询式输入/输出方式工作的接口电路,并写出查询式输入/输出方式的程序。
微机实验 可编程并行接口8255
微机原理实验报告实验题目:可编程并行接口8255一、实验目的1、掌握8255的基本输入输出和PC端口位控的工作方式及应用编程。
2、掌握8255的典型应用电路接法。
二、实验知识回顾8255控制字1、控制方式2、C端口置位复位控制字三、实验内容1、 8255流水灯显示,首先用逻辑电平开关预置一个数字,从A口读入,写入01H到C端口上,左移一次在进行输出,A口读入数据作为左移次数,这样循环下去,从而实现流水灯的显示。
2、用PC端口位控制法控制LED灯,依次点亮LED灯。
四、实验器材微机原理实验箱1个电脑(带TPC-USB软件)1台插线若干五、实现过程1、8255流水灯显示(1)流程图(2)程序源代码io8255a equ 2a0h ;8255A口地址io8255b equ 2a1h ;8255B口地址io8255c equ 2a2h ;8255C口地址io8255mode equ 2a3h ;控制寄存器地址stack1 segment stackdw 256 dup(?)stack1 endsdata segmentla db ? ;定义数据变量lb db ?data endscode segmentassume cs:code,ds:datastart:mov ax,data ;程序由start处开始mov ds,axmov dx,io8255mode ;定义8255的工作方式mov al,90h ;方式0A口输入C口输出out dx,al ;mov dx,io8255a ;A口的地址存入dxin al,dx ;从dx也就是A口读入数据mov la,al ;读入的数据暂存在la变量mov dx,io8255c ;C口的地址存入dxmov al,01h ;将寄存器最低位置零out dx,al ;置位后的值输入给dx,也就是C口mov lb,al ;置位后的值暂存于变量lbloop1:call delaymov al,la ;将A口数据写入CX用以计数mov ch,00hmov cl,laloop2:call delaymov al,lbrol al,1 ;在寄存器内进行位移操作mov lb,al ;将操作后的结果重新写入变量al,为后面调用做准备mov dx,io8255c ;dx代表C口的地址out dx,al ;将al中存储的值写入dx,即C口mov ah,1 ;选择dos的模式为从键盘读取数据int 16h ;进入中断jnz quit ;ZF为0则跳到quitdec cx ;计数器减一jnz loop2 ;若cx!=0,跳到loop2quit:mov ax,4c00h ;结束程序并退出int 21hdelay proc near ;延时子程序push cxpush axmov cx,01fhd1: mov ax,0ffffhd2: dec axjnz d2loop d1pop axpop cxretdelay endpcode endsend start2、位控设置C口输出点亮LED(1)流程图(2)程序源代码io8255a equ 2a0h ;8255A口地址io8255b equ 2a1h ;8255B口地址io8255c equ 2a2h ;8255C口地址io8255mode equ 2a3h ;控制寄存器地址stack1 segment stackdw 256 dup(?)stack1 endsdata segmentla db ? ;定义数据变量lb db ?data endscode segmentassume cs:code,ds:datastart:mov ax,data ;程序由start处开始mov ds,axmov dx,io8255mode ;定义8255的工作方式mov al,00001111b ;位控设置C口最高位为1out dx,almov cx,7 ;剩余未点亮灯数为7 loop1:call delaydec aldec alout dx,aldec cxjnz loop1delay proc near ;延时子程序push cxpush axmov cx,01fhd1: mov ax,0ffffhd2: dec axjnz d2loop d1pop axpop cxretdelay endpcode endsend start(3)实验结果图六、小结通过本次试验,我进一步了解了8255的可编程性,以及如何正确的通过程序控制8255,也更加熟悉了8255 C 端口的位控输出。
可编程并行IO接口8255案例
第 6 章可编程并行I/O接口8255A案例6.1:8255读取并显示开关状态1)要求:正确设定8255A并行端口的工作方式,设计电路并编制程序,实现将PB口的开关状态通过PA口的发光二极管显示出来。
2)目的:通过了解8255A芯片引脚的内部结构,掌握输入输出的实验方法,正确应用8255A的各个端口。
案例6.1实现——8255读取并显示开关状态1.实现过程设定8255A的PA口和PB口为方式0,并指定PB口所连接的开关为输入,PA口所连接的发光二极管为输出,通过编写程序,由8086CPU将PB口的开关状态读入并通过PA口输出,以显示开关的状态。
2.电路原理图的设计利用Proteus对本案例仿真连接如图 6.1所示。
该仿真电路以错误!未找到引用源。
作为基本的原理图。
采用74LS373作为地址锁存器保存端口地址,对于8255A的片选信号CS直接接地使其处于有效状态。
在程序中设定PB 为输入端口,PA为输出端口。
电路将8个开关的状态通过8255A的PB口送入CPU,经过处理后,将数据从8255A的PA送出到发光二极管进行显示。
例如,若开关k0处于闭合状态,则发光二极管D1应处于发光状态。
图 6.1 8255A读取开关状态并显示仿真效果图3.案例汇编程序设计该案例中所使用的程序代码如下所示。
CODE SEGMENT 'code'ASSUME CS:CODESTART: ;假设A口、B口、C口及控制端口地址分别为:20H, 22H, 24H, 26H MOV AL,82H ;控制字,1 0000 010,A口输出(初始输出全为0),B口输入OUT 26H,AL ;送控制端口N: IN AL,22H ;从B口读入OUT 20H,AL ;从A口输出JMP NCODE ENDS案例6.2:8255A实现键盘接口1)要求:正确设定8255A并行端口的工作方式,设计电路并编制程序,利用PC口的高4位和低4位实现键盘的扫描,并利用数码管显示对应键值。
汇编语言与接口技术课件 h7-1 8255
关于C口“联络”信号的定义。
8255A的控制命令字有两个: 一个是工作方式选择控制字,用于8255A 的初始化; 另一个是C口置位/复位控制字,用于C口 的位操作。 两个控制字使用同一端口地址,由最高位 予以区分。
2.工作方式控制字(写A1A0=11,D7=1)
D7 D6 D5 D4 D3 D2 D1 D0
;100个打印字符 ;存入BUF缓冲区地址 ;存入打印字符个数
;初始化8255A ;INTEA置1 (允许中断方式)
OUT 8CH,AL
PUSH DS ;设置中断向量表 MOV AH,25H ;设置DOS调用功能号 MOV AL,0BH ;设置类型码 LEA DX,PRINTER ;设置中断服务程序偏移地址 MOV BX,SEG PRINTER ;设置中断服务程序段地址 MOV DS,BX INT 21H ;DOS功能调用,设置中断向量 POP DS STI ;开中断 MOV CX,0FFFFH ;有限延时 LP1: MOV DI,0FFFFH LP2: DEC DI JNZ LP2 LOOP LP1 · EXIT
图7.12 8255A与打印机查询接口电路
工作原理: STB低电平有效时,数据线D7~D0 上的数据被 锁入μ80打印机内待打印; 同时,打印机输出低电平ACK信号通知8255A, 数据已取走; 而且打印机在打印某数据时,会发出BUSY(忙) 信号,表示微处理器不能向8255A输出数据。 一般利用查询BUSY信号完成微处理器与μ80 打印机的数据交换。
第七章 可编程接口芯片
本章要求:
1、了解8255A的内部结构和外特性, 掌握硬件连接、初始化及应用编程方法。
2、了解8254A的内部结构和外特性, 掌握硬件连接、初始化及应用编程方法。
8255的编程方法
8255的编程方法
8255是一种可编程的并行I/O接口芯片,通常用于微机系统中的输入输出
接口扩展。
以下是8255的编程方法:
1. 初始化8255
在编程8255之前,需要先对其初始化,即设置其控制字。
控制字是通过对其三个控制端口的写操作来设置的。
通常将这三个控制端口写为0,然后分别写入三个控制字:
控制字1:设置8255的工作方式,包括输入输出方式、数据传输方向等。
控制字2:设置8255的输入输出地址,包括输入输出端口的地址。
控制字3:设置8255的中断控制方式。
2. 读/写8255端口数据
一旦初始化8255之后,就可以对其进行读/写操作了。
读/写操作是通过对
其三个数据端口进行读/写操作来实现的。
通常将这三个数据端口读/写为0,然后分别读/写三个数据端口的数据:
数据端口A:读/写8255的输入输出端口A的数据。
数据端口B:读/写8255的输入输出端口B的数据。
数据端口C:读/写8255的控制端口的输入输出数据。
3. 中断处理
如果设置了8255的中断控制方式,那么当8255发生中断时,微机系统会
向其发出中断请求信号,此时需要进行中断处理。
中断处理通常包括以下步骤:
识别中断源:根据中断请求信号判断是哪个端口发生了中断。
关闭中断:通过向相应的控制端口写入一个特定的值来关闭中断。
处理中断:根据中断源执行相应的处理程序,包括读取数据、修改数据等。
结束中断:完成处理程序后,再次向相应的控制端口写入一个特定的值来
结束中断。
可编程并行接口8255
7.1.3 8255A的工作方式 1. 方式0——基本输入输出方式在这种工作方 式下,可以通过CPU向控制端口写入方式 控制字,决定各端口是输入数据还是输出 数据。传送数据的方法一般采用无条件传 送方式或查询传送方式。 [例7.3]设8255A端口A工作在方式0下,通过A 口输出数据控制8个指示灯轮流点亮。电 路连接如图7.6所示。 例7.3电路连接图(地址为3A0H~3A6H) MOV DX,3A6H;控制口地址送DX MOV AL,80H;写工作方式控制字
图7.7
(地址为3A0H~3A6H) MOV DX,3A6H;控制口地址送DX MOV AL,90H;写工作方式控制字 OUT DX,AL MOV DX,3A0H;A端口地址送DX IN AL,DX;采集开关值 MOV DX,3A2H;B端口地址送DX OUT DX,AL; 输出开关值当采用查询方式传送数据时,利用 端口C的高4位和低4位能分别作为输入或输出的特 点,配合端口A和端口B进行输入数据和输出数据的 操作,即A口和B口传送数据,图7.7电路连接图
(地址为04A0H~04A6H) MOV DX,04A6H;控制口地址送DX MOV AL,8EH;写工作方式控制字 OUT DX,AL;控制字送到控制口[例8.7]要求通过 8255A芯片C口的PC2位产生一个方脉冲信号。 (地址为04A0H~04A6H)MOVDX,04A6H;控制口 地址送DX AA∶ MOV AL,05H;对PC2置位的控制字 OUT DX,AL CALL DELAY;调用延时程序 MOV AL,04H;对PC2复位的控制字 OUT DX,AL JMP AA
MOV DX,3A6H;控制口地址送DX MOV AL,98H;写工作方式控制字 OUT DX,AL AA0∶ MOV AL,01H;启动读入机 OUT DX,AL MOV DX,3A4H;C口地址送DX AA1∶ IN AL,DX;采集端口C高4位数据 TEST AL,10H;检测读入机数据是否准备好 JZ AA1 MOVDX,3A0H;A口地址送DX IN AL,DX;采集数据 MOV AH,AL;保存数据 MOV DX,3A6H MOV AL,00H;关闭读入机
04-教学课件__可编程并行接口8255
可编程并行接口82551. 并行接口8255的特点:⏹通道型接口⏹主要用于数据的输入或输出⏹含3个独立的8位并行输入/输出端口⏹2个为8位端口(PA,PB);⏹1个可拆分为两个4位端口(PC口)⏹各端口均具有数据的控制和锁存能力⏹既可作为输入端口,也可以作输出端口。
⏹可通过编程,设置各端口工作在某一确定状WRD0D1D2D3D4D5D6D7V CCPB7 RDCSGNDA1A0PA4PA5PA6PA7PB5PB6PB4PB3RESETPB1PB2PB0PC3PC2PC1PC0PC4PC5PC6PC7PA2PA1PA05101535302521PA32. 结构RD 数据总线缓冲器WR A 0A 1RESETCS读/写控制逻辑B 组控制DB8位内部数据总线A 组控制A 组端口C 高4位B 组端口C 低4位B 组端口B (8)PA 7PA 0~ PC 7 PC 4~ PC 3PC 0~PB 7PB 0~A 组端口A (8)A 组控制A 端口,C 口高4位B 组控制:B 端口,C 口低4位针对A 、B 组的控制字存放在控制寄存器3.引线连接系统端的主要引线:⏹D0----D7⏹#CS⏹#RD⏹#WR⏹A0,A1⏹REAST A1 A00 0 A端口0 1 B端口1 0 C端口1 1 控制寄存器引线连接外设端的引脚:⏹PA0 —— PA7 ⏹PB0 —— PB7 ⏹PC0 ——PC7分别对应A、B、C三个端口8255与系统的连接示意图D0~D7WR RD A1 A0CSDBIOW IOR A1 A0译码器8255A 口B 口C 口D0~D7 外 设4.工作方式基本输入/输出方式(方式0)选通工作方式(方式1)双向传送方式(方式2)方式0:⏹相当于三个独立的8位简单接口⏹各端口既可设置为输入口,也可设置为输出口,但不能同时实现输入及输出⏹C端口可以是一个8位的简单接口,也可以分为两个独立的4位端口⏹常用于连接简单外设,适于无条件或查询方式方式0的应用:⏹习惯上:⏹A端口和B端口作为8位数据的输入或输出口⏹C口的某些位作为状态输入⏹注:⏹若使C端口低4位中某一位作为输入口,则低4位中其他位都应作为输入口。
可编程并行接口8255
方式 2: C口的某5根引脚作为端口与外设的联络信号。
2019/1/19 26
1. 方式0(基本输入输出方式) A口工作在方式 0 时,A口和C口之间没有硬件 联系 B口工作在方式 0 时,B口和C口之间没有硬件 联系
2019/1/19
27
工作在方式 0 的端口,为单向传送端口, 由方式控制字决定是输入还是输出。
D7
1
D6
D5
D4
D3
D2
D1
D0
0 输出 1 输入 PC3~PC0 0 输出 1 输入
B口 B口工作方式 PC7~PC4 0 方式0 0 输出 A口 0 输出 1 方式1 1 输入 1 输入 A口工作方式 00 方式0 特征位,D7=1表示是方式控制字 01 方式1 1x 方式2
2019/1/19
2019/1/19
23
9.1.3
8255的工作方式
1. 三种工作方式 2. 方式0(Model 0)——基本输入输出 3. 方式1(Model 1)——选通输入输出 4. 方式2(Model 2)——双向数据传送
2019/1/19
24
1. 三种工作方式
在8255内部硬件结构中:
A口和B口之间没有硬件关系,
二. 8255的连接与寻址:
8255的A0、A1可寻址4个端口,分别访问4个端 口寄存器。
2019/1/19
10
并行接口连接示意图
D7~D0 D7~D0 PA
A15~A2
译码
/CS
A1 A0 /RD /WR RESET
位 总 线
PB PC
2019/1/19
8 ISA
A1 A0 /IOR /IOW
汇编语言8255并行接口实验
汇编语言8255并行接口实验的C 口作为输出口,控制4个双色LED灯(可发红,绿,黄光),模拟字路口交通灯管理。
2、编写程序,以8255的C 口作为输出口,用开关控制控制一排发光二极管的亮灭。
实验内容1及实验原理双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。
红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。
使用8255的端口C控制双色灯。
8255的CS由CPLD输出,决定了8255的起始地址为4011。
8255的AO, A1地址线分别接了32位总线A2, A3,决定了A、B、C和状态口地址分别为40H、44H、48H和4CH。
假设一个字路口为东西南北走向。
初始状态0为东西红灯,南北红灯。
然后转状态1南北绿灯通车,东西红灯。
过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。
再转状态3, 东西绿灯通车,南北红灯。
过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。
最后循环至状态1。
注意:LED灯亮灭的间隔时间是由延时程序来控制的,如果计算机的速度过快,LED灯亮灭的间隔时间就比较短,实验现象就不明显。
可通过调整延时程序使实验现象更明显。
实验步骤1・接线:用8位数据线将8255模块的JD3D连接到32位LED显示模块的JD4B。
2.把D盘“程序”文件夹中Traffic, asm文件复制到BIN路径下。
3.重起计算机进入MAXDOS,然后进入纯DOS环境。
使用cd 命令到BIN路径下,输入下面命令后回车。
4.编译:tasin /zi Traffic. ASM5.连接:tlink /v/3 Traffic. 0BJ6.运行: Traffic. EXE运行结果如下图所示:按PC键盘(任意键),启动交通灯,再按PC键盘任意键,则程序退出。
7.把BIN文件夹下的“Traffic、ASM”源程序及生成的“、map”、“、obj”、“、exe”文件删除掉。
实验1可编程并行接口
实验一可编程并行接口实验目的1、掌握8255方式0的工作原理及使用方法实验内容1、实验电路如下图,8255C 口接逻辑电平开关 K0 — K7, A 口接LED 显示电路L0 —L7。
2、编程从8255C 口输入数据,再从 A 口输出。
、 编程提示 1、 8255控制寄存器端口地址28BH A 口的地址 288H C 口的地址28AH2、 参考流程图(如流程图)PC0r.w4 K1 K24PCIPM310rcaPC3PC 斗 ^C5ZK3* -17FA3i« -•—•■---< --------------- 13TMIS 1239KB11P 阳38KT■- -_ - ■#------------ 1037■<PCT26BH-•・€cs --0255四、程序清单CSEG SEGMENTASSUME CS:CSEGSTART: MOV DX,28BHMOV AX,10001001BOUT DX,AXNEXT:MOV DX,28AHIN AL,DX\ MOV DX,288H\ OUT DX,AL;CMP AL,00H;JNZ NEXTjmp NEXTCSEG ENDSEND START五、实验步骤1. 把A 口,C 口的电路与PA, PC,连接好,在运行程序六、实验结果改变逻辑电平开关K0 —K7的值,LED显示对应的结果,从而实现数据从 C 口输入, 从A 口输出。
七、实验分析与总结1. 微机计算机接口电路普遍采用大规模集成电路芯片,知道了使用灵活,通用性强是8255的最大的特性。
2. 知道如何在DOS下运行程序,认识了8255的工作方式。
实验二串行通讯■ 实验目的1、 了解界串行通讯的基本原理2、 掌握串行接口芯片 8251的工作原理和编程方法 ‘ 实验内容/'\1、按图接好电路,(8251插通用插座),其中8253计数器用于产生8251的发送和接收 时钟,TXT 和RXD 连在一起。
第9讲可编程并行接口8255A(1)
C口高位输入输出选择: 0=输出
1=输入
D7=1
A口输入输出选择:
0=输出 01=方式1,
选通输入输出
1=输入 1X=方式2
双向选通输入输出 13/30
A口工作方式选择:00=方式0, A口工作状态为:基本输入输出
3种工作方式说明
D7 D6 D5 D4 D3 D2 D1 D0
8255的24条I/O线全部用作传送数据 不设专用应答线常用于无条件传送 输出有锁存,输入无锁存有缓冲
A、B口传送数据,C口部分引脚指定为 固定的专用应答线 用于查询(条件)传送或中断传送 数据输入输出都有锁存功能 A为双向输入输出口, C的5条线为专用应答线
D7=1
A口工作方式选择:00=方式0, A口工作状态为:基本输入输出 01=方式1,
方式0查询法工作
当采用查询方式传送数据时,利用端口C的高4位和低4 位能分别作为输入或输出的特点,配合端口A和端 口B进行输入数据和输出数据的操作, 即A口和B口传送数据,C口的高4位和低4位分别用来传 送控制外设的控制信息和采集外设的状态信息。
CPU向控制端口写入方式控制字,决定各端口是输入数据
还是输出数据。传送数据的方法一般采用无条件传送方式 或查询传送方式。 方式1——选通输入输出方式。 方式2——双向选通输入输出方式。仅A口可以使用这种方式。 本节主要介绍方式0的应用。
17/30
方式0无条件输出举例(1)
【例】 设8255A端口A工作在方式0下,通过A口输出数 据控制8个指示灯轮流点亮。电路连接如下图所示。 (地址为04A0H~04A6H)
JNZ LLL
LED动态显示程序清单(3)
MOV AX , WORD PTR [DI]
8.3 可编程并行接口8255
关于控制字的几点说明:
设置方式控制字时,A口、B口作为整体设置,而C口要分 成上、下两部分分别设置。三个端口的工作方式由一个 控制字规定。
C口按位置位/复位控制字不是送到C口地址,而是送到控 制寄存器地址;且一个控制字只能使C口一位置位或复位。
方式控制字和按位置位/复位控制字均写入同一个控制寄 存器地址,二者通过最高位D7来区别。D7=1为方式控制 字,D7=0为按位置位/复位控制字。
② 方式1选通输出 当端口A或端口B为方式1输出时,各 指定PC的3条线作为8255A与外设及CPU之 间应答信号。下图为方式1选通输出操作的
内部结构图。
方式1输出控制字格式
方式1输出端口A
PA7~0
方式1输出端口B
PB7~0
PC7 INTEA PC6 PC3 PC4,5 WR
OBFA ACK A
输出 输出 输出 输出 输出 输出 输出 输出 输入 输入 输入 输入 输入 输入 输入 输入
输出 输出 输入 输入 输出 输出 输入 输入 输出 输出 输入 输入 输出 输出 输入 输入
(2) 工作方式1——选通式输入/输出方式
① 方式1选通输入
方式1输入操作使端口A或端口B作为锁存
输入设备工作。端口C也可按方式1操作使用—
中断服务程序,主程序中完成设置中断向量、
开中断和8255初始化。中断服务程序中完成数
据的输出。在主程序中,完成设置工作后,还
要先输出一个字符,以引起中断过程。
主程序:
MAIN:PUSH DS ;设置中断向量 LEA DX,PRINT MOV AX,SEG PRINT MOV DS,AX MOV AL,0AH MOV AH,25H INT 21H POP DS
第九章 8255汇编语言
4. 读/写和控制逻辑 它与CPU的地址总线中的A1、A0以及有关的 控制信号(RD#,WR#,RESET,IO/M#)相连, 由它控制把CPU的控制命令或输出数据送至相应 的端口,也由它控制把外设的状态信息或输入数 据通过相应的端口,送至CPU。 5. 一些控制命令 (1) CS#(Chip Select)——选片信号,低电平有效, 由它启动CPU与8255A芯片之间的通信 (Communication)。 (2) RD#——读信号,低电平有效。它控制8255A 送出数据或状态信息至CPU。
4
通常并行接口芯片应该具有以下功能: (1) 两个或两个以上的具有锁存器或缓冲器 的数据端口; (2) 每个数据端口都有与CPU用应答方式交 换信号所必需的控制和状态信息,也有与 外设交换信息所必需的控制和状态信息;
5
(3) 通常每个数据端口还具有能用中断方式 与CPU交换信息所必需的电路; (4) 选片和控制电路; (5) 通常这类接口芯片可用程序选择数据端 口,选择端口的传送方向(输入或输出或双 向),选择与CPU交换信息的方法(查询或中 断)等,故片中要有能实现这些选择的控制 字寄存器,它可由CPU用输出指令来写入。 所以,接口芯片在工作前必须要由CPU 用输出指令对它编程——初始化,以规定 它的工作方式。
29
方式2
这种工作方式,使外设可以在单一的 8位总线上,既能发送数据也能接收数据 (双向总线I/O)。工作时可用程序查询方 式,也可工作在中断方式。
30
8255A的端口工作在方式2时,具有以下主要 功能: (1) 方式2只用于端口A; (2) 一个8位的双向总线端口(A)和一个5位控制端 口(端口C); (3) 输入和输出是锁存的; (4) 5位控制端口是用作端口A的控制和状态信息, 如图9.11所示。 各个信号的意义为: INTR——中断请求信号,高电平有效。在输 入和输出方式时,用来作为向CPU发出的中断请 求信号。
8255方式0举例
;设8255为C口输入,A口输
;从C口输入一数据 ;从A口输出刚才从C口输入
;判断是否有键按下? ;若无键按下,则返回到inout ;否则,返回DOS
设计任务:8255端口C接逻辑电平开关 K0-K7,A口接LED显示电路L0-L7,设计 硬件、软件使8255从C口读入K0-K7的 值,并从A口输出以点亮相应的发光二 极管
:实验8255A可编程并行接口方式0
硬件电路如下(上硬件电路中需要用户连接的线,其他线试验箱已经连好)
图5.23(a) 8255A方式0用于实验
8255端口C接逻辑电平开关K0-K7,A口接LED显示电路L0-L7
图5.23(b)开关和LED的连接
8255A的端口地址为288H-28BH,地址译码器如下图所示:
图5.24 实验用的地址译码器
参考程序(E8255.ASM)如下: code segment assume cs:code start: mov dx, 28bH 出 mov al, 8bH out dx, al inout: mov dx, 28aH in al, dx mov dx, 288H 的数据 out dx, al mov ah, 1 int 16H jz inout mov ah, 4cH int 21H code ends end start
8255可编程并行接口知识点总结
可编程并行接口8255知识点总结8255A 是INTEL系列的并行接口芯片,由于它是一种可编程的外部接口部件,通常作为微机系统总线与外部设备的接口控制部件,可通过软件来设置芯片的工作方式,用8255A 连接外部设备时,通常不需要附加外部电路,给使用带来很大的方便。
1、内部结构2、引脚说明8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。
同时必须具有与外设连接的接口A、B、C口。
由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。
(1)与CPU连接部分根据定义,8255能并行传送8位数据,所以其数据线为8根D0~D7。
由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0、A1。
此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。
各信号的引脚编号如下:总线分类:(2)与外设接口部分8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。
①数据端口A、B、C端口A(PA0-PA7):对应了1个8位的数据输入锁存器和1个数据输出锁存/缓冲器。
所以A 作为输入或输出时,数据均受到锁存。
端口B(PB0-PB7):对应了1个8位的数据输入缓冲器和1个数据输出锁存器/缓冲器。
所以B 输入锁存,输出不受到锁存。
端口C(PC0-PB7):对应1个8位数据缓冲器和1个数据输出锁存/缓冲器,所以C输入不锁村,输出锁存。
当8255工作于应答I/O方式时,C口用于应答信号的通信。
A、B组的逻辑控制功能A组:组成:端口A(PA0-PA7)和端口C的高4位(PC4-PC7)这几个端口由A组统一进行逻辑控制。
B组:组成:端口B(PB0-PB7)和端口C的低4位(PC0-PC3)(3)A、B组分配:A组由端口A作为与外设交换数据的输入/输出接口,C口的高4位作为外设连接的控制信号线和状态信号线,以配合A口工作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息学院
实验报告
学号:114100136 姓名:熊忠飞班级:11B
课程名称:微机原理、汇编与接口技术实验名称:可编程并行接口(一)(8255方式0)实验性质:验证性实验
实验时间: 2013 年 5 月 24 日实验地点:睿智4号楼
一、实验目的
掌握8255方式0的工作原理及使用方法。
二、实验内容及要求
1.实验电路图和流程图如图,8255C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。
2. 编程从8255C口输入数据,再从A口输出.
三、实验步骤及结果
1、代码如下:
stack segment stack 'stack'
dw 32 dup(0)
stack ends
data segment
baseport equ 0ec00h-0280h
portctr equ baseport+28bH
portA equ baseport+288H
portC equ baseport+28aH
data ends
code segment
assume cs:code,ds:data,ss:code
start: mov dx,portctr
mov al, 10001001B
out dx,al
again: mov dx, portC
in al, dx
mov dx, portA
out dx,al
jmp again
code ends
end start
四、实验小结
通过本次实验,了解了8255芯片的基本内部结构和它的管脚,掌握了8255方式0的工作原理及使用方法,及对各种控制方式字的选择。
五、教师评价
年月日
注:每学期至少有一次设计性实验。
每学期结束请任课老师按时按量统一交到教学秘书处。