8255和led数码管显示-微机原理(精)
微机原理8255实验报告

四、 实验过程中遇到的问题:在第一次编写完成后,我们调试失败了,通 过检查,发现程序有一个指令编写错误,纠正后,程序仍然编译失败, 连续好几次都没有成功,后来通过向同学请教,发现我们在改正之前没 有进行复位,导致错误没有纠正,按照正确的过程改正后,终于调试成 功了,我们看到随着电脑屏幕上的程序一条条执行,LED 灯准确地将开 关的状态输出,实验终于成功了。
微机原理与接口技术实验报告
姓名
学号
专业年级
实验题目
8255 并行接口实验
实验目的 实验内容
通过实验了解 8255 的工作原理,并在实验中熟悉 8255 的初始化编程,巩固学
习的理论知识,将理论转化为实践。
实验题 1 编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。即当 开关 ki 置于 L 时,对应发光二极管 LEDi 点亮;置于 H 时熄灭
实验题 2 编写程序,使得当开关 k1 置于 L 时,LED1~LED2 皆亮; k1 置于 H 时, LED1~LED2 皆灭
实验分析
一、首先按照以下的实验连线将电路连接好: CS8255 CS0 PA0~PA1 开关 K1~K2 PB0~PB1 发光二极管 LED1~LED2
二、(打开实验箱电源)PC 机运行 8086 调试软件 TECH86---串口 COM3 或 COM4—PREST 键 编辑程序,单步运行,调试程序 调试通过后,全速运行程序,观看实验结果
start
实验二:
assume cs:code
code segment public
org
微机原理8255A并行接口按键数码管显示讨论报告

讨论课报告学校:上海电机学院 班级:电子13XX 学号:XXXXXXXX 姓名:WX一、题目:通过8255A 并行接口,8086CPU 连接LED 数码管、4X4矩阵键盘。
按下任意键,数码管显示对应键号。
二、硬件设计讨论问题:(1)CPU8086与8255A 的连接问题:● 复用引脚上的数据信号与地址信号如何分离?画出电路连接示意图,解释实现的方法。
答:将8086上的20位复用数据地址引脚分别接数据缓存器和地址锁存器在8086总线周期的T1期间作为存储器/IO 地址总线将地址锁存在地址锁存器中,另外期间作为数据总线将8位数据缓存在数据缓存器中。
缓存器与8255A 数据引脚相连,地址锁存后经过译码与地址线相连。
● 假设8255A 的芯片地址范围为80H~86H (偶地址),利用74LS138译码器实现8255A 芯DENDT/R8086AB/TBALEM/IO WRRD数据缓存 地址锁存地址译码D7~D0A0 A18255A CS WR RDA15~A3A1 A2片的片选控制,画出电路连接示意图,解释译码电路的设计原理。
8086系统有16根数据线,而8255A 只有8根数据线,将8255A 的8条数据线与低8位数据线相连。
此时8255A 的4个端口地址必须为偶地址,即8086寻址8255A 时A0脚必须为低,将8255A 的A0、A1分别接8086的A1、A2脚。
由图可见,8255A 的数据线D7~D0与8086的低8位数据总线D7~D0相连,A0必须总等于0,用地址线的A2、A1来选择片内4个端口。
图中地址线A7接译码器的G1,M/IO 与G2a 相连,A6、A5接或门输入端,或门输出与G2b 相连。
当A7A6A5=100,A4A3A0=000时,Y0=0,选中8255A ,4个端口地址分别为80H 、82H 、84H 和86H ,对应于8255A 的A 口、B 口、C 口和控制寄存器。
(2)LED 数码管与8255A 的连接问题: ● 数码管采用共阴极连接,需要驱动电路,请画出与8255APA 口的连接示意图,简要说明。
微机原理8255的应用

