8255输入输出实验

合集下载

计算机原理 实验二 基本输入/输出实验

计算机原理 实验二 基本输入/输出实验

实验二基本输入/输出实验一、实验目的1.了解计算机中基本输入/输出接口的工作方式。

2.了解可编程外围接口芯片8255。

学会使用8255工作在方式0。

二、实验内容将一片8255接入Dais-CMH+实验系统的总线,用手动方式将“缓冲输入”单元作为A口的输入信号通过B口输出到“锁存输出”单元显示。

本实验8255的A口、B口均为工作方式0。

三、实验器材1.Dais-CMH+ 计算机组成原理教学实验系统1台;2.8255芯片1片,双头实验导线、排线若干。

四、 8255芯片介绍8255可编程外围接口芯片是由INTEL公司出品的通用并行I/O接口芯片。

⑴8255内部结构8255内部结构如图2-1所示,共有三部分:与CPU的接口部分、输入/输出端口部分、A组和B组控制部分。

①与CPU的接口电路由数据总线缓冲器和读/写控制逻辑组成。

数据总线缓冲器是一个8位、双向、三态缓冲器,与8位数据总线相连。

CPU通过它向8255写控制字、读状态信息、输入/输出数据。

读/写控制逻辑有RESET、RD、WR、CS、A0和A1六根控制线,接受CPU的控制信号,实现对8255内部操作的控制。

②输入/输出端口。

8255共有三个8位输入/输出端口,即PA口(PA7~PA0)、PB口(PB7~PB0)、PC口(PC7~PC0)。

每个端口都可设置为输入或输出端口。

输入/输出端口通常用来连接外设。

它包括输入/输出线、输入缓冲器和输出锁存器及相应的控制逻辑。

③A组和B组控制部件。

它们由控制字(控制字含义见图2-3〕分别控制A组和B组的工作方式。

A组控制部件控制PA口和PC口高4位(PC7~PC4),B组控制部件控制PB口和PC口低4位(PC3~PC0)。

⑵芯片引脚8255芯片引脚如图2-2所示,其中D7~D0:数据线;PA7~PA0:PA端口(双向口,A1、A0=00);PB7~PB0:PB端口(准双向口,A1、A0=01);PC7~PC0:PC端口(准双向或联络信号线,A1、A0=10);CS:片选;RD:读信号;WR:写信号;RESET:复位;A1,A0:片内寄存器选择(表2-1);VCC:电源;GND:地。

微机实验_8255并行输入输出

微机实验_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设计的键盘及显示接口-实验报告(含接线图+源程序)

运用8255设计的键盘及显示接口图中用并行接口8255A作为微机与键盘间的接口,采用逐行扫描法识别键。

将键盘中的列与PA0—PA3相连,A口为输出;将行与C口的PC0—PC1相连,C 口为输入口; PB0—PB7与七段代码显示器连接B口为输出。

程序执行过程如下:识别是否有键按下,方法是使PA0一PA3输出全0,读C 口(行值) 中只要有一位为0,就说明有键按下,在检测到有键按下后,延迟一段时间,根据找到的键号,转去执行显示七段代码显示器的程序,这时七段代码显示器就显示与该键相同的数值。

实验步骤8255接口的应用键盘及显示接线图注:圆圈处是要求接的连线。

(1)按图4接线。

(2)输入源程序,汇编、连接后装入系统。

(3)执行程序后,按一下键盘,7段代码就会显示相应的数字。

程序STACK SEGMENT STACKDW 64 DUP(?)STACK ENDSDATA SEGMENTTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV SI,3000HMOV AL,00HMOV [SI],AL ;清空存放数据的缓冲区MOV [SI+1],ALMOV [SI+2],ALMOV [SI+3],ALMOV DI,3003HMOV AL,81H ;8255方式字定义选择0方式,A口为输出;OUT 63H,AL;B口为输出;C口为输入BEGIN: CALL DIS ;显示七段代码管数据的子程序CALL CLEAR ;七段代码管清0子程序CALL CCSCAN ;检测是否有键按下子程序JNZ INK1 ;JMP BEGININK1: CALL DISCALL DALLY ;子程序为延时,消抖动CALL DALLYCALL CLEARCALL CCSCANJNZ INK2JMP BEGININK2: MOV CH,0FEHMOV CL,00HCOLUM: MOV AL,CHOUT 60H,ALIN AL,62HTEST AL,01HJNZ LONEMOV AL,00HJMP KCODELONE: TEST AL,02HJNZ NEXTMOV AL,04HKCODE: ADD AL,CLCALL PUTBUFPUSH AXKON: CALL DISCALL CLEARCALL CCSCANJNZ KONPOP AX NEXT: INC CLMOV AL,CHTEST AL,08HJZ KERRROL AL,1MOV CH,ALJMP COLUM KERR: JMP BEGIN CCSCAN: MOV AL,00HOUT 60H,ALIN AL,62HNOT ALAND AL,03HRET CLEAR: MOV AL,00HOUT 61H,ALRETDIS: PUSH AXMOV SI,3000HMOV DL,0F7HMOV AL,DLAGAIN: OUT 60H,ALMOV AL,[SI]MOV BX,OFFSET TABLE ;取七段代码首址AND AX,00FFHADD BX,AXMOV AL,[BX]OUT 61H,ALCALL DALLYINC SIMOV AL,DLTEST AL,01HJZ OUTROR AL,1MOV DL,ALJMP AGAINOUT: POP AXRETDALLY: PUSH CXMOV CX,0010HT1: MOV AX,0010HT2: DEC AXJNZ T2LOOP T1POP CXRETPUTBUF: MOV SI,DIMOV [SI],ALDEC DICMP DI,2FFFHJNZ GOBACKMOV DI,3003H GOBACK: RETCODE ENDSEND START。

实验二 8255并行输入输出实验

实验二 8255并行输入输出实验

实验二8255并行输入输出实验一、实验目的与要求了解8255A的内部结构、工作原理;掌握对8255A的初始化编程方法。

二、实验设备STAR系列实验仪一套、PC机一台三、实验内容1、选通输入实验:B口有8个发光二极管PBi(i=0~7),要求K3K2K1=000时LED1亮~K3K2K1=111时LED8亮,预置开关K为一组状态后按下BUTTON产生一负脉冲信号输入到PC4上,用LEDi(i=1~8)亮来显示K的状态。

2、选通输出实验:A口有8个发光二极管PAi(i=0~7),显示LED0亮,然后每按一次BUTTON使LED循环下移一位亮。

四、实验原理图1、2、五、实验步骤1区:单脉冲(2)运行程序(3)预置开关K为一组状态后上下拨动单脉冲开关,拨动两次,产生一个“”,观察B 口灯是否对应开关的状态相应亮,拨动开关K设置下一组开关状态,上下拨动单脉冲开关,拨动两次,产生一个“”,继续检查B口灯是否对应开关的状态相应亮。

2区:单脉冲(3)此时发现LED0亮,每上下拨动单脉冲开关,拨动两次,产生一个“”,观察LED是否循环下移一位亮。

六、流程图1、2、七、程序代码1、DATA SEGMENTTAB DB 11111110B,11111101B,11111011B,11110111B DB 11101111B,11011111B,10111111B,01111111B DATA ENDSSTCK SEGMENT STACKSTA DB 50 DUP(?)STCK ENDSCODE SEGMENTASSUME DS:DATA,CS:CODE,SS:STCKSTART: MOV AX,DATAMOV DS,AXCALL Init8255 ;8255初始化子程序SCAN: MOV DX,0F002H;C口IN AL,DXAND AL,00100000BJZ SCAN ;判断IBFA是否为1 MOV DX,0F000H ;A口IN AL,DXAND AL,7 ;保留K1,K2,K3的数字 LEA BX,TABXLATMOV DX,0F001H ;B口OUT DX,ALJMP SCANInit8255 PROCMOV DX,0F003HMOV AL,0B0HOUT DX,ALRETInit8255 ENDPCODE ENDSEND START2、STCK SEGMENT STACKSTA DB 50 DUP(?)STCK ENDSCODE SEGMENTASSUME CS:CODE,SS:STCKSTART: MOV DX,0F003HMOV AL,0A0HOUT DX,ALMOV DX,0F000HMOV AL,0FEH ;使LED0亮OUT DX,ALLOP: MOV BL,AL ;保护AL中内容LOP1: MOV DX,0F002HIN AL,DXAND AL,80HJZ LOP1 ;/OBFA是否为1CALL DELAY ;延时MOV AL,BLROL AL,1MOV DX,0F000HOUT DX,ALJMP LOPDELAY PROCPUSH AXPUSH CXMOV CX,0FFFFHLOOP $MOV CX,0FFFFHLOOP $POP CXPOP AXRETDELAY ENDPCODE ENDSEND START八、遇到问题1、一开始编的程序没有查询IBFA的状态,用的是无条件传送,预置K的状态,不拨单脉冲开关,灯也能对应显示。

实验六---8255并行输入输出

实验六---8255并行输入输出

实验六---8255并行输入输出东南大学《微机实验及课程设计》实验报告实验六 8255并行输入输出姓名:学号:专业:测控技术与仪器实验室: 516同组人员:评定成绩:一、实验目的1)掌握8255方式0的工作原理及使用方法,利用直接输入输出进行控制显示;2)掌握8段数码管的动态刷新显示控制;二、(1)实验内容(必做)6-1、8段数码管静态显示:编程从键盘输入一位十进制数字(0~9),在数码管上显示出来。

6-2、8段数码管动态显示:在两个数码管上同时显示不同的两位数字或字母,保持不变直至退出。

(如56或7f)(2)实验内容(必做一题,选做一题)6-3 静态显示:用逻辑电平开关预置某个数字(0~9)的ASCII码,将该数据用8255的C口读入,并用A口输出,并在数码管显示出来;如果预置的ASCII 码不是数字(0~9),数码管显示E字母。

6-4 动态显示:在两个数码管上滚动循环显示不同的0~f字符。

(即开始时两个数码管显示01,12,23,34 ··f0,一直循环直至退出)三、实验原理(1)实验预备知识图 八段式LED 数码管的符号和引脚(2) 6-1流程图:NY将对应段码输结6-1源代码:data segmentioport equ 0ec00h-0280hio8255a equ ioport+288h ;8255A口地址io8255b equ ioport+28bh ;8255控制寄存器端口地址led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;段码mesg1 db 0dh,0ah,'Input a num (0--9h):',0dh,0ah,'$';提示data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,io8255b ;使8255的A口为输出方式mov ax,80hout 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码减30H mov bx,offset led ;bx为数码表的起始地址xlat ;求出相应的段码mov dx,io8255a ;从8255的A口输出out dx,aljmp sss ;转SSSexit: mov ah,4ch ;返回DOSint 21hcode endsend start(3)6-2接线图:6-2源代码:data segmentioport equ 0ec00h-0280hio8255a equ ioport+288hio8255c equ ioport+28ahio8255k equ ioport+28bhled db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;段码buffer1 db 5,6 ;存放要显示的个位和十位bz dw ? ;位码data endsstacks segment stackdb 100 dup(?)stacks endscode segmentassume cs:code,ds:data,ss:stacksstart: mov ax,datamov ds,axmov ax,stacksmov ss,axmov dx,io8255k ;将8255设为A口输出mov al,80hout dx,almov di,offset buffer1 ;设di为显示缓冲区loop2: mov bh,02lll: mov al,0 ;送全灭断码mov dx,io8255a ;自8255A口输出out dx,almov byte ptr bz,bhpush didec diadd di, bzmov bl,[di] ;bl为要显示的数pop dimov bh,0mov si,offset led ;置led数码表偏移地址为SI add si,bx ;求出对应的led数码mov al,byte ptr [si]mov dx,io8255a ;自8255A的口输出out dx,almov al,byte ptr bz ;使相应的数码管亮mov dx,io8255aout dx,almov cx,3000delay: loop delay ;延时mov bh,byte ptr bzshr bh,1jnz lllmov dx,0ffhmov ah,06int 21hje loop2 ;有键按下则退出mov dx,io8255amov al,0 ;关掉数码管显示out dx,almov ah,4ch ;返回int 21h code ends end start(4)6-3流程图: Y N N Y6-3源代码: data segmentioport equ 0ec00h-0280h ;tpc 卡中设备的io 地址 io8255a equ ioport+288h ;8255A 口地址io8255k equ ioport+28bh ;8255控制寄存器端口地址 io8255c equ ioport+28ah ;8255C 口地址led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh开设置8255控制字,C从C 口输是否属将对应段码将E 对应段是否有结data endsstacks segment stackdb 100 dup (?)stacks endscode segmentassume cs:code,ss:stacks,ds:datamain proc farstart: mov ax,stacksmov ss,axmov ax,datamov ds,axmov dx,io8255k ;设8255为C口输入,A口输出 mov al,8bh ;1000 1011out dx,alinout: mov dx,io8255c ;从C口输入一数据call delayin al,dxcmp al,'0' ;是否小于0jl exit1 ;若是则显示Ecmp al,'9' ;是否大于9jg exit1 ;若是则显示Emov bx,offset led ;bx为数码表的起始地址 sub al,30hxlat ;求出相应的段码mov dx,io8255a ;从8255的A口输出out dx,almov ah,06 ;是否有键输入mov dl,0ffhint 21h ;是则退出jne exitjmp inout ;转inoutexit1: mov al,79hmov dx,io8255aout dx,almov ah,06 ;是否有键输入mov dl,0ffhint 21h ;是则退出jne exitjmp inout ;转inoutexit: mov ah,4ch ;返回DOSint 21hmain endpdelay proc near ;延时子程序mov bx,2000ZZZ: mov cx,0ZZ: loop ZZdec bxjne ZZZretdelay endpcode endsend start6-3接线图:四、实验中遇到的问题及解决方案(1)在实验初始,发现七段数码管的a不亮,排除故障发现是由于8255芯片的PA0不能输出高电平;(2)在各个实验中,连线后发现数码管都没有反应,后来发现,只有在每次运行前运行一下演示实验,再运行自己的程序才出正确结果;(3)在实验6-3中,初始时,数码管显示的数字是开关预置的数字,即若开关置为0000,0001,则数码管显示1,但是实验要求为预置的为ASCⅡ码;检查代码,发现若直接用从C口输入的数据,则就是数值,达到实验要求还需对从C口输入的数据进行减30h的操作;(4)上次实验总未完成部分(在in操作指令前未加延时程序)在这次的课时上实现,上次的实验结果是,若开关预置全1,则屏幕一直显示提示信息;若开关预置非全1,则开始会显示提示信息,片刻后不再提示,说明若不加延时,用in指令输入的会是0ffh,但片刻后,开关预置的数据会输入,程序不再提示;遗憾部分是,用到的延时程序是借用之前实验中的,没有改变CX数据以观察需加延时的最短时间;。

8255试验报告(方式1查询输出)

8255试验报告(方式1查询输出)

《微型计算机接口技术》实验报告实验名称:可编程并行接口芯片8255应用(8255方式1、查询输出)姓名学号:班级:日期:广东外语外贸大学信息科学技术学院一、实验目的掌握8255方式1查询输入、输出时的使用及编程二、实验内容1、按照图示连接硬件(注意图中大多数线试验箱已经连好,只连接需要用户连接的部分,预习,参考PPT)2、编程:每按一次单脉冲按钮,ACK信号有效,8255内部输出准备好状态有效(INTR),查询输出一次数据,点亮、熄灭相应的发光二极管。

三、实验原理(8255方式1输出:结合结构图、时序图、状态字描述)8255是一片可编程并行I/O接口芯片,每片8255有两个8位的并行口(PA,PB)和两个4位并行口(PC的高、低四位),其中PA口可工作于方式0,1,2。

PB口工作于方式0,1。

PC口仅能工作于方式0。

在方式1中,将8255的三个端口分为了A、B两组,PA、PB两个口仍作为数据输入/输出口,而PC口则作为两部分,分别作为PA、PB口的联络信号。

8255A 方式1 A口输出过程由CPU响应中断开始,在中断中用OUT指令通过8255A 向外设输出数据,发出WR 信号;WR上升沿清除INTRA 中断请求信号,且使OBFA =“L”(有效),通知外设取数;当外设接受数据后,发出ACKA 应答信号,一方面使OBFA=“H”(无效),另一方面在ACKA信号的上升沿使INTRA=“H”(有效),以此向CPU发出新的中断请求,开始下一轮输出。

四、硬件设计及方案论证(完整图的信号线连接及作用:数据、地址、控制及外设线)硬件设计如图,其中:1.8255芯片中的数据总线D0—D7是和CPU的数据线直接相连的,从而CPU可以向8255发送命令、数据和8255芯片也可以向CPU发送状态、数据等等。

2.8255芯片中的A0和A1也是与CPU的地址总线直接相连,并且在控制字在以下几种情况有不同的设置,若A1A0= 00时,8255芯片中的PA口被选中,若A1A0=01时,8255芯片中的PB口被选中,若A1A0=10时,8255芯片中的PC口被选中,若A1A0=11时,则8255芯片的控制口被选中。

8255实验报告

8255实验报告

8255实验报告关键信息项:1、实验目的:____________________________2、实验设备:____________________________3、实验原理:____________________________4、实验步骤:____________________________5、实验结果:____________________________6、结果分析:____________________________7、误差分析:____________________________8、改进措施:____________________________11 实验目的本次 8255 实验的主要目的是深入了解 8255 并行接口芯片的工作原理和编程方法,掌握通过 8255 实现输入输出数据的控制和传输。

通过实验,提高对计算机接口技术的实际应用能力,为今后在相关领域的学习和工作打下坚实的基础。

111 具体目标1111 熟悉 8255 的内部结构和引脚功能。

1112 掌握 8255 的工作方式及其设置方法。

1113 学会使用汇编语言或 C 语言对 8255 进行编程,实现数据的输入输出操作。

1114 能够通过实验现象分析和解决可能出现的问题,提高调试程序的能力。

12 实验设备121 计算机一台122 8255 实验箱一个123 导线若干13 实验原理8255 是一种通用的可编程并行接口芯片,具有三个 8 位的并行输入/输出端口:A 口、B 口和 C 口。

每个端口都可以通过编程设置为输入或输出方式,并且可以组合使用以满足不同的应用需求。

8255 内部还有控制寄存器,用于选择端口的工作方式和控制信号。

在实验中,通过对 8255 的控制寄存器进行编程,设置端口的工作方式,然后向输入端口输入数据,或者从输出端口读取数据,观察实验结果,验证 8255 的功能和编程方法的正确性。

14 实验步骤141 连接实验设备将计算机与 8255 实验箱通过数据线连接好,确保连接牢固,电源正常。

微机实验 可编程并行接口8255

微机实验  可编程并行接口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实验报告

最新8255实验报告实验目的:本次实验旨在熟悉并掌握Intel 8255A可编程并行接口的功能及其编程方法。

通过实验,学习如何利用8255A实现并行数据的输入输出操作,并了解其在微型计算机系统中的应用。

实验设备与器件:1. 微机实验箱及接口电路板2. Intel 8255A 可编程并行接口芯片3. 8位微处理器(如8086)4. 示波器、逻辑笔等测试工具实验原理:Intel 8255A是一种3态可编程并行输入/输出接口芯片,具有三个8位并行I/O端口:端口A、端口B和端口C。

端口A和端口B可用于输入输出,端口C分为两个4位端口C1和C2,可分别进行输入输出操作。

8255A通过控制字寄存器(控制字1和控制字2)来设置工作模式和端口方向。

实验步骤:1. 初始化8255A:通过编程设置控制字寄存器,定义端口A、B的工作模式(例如,端口A为输入,端口B为输出)和端口C的配置(C1和C2的输入输出模式)。

2. 编写程序代码,实现端口A的数据读取和端口B的数据输出。

3. 使用示波器检测端口C的输入输出信号,验证其功能。

4. 通过改变控制字寄存器的设置,观察并记录端口工作模式变化后的行为。

实验结果:1. 端口A成功读取了外部输入的二进制数据,并在显示器上显示出来。

2. 端口B按照程序设定输出了相应的控制信号,通过LED灯或其他指示设备得到了验证。

3. 端口C1和C2在不同的控制字设置下,能够正确地执行输入输出操作,信号波形通过示波器得到了确认。

实验结论:通过本次实验,我们成功地对Intel 8255A可编程并行接口进行了编程和操作,实现了并行数据的输入输出。

实验结果表明,8255A在并行接口通信中具有重要作用,能够提高数据传输效率,适用于需要高速并行数据传输的场合。

东南大学仪器科学 微机实验 8255 并行输入输出

东南大学仪器科学 微机实验 8255 并行输入输出

《微机实验》实验报告实验六8255并行输入输出姓名:学号:学院:仪器科学与工程实验室:金智楼516室实验时间:2017年5月11日报告时间:2017年5月15日评定成绩:审阅教师:实验目的:1)掌握8255方式0的工作原理及使用方法,利用直接输入输出进行控制显示;2)掌握8段数码管的动态刷新显示控制;实验内容:6-1、8段数码管静态显示:编程从键盘输入一位十进制数字(0~9),在数码管上显示出来。

6-2、8段数码管动态显示:在两个数码管上同时显示不同的两位数字或字母,保持不变直至退出。

(如56或7f,参考程序p69)6-3 静态显示:用逻辑电平开关预置某个数字(0~9)的ASCII码,将该数据用8255的C口读入,并用A口输出,并在数码管显示出来;如果预置的ASCII码不是数字(0~9),数码管显示E字母。

6-4 动态显示:在两个数码管上滚动循环显示不同的0~f字符。

(即开始时两个数码管显示01,12,23,34 ··f0,一直循环直至退出)实验程序框图:实验程序主要部分和流程图:实验硬件连接图:6-1、6-36-2、6-4编写建议:1.写好汇编程序的总框架,按照题目要求合理设置数据段,堆栈段。

2.将流程图转化为汇编指令,建议使用标明行数的编辑器编写,利于在后面根据汇编报错时快速定位。

3.如果发现运行结果与预期不符,应耐心进行动态调试。

4.输入输出的接口地址的计算5.实验台的七段数码管为共阴性,段码同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码的输入端高电平选中。

6.8255的A口、B口、C口和控制口的端口地址分别为288H~28BH。

编程首先要设置控制字输出到控制口。

7.逻辑电平开关向上拨到“ 1”时输出高电平;向下拨到“0”时输出低电平。

8.动态显示时应先从A口输出段码,然后再从C口输出位码,然后应该延时一段时间才能看到数码管的显示。

其中段码需要查表Led db 3fh,06h,…………71h位码分别为:左边的数码管xxxxxx10右边的数码管xxxxxx01。

8255实验报告

8255实验报告

实验五8255方式1输出实验一、实验目的掌握查询方式实现8255选通型输人(方式1)的编程控制方法。

二、实验内容将8255端口A的PA7-PA0与8个发光二极管L7-L0连接,PB2-PB0与拨动开关的K2-K0连接,8255的CS与地址译码区的0-F端子连接,PC2(/STBB)与单脉冲的/PLUS端连接。

先预置开关K2-K0为一组输入状态,然后按下单脉冲按键产生一个负脉冲,输入到PC2。

用发光二极管LEDi亮,显示K2-K0的状态。

要求:K2-K0=000时,LED0亮K2-K0=001时,LED1亮K2-K0=010时,LED2亮K2-K0=011时,LED3亮K2-K0=100时,LED4亮K2-K0=101时,LED5亮K2-K0=110时,LED6亮K2-K0=111时,LED7亮三、实验环境《TPC-EM实验仪》和386EX实验模式。

四、实验步骤(1)先将实验箱打开,按如下“实验连接图”用数据线将各个部件连接;【实验接线图】8255PA0PA7LED显示灯L0L7PB0PB1PB2K0K1K2拨动开关CS PC2单脉冲/PLUS 地址译码0-F(2)连接完成后,根据实验内容的要求写出相关代码;具体代码如下:DATA SEGMENTMESG DB '8255A READY...',0DH,0AH,'$'TAB DB 00000001BDB 00000010BDB 00000100BDB 00001000BDB 00010000BDB 00100000BDB 01000000BDB 10000000BDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATABEG: MOV AX,DATAMOV DS,AXCALL I8255AMOV AH,9MOV DX,OFFSET MESGINT 21HSCAN: MOV AH,1INT 16HJNZ RETURNMOV DX,202HIN AL,DXTEST AL,00000010BJZ SCANMOV DX,201HIN AL,DXAND AL,07HMOV BX,OFFSET TABXLAT TABMOV DX,200HOUT DX,ALJMP SCAN RETURN: MOV AH,4CHINT 21HI8255A PROCMOV DX,203HMOV AL,0A7HOUT DX,ALMOV AL,04HOUT DX,ALMOV DX,201HMOV AL,00HOUT DX,ALRETI8255A ENDPCODE ENDSEND BEG(3)将实验箱开关打开,程序写入386,然后进行连接、下载,按F5进行运行。

8255接口电路设计实验

8255接口电路设计实验

实验六8255接口电路设计实验实验目的(1)掌握8255的工作方式级应用编程。

(2)掌握8255的典型应用电路接法。

实验设备PC微机一台、TD-PIT实验系统一套。

实验内容(1)基本输入输出实验。

编写程序,使8255的A口为输出,B口为输入,完成拨动开关到数据灯的数据传输。

要求只要开关拨动,数据灯的显示就改变。

(2)流水灯显示实验。

编写程序,使8255的A口和B口均为输出,实现16位数据灯的相对循环显示。

实验原理并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。

CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位、32位等。

8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在一下三种方式下工作:方式0—基本输入/输出方式、方式2—选通输入/输出方式、方式2—双向选通工作方式。

实验说明1、基本输入输出实验本实验使8255端口A工作在方式0并作为输出口,端口B工作在方式0并作为输入口。

用一组开关信号接入端口B,端口A输出线接至一组数据灯上,然后通过对8255芯片编程实现输入输出功能。

8255并行接口应用实验接线图程序流程图:部分程序:MOV DX,MY8255_MODE ;初始化8255工作方式MOV AL,82H ;工作方式0,A口输出,B口输入OUT DX,ALMOV DX,MY8255_B ;读B口IN AL,DXMOV DX,MY8255_A ;写A口OUT DX,AL2、流水灯显示实验首先分别向A口和B口写入80H和01H,然后分别将该数左移和右移一位,再送到端口上,这样循环下去,从而实现流水灯的显示。

8255并行应用实验接线图程序流程图:部分程序:DATA SEGMENTLA DB ? ;定义数据变量LB DB ?DATA ENDS……MOV DX,MY8255_MODE ;定义8255工作方式 MOV AL,80H ;工作方式0,A口和B口为输出 OUT DX,ALMOV DX,MY8255_A ;写A口发出的起始数据MOV AL,80HOUT DX,ALMOV LA,ALMOV DX,MY8255_B ;写B口发出的起始数据MOV AL,01HOUT DX,ALMOV LB,ALLOOP1: CALL DALLYMOV AL,LA ;将A口起始数据右移再写入A口 ROR AL,1MOV LA,ALMOV DX,MY8255_AOUT DX,ALMOV AL,LB ;将B口起始数据左移再写入B口 ROL AL,1MOV LB,ALMOV DX,MY8255_BOUT DX,AL用键盘控制实现流水灯的左循环、右循环、间隔闪烁程序:;****************根据查看端口资源修改下列符号值******************* IOY0 EQU 0E400H ;片选IOY0对应的端口始地址;***************************************************************** MY8255_A EQU IOY0+00H*4 ;8255的A口地址MY8255_B EQU IOY0+01H*4 ;8255的B口地址MY8255_C EQU IOY0+02H*4 ;8255的C口地址MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDATA SEGMENTLA DB ? ;定义数据变量LB DB ?A0 DB 'shu ru ning de xuan ze:',0DH,0AH,'$'A1 DB 'press 1:zuo yi',0DH,0AH,'$'A2 DB 'press 2:you yi',0DH,0AH,'$'A3 DB 'press 3:jian ge shang shuo',0DH,0AH,'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,MY8255_MODE ;定义8255工作方式MOV AL,80H ;工作方式0,A口和B口为输出OUT DX,ALMOV DX,MY8255_A ;写A口发出的起始数据MOV AL,80HOUT DX,ALMOV LA,ALMOV DX,MY8255_B ;写B口发出的起始数据MOV AL,01HOUT DX,ALMOV LB,ALD0: MOV DX,OFFSET A0MOV AH,09HINT 21HMOV DX,OFFSET A1INT 21HMOV DX,OFFSET A2INT 21HMOV DX,OFFSET A3INT 21HMOV AH,1INT 21HCMP AL,'1'JE LOOP1CMP AL,'2'JE LOOP2CMP AL,'3'JE LOOP3JMP D0LOOP1: CALL DALLYMOV AL,LA ;将A口起始数据右移再写入A口 ROL AL,1MOV LA,ALMOV DX,MY8255_AOUT DX,ALMOV AL,LB ;将B口起始数据左移再写入B口 ROL AL,1MOV LB,ALMOV DX,MY8255_BOUT DX,ALMOV AH,1 ;判断是否有按键按下INT 16HJZ LOOP1JNZ QUIT ;无按键则跳回继续循环,有则退出LOOP2: CALL DALLYMOV AL,LA ;将A口起始数据右移再写入A口 ROR AL,1MOV LA,ALMOV DX,MY8255_AOUT DX,ALMOV AL,LB ;将B口起始数据左移再写入B口 ROR AL,1MOV LB,ALMOV DX,MY8255_BOUT DX,ALMOV AH,1 ;判断是否有按键按下INT 16HJZ LOOP2 ;无按键则跳回继续循环,有则退出 JNZ QUITLOOP3: CALL DALLYMOV AL,LA ;将A口起始数据右移再写入A口 ROR AL,2MOV LA,ALMOV DX,MY8255_AOUT DX,ALMOV AL,LB ;将B口起始数据左移再写入B口 ROL AL,2MOV LB,ALMOV DX,MY8255_BOUT DX,ALMOV AH,1 ;判断是否有按键按下INT 16HJZ LOOP3 ;无按键则跳回继续循环,有则退出 JNZ QUITQUIT: MOV AX,4C00H ;结束程序退出INT 21HDALLY PROC NEAR ;软件延时子程序PUSH CXPUSH AXMOV CX,3FFHD1: MOV AX,0FFFFHD2: DEC AXJNZ D2LOOP D1POP AXPOP CXRETDALLY ENDPCODE ENDSEND START心得:通过本次实验,使自己加深了对8255的了解以及对汇编程序的熟练掌握。

实验六---8255并行输入输出

实验六---8255并行输入输出

实验六---8255并行输入输出一、实验目的1.了解并熟悉8255并行输入输出控制器的功能和工作原理;二、实验原理1.8255芯片介绍8255是一种常用的并行输入/输出接口芯片,可用于微处理机系统中的输入/输出控制输出,根据中文名可以看出,8255有三种工作方式即口A、口B和控制口。

8255所有的输入/输出都是双向的,它可以通过输入输出口的命令字来在不同的模式下工作。

在输出模式下,82555可以通过端口A、B控制外围设备的输出操作,在输入模式下,8255可以通过端口A、B实现对外围设备的输入操作。

控制口是用来控制8255写作模式或读作状态字,并对端口进行初始化操作。

8255在不同的模式下有不同的编程方法和操作方法,因此需要在实际应用中选择不同的工作模式。

8255有三个I/O端口A、B、C,每个端口都有8位。

这里解释一下控制端口的意义,地址为0B4H的控制端口是连续读或写8255内部状态寄存器的地址,而后面的一个读或写就表示读或写操作的类型,如果该端口被写入了“控制字”则8255按照控制字工作,否则会在该端口读出输入状态字。

在读或写操作的时候向控制端口写入的二进制数在图3-8中给出了。

表3-2:8255访问口定义地址口分类名称端口A0B0H输出Port A输入ControlCout端口Cin端口2.8255的编程方式方式0:即I/O挂接方式,这种方式下A、B、C三个端口为并行I/O口时,其与MCU的接线和编程方式与单片机内部I/O端口的连接和编程方式相同。

方式1:即输入输出口不一样。

在这种片内Ram中的地址空间0~7地址单元内写入相应的端口或方式的控制字后,该8255工作在相应的方式。

即:方式0:读出的是8位端口A的状态,写操作为将数据送到端口A;方式2:是把C口分配为两部分——高4位为输入,低4位为输出,它与方式1类似。

端口C的所有状态和很多控制功能都由C口寄存器存储。

方式2:“端口C字符型输入输出方式”,在这种方式下,端口C的8个位分成两部分,4个位作为输入的,4个位作为输出的。

实验三8255并行接口实验

实验三8255并行接口实验

实验三8255并行接口实验一、实验目的1、学习并掌握8255的工作方式及其应用。

2、掌握8255典型应用电路的接法。

3、掌握程序固化及脱机运行程序的方法。

二、实验设备Pc机一台,TD-PITE实验装置一套。

三、实验内容1、基本输入输出实验。

编写程序,使8255的A口为输入,B口为输出,完成波动开关到数据灯的数据传输。

要求只要开关拨动,数据灯的显示就发生相应改变。

2、流水灯显示实验。

编写程序,使8255的A口和B口均为输出,数据灯D7-D0由左向右,每次仅亮一个灯,循环显示,D15-D8与D7-D0正相反,由右向左,每次仅点亮一个灯,循环显示。

实验原理:并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。

CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。

8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。

8255的内部结构及引脚如图3-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图3-2所示。

图3-1 8255的内部结构和外部引脚(a)工作方式控制字(b)c口按位置位/复位控制字图3-2 8255控制字格式8255实验单元电路图如下图所示:图3-3 8255实验单元电路图实验步骤1. 基本输入输出实验本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。

用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。

实验步骤:(1)实验接线图如图3-4所示,按图连接实验线路图;图3-4 8255基本输入/输出实验接线图实验程序SSTACK SEGMENT STACKDW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODE, SS:SSTACKSTART: MOV DX, 0646HMOV AL, 90HOUT DX, ALAA1: MOV DX, 0640HIN AL, DXCALL DELAYMOV DX, 0642HOUT DX, ALJMP AA1DELAY: PUSH CXMOV CX, 0F00HAA2: PUSH AXPOP AXLOOP AA2POP CXRETCODE ENDSEND START(2)编写实验程序,经编译、连接无误后装入系统;(3)运行程序,改变拨动开关,同时观察LED显示,验证程序功能。

硬件实验八8255输入、输出实验

硬件实验八8255输入、输出实验

硬件实验⼋8255输⼊、输出实验硬件实验⼋ 8255输⼊、输出实验⼀、实验要求利⽤8255可编程并⾏⼝芯⽚,实现输⼊/输出实验,实验中⽤8255PA ⼝作输出,PB ⼝作输⼊。

⼆、实验⽬的1、了解8255芯⽚结构及编程⽅法。

2、了解8255输⼊/输出实验⽅法。

三、实验电路及连线8255的CS/接地址译码/CS0,则命令字地址为8003H 。

PA0-PA7(PA ⼝)接LED0-LED7(LED )、PB0-PB7(PB ⼝)接K0-K7(开关量)。

数据线、读/写控制、地址线、复位信号板上已接好。

四、实验说明可编程通⽤接⼝芯⽚8255A 有3个8位的并⾏I/O ⼝,它有3种⼯作⽅式。

本实验采⽤的是⽅式0:PA ,PC ⼝输出,PB ⼝输⼊,通过对8255A 编程实现将开关状态送发光⼆极管显⽰。

mode equ 0 ; ⽅式0,PA,PC输出,PB输⼊ PortA equ #8000h ; Port A的地址PortB equ #8001h ; Port BPortC equ #8002h ; Port CCAddr equ 8003h ; 控制字地址Org 0ljmp startorg 0100hstart: mov a, #modemov dptr, #CAddrmovx @dptr , a;实验1:通过PortA输出,控制led灯从左到右逐次点亮EX_A:mov a,#80Hmov dptr,#PortAmov b,#8HOutA:movx @dptr ,arr amov r5,#1call delay ; 延时;实验2:通过PortB将开关状态送 PortA 输出EX_B:mov dptr, #PortBmovx a,@dptrmov dptr, #PortAmovx @dptr, amov r5,#2call delayljmp startdelay:mov r7,#0ddd: djnz r7,ddddjnz r6,ddddjnz r5,dddretend硬件实验九外部中断(急救车与交通灯)⼀、实验要求本实验模拟交通信号灯控制,⼀般情况下正常显⽰,有急救车到达时,两个⽅向交通信号灯全红,以便让急救车通过。

微机原理实验报告(8255并口实验)

微机原理实验报告(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显示,验证程序功能。

8255并口实验详解

8255并口实验详解

xxxx大学计算机学院实验报告一、实验内容与要求1.1 实验内容(1)8255方式0实验从8255端口C输入数据,再从端口A输出(2)8255方式1输出实验编程实现每按一次单脉冲按钮产生一个正脉冲,使8255产生一次中断服务:依次输出01H,02H,04H,08H,10H,20H,40H,80H使L0~L7依次发光,中断8次结束。

(3)8255方式1输入实验编程实现:每按一次单脉冲按钮产生一个正脉冲使8255产生一次中断请求,让CPU进行一次中断服务:读取逻辑电平开关预置的ASCII码,在屏幕上显示其对应的字符,中断8次结束。

1.2 实验要求(1)8255方式0实验实验预期效果:拨动逻辑开关,启动程序,开关打开的对应灯可以亮起。

改变开关的状态,灯的亮暗也随之改变。

(2)8255方式1输出实验实验预期效果:按一次单脉冲按钮,L0亮起;以后每按一次,后面的灯依次会亮起。

中断8次结束。

(3)8255方式1输入实验实验预期效果:每按一次单脉冲按钮读取逻辑电平开关预置的ASCII码,在屏幕上显示其对应的字符,中断8次结束。

二、实验原理与硬件连线2.1 实验原理CPU通过指令将控制字写入8255A的控制端口设置它的工作方式。

8255A有两个控制字:方式选择控制字和端口C置位/复位控制字,这两个控制字均写入同一个控制端口地址(端口选择先A1A0=11)8255A有3种工作方式:方式0——基本输入/输出方式;方式1——选通输入/输出方式;方式2——双向传输方式。

方向选择控制字用于设置各端口的工作方式。

方式0称为基本输入/输出方式。

该方式下,端口A、端口B、端口C的高4位和端口C的低4位均可独立地设为输入或输出数据端口。

在方式0时,8255A与CPU时间没有应答联络信号,可用于无条件传送或查询方式数据传送场合。

采用查询方式传送时,可以将端口A、端口B 作为数据端口,用端口C存放外部设备状态信息,用于CPU查询。

方式1称为选通输入/输出方式。

微机接口实验报告8255并口控制器实验

微机接口实验报告8255并口控制器实验

8255并口控制器实验一.实验目的:1,掌握8255的工作方式和应用编程;2,掌握8255的典型应用电路接法。

二.实验设备PC微机一台,TD—PIT+ 实验系统一套。

三.实验内容:编写程序,使8255的A口味输出B口为输入,完成拨动开关到数据等的数据传输。

要求:只要拨动开关,数据灯的现实就会改变。

四.实验原理:并行接口是以数据的字节为单位与I/o设备或被控制对象之间传输信息。

CPU和接口之间的数据传送总是并行的。

8255并行控制器具有ABC三个并行接口,用+5V但电源供电,能在一下三种方式下工作:方式一:基本输入|出方式方式二:选道输入|出方式方式三:双向选项工作方式五.实验步骤:1.确认从PC急引出的两根扁平电缆已经连接在实验平台上。

2.连接实验先例参考下图:3.运行CHECK成功内需,查看I/O空间始地址。

4.利用查出的地址编写程序,然后便于链接。

5.运行程序,拨动开关,看数据灯显示是否正确。

六.编程与调试:1.使用CKECK程序找到IOYO空间始址:DCOOH2.编写程序:IOYO EQU ODCOOHAA EQU IOYO+0*4BB EQU IOYO+1*4CC EQU IOYO+2*4MODE EQU IOYO+1*4STACK1 SEQMENT STACKDW 256 DUP(?)STACK1 ENDSCODE SEQMENTASSUME CS:CODE,SS:STACK1STACK: MOV BX, ODCOOHNEXT: MOV DX, BBIN AL, DXOUT DX, ALMOV AH, 1INT 16HJZ NEXTMOV AH, 40HINT 21HCODE ENDSENDS START3.编译,链接,运行程序七.实验结果:运行程序后,数据灯随着开关的变化而变化,即开关接通时,数据灯亮,开关断开时,数据灯灭。

八.实验总结:通过本次实验,对8255并口控制器有了一定的了解,掌握了掌握8255的工作方式和应用编程,掌握8255的典型应用电路接法。

可编程并行接口8255输入输出实验

可编程并行接口8255输入输出实验

可编程并行接口8255输入输出实验一、实验目的了解可编程并行接口芯片8255的内部结构、工作方式、初始化编程及应用。

二、实验设备(1)PC机一台;(2)QTH-8086B 16位微机教学实验仪一套。

三、8255有关说明1. 8255A的引脚定义D7~D0:三态双向数据线。

/CS:片选信号线,低电平有效。

/RD:读命令信号,低电平有效。

/WR:写入信号线,低电平有效。

Vcc:+5V电源PA7~PA0:A口输入/输出线。

PB7~PB0:B口输入/输出线PC7~PC0:C口输入/输出线A1、A0:地址线,用来选择8255A内部的4个端口。

RESET:复位引脚,高电平有效2.8255A的工作方式方式0:基本输入输出方式方式1:选通输入输出方式方式2:双向选通输入输出方式。

3.8255A的命令字图1 8255的控制字格式图2 8255的C口按位置位复位命令四、线路连接1.实验原理图图3 可编程并行接口8255电路2.实验内容(1) 流水灯实验:利用8255的A口循环点亮发光二极管。

(2) 交通灯实验:利用8255的A口模拟交通信号灯。

(3) I/O输入输出实验:利用8255的A口读取开关状态,8255的B口把状态送发光二极管显示。

3.实验项目1--流水灯实验(1)线路连接该模块的WR、RD分别连到MCU主模块的WR、RD。

该模块的数据(AD0--AD7)、地址线(A0--A7)分别连到MCU主模块的数据(AD0--AD7)、地址线(A0--A7)。

8255模块选通线CE连到MCU主模块的地址A15。

8255的PA0--PA7 连到发光二极管的 L0--L7。

(2)参考程序略4.实验项目2—交通灯实验(1)线路连接该模块的WR、RD分别连到MCU主模块的WR、RD。

该模块的数据(AD0--AD7)、地址线(A0--A7)分别连到MCU主模块的数据(AD0--AD7)、地址线(A0--A7)。

8255模块选通线CE连到MCU主模块的地址A15。

最新微机原理实验8255并行口实验PA输入、PB输出

最新微机原理实验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;--------------------------;在指定的行、列显示英文。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

mov dx, PortC out dx, al shr al, 1 ; 移位
mov ah,100
mov al, mode
mov dx, CAddr out dx, al 出 ; 输出控制字 ;实验1:PortA输
call delay
loop OutA
; 延时
实验2: PortB 输入 PortA 输出; mov dx, PortB in al, dx out dx, al ; 读入PortB mov dx, PortC
end start
实验结束
8255 输入输出实验
实验要求:
利用8255可编程并行口芯片,实现输入/输出
实验,实验中用8255 PA口作输出,PB口作输入。
实验目的:
1、了解8255芯片结构及编程方法。
2、了解8255输入/输出实验方法。
实验说明 :
8255的CS/接地址译码/CS0,则命令字地址为 8003H,PA口地址为8000H,PB口地址为8001H, PC口地址为8002H。PA0-PA7(PA口)接LED0LED7(LED) PB0-PB7(PB口)接K0-K7(开关量)。数 据线、读/写控制、地址线、复位信号板上已接好。 可编程通用接口芯片8255A有三个八位的并行 I/O口,它有三种工作方式。本实验采用的是方式 0:PA,PC口输出,PB口输入。很多I/O实验都可 以通过8255来实现。
delay proc near push ax mov al,0 push cx mov cx,ax
mov dx, PortA
out dx, al mov ah, 200 call delay jmp Start endp ; 输出到PortA
loop $ pop cx pop ax
ret
delay endp code ends
原理图 :
程序框图பைடு நூலகம்:
程序代码 :
mode equ 082h ; 方式0,PA,PC输出,PB输入 PortA equ 8000h ; Port A PortB equ 8001h ; Port B PortC equ 8002h ; Port C CAddr equ 8003h ; 控制字地址 code segment assume cs:code start proc near Start: mov al, 80H mov cx, 08H OutA: mov dx, PortA out dx, al ; 输出PortA
相关文档
最新文档