微机原理实验 可编程并行接口 8255 实验
实验二 8255A并行接口实验
实验二 8255A并行接口实验(一)一实验目的1、掌握通过8255A并行口传输数据控制LED发光二极管的亮灭;进一步熟悉软件编程环境。
二实验设备1、微机系统一套;2、TPC-3型微机接口实验系统一台;3、导线若干。
三实验内容1、基础部分:用8255A的A端口控制8个LED发光二极管的亮和灭(端口输出为1则亮,输出为0则灭)。
其中L0―L2为东西方向,L5―L7为南北方向、L3-L4不用,PA口与相应的发光二极管驱动信号输入端相连,输入端为1时发光二极管亮。
接线如图4-5所示。
图4-5编制程序,通过8255A控制发光二极管,以模拟交通灯的管理。
2.提高部分:利用开关K0,K1的控制,以模拟几种交通灯的管理,具体要求为:K0K1灯控制00正常运行01南北路口绿灯亮、东西路口红灯亮10东西路口绿灯亮、南北路口红灯亮3.如果模拟车流量大小来来决定红绿灯交通时间,请问你有什么解决办法。
如果能解决请加以解释并编程调试。
四、编程提示:1.要完成本实验,首先必须了解交通灯的亮灭规律。
设有一个十字路口,南北、东西方向初始态为四个路口的红灯全亮。
之后,南北路口的绿灯亮,东西路口的红灯亮,南北路口方向通车。
延迟一段时间后,南北路口的绿灯熄灭,而南北路口的黄灯开始闪烁。
闪烁8次后,南北路口的红灯亮,同时东西路口的绿灯亮,东西路口方向开始通车。
延迟一段时间后,东西路口的绿灯熄灭,而黄灯开始闪烁。
闪烁苦干次后,再切换到南北路口方向。
之后,重复上述过程。
2.程序中应设定好8255A的工作模式,使三个端口均工作于方式0,并处于输出态3.8255A的A端口地址为:288HB端口地址为:289HC端口地址为:28AH控制口地址为:28BH五、实验要求:1.做好实验预习和准备工作,并写出预习报告(要求写出实验的流程图及程序),熟练掌握8255A编程原理及编程方法。
2.实验操作的最低要求是要做出实验内容的基础部分,然后根据实际操作能力争取做出实验内容的提高部分及回答实验内容的第三部分问题。
微机原理与汇编语言_实验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灯会显示相应的代码。
微机实验_8255并行输入输出
实验六8255并行输入输出一、实验目的1)掌握8255方式0的工作原理及使用方法,利用直接输入输出进行控制显示。
2)掌握8段数码管的动态刷新显示控制。
3)分析掌握8255工作方式1时的使用及编程,进一步掌握中断处理程序的编写。
二、实验内容(1)8255方式0:简单的输入输出按图连接好电路,8255C口输入接逻辑电平开关K0~K7,编程A口输出接LED 显示电路L0~L7;用指令从C口输入数据,再从A口输出。
程序为:ioport equ 0b800h-0280hio8255a equ ioport+288hio8255b equ ioport+28bhio8255c equ ioport+28ahstacks segment stackdb 100 dup(?)stacks endscode segmentassume cs:code,ss:stacks main proc farstart: mov ax,stacksmov ss,axmov dx,io8255bmov al,8bh out dx,al inout: mov dx,io8255c in al,dxmov dx,io8255a out dx,almov dl,0ffhmov ah,06hint 21hjz inoutmov ah,4chint 21hmain endpcode endsend start运行结果为:用逻辑电平开关可以控制LED灯的亮灭。
(2)电路图如(1)图,编程将A口L0~L7控制成流水灯,流水间隔由软件产生,流水方向由K0键产生,流水间隔时间也可由K4~K7键编码控制。
程序为:data segmentioport equ 0b800h-0280h io8255a equ ioport+288h io8255b equ ioport+28bh io8255c equ ioport+28ah data endsstacks segment stackdb 100 dup (?)stacks endscode segmentassumecs:code,ds:data,ss:stacks start: mov ax,stacksmov ss,axmov dx,io8255bmov al,8bhout dx,alinout: mov cl,01hmov dx,io8255cin al,dxtest al,01jne rightjmp leftright: mov dx,io8255cin al,dxand al,11110000b cmp al,00h je rightmov al,clcall delay1 rol cl,1 mov dx,io8255c in al,dx test al,01 jne right jmp left left: mov dx,io8255c in al,dx and al,11110000b cmp al,00h je left mov al,cl call delay1 ror cl,1 mov dx,io8255c in al,dx test al,01 jne right jmp left delay1 proc near mov dx,io8255aout dx,alcall delaymov al,0out dx,alcall delayretdelay1 endpdelay proc near push cxpush bxmov bx,0fffhcc: mov cx,0ffffhccc: loop cccdec bxjnz ccpop bxpop cxretdelay endpcode endsend start运行结果为:K0控制流水方向,K4~K7为0000时停止,0001时为1秒。
微机实验 可编程并行接口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 端口的位控输出。
实验五 8255并行接口实验
实验五 8255并行接口实验实验目的:1、学习并掌握8255的各种工作方式及其应用。
2、学习在系统接口实验单元上构造实验电路。
相关理论知识:一、8255可编程并行接口芯片介绍8255是Intel 公司生产的通用并行IO 接口芯片,它具有ABC 三个并行接口,能在以下三种方式下工作:方式0:基本输入/输出方式 方式1:选通输入/输出方式 方式2:双向选通工作方式8255工作方式控制字及C 口置位/复位控制字如下图所示:ABC 三60H~63H 。
8765432121222319208.50 8255A 工作方式控制字格式A 组控制B 口方式选择输出01010101X输入输出输入方式0方式1方式2B 组控制C 口(低4位)B 口方式选择输出010100输入输出输入方式0方式1C 口(高4位)D 7D 6D 5D 4D 3D 2D 1D 0A 组控制B 口方式选择输出010100101X 输入输出输入方式0方式1方式2B 组控制C 口(低4位)B 口方式选择输出010100输入输出输入方式0方式1C 口(高4位)实验内容及实验步骤:一、8255接口应用实验(1)按图所示实验线路编写程序,使8255端口A工作在方式0并作为输出口,端口B工作在方式0并作为输入口。
用一组开关信号接入端口B,端口A输出线接至一组发光二极管上,然后通过对8255芯片编程来实现输入/输出功能。
STACK SEGMENT STACKDW 64 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACKSTART: MOV AL, 82HOUT 63H ,ALA1:IN AL,61HOUT 60H,ALJMP A1CODE ENDSEND START实验步骤:(1)按图接线,接通电源。
(2)输入程序并检查无误,经汇编、连接后装入系统。
(3)运行程序,拨动开关组,观察发光二极管与开关组状态的对应关系。
微机原理实验 可编程并行接口 8255 实验
2、8255A的工作方式:
方式0—基本输入输出方式;方式1—选通输入输出方式;方式2—双向选通输入输出方式
3、8255A的状态字:
图1可编程并行接口8255电路
五、实验电路及连线
1、流水灯实验:
(1)实验连线
该模块的WR、RD分别连到MCU主模块的WR、RD。
该模块的数据(AD0~AD7)、地址线(A0~A7)分别连到MCU主模块的数据(AD0~AD7)、地址线(A0~A7)。
8255模块选通线CS连到MCU主模块的地址A15。
8255的PA0~PA7连到发光二极管的L0~L7。
(2)三个端口A,B和C:A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。C端口包含一个8位数据输出锁存器及缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。
(3)A组和B组控制电路:这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。方式控制字的高5位决定A组工作方式,低3位决定B组的工作方式。对C口按位复位命令字可对C口的每一位实现置位或复位。A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部
(2) I/O输入输出实验:利用8255的A口读取开关状态,8255的B口把状态送发光二极管显示
四、实验原理
1、8255A的内部结构:
(1)数据总线缓冲器:这是一个双向三态的8位数据缓冲器,它是8255A与微机系统数据总线的接口。输入输的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。
微机原理实验报告(8255并口实验)
深圳大学实验报告课程名称:微型计算机技术实验项目名称:8255并行接口实验学院:信息工程学院专业:电子信息工程指导教师:报告人:学号:班级:实验时间:实验报告提交时间:教务处制一,实验目的1,学习并掌握8255 的工作方式及其应用。
2,掌握8255 典型应用电路的接法。
3,掌握程序固化及脱机运行程序的方法。
二,实验设备PC机器一台,TD-PITE实验装置一套,导线若干,另外PC与TD-PITE实验装置连接线。
三,实验内容1,基本输入输出实验。
编写程序,使8255 的A 口为输入,B 口为输出,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就发生相应改变。
2,流水灯显示实验。
编写程序,使8255 的A 口和B 口均为输出,数据灯D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~D8 与D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。
四实验内容及步骤1. 基本输入输出实验本实验使8255 端口A 工作在方式0 并作为输入口,端口 B 工作在方式0并作为输出口。
实验接线图如图6 所示,按图连接实验线路图。
用一组开关信号接入端口A,端口 B 输出线接至一组数据灯上,然后通过对8255 芯片编程来实现输入输出功能。
2. 流水灯显示实验:使8255 的A 口和B 口均为输出,数据灯D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~D8 与D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。
实验接线图如下图所示。
8255并行IO口 实验报告
大理大学
实验报告
课程名称:微机原理与接口技术
学院:工程学院
专业:
年级:班级:
姓名:羽卒兰cl 学号:
指导教师:
2016 年 6 月2 日
大理大学教务处制
图 3-2
源代码:
L8255_CMD EQU 2A3H ;8255A的控制器的地址
L8255_PA EQU 2A0H ;8255A的A端口的地址
L8255_PB EQU 2A1H ;8255A的B端口的地址
CODE SEGMENT ;定义代码段
ASSUME CS:CODE,DS:CODE
START:MOV DX,L8255_CMD ;8255A初始化
MOV AL,90H ;8255A方式0,A端口输入,B端口输出,根据条件在8255A的控制字找出对
3.8255A的基本性能:
可编程通用并行输入/输出接口电路
通用性强,使用灵活,通过它CPU可直接与外设相连
具有三个相互独立的输入/输出端口
A端口、B端口、C端口
三个端口可联合使用,构成具有握手联络信号的并行接口
端口有多种工作方式可供选择
A口有三种工作方式:方式0、1、2
B口有二种工作方式:方式0、方式1
C口有一种工作方式:方式0
A口和B口工作方式是由写入控制寄存器的工作方式控制字决定的;
A口和B口的工作方式的设置是相互独立的。
8255可编程并行接口(基本输入输出、动静态七段数码管、竞赛抢答器)微机原理实验报告
微机实验报告书学号: XXXXX 姓名: XXXXX 班级: XXXXX同组名单: XXXXXXXXX 实验日期: 5实验题目: 8255可编程并行接口实验目标: 1、掌握8255方式0的工作原理及使用方法。
2、进一步掌握中断处理程序的编写。
3、掌握数码管显示数字的基本原理。
4、了解微机化竞赛抢答器的基本原理。
实验步骤:实验一、 8255A的基本输入输出图1. 8255A的基本输入输出接线图实验步骤如下:(1)实验电路如图1,8255A的C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。
(2)编程从8255A的C口输入数据,再从A口输出。
实验二、七段数码管图2. 七段数码管接线图实验步骤如下:(1)静态显示:按图2(a)连接好电路,将8255A的A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1接+5V(选中),S0、dP接地(关闭)。
编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。
(2)动态显示:按图2(b)连接好电路,七段数码管段码连接不变,位码驱动输入端S1接+5V(选中),S0接8255A的C口的PC1。
编程在两个数码管上显示“56”。
实验三、竞赛抢答器图3. 竞赛抢答器电路图实验步骤如下:图3位竞赛抢答器(模拟)的原理图,逻辑开关K0~K7代表竞赛抢答按钮0~7号,当某个逻辑电平开关置“1”时,相当于某组抢答按钮按下。
在七段数码管上将其组号(0~7)显示出来。
程序框图:实验一:实验二:实验三:程序清单:;*************************;;* 8255A的基本输入输出 *;;*************************;IOPORT EQU0E400H-280HIO8255A EQU IOPORT+288HIO8255B EQU IOPORT+289HIO8255C EQU IOPORT+28AHIO8255K EQU IOPORT+28BHCODE SEGMENTASSUME CS:CODESTART:MOV DX,IO8255K ;对8255进行设定,A输出,C输入MOV AL,10001001BOUT DX,ALINPUT:MOV DX,IO8255C ;从C输入IN AL,DXMOV DX,IO8255A ;从A输出OUT DX,ALMOV DL,0FFH ;判断是否有按键MOV AH,06HINT21HJZ INPUT ;若无,则继续C输入,A输出MOV AH,4CH ;否则,返回DOSINT21HCODE ENDSEND START;************************************;;*键盘输入数据(0-9)控制LED数码管显示*;;************************************;DA TA SEGMENTIOPORT EQU 0E400H-280HIO8255A EQU IOPORT+288HIO8255B EQU IOPORT+289HIO8255C EQU IOPORT+28AHIO8255K EQU IOPORT+28BHLED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHMESG1 DB 0DH,0AH,'Input a num (0--9),other key is exit:',0DH,0AH,'$'DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DA TAMOV DS,AXMOV DX,IO8255K ;使8255的A口为输出方式MOV AX,10000000BOUT DX,ALSSS: MOV DX,OFFSET MESG1 ;显示提示信息MOV AH,09HINT 21HMOV AH,01 ;从键盘接收字符INT 21HCMP AL,'0' ;是否小于0JL EXIT ;若是则退出CMP AL,'9' ;是否大于9JG EXIT ;若是则退出SUB AL,30H ;将所得字符的ASCII码减30HMOV BX,OFFSET LED ;BX为数码表的起始地址XLAT ;求出相应的段码MOV DX,IO8255A ;从8255的A口输出OUT DX,ALJMP SSS ;转SSSEXIT: MOV AH,4CH ;返回INT 21HCODE ENDSEND START;******************************;;* LED数码管实验动态显示“56”*;;******************************;DA TA SEGMENTIOPORT EQU 0E400H-280HIO8255A EQU IOPORT+288HIO8255B EQU IOPORT+289HIO8255C EQU IOPORT+28AHIO8255K EQU IOPORT+28BHLED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;段码BUFFER1 DB 6,5 ;存放要显示的个位和十位BZ DW ? ;位码DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DATAMOV DS,AXMOV DX,IO8255K ;将8255设为A口输出MOV AL,80HOUT DX,ALMOV DI,OFFSET BUFFER1 ;设di为显示缓冲区LOOP2: MOV BH,02LLL: MOV BYTE PTR BZ,BHPUSH DIDEC DIADD DI, BZMOV BL,[DI] ;bl为要显示的数POP DIMOV AL,0MOV DX,IO8255COUT DX,ALMOV BH,0MOV SI,OFFSET LED ;置led数码表偏移地址为SIADD SI,BX ;求出对应的led数码MOV AL,BYTE PTR [SI]MOV DX,IO8255A ;自8255A的口输出OUT DX,ALMOV AL,BYTE PTR BZ ;使相应的数码管亮MOV DX,IO8255COUT DX,ALMOV CX,3000DELAY: LOOP DELAY ;延时MOV BH,BYTE PTR BZSHR BH,1JNZ LLLMOV DX,0FFHMOV AH,06INT 21HJE LOOP2 ;有键按下则退出MOV DX,IO8255CMOV AL,0 ;关掉数码管显示OUT DX,ALMOV AH,4CH ;返回INT 21HCODE ENDSEND START;***************;;* 模拟抢答器 *;;***************;DA TA SEGMENTIOPORT EQU 0E400H-280HIO8255A EQU IOPORT+288HIO8255B EQU IOPORT+289HIO8255C EQU IOPORT+28AHIO8255K EQU IOPORT+28BHLED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;数码表DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DATAMOV DS,AXMOV DX,IO8255K ;设8255为A口输出,C口输入MOV AL,10001001BOUT DX,ALMOV BX,OFFSET LED ;使BX指向段码管首址SSS: MOV DX,IO8255CIN AL,DX ;从8255的C口输入数据OR AL,AL ;比较是否为0JE SSS ;若为0,则表明无键按下,转sssMOV CL,0FFH ;cl作计数器,初值为-1 RR: SHR AL,1INC CLJNC RRMOV AL,CLXLATMOV DX,IO8255AOUT DX,ALMOV DL,7 ;响铃ASCII码为07MOV AH,2INT 21HWAI: MOV AH,1INT 21HCMP AL,20H ;是否为空格JNE EEE ;不是,转eeeMOV AL,0 ;是,关灭灯MOV DX,IO8255AOUT DX,ALJMP SSSEEE: MOV AH,4CH ;返回INT 21HCODE ENDSEND START运行结果:实验一:当逻辑开关K0~K7中的一个或几个打开时,对应的LED灯就会亮起来,即利用8255A实现了基本的输入输出控制。
微机原理实验报告(8255并口实验)
深圳大学实验报告课程名称:微型计算机技术实验项目名称:8255并行接口实验学院:信息工程学院专业:电子信息工程指导教师:报告人:学号:班级:实验时间:实验报告提交时间:教务处制一,实验目的1,学习并掌握8255 的工作方式及其应用。
2,掌握8255 典型应用电路的接法。
3,掌握程序固化及脱机运行程序的方法。
二,实验设备PC机器一台,TD-PITE实验装置一套,导线若干,另外PC与TD-PITE实验装置连接线。
三,实验内容1,基本输入输出实验。
编写程序,使8255 的A 口为输入,B 口为输出,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就发生相应改变。
2,流水灯显示实验。
编写程序,使8255 的A 口和B 口均为输出,数据灯D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~D8 与D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。
四实验内容及步骤1. 基本输入输出实验本实验使8255 端口A 工作在方式0 并作为输入口,端口 B 工作在方式0并作为输出口。
实验接线图如图6 所示,按图连接实验线路图。
用一组开关信号接入端口A,端口 B 输出线接至一组数据灯上,然后通过对8255 芯片编程来实现输入输出功能。
2. 流水灯显示实验:使8255 的A 口和B 口均为输出,数据灯D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~D8 与D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。
实验接线图如下图所示。
微机原理实验报告 可编程并行IO接口8255
《微机原理及应用技术》课程实验报告实验五可编程并行I/O接口8255【预习内容】1.怎样选中可编程I/O接口?怎样实现I/O端口的寻址?8255的CS/接地址译码/CS0,则命令字地址为8003H,PA口地址为8000H,PB口地址为8001H,PC口地址为8002H。
通过地址/数据总线,按照指定地址进行读写操作直接选中8255。
并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片。
CPU与外设交换的数据是以字节为单位进行的。
因此一个外设的数据端口含有8位。
而状态口和命令口可以只包含一位或几位信息,所以不同外设的状态口允许共用一个端口,命令口也可共用。
数据信息、状态信息和控制信息的含义各不相同,按理这些信息应分别传送。
但在微型计算机系统中,CPU通过接口和外设交换数据时,只有输入(IN)和输出(OUT)两种指令,所以只能把状态信息和命令信息也都当作数据信息来传送,且将状态信息作为输入数据,控制信息作为输出数据,于是三种信息都可以通过数据总线传送了。
但要注意,这三种信息被送入三种不同端口的寄存器,因而能实施不同的功能。
CPU对外设的访问实质上是对I/O接口电路中相应的端口进行访问,也需要由译码电路来形成I/O端口地址。
I/O端口的编址方式有两种·存储器映象寻址方式·I/O指令寻址方式2.8255A接口芯片内含几个I/O端口?它们的名称分别是?这些I/O口地址有何特点?三个数据端口,三种工作方式A口可工作于方式0、方式1和方式2中的任一种B口可工作于方式0和方式1,但不能工作于方式2C口只能工作于方式08位数据端口:A口、B口、C口A口:PA7~PA0B口:PB7~PB0C口:PC7~PC0连接外部设备A口与B口为一个8位的输入口或输出口C口单独作为一个8位的输入口或输出口配合A口和B口使用,作为控制信号和状态信号3.8255A有几个控制字?怎样设置?它有两个控制字,一个是方式选择控制字,一个是对C口进行置位或复位控制字。
实验五 8255A可编程并行口实验
实验五-1 8255A可编程并行口实验一、实验目的1.掌握并行接口芯片8255A和微机接口的连接方法。
2.掌握并行接口芯片8255A的工作方式及其编程方法。
三、实验内容1.实验原理如实验原理图6-4所示,PA口8位接8个开关K1~ K8,PB口8位接8个发光二极管,从PA口读入8位开关量送PB口显示。
拨动K1~ K8,PB口上接的8个发光二极管L1~ L8对应显示K1~ K8的状态。
图6-42.实验线路连接(1)8255A芯片PA0~ PA7插孔依次接K1~ K8。
(2)8255A芯片PB0~PB7插孔依次接L1 ~ L8。
系统已定义的I/O地址如下:接口芯片口地址用途8255A口FFD8H EP总线8255B口FFD9H EP地址8255C口FFDAH EP控制8255控制口FFDBH 控制字四、实验软件框图五、实验参考程序PA EQU 0FFD8HPB EQU 0FFD9HPC EQU 0FFDAHPCTL EQU 0FFDBHCODE SEGMENTASSUME CS:CODE,DS:CODE,ES:CODEORG 32E0HH2: 。
CODE ENDSEND H2六、实验思考1.通过实验你是如何理解8255的PA口和PB口的工作过程?2.用程序验证若8255的PA口为方式1或方式2,是否可以实现PA口控制PB口?七、实验步骤1.按图6-4连好线路。
2.运行实验程序,拨动K1~K8,L1~L8会跟着亮灭。
实验五-28255并行口实验(二)A.B.C口输出方波一、实验目的掌握可编程I/O接口芯片8255的接口原理使用,熟悉对8255初始化编程和输入、输出软件设计方法。
二、实验内容在8255 A.B.C口用示波器测出波形。
三、程序流程四、实验步骤编译、装载,连续运行程序,用示波器测量8255 A.B.C口并观察其波形。
关键点:ch0、ch1分接PA口的D1、D0;ch0、ch1分接PB口的D1、D0;ch0、ch1分接PC口的D1、D0五、实验参考程序PA EQU 0FFD8HPB EQU 0FFD9HPC EQU 0FFDAHPCTL EQU 0FFDBHCODE SEGMENTASSUME CS:CODE,DS:CODE,ES:CODEORG 32C0HH1:JMP P11CODE ENDSEND H1六、实验思考1.说明8255 A.B.C口输出方波,与8253输出方波有什么区别?2.说明8255 A.B.C口输出方波的原理是什么?实验五-3 8255A可编程并行口实验(三)交通灯一、实验目的进一步掌握8255A可编程并行口使用方法。
8255A可编程并行口实验(二)
微机原理实验报告实验一:8255A可编程并行口实验(二)学院:专业:班级:学号:姓名:指导老师:实验一 8255A可编程并行口实验(二)1.实验目的进一步掌握8255A可编程并行口使用方法。
2.试验设备及主要器件原理简介实验设备:8255A实验原理:8255A中PB4~PB7和PC0~PC7分别与发光二极管电路L1~L12相连,并且PB4~PB7对应黄灯,PC0~PC3对应红灯,PC4~PC7对应绿灯。
8255A工作于模式0,并置为输出。
由于各发光二极管为共阳极,使其点亮应使8255A相应端口清0。
3.实验内容及程序CODE SEGMENT ASSUME CS:CODE IOCONPT EQU 0073H IOAPT EQU 0070H IOBPT EQU 0071H IOCPT EQU 0072H IOBDATA EQU 0500H CONTPORT EQU 00DFH DATAPORT EQU 00DEH DATA1 EQU 0640H START: JMP IOLED IOLED: CALL FORMAT CALL LEDDISPMOV AX,0H MOV DS,AXMOV AL,82HMOV DX,IOCONPTOUT DX,ALMOV DX,IOBPTIN AL,DXMOV BYTE PTR DS:[0501H],AL MOV DX,IOCONPTMOV AL,80HOUT DX,ALMOV DX,IOBPTMOV AL,DS:[0501H]OR AL,0F0HOUT DX,ALMOV DX,IOCPTMOV AL,0F0HOUT DX,ALCALL DELAY1IOLED0: MOV AL,10100101B MOV DX,IOCPTOUT DX,ALCALL DELAY1CALL DELAY1OR AL,0F0HOUT DX,ALMOV CX,8HIOLED1: MOV DX,IOBPTMOV AL,DS:[0501H]AND AL,10101111BOUT DX,ALCALL DELAY2OR AL,01010000BOUT DX,ALCALL DELAY2LOOP IOLED1MOV DX,IOCPTMOV AL,0F0HOUT DX,ALCALL DELAY2MOV AL,01011010BOUT DX,ALCALL DELAY1CALL DELAY1OR AL,0F0HOUT DX,ALMOV CX,8HIOLED2: MOV DX,IOBPT MOV AL,DS:[0501H]AND AL,01011111BOUT DX,ALCALL DELAY2OR AL,10100000BOUT DX,ALCALL DELAY2LOOP IOLED2MOV DX,IOCPTMOV AL,0F0HOUT DX,ALCALL DELAY2JMP IOLED0 DELAY1: PUSH AXPUSH CXMOV CX,0030HDELY2: CALL DELAY2LOOP DELY2POP CXPOP AXRETDELAY2: PUSH CXMOV CX,8000HDELA1: L OOP DELA1POP CXRETLEDDISP:MOV AL,90HMOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:[0600H],00 LED1: CMP BYTE PTR DS:[0600H],07H JA LED24.实验分析及结论:A口地址:0070HB口地址:0071HC口地址:0072H起始地址:0073HMOV BL,DS:[0600H]MOV BH,0HMOV AL,CS:[BX+DATA1]MOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LED1LED2: RETFORMAT: MOV BX,0MOV WORD PTR DS:[BX+0640H],405BHADD BX,2MOV WORD PTR DS:[BX+0640H],4040HADD BX,2MOV WORD PTR DS:[BX+0640H],6D6DH ADD BX,2MOV WORD PTR DS:[BX+0640H],7F5BH RETCODE ENDSEND START。
微机接口 8255并行接口实验报告
浙江工业大学计算机学院实验报告实验名称 8255并行接口实验姓名徐洁学号 ************班级计科1301班教师雷艳静日期 2015/12/31一、实验内容与要求1.1 实验内容8255方式0实验一:从8255端口C输入数据,再从端口A输出,即TPC-USB平台按逻辑电平开关K0~K7通过编程使端口C接收,然后再通过端口A输出到LED显示电路L0~L7,这样逻辑电平开关的值就可以通过8255芯片显示在LED显示电路上。
8255方式1输出实验:编程实现每按一次单脉冲按钮产生一个正脉冲,使8255产生一次中断,让CPU进行一次中断服务:依次输出01H、02H、04H、08H、10H、20H、40H、80H 使LED显示电路L0~L7依次发光,中断8次结束。
8255方式1输入实验:编程实现每按一次单脉冲按钮产生一个正脉冲使8255产生一次中断请求,让CPU进行一次中断服务,读取逻辑电平开关预置的ASCII码,在屏幕上显示其对应的字符,中断8次结束。
1.2 实验要求(1) 具有一定的汇编编程的基础,能编写一些基本语句来实现实验。
实验前根据实验流程图,写出对应代码;(2) 要了解8255A并行接口芯片内部结构和外部引脚,理解8255芯片的工作方式和程序设计方法;(3) 熟悉实验平台TPC-USB了解各个接口的名称与功能,进行实验时能快速并正确地连接好实验电路;(4) 8255方式0实验一:连接PC与TPC-USB平台,用微机实验软件运行程序,用TPC-USB平台上的逻辑电平开关与LED显示电路观察,LED显示的值与逻辑电平开关设的值对应;(5) 8255方式1输出实验:连接PC与TPC-USB平台,用微机实验软件运行程序,手按单脉冲按钮,观察LED显示电路能依次发光,按8次后,中断结束,程序结束;(6) 8255方式1输入实验:连接PC与TPC-USB平台,用微机实验软件运行程序,用TPC-USB平台的逻辑电平开关设置一个ASCII码,按一次单脉冲,屏幕就能显示该ASCII码对应的字符,变更逻辑电平的开关,按一次单脉冲,屏幕就会显示变更的ASCII码对应的字符。
微机原理实验报告(8255并口实验)
WORD格式深圳大学实验报告课程名称:微型计算机技术实验项目名称:8255并行接口实验学院:信息工程学院专业:电子信息工程指导教师:报告人:学号:班级:实验时间:实验报告提交时间:教务处制一,实验目的1,学习并掌握8255的工作方式及其应用。
2,掌握8255典型应用电路的接法。
3,掌握程序固化及脱机运行程序的方法。
二,实验设备PC机器一台,TD-PITE实验装置一套,导线若干,另外PC与TD-PITE实验装置连接线。
三,实验内容1,基本输入输出实验。
编写程序,使8255的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就发生相应改变。
2,流水灯显示实验。
编写程序,使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。
四实验内容及步骤1.基本输入输出实验本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。
实验接线图如图6所示,按图连接实验线路图。
用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。
图68255基本输入输出失误接线图3.编写实验程序如下面(1)汇编源程序SSTACKSEGMENTSTACKDW32DUP(?)SSTACKENDSCODESEGMENTASSUMECS:CODESTART:MOVDX,0646H;控制端口地址0646H送DX,因为8255的cs端口接的是I0Y1,而I0Y1对应的编址空间是0640H—067FH,所以这里是0646H。
MOVAL,90H;方式选择控制字送ALOUTDX,AL;方式选择控制字输给8255A的控制端口,完成端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。
AA1:MOVDX,0640H;控制端口A地址0640H送DXINAL,DX;将端口A连接的开关的对应状态送给ALCALLDELAYMOVDX,0642H;控制端口A地址0642H送DXOUTDX,AL;将AL的数据送到8255的端口B,从而使其连接的LED的灯发光JMPAA1DELAY:PUSHCXMOVCX,0F00HAA2:PUSHAXPOPAXLOOPAA2POPCXRETCODEENDSENDSTARTii具体实验步骤如下述:(1)编写实验程序,经编译、连接无误后装入系统(2)运行程序,改变拨动开关,同时观察LED显示,验证程序功能。
8255A 并 行 口 实 验(一
8255A并行口实验(一)目的1. 掌握8255A和微机接口方法。
2. 掌握8255A的工作方式和编程原理。
8255A并行口实验(一)内容1、实验原理如实验原理图5-8所示,PC口8位接8个开关K1~ K8,PB口8位接8个发光二极管,从PC口读入8位开关量送PB口显示。
拨动K1~ K8,PB口上接的8个发光二极管L1~ L8对应显示K1~ K8的状态。
图5-82、实验线路连接(1)8255A芯片PC0~ PC7插孔依次接K1~ K8。
(2)8255A芯片PB0~PB7插孔依次接L1 ~ L8。
(3)8255A的CS插孔接译码输出070H-07FH插孔。
3、实验步骤(1) 按图5-8连好线路。
(2) 运行实验程序。
在系统显示"DVCC-86H"状态下,按任意键,显示器显示"-"。
按GO键,显示"1000 XX"输入F000 :B160再按EXEC键,在DVCC-8086H显示上显示器"8255-1",同时拨动K1~K8,L1~L8会跟着亮灭。
CODE SEGMENTASSUME CS:CODEIOCONPT EQU 0073HIOCPT EQU 0072HIOBPT EQU 0071HCONTPORT EQU 00DFHDA TAPORT EQU 00DEHDA TA1 EQU 0500HSTART: JMP IOLEDIOLED: CALL FORMATCALL LEDDISPMOV AL,89HMOV DX,IOCONPTOUT DX,ALNOPNOPNOPIOLED1: MOV DX,IOCPTIN AL,DXMOV DX,IOBPTOUT DX,ALMOV CX,0FFFFHDELAY: LOOP DELAYJMP IOLED1LEDDISP:MOV AL,90HMOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:[0600H],00LED1: CMP BYTE PTR DS:[0600H],07H JA LED2MOV BL,DS:[0600H]MOV BH,0HMOV AL,CS:[BX+DATA1]MOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LED1LED2: RETFORMAT: MOV BX,0MOV WORD PTR DS:[BX+0500H],4006HADD BX,2MOV WORD PTR DS:[BX+0500H],4040HADD BX,2MOV WORD PTR DS:[BX+0500H],6D6DH ADD BX,2MOV WORD PTR DS:[BX+0500H],7F5BHRETCODE ENDSEND START。
实验二_8255并行接口应用实验
实验二8255并行接口应用实验一.实验目的1. 掌握8255工作方式的编程设计。
2. 8255与外部设备进行连接的应用。
二.实验设备与材料:TDN86/88教学实验系统一台,扁平插线若干。
三.实验原理:INTEL8255是一种通用的可编程并行I/O接口芯片,是专为INTEL公司的微处理器设计的,也可用于其它系列的微型机系统中。
利用8086汇编指令系统,编制初始化程序,可以变更8255 的工作方式,通用性强,使用灵活。
8255具有3个带锁存或缓冲的数据端口,它的并行数据宽度为8位。
可与外设并行进行数据交换。
A口和B口内具有中断控制逻辑,在外设与CPU之间可用中断方式进行信息交换。
8255能与许多外部设备连接,例如:键盘、显示器、打印机等。
(a)工作方式控制字 (b)C口按位置位/复位控制字四.实验内容及步骤1.8255的一般输入输、出方式本系统中的8255芯片8255的数据线、地址线、读写控制线等分别与系统总线相连,其A、B、C三个端口以排针形式引出,供8255实验使用,其线路如图1所示。
图1 8255接口实验中端口地址如表1所示表1按图所示实验线路,8255端口A工作在方式0并作为输出口,端口B工作在方式0并作为输入口。
用一组开关信号接入端口B, 端口A输出线接至一组发光二极管上,通过对8255编程来实现输入输出功能。
实验步骤●图2 8255输入输出方式实验接线图注:圆圈处是要求接的连线。
(1)按图2接线。
用扁平线(8头)分别插在8255的A口和发光二极管的插针上。
用扁平线分别插在8255的B口和拨动开关的插针上。
(2)输入源程序,汇编、连接后装入系统。
●参考程序1STACK SEGMENT STACKDW 64 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV AL,82H ;设8255方式字10000010 A位输出,B口位输入。
OUT 63H,AL A1: IN AL,61HOUT 60H,AL JMP A1CODE ENDS END START(3)执行程序后,拨动开关组K0-K7,观察发光二极管LED0-LED7变化,它应是与开关组K0-K7的值是一一对应的变化。
微机原理可编程并行接口8255实验
;************************************************************************** *** ; /*全灭子程序*/ ;************************************************************************** *** ALLOFF: IN AL,0FFH OUT DX,AL CALL DELAY RET
RIGHT1:
;************************************************************************** ***
3
; /*左移子程序*/ ;************************************************************************** *** LEFT: MOV MOV CLC RCL OUT CALL LOOP RET CL,08H AL,0FFH AL,1 DX,AL DELAY LEFT1
A8255 B8255 C8255 D8255
MAIN: TRAFFIC:
;状态口 ;方式 0 输出 ;PA 口地址
TRAFFIC1:
5
CALL ST2 CALL ST3 CALL ST4 JMP TRAFFIC1 ;************************************************************************* ; /*初始状态全为红灯*/ ;************************************************************************* ST0: MOV AL,1BH OUT DX,AL CALL DELAY RET ;************************************************************************** *** ; /*南北为绿灯,东西为红灯子程序*/ ;************************************************************************** *** ST1: MOV OUT CALL CALL CALL CALL CALL CALL RET AL,33H DX,AL DELAY1 DELAY1 DELAY1 DELAY1 DELAY1 DELAY1
最新微机原理实验8255并行口实验PA输入、PB输出
微机原理实验8255并行口实验P A输入、P B输出8255A并行口实验PA输入、PB输出利用LED等显示程序LCD EQU 07FE0HLCDWI EQU LCD+0 ;写命令LCDWD EQU LCD+1 ;写数据LCDRS EQU LCD+2 ;读状态LCDRD EQU LCD+3 ;读数据PA EQU 0FFD8HPB EQU 0FFD9HPC EQU 0FFDAHPCTL EQU 0FFDBHcode segmentassume cs:codelin db 0col db 0num db 0dis_num db 0temp0 db 0temp1 db 0count db 0org 1000hstart: MOV DX,PCTLMOV AL,90HOUT DX,ALcall init_lcdmov al,3call delay2mov count,0mov bx,offset tab0mov lin,0mov col,0mov num,16call dis_englishGOON: MOV DX,PAIN AL,DXTEST AL,01HJE GOON1TEST AL,02HJE GOON2TEST AL,04HJZ GOON3TEST AL,08HJE GOON4TEST AL,10HJE GOON5TEST AL,20HJE GOON6TEST AL,40HJE GOON7TEST AL,80HJZ GOON8JMP GOON9GOON1: JMP KEY1GOON2: JMP KEY2GOON3: JMP KEY3GOON4: JMP KEY4GOON5: JMP KEY5GOON6: JMP KEY6GOON7: JMP KEY7GOON8: JMP KEY8GOON9: mov bx,offset tab9 mov lin,1mov col,0mov num,16call dis_englishMOV DX,PBMOV AL,0FFHOUT DX,ALJMP GOONKEY1: MOV DX,PBMOV AL,0FEHOUT DX,ALmov bx,offset tab1mov lin,1mov col,0mov num,16call dis_englishJMP GOONKEY2: MOV DX,PBMOV AL,0FDHOUT DX,ALmov bx,offset tab2 mov lin,1mov col,0mov num,16call dis_englishJMP GOONKEY3: MOV DX,PBMOV AL,0FBHOUT DX,ALmov bx,offset tab3 mov lin,1mov col,0mov num,16call dis_englishJMP GOONKEY4: MOV DX,PBMOV AL,0F7HOUT DX,ALmov bx,offset tab4 mov lin,1mov col,0mov num,16call dis_englishJMP GOONKEY5: MOV DX,PBMOV AL,0EFHOUT DX,ALmov bx,offset tab5 mov lin,1mov col,0mov num,16call dis_englishJMP GOONKEY6: MOV DX,PBMOV AL,0DFHOUT DX,ALmov bx,offset tab6 mov lin,1mov col,0mov num,16call dis_englishJMP GOONKEY7: MOV DX,PBMOV AL,0BFHOUT DX,ALmov bx,offset tab7mov lin,1mov col,0mov num,16call dis_englishJMP GOONKEY8: MOV DX,PBMOV AL,07FHOUT DX,ALmov bx,offset tab8mov lin,1mov col,0mov num,16call dis_englishJMP GOONdis_number procpush axmov al,lin ;以下18条为根据行、列值定位显示英文起始坐标 cmp al,0jnz nu0mov al,80hjmp nu1nu0: cmp al,1jnz nuretmov al,0C0hnu1: add al,colcall send_commov ah,0 ;以下10条为把3位十进制数的个位、十位、百位分离 mov al,dis_nummov bl,10div blmov temp0,ahmov ah,0mov bl,10div blmov temp1,ahadd al,30h ;转为ASC码call send_data ;百位送LCD显示mov al,temp1add al,30h ;转为ASC码call send_data ;十位送LCD显示mov al,temp0add al,30h ;转为ASC码call send_data ;个位送LCD显示pop axnuret: retdis_number endp;--------------------------;在指定的行、列显示英文。
实验九、8255可编程并行IO扩展接口实验
实验九、8255可编程并行I/O扩展接口实验一、实验目的1.熟悉8255并行接口芯片的基本工作原理及应用2.掌握单片机与8255的接口电路设计和编程二、实验设备1.仿真器2.8255可编程并行I/O扩展接口模块3.单片机最小系统模块4.发光二极管阵列模块三、实验要求连接单片机最小系统、8255扩展接口、数码管动态扫描显示模块、矩阵式键盘模块组成的电路,要求在键盘按下时,8位LED动态显示器上最低位显示相应的字符,以前的各位字符向高位推进1位。
请参看实验二的相关内容。
四、实验原理8255是一个具有3个8位的8位并行口,并且可编程为多种工作模式的接口芯片。
由于每个端口上具有输入/输出的缓冲和锁存功能,因此可用于扩展单片机有限的I/O口,作为单片机和外围器件的中间接口电路。
3.1引脚说明8255共40个引脚,采用了双列直插的封装,主要引脚功能如下:◆D7—D0:三态双向数据线,与单片机数据总线连接;◆CS:片选信号,低电平有效;◆RD:读出信号线,低电平有效;◆WR:写入信号线,低电平有效;◆PA7—PA0:A口输入/输出线;◆PB7—PB0:B口输入/输出线;◆PC7—PC0:C口输入/输出线;◆RESET:芯片复位信号线;◆A1—A0:地址线,用来指定8255内部端口。
3.2内部结构和工作方式(1)端口A、B、C端口A为8位数据传送,数据输入或输出时均受到锁存。
端口B为8位数据传送,数据输入时不受锁存,而数据输出时受到锁存。
端口C 为8位数据传送,数据输入时不受锁存,而数据输出时受到锁存。
(2)8255接口工作状态选择表9-1(3)8255的基本工作方式8255可编程并行I/O 扩展芯片是通过在控制端口中设置控制字来决定它的工作方式的。
8255有以下三种基本工作方式:⏹ 方式0——基本输入/输出方式。
⏹ 方式1——选通输入/输出方式。
⏹ 方式2——双向传送方式。
8255A 的端口A 可以工作在三种工作方式中的任何一种,端口B 只能工作在方式0或方式1,端口C 则常常配合端口A 和端口B 工作,为这两个端口的输入/输出传送提供控制信号和状态信号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本次实验是我加深了理解控制口的地址,以及在延时程序上让我学会了NOP和WAIT语句,以及程序嵌套的循环语句。
指导教师批阅意见:
成绩评定:
预习情况(20)
实验过程(35)
实验报告(45)
总分
指导教师签字:
年月日
备注:
注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。
2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。
MOV AL,0FEH;点亮一个灯
AA: OUTDX,AL
CALL DELAY;延时
ROL AL,1;左移流水
JMP AA
DELAY PROC NEAR
MOV CX,0FFFFH
BB:WAIT
LOOPBB
RET
DELAY ENDP
CODE ENDS
END START
(2)
CODE SEGMENT
ASSUME CS:CODE
8255的PA0~PA7接开关K0~K7,8255的PB0~PB7接发光二极管L0~L7。
六、实验程序
(1)流水灯
CODE SEGMENT
ASSUME CS:CODE
ORG 100H
START:MOV AL,80H;控制字:方式0,A输出
MOV DX,0003H;控制端口地址
OUTDX,AL
MOV DX,0000H;A端口地址
(2)三个端口A,B和C:A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。C端口包含一个8位数据输出锁存器及缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。
(3)A组和B组控制电路:这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。方式控制字的高5位决定A组工作方式,低3位决定B组的工作方式。对C口按位复位命令字可对C口的每一位实现置位或复位。A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部
1、流水灯实验:
(1)实验连线
该模块的WR、RD分别连到MCU主模块的WR、RD。
该模块的数据(AD0~AD7)、地址线(A0~A7)分别连到MCU主模块的数据(AD0~AD7)、地址线(A0~A7)。
8255模块选通线CS连到MCU主模块的地址A15。
8255的PA0~PA7连到发光二极管的L0~L7。
图2流水灯实验
(2)运行程序,观察发光二极管。
2、I/O输入输出实验:
(1)实、RD。
该模块的数据(AD0~AD7)、地址线(A0~A7)分别连到MCU主模块的数据(AD0~AD7)、地址线(A0~A7)。
8255模块选通线CE连到MCU主模块的地址A15。
实验首先从点亮一个LED灯开始做起,此步成功后简单的利用循环语句即达到流水灯效果,但调试中出现的结果是全亮,查明原因为未加延时程序,因为人的视觉有暂留效应,在延时程序上需调整合理的时间不然太慢也不好
八、实验结果
完成了(1)利用8255的A口循环点亮发光二极管的流水灯。(2)利用8255的A口读取开关状态,8255的B口把状态送发光二极管显示。
ORG 100H
START: MOV AL,90H;控制字:A口输入,方式0,B口输出,方式0
MOV DX,0017H
OUTDX,AL
AA:MOV DX,0014H
IN AL,DX;从A口读入开关状态
MOV DX,0015H
OUTDX,AL
JMP AA
CODE ENDS
END START
七、上机调试情况说明
(4)读写控制逻辑:用来控制把CPU输出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到CPU。
2、8255A的工作方式:
方式0—基本输入输出方式;方式1—选通输入输出方式;方式2—双向选通输入输出方式
3、8255A的状态字:
图1可编程并行接口8255电路
五、实验电路及连线
深圳大学实验报告
课程名称:微机原理及应用实验
实验项目名称:可编程并行接口8255实验
学院:
专业:
指导教师:
报告人:学号:班级:
实验时间:
实验报告提交时间:
教务处制
一、实验名称:可编程并行接口8255实验
二、实验目的
了解可编程并行接口芯片8255的内部结构、工作方式、初始化编程及应用
三、实验内容
(1)流水灯实验:利用8255的A口循环点亮发光二极管。
(2) I/O输入输出实验:利用8255的A口读取开关状态,8255的B口把状态送发光二极管显示
四、实验原理
1、8255A的内部结构:
(1)数据总线缓冲器:这是一个双向三态的8位数据缓冲器,它是8255A与微机系统数据总线的接口。输入输的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。