微机原理8255的应用1. 简介本文档将介绍微机原理中的8255芯片的应用及其相关知识。
8255是一款常用的并行输入输出(PIO)芯片,广泛应用于微机原理的实验和应用中。
本文将从以下几个方面进行介绍:1.8255芯片的功能及特点2.8255芯片的引脚功能3.8255芯片的工作原理4.8255芯片的应用案例2. 8255芯片的功能及特点8255芯片是一种通用的并行输入输出接口芯片,可以提供多种不同的I/O操作模式。
其主要功能如下:•提供三个8位的I/O端口A、B和C,可以通过编程定义其为输入或输出端口。
•支持模式0、模式1和模式2三种工作模式,可以通过编程控制选择不同的模式。
•可以通过编程设置端口的工作模式和数据传输方式。
•可以通过编程控制和操作I/O端口的数据。
8255芯片的主要特点如下:•低功耗设计,适合在嵌入式系统中使用。
•高可靠性和稳定性,能够在不同环境下正常工作。
•兼容性强,可以与多种微处理器和控制器连接使用。
3. 8255芯片的引脚功能8255芯片共有40个引脚,每个引脚的功能如下:•一号引脚(VCC):芯片的供电电源。
•二号引脚(GND):芯片的接地引脚。
•三号引脚(A0)至四号引脚(A1):用于编程选择工作模式。
•五号引脚(CS):芯片的片选引脚,通过将其接地来选择芯片。
•六号引脚(RD):读取端口数据的引脚。
•七号引脚(WR):写入端口数据的引脚。
•八号引脚(RESET):芯片的复位引脚。
•九号引脚至十六号引脚(PA0至PA7):端口A的数据线。
•十七号引脚至二十四引脚(PB0至PB7):端口B的数据线。
•二十五号引脚至三十二号引脚(PC0至PC7):端口C的数据线。
4. 8255芯片的工作原理8255芯片是通过控制寄存器对其进行编程来实现不同功能的。
通过编程控制控制寄存器的值,可以选择端口的工作模式、数据传输方式等。
8255芯片的工作原理如下:1.初始化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并行接口流水灯实验 实验时间:2009.12班级: 姓名: 学号:一、实 验 目 的:(1)掌握8255的工作方式及应用编程。
(2)掌握8255的典型应用电路接法。
二、实 验 设备:PC 机一台,实验箱及外部线路一套。
三、实验内容:编写程序,使8255的A 口作为LED 灯的输出,实现8位数据灯的相对循环显示。
(思考:用B 口的一位作为输入,控制LED 灯的循环方向。
)四、实 验 原理:INTEL8255是一种通用的可编程并行I /O 接口芯片,是专为INTEL 公司的微处理器设计的,也可用于其它系列的微型机系统中。
利用8086汇编指令系统,编制初始化程序,可以变更8255 的工作方式,通用性强,使用灵活。
8255具有3个带锁存或缓冲的数据端口,它的并行数据宽度为8位。
可与外设并行进行数据交换。
A 口和B 口内具有中断控制逻辑,在外设与CPU 之间可用中断方式进行信息交换。
8255能与许多外部设备连接,例如:键盘、显示器、打印机等。
1、8255芯片特性(1)一个并行输入/输出的LSI 芯片,多功能的I/O 器件,可作为CPU 总线与外围的接口.(2)具有24个可编程设置的I/O 口,即使3组8位的I/O 口为PA 口,PB 口和PC 口.它们又可分为两组12位的I/O 口,A 组包括A 口及C 口(高4位,PC4~PC7),B 组包括B 口及C 口(低4位,PC0~PC3).A 组可设置为基本的I/O 口,闪控(STROBE)的I/O 闪控式,双向I/O3种模式。
2、8255引脚功能RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O 口均被置成输入方式。
CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU 进行通讯;/CS=1时,8255无法与CPU 做数据传输.RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU 发送数据或状态信息,即CPU 从8255读取信息或数据。
微机原理 LED灯实验

实验5 可编程并行接口8255芯片一.实验目的1.了解8255芯片的结构和功能2.掌握8255初始化程序的设计方法3.学会8255和CPU信号的连接方法4.重点掌握方式0的控制字和A,B,C端口的使用二.实验内容1.实验4的第3个内容用8255方式0实现,其中A口输入,B口输出DATA SEGMENTLED DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HIOA EQU 200HIOB EQU 202HIOC EQU 206HIOCON EQU 206HDATA ENDSCODE SEGMENT PUBLICASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DX,AXMOV DX,IOCONMOV AL,10010000BOUT DX,ALMOV BX,OFFSET LEDREP1:MOV DX,IOBMOV AL,0C0HOUT DX,ALMOV AL,01HMOV SI,1MOV CX,10LOP1:READ1:MOV DX,IOAIN AL,DXTEST AL,01HJNZ READ1READ2:MOV DX,IOAIN AL,DXTEST AL,01HJZ READ2MOV AX,SIXLATMOV DX,IOBOUT DX,ALINC SILOOP LOP1JMP REP1CODE ENDSEND START实验结果为按一下按钮,数码管跳变一次,从1到9,到9后再按输出0,循环下去。
2.完成8255方式1选通式查询输出,要求采用查询式输出,不断检测输出缓冲区满信号OBF,当OBF为高电平时,轮流电亮8个LED灯。
DATA SEGMENTORG 0100HLED DB 01HIOA EQU 200HIOB EQU 202HIOC EQU 204HIOCON EQU 206HDATA ENDSCODE SEGMENT PUBLICASSUME CS:CODE,DS:DATA START:MOV AX,DATAMOV DS,AXMOV DX,IOCONMOV AL,10100000BOUT DX,ALNEXT:MOV DX,IOAMOV AL,LEDOUT DX,ALMOV DX,IOAWAIT_A:MOV DX,IOCIN AL,DXTEST AL,10000000BJZ WAIT_AROL LED,1CALL DELAYJMP NEXTDELAY PROC NEARPUSH BXPUSH CXMOV BX,200LP1:MOV CX,496LP2:LOOP LP2DEC BXJNZ LP1POP CXPOP BXRETDELAY ENDPCODE ENDSEND START实验结果为按一次按钮,LED灯从左到右点亮一盏,如果按住按钮不松开,则LED 灯自动从左向右循环点亮。
微机原理 8255输入

微机原理 8255输入、输出实验一、实验目的1、了解8255芯片结构及接口方式2、掌握8255输入、输出的编程方法二、实验说明了解用到的芯片引脚及功能:8255是可编程的并行输入/输出接口芯片,通用性强且使用灵活。
8255按功能可分为三个部分,即:总线接口电路,口电路和控制逻辑电路。
1、口电路:8255共有三个八位口,其中A 口和B 口是单纯的数据口,供数据I/O 口使用。
2、总线接口电路:它用于实现8255和单片机芯片的信号连接。
(1)CS ——片选信号。
(2)RD (3)WR(4)A0、A1——端口选择信号。
8255共有四个可寻址的端口,用二位编码可以实现。
3、控制逻辑电路:它是控制寄存器,用于存放各口的工作方式控制字。
本实验是利用8255可编程并行口芯片,实现数据的输入、输出。
可编程通用接口芯片8255A 有三个八位的并行的I/O 口,它有三种工作方式。
本实验采用的方式为0:PA 口输出,PB 口输入。
工作方式0是一种基本的输入输出方式。
在这种方式下,三个端口都可以由程序设置为输入或输出,其基本功能可概括如下:1、可具有两个八位端口(A 、B )和两个4位端口(C 口的上半部分和下半部)。
2、数据输出时可锁存,输入时没有锁存功能。
本实验中,8255的端口地址由单片机的P2.0、P2.1和P2.7控制。
控制口的地址为7FFFH ;A 口的地址为7CFFH ;B 口的地址为7DFFH ;C 口的地址为7EFFH 。
三、实验步骤实验 (一): PA 口作为输出口。
1、用8P 数据线连接单片机最小应用系统1模块的 P0口到8255I/O 扩展模块的D0~8255的引脚图74LS373的引脚图D7口,连接8255I/O扩展模块的PA0~PA7到八位逻辑电平显示模块的D0-D7口,用二号导线分别连接单片机最小应用系统1模块的P2.0、P2.1、P2.7、RD、WR到8255I/O扩展模块的A0、A1、CS、RD、WR,连接8255I/O扩展模块的RESET口到复位模块的复位口。
8255实验-微机原理与接口技术

实验线路连接
(1) 8255A芯片PC0~ PC7插孔依次接K1~ K8。
(2) 8255A芯片PB0~PB7插孔依次接L1 ~ L8。
(3) 8255A的CS插孔CS-8255接译码输出Y7插
孔。
要求: ① 读懂系统程序中有关 8255A 的部分。
包括:端口地址、初始化编程、 二极管发光情况与开关状态间的对应关系
并使其根据开关 K1~ K8 的状态发光。 · 以 K8 作为总开关,
若 K8打开(0),则 L1~ L8同时熄灭; 若 K8闭和(1),则 L1~ L7由K1~ K7控 制。
IOCONPT EQU 0073H IOCPT EQU 0072H IOBPT EQU 0071H IOAPT EQU 0070H
② 执行程序,并进行观察,记录。 PC 口 8 位接 8 个开关 K1~ K8 , PB 口 8 位接 8 个 LED 发光二极管 L1~ L8 , 并使其根据开关 K1~ K8 的状态发光。
③ 改变电路接法并修改程序,要求实现:
· PA 口 8 位接 8 个开关 K1~ K8 ,
PB 口 8 位接 8 个发光二极管 L1~ L8
IOLED: CALL FORMAT CALL LEDDISP
MOV AL,90H B口输出
;10010000 写方式控制字 方式0 A口输入
MOV DX,IOCONPT
OUT P
IOLED1: MOV DX,IOAPT
IN AL,DX
MOV DX,IOBPT
OUT DX,AL
并行接口 8255 的应用
1、实验目的 掌握8255A和微机接口方法。 掌握8255A的工作方式和编程原理。
2、实验内容
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
data segment
ioport equ 2400h
io8255a equ ioport+008h
io8255b equ ioport+00bh
led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh mesg1 db 0dh,0ah,'Input a num (0--9h:',0dh,0ah, '$' data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov dx,io8255b ; 使 8255的 A 口为输出方式mov al,80h ;10000000B ,控制字 PA 以方式 0输出out dx,al
zby: mov dx,offset mesg1 ; 显示提示信息
mov ah,09h
int 21h
mov ah,01 ; 从键盘接收字符
int 21h
cmp al,'0' ; 是否小于 0
jl exit ; 如若小于 0,则跳转到 exit 退出程序
cmp al,'9' ; 是否大于 9
jg exit ; 如若大于 9,则跳转到 exit 退出程序
sub al,30h ; 将所得字符的 ASCII 码减 30H ,数字键 ascii 码同数值转换 mov bx,offset led ;bx 为数码表的起始地址
xlat ; 求出相应的段码
mov dx,io8255a ; 从 8255的 A 口输出
out dx,al
jmp zby ; 转 zby
exit: mov ah,4ch ; 返回 DOS
int 21h
code ends
end start
动态显示 :
data segment
ioport equ 0c800h-0280h
io8255a equ ioport+28ah
io8255b equ ioport+28bh
io8255c equ ioport+288h
led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ; 段码buffer1 db 5,6 ; 存放要显示的个位和十位
bz dw ? ; 位码
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov dx,io8255b ; 将 8255设为 A 口输出
mov al,80h ;10000000B ,控制字 PA 以方式 0输出 out dx,al mov di,offset buffer1 ; 设 di 为显示缓冲区
loop2: mov bh,02
zby: mov byte ptr bz,bh
push di
dec di
add di, bz
mov bl,[di] ;bl 为要显示的数
pop di
mov al,0
mov dx,io8255a
out dx,al
mov bh,0
mov si,offset led ; 置 led 数码表偏移地址为 SI add si,bx ; 求出对应的 led 数码mov al,byte ptr [si]
mov dx,io8255c ; 自 8255A 的口输出
out dx,al
mov al,byte ptr bz ; 使相应的数码管亮
mov dx,io8255a
out dx,al
mov cx,3000
delay: loop delay ; 延时
mov bh,byte ptr bz
shr bh,1
jnz zby
mov dx,0ffh
mov ah,06
int 21h
je loop2 ; 有键按下则退出mov dx,io8255a
mov al,0 ; 关掉数码管显示out dx,al
mov ah,4ch ; 返回
int 21h
code ends
end start。