实验5(8255并行接口键盘及显示实验)

合集下载

8255并行口实验

8255并行口实验
以前在单片机基础实验中做过LED显示实验和数码管显示实验,所以这两个实验比较好做。在第二个实验中,分别置全开和全关时想用这些代码实现
JZ NEXT
MOV AL,00H
NEXT:MOVAL,0FFH

结果无论开关是否闭合,全都不亮,后来发现只需在中间加上个跳转语句就行了。
实验程序如下
附录
实验题1:
ASSUME CS:CODE学号
113200880200057
专业年级
电子信息工程2008级
实验题目
8255并行口实验
实验目的
1、掌握可编程并行接口8255的初始化及其应用
2、掌握汇编语言源程序的设计方法
实验内容
实验内容1:8255A的A口作为输入口,与逻辑电平开关K1~K8相连。8255A的B口作为输出口,与发光二极管LED1~LED8相连。编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。即当开关ki置于L时,对应发光二极管LEDi点亮;置于H时熄灭。
TEST AL,01H;测试PA0的状态
JZ NEXT;PA0为0则跳转
MOV AL,00H;否则全亮
JMP LOOP2
NEXT:MOV AL,0FFH;置全灭
LOOP2:MOV DX,04A2H
OUT DX,AL;输出,控制灯的开关
JMP LOOP1
CODE ENDS
END START
CODE SEGMENT PUBLIC
ORG 100H
START:MOVAL,10010000B
MOV DX,04A6H
OUT DX,AL;送出8255的控制字
LOOP1:MOV DX,04A0H
IN AL,DX;读入A口的状态

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称为选通输入/输出方式。

微机原理与汇编语言_实验7_8255并行接口实验

微机原理与汇编语言_实验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并行输入输出

实验六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秒。

实验五 8255A 并行口实验

实验五  8255A 并行口实验

实验五8255A 并行口实验(一)一、实验目的⒈掌握8255A 和微机接口方法。

⒉掌握8255A 的工作方式和编程原理。

二、实验内容用8255PA 口控制PB 口。

三、实验程序原程序CODE SEGMENTASSUME CS:CODEIOCONPT EQU 0FF2BHIOBPT EQU 0FF29HIOAPT EQU 0FF28HORG 11B0HSTART: MOV AL,90HMOV DX,IOCONPTOUT DX,ALNOPNOPNOPIOLED1:MOV DX,IOAPTIN AL,DXMOV DX,IOBPTOUT DX,ALMOV CX,0FFFFHDELAY: LOOP DELAYJMP IOLED1CODE ENDSEND START逻辑或CODE SEGMENTASSUME CS:CODEIOCONPT EQU 0FF2BHIOBPT EQU 0FF29HIOAPT EQU 0FF28HORG 11B0HSTART: MOV AL,90HMOV DX,IOCONPTOUT DX,ALNOPNOPNOPIOLED1:MOV DX,IOAPTIN AL,DXand AL,00000011Bjz LP1JNZ lp2LP1:MOV DX,IOBPTMOV AL,0ffhOUT DX,ALMOV CX,0FFFFHDELAY: LOOP DELAYJMP IOLED1lp2:mov DX,IOBPTMOV AL,0FEHout DX,ALMOV CX,0FFFFHLOOP DELAYJMP IOLED1CODE ENDSEND START流水灯DA TA SEGMENTX DB 10 DUP (?)Y DB 10 DUP (?)SUM DB ?DA TA ENDSSTACK SEGMENTSTA DB 20 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,SS:STACK,ES:DA TA IOCONPT EQU 0FF2BHIOBPT EQU 0FF29HIOAPT EQU 0FF28HORG 11B0HSTART: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AX; MOV SI,OFFSET X; MOV CL,01H; MOV [SUM],CLMOV AL,90HMOV DX,IOCONPTOUT DX,ALNOPNOPNOPIOLED1:MOV AL,11111110BMOV DL,ALLP1:MOV DX,IOBPTOUT DX,ALMOV CL,1ROL AL,CLMOV CX,000FFHDL Y:LOOP DL YMOV CX,0FFFFHDELAY: LOOP DELAYJMP LP1CODE ENDSEND START四、实验结果原程序,k1,到k8分别控制L1到L8,当开关置低,灯亮逻辑或,K1和K2同时置高,K1置高K2置低和K1置低K2置高时灯亮,同时置低灯灭。

8255并口实验

8255并口实验

8255并口实验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 FORMA TCALL 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+DA TA1]MOV DX,DA TAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LED1LED2: RETFORMA T: MOV BX,0MOV WORD PTR DS:[BX+0500H],4006HADD BX,2MOV WORD PTR DS:[BX+0500H],4040HADD BX,2MOV WORD PTR DS:[BX+0500H],6D6DHADD BX,2MOV WORD PTR DS:[BX+0500H],7F5BHRETCODE ENDSEND START8255A并行口实验(二)目的掌握通过8255A并行口传输数据的方法,以控制发光二极管的亮与灭。

微机原理实验五-8255输入输出实验

微机原理实验五-8255输入输出实验

微机原理实验五-8255输入输出实验一、实验要求:南昌大学实验报告利用8255可编程并行口芯片,实现输入/输出,实验中用8255PA口作输出,PB口作输入。

二、实验目的:(1)了解8255芯片结构及编程方法。

(2)了解8255输入/输出实验方法。

三、实验器材:(1)G2022实验平台1台(2)G6W仿真器1台(3)连线若干根(4)8255芯片1片(5)LAB8088CPU板1块四、实验电路:8255的/CS接译码器Y2(0A000H-0AFFFH),则命令字地址为0A003H,PA口地址为0A000H,PB口地址为0B001H,PC口地址为0B002H。

PA0-PA7(PA口)接L0-L7(LED发光二极管组),PB0-PB7(PB口)接K0-K7(K0-K7开关量发生器),再接上数据线和读/写信号,地址线只接A0,A1即可,还要接上RESET信号,以便8255A可靠复位。

特别强调:8255的第七脚应接GND(地),第二十六脚应接+5V。

五、实验说明:可编程通用接口芯片8255A有三个八位的并行I/O口,它有三种工作方式。

本实验采用的是方式0:PA,PC口输出,PB口输入。

方式字为82H。

六、实验步骤:(1)使用实验平台锁进插座,如图连线,因8255片选信号为0A000H,所以,A口为0A000H、口为0A001H、C口为0A002H、命令口为0A003H。

(2)硬件测试:把G2022+G6W连PC机,在WINDOWS调试环境下点击[窗口/数据窗口/MEMORY],以打开MEMORY数据窗口,在打开的MEMORY窗口中的0A003H地址(即8255的片选空间)上写入控制字82H,在0A000H (8255的A口)上打入55H,0AAH等数字,LED发光二极管组对应点亮。

若不是,则硬件有问题。

(3)编写程序、编译程序,用单步、断点、连续方式调试程序,排除软件错误。

运行程序,直至达到本实验的要求为止。

8255A可编程并行接口实验

8255A可编程并行接口实验

实验八8255A可编程并行接口实验一、实验项目用8255A可编程并行接口芯片,重复实验四的内容。

PA口作为显示输出口,PB口作为开关量输入口。

二、实验目的1.了解8255A芯片的结构及编程方法2.掌握通过8255A并行接口读取开关数据的方法三、实验原理设置好8255A各端口的工作模式:三个端口都工作于方式0,PA口作为显示输出口,PB口作为开关量输入口。

四、实验连线8255A的PA0PA7接发光二极管L1L8,PB0PB7接开关K1K8,片选信号CS8255接CS0。

五、实验电路六、程序框图七、参考程序CSEG AT 0000HLJMP START开始置控制字从B通道读入开关状态从A通道输出到发光二极管延时一段时间.23.CSEG AT 4100HPA EQU 0CFA0HPB EQU HPCTL EQU HSTART: MOV DPTR, #PCTL ;置8255A控制字,A、B、C口均工作MOV A, # H ;方式0,A、C口为输出,B口为输入MOVX @DPTR, ALOOP: MOV DPTR, #PB ;从B口读入开关状态值MOVX A,MOV DPTR, #PA ;从A口将状态值输出显示MOVX , AMOV R7, #10H ;延时DEL0: MOV R6, #0FFHDEL1: DJNZ R6,DJNZ R7,LJMP LOOPEND八、问题思考试分析改置8255A控制字,A、B、C口工作方式1,B、C口为输出,A口为输入,可不可以。

.24.。

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

8255接口键盘及显示综合设计实验 (曹建文 2009年10月10日) 一、实验目的 1、掌握8255的工作方式及应用编程。 2、自行设计、制作和连接基于8255并行接口的键盘及显示实验电路。 3、实现扫描式矩阵键盘的功能和作用。

二、实验设备 PC机1台,TD-PIT实验台1台,实验元器件若干。 三、实验内容 1、使用8255实现键盘按键和七段LED数码显示管显示功能。 2、根据实验要求自行设计实验线路图,制作和焊接实验电路板和实验元器件。 3、按照实验要求和实验电路图编写实验程序,使得按下不同的数字按键后数码管显示相应的数字值(4位数码管)。 4、按照实验要求设计和编写实验程序,实现普通计算器的加/减法功能。

四、实验原理 1、8255结构及原理 并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。8255的内部结构及引脚如图-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图-2所示。

图-1: 8255内部结构及引脚图 (a)工作方式控制字 (b)c口按位置位/复位控制字 图-2: 8255控制字格式

(1)8255的内部结构 如图-1所示,8255的内部结构由以下4个部分组成: (1)输入/输出端口A、B、C 。这三个端口均可看作是I/O端口,但它们的结构和功能也稍有不同。A口和B口是一个独立的8位I/O口。C口可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O口。 (2)A组和B组控制电路。这是两组根据CPU命令控制8255工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255的工作方式,也可以根据编程命令来对C口的指定位进行置位/复位的操作。A组控制电路用来控制A口及C口的高4位;B组控制电路用来控制B口及C口的低4位。 (3)读/写控制逻辑。它负责管理8255的数据传输过程,接收CS及RD、WR、RESET,还有来自系统地址总线的口地址选择信号A0和A1。将这些信号组合后,得到对A组控制部件和B组控制部件的控制命令,并将命令发给这两个部件,以完成对数据、状态信息和控制信息的传输。 (4)数据总线缓冲器。它是8位双向三态缓冲器,作为8255和CPU之间的数据接口,进行数据的输入/输出。CPU的编程命令以及外设通过8255传送的工作状态等信息,都是通过它来传输的。一般情况下数据总线缓冲器的8根数据线D7~D0是与8086CPU低8位数据线相连。 (2)8255的引脚信号 图-1所示为8255芯片引脚信号。除了电源和接地以外,其他信号可以分为两组: (1)和外设相连的: PA7-PA0:A组数据信号 PB7-PB0:B组数据信号 PC7-PC0:C组数据信号 (2)和CPU相连的: RESET:复位信号,低电平有效。 当RESET信号来到时,所有内部寄存器就被清除,同时,3个数据端口被自动设为输入端口。 D7-D0:它们是8255的数据线,和系统数据总线相连。 CS:芯片选择信号,低电平有效。在一个系统中,一般根据全部接口芯片来分配若干较低位地址(比如A5、A4、A3)来组成各种芯片选择码,当这几位地址组成某一个代码时,译码器便往8255的CS端输出一个低电平,于是8255被选中。只有当 CS有效时,读信号RD和写信号WR才对8255有效。 RD:芯片读出信号,低电平有效。 WR:芯片写入信号,低电平有效。 A1、A0:端口选择信号。8255内部有3个数据端口和一个控制端口,共四个端口。规定当A1、A0为00时,选中A端口;为01时,选中B端口;为10时,选中C端口;为11时,选中控制口。 8255的几个控制信号和传输动作之间的关系如下表所示:

8255的控制信号与传输动作的对应关系 CS A1 A0 RD WR 传输 说明

0 0 0 0 1 数据从端口A送数据总线

0 0 1 0 1 数据从端口B送数据总线

0 1 0 0 1 数据从端口C送数据总线

0 0 0 1 0 数据从数据总线送端口A

0 0 1 1 0 数据从数据总线送端口B

0 1 0 1 0 数据从数据总线送端口C

0 1 1 1 0 如果D7为1,则由数据总线往控制寄存器写入控制字;如果D7为0,则由数据总线输入的数据作为对C端口的置1、置0命令。

1 X X X X D7~D0进入高阻状态

0 1 1 0 1 非法的信号组合

0 X X 1 1 D7~D0进入高阻状态

(3)8255的控制字 图-2为8255工作方式控制字和C口按位置位/复位控制字格式。其中: (1)工作方式控制字。8255有三种工作方式:方式0、方式1、方式2。两组端口可分别指定不同的工作方式,每组端口在某种工作方式下,并不要求各信号同为输入或同为输出,而是可以分别指定。 (2)C口控制字。C口的各信号线常作为控制线来使用,因此,经常需要单独对每根信号线置1或置0。这种操作用是通过向C口控制字寄存器送出C口控制字来实现的。应用时注意:C口控制字虽然是对端口C操作,但在写入控制字时应是对控制端口地址写入,而不是写入到C数据端口。 编程举例:设A数据口地址为00E0H,B数据口地址为00E2H,C数据口地址为00E4H,控制口为00E6H 例1:当要求端口A工作在方式0,输出;端口B工作在方式1,输入;端口C的高4位为输入,低4位为输出;则方式控制字为 10001110B或8EH。 汇编指令如下: MOV DX,00E4H MOV AL,8EH OUT DX,AL 例2:当要求端口A工作在方式1,输入;端口B工作在方式0,输入;端口C的高4位为输出,低4位为输出;则方式控制字为 10110010B或0B2H。 汇编指令如下: MOV DX,00E4H MOV AL,0B2H OUT DX,AL 例3:对C7置1,则控制字为 00001111B或0FH。 汇编指令如下: MOV DX,00E4H MOV AL,0FH OUT DX,AL

2、扫描键盘基本工作原理

3、LED数码管结构及工作原理 五、实验说明及主要步骤 本实验是利用可编程8255并行接口实现与扫描式矩阵键盘及数码管的连接,并显示按键的值,实现普通计算器加/减法功能。具体内容:(1)设计和制作基于8255并行接口的矩阵键盘及数码管连接电路,根据要求编写实验程序,扫描键盘输入(即按下不同键值),并将扫描键盘(按键)结果送数码管显示。(2)按照普通计算器工作方式,将8个键盘按键分别定义为“1~4数字值”及“+”、“-”、“=”、“清零”等功能键,实现1~4以内数字的“1位加/减法”运算。 实验接线图如图-3所示(学生应设计画出详细的电路图,以便制作电路板)。图中用并 行接口8255A作为微机与键盘间的接口,采用逐行扫描法识别键盘。将键盘的列与PA0—PA3相连,A口为输出;将行与C口的PC0—PC1相连,C口为输入口; PB0—PB7与七段数码显示管连接,B口为输出。程序执行过程如下:识别是否有键按下,方法是使PA0一PA3输出为全0,读C口值(行值),其中只要有一位为0,就说明有键按下 ,在检测到有键按下后,延迟一段时间,根据找到的键号,转去执行七段数码显示管显示程序,这时七段数码显示管就显示与该键相同的数值。

图-3:8255接口键盘及显示原理图 主要实验步骤如下: 1、根据图-4所示的电路设计和画出具体的实验电路图,绘制和制作实验电路板,焊接实验元器件。 2、参考给定的程序流程图,编写实验程序,检查无误后进行汇编、连接,并生存可执行文件。 3、在TD-PIT实验台上,按图-5所示实验参考接线图连接好线路,打开实验台电源,运行执行文件,按动键盘,观察数码管显示结果是否正确。 4、上述实验正确完成后,将自制的实验电路板接入TD-PIT实验台中(注意应正确连接),重复步骤3的内容,观察是否得到正确的实验结果。 5、修改实验程序,重新定义实验板上的键盘按键,使键盘和显示能按照普通4位计算器方式工作,并能进行1~4以内数字的“1位加/减法”操作。 6、详细记录全部实验过程、步骤和实验结果。

六、实验报告及要求 本实验完成后按如下要求和格式撰写实验报告,并分别提交电子文档和纸质打印文档的实验报告各1份。 图-4:8255并行接口键盘及显示电路图

123456ABCD654321DCBATitle

NumberRevisionSizeBDate:18-Sep-2009Sheet of File:D:\新建文件夹\RTU\zhsy1.ddbDrawn By:

....74LS0774LS07

4.7k*8

4.7K4.7K

+5V...+5V

...ABCDEFGDP

Y1Y2X1X2X3X4

01234567

PA31PA22PA13PA04/RD5/CS6GND7A18A09PC710PC611PC512PC413PC014PC115PC216PC317PB018PB119PB2208255PB321PB422PB523PB624PB725VCC26D727D628D529D430D331D232D133D034RESET35/WR36PA737PA638PA539PA4401234567891011121314A1A2A3A4A5A6Y1Y2Y3Y4Y5Y6VCC

GND74LS07

相关文档
最新文档