综合实验七 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口的状态

微机原理与汇编语言_实验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并口实验
实验评价及结论:
实验指导老师签字:年月日
5.8255方式1输出实验:连接PC与TPC-USB平台,用微机实验软件运行程序,手按单脉冲按钮,观察LED 显示电路能依次发光,按8次后,中断结束,程序结束。
6.8255方式1输入实验:连接 PC与B平台,用微机实验软件运行程序,用TPC-USB平台的逻辑电平开关预置一个ASCI码,每按一次单脉冲,屏幕就能显示该ASCI码对应的字符,按8次之后,中断结束,程序结束。
2.要了解8255A并行接口芯片内部结构和外部引脚,理解 8255芯片的工作方式和程序设计方法。
3.熟悉实验平台TPC-USB了解各个接口的名称与功能,进行实验时能快速并正确地连接好实验电路。
4.8255方式0实验一:连接PC与TPC-USB平台,用微机实验软件运行程序,用TPC-USB |平台上的逻辑电平开关与LED 显示电路观察,LED显示的值与逻辑电平开关设的值对应。
二、实验目的:
1.学习并掌握8255的工作方式及其应用。
2.掌握8255典型应用电路的接法。
3.熟悉掌握并行接口芯片8255的基本性能及在实际应用中硬件连接、初始化编程方法。
三、实验步骤:
1.Protues仿真:
A.在Protues中打开设计文档
B.建立实验程序并编译,仿真
C.如不能正常工作,打开调试窗口进行调试
山西大学软件学院
课 程 实 验 报 告
实验课程计算机组成原理
实验名称8255并口实验
实验地点线上
实验时间第十七周
学生班级软件工程1808
学生学号201802810825
学生姓名
指导教师
2020 年 6 月26 日
一、实验要求:
1.具有一定的汇编编程的基础,能编写一些基本语句来实现实验。实验前根据实验流程图,写出对应代码。

综合实验七 8255并口扩展实验

综合实验七 8255并口扩展实验

实验七 8255并口扩展实验一、实验目的1.理解单片机并口编程方法; 2.掌握8255编程方法; 二、实验原理及内容1.实验原理8255资料读者可以参考微机原理相关内容或者参考光盘中的器件资料中的相关文档。

下图是8255在该实验系统的应用。

如图8-9所示,读写信号与单片机的接口如图所示。

A11通过跳线J408作为8255A 的片选信号。

实验系统工作原理:任意按下PA 口的键,对应的PB 发光二极管会亮,直到放下按键,PC 口在该实验系统中没有使用。

RESTRD WR A0A1D0D1D2D3D4D5D6D7A11PB0PB1PB2PB3PB4PB5PB6PB7PA0PA1PA2PA3PA4PA5PA6PA7PC0PC1PC2PC3PC4PC5PC6PC711223344556677Vss 899101011111212131314141515Vdd 16s w 8K401SW8AD0AD1AD2AD3AD4AD5AD6AD7D0D1D2D3D4D5D6D7D03D14D27D38D413D514D617D718OE 1CP 11Q02Q15Q26Q39Q412Q515Q616Q719VCC 20GND 10U40874LS373R4081K R4091K R4101K R4111K R4121K R4131K R4141K R4151KR4161K R4171K R4181K R4191K R4201K R4211K R4221K R4231KVCCPA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7D0D1A0A1GND ALE V401LED V402LED V403LED V404LED V405LED V406LED V407LED V408LED VCCC404104C405104+C40610u R42410KVCCGND D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710RD 5WR 36A09A18RESET 35CS6GND 7VCC26U4078255AS405SW-PB S406SW-PB S407SW-PB S408SW-PB S409SW-PB S410SW-PB S411SW-PB S412SW-PB GNDGND VCCVCCGNDGND612J408CON2R4274.7KVCC图8-9 8255应用原理图2.实验内容1)将扩展板的电源J501与主板的电源接口J2或J14连接起来;将扩展板的信号接口J500与主板的信号接口J15或J13连接起来。

并行IO口8255扩展实验

并行IO口8255扩展实验

并行I/O 口8255扩展实验
一、实验目的
了解8255芯片的结构及编程方法,学习模拟交通灯控制的实现方法。

二、实验内容

8255
1. 因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化情况和规律。

假设一个十字路口为东西南北走向。

初始状态0为东西红灯,南北红灯。

然后转状态1东西绿灯通车,南北红灯。

过一段时间转状态2,东西绿灯灭,黄灯闪烁几次,南北仍然红灯。

再转状态3,南北绿灯通车,东西红灯。

过一段时间转状态4,南北绿灯灭,闪几次黄灯,延时几秒,东西仍然红灯,最后循环至状态1
四、实验程序框图
五、实验原理图
①8255 PC0—PC7、PB0—PB3依次接发光二极管L1—L12。

②以连续方式从0630H开始执行程序,初始态为四个路口的红灯全亮之后,东西路口的绿灯亮南北路口的红灯亮,东西路口方向通车。

延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁。

闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁。

闪烁若干次后,再切换到东西路口方向,之后重复以上过程。

附:实验位置图。

实验七 8255并行IO接口

实验七  8255并行IO接口

实验七8255并行I/O口一、实验目的8255可编程并行I/O接口有三个通道和三种工作方式.其中A,B通道和外设交换数据,C 通道和外设交换状态信息。

8255并行I/O接口与外设交换的方式由软件预先设置,该过程称为初始化.1.学会正确使用8255和CPU及外设的接口方法,2.掌握8255的编程原理,3.熟悉外设的信息通过8255和CPU的交换过程二、实验内容1.用8255的A端口控制8个LED发光二极管的循环亮灭.其硬件线路连接如图4.2所示2.编程:要求通过软件延时程序控制8个指示灯周而复始的循环点亮.3.编程提示8255的控制字如下:Array三、程序框图略四、程序清单;FILENAME:8255.ASM;THIS PROGRAM IS USED FOR TEST OUTPUT OF 8255'S A PORT;NOTICE:;CHIP:8255;CS--Y2(74LS138):210H--217H;PA0--PA7==LEDPORT_8255_A EQU 210HPORT_8255_B EQU 211HPORT_8255_C EQU 212HCONTROL_PORT_8255 EQU 213HDA TA SEGMENT PARA 'DATA'BUFFER DB 100 DUP(?)DA TA ENDSSTACK SEGMENT PARA STACK 'STACK'STA DB 1024 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENT PARA 'CODE'ASSUME CS:CODE,DS:DA TA,SS:STACK,ES:DATA MAIN PROC FARBEGIN:MOV AX,DA TAMOV DS,AXMOV AX,STACKMOV SS,AXMOV SP,TOPMOV DX,CONTROL_PORT_8255MOV AL,10000000B ;A PORT:MODE 0,OUTPUTOUT DX,ALMOV DX,PORT_8255_AMOV AL,0FFHOUT DX,ALMOV AL,0FEHMOV CX,0A0HAGAIN3:OUT DX,ALMOV BX,0A0H ;DELAY TIMEAGAIN2:MOV SI,2FFFHAGAIN1:NOPNOPDEC SIJNZ AGAIN1DEC BXJNZ AGAIN2 ;DELAY TIME ENDSROL AL,1DEC CXJNZ AGAIN3MOV DX,PORT_8255_AMOV AL,0FFH ;CLOSE LEDOUT DX,ALMOV AX,4C00H ;RETURNINT 21H MAIN ENDP CODE ENDSEND BEGIN。

实验七 8255A 并行口实验

实验七  8255A 并行口实验

实验七8255A 并行口实验(二)一、实验目的掌握通过8255A 并行口传输数据的方法,以控制发光二极管的亮与灭。

二、实验内容用8255 做输出口,控制十二个发光管亮灭,模拟交通灯管理。

三、实验程序CODE SEGMENTASSUME CS:CODEIOCONPT EQU 0FF2BH;8255控制口IOAPT EQU 0FF28H;PA口IOBPT EQU 0FF29H;PB口IOCPT EQU 0FF2AH;PC口ORG 11E0HSTART: MOV AL,82H;PB输入,PA,PC输出MOV DX,IOCONPTOUT DX,AL;写命令字MOV DX,IOBPT;读PB口IN AL,DXMOV BYTE PTR DS:[0601H],AL;保存PBMOV DX,IOCONPT;8255控制口MOV AL,80HOUT DX,AL;写命令字,PA,PB,PC输出MOV DX,IOBPTMOV AL,DS:[0601H]OR AL,0F0HOUT DX,AL;将读入的PB状态重新置到PB上MOV DX,IOCPTMOV AL,0F0HOUT DX,AL;四路口红灯全亮CALL DELAY1;延时IOLED0:MOV AL,10100101BMOV DX,IOCPTOUT DX,AL;南北绿灯亮,东西红灯亮;-----------------------------------------------CALL DELAY1;延时CALL DELAY1;延时CALL DELAY1;延时CALL DELAY1;延时CALL DELAY1;延时CALL DELAY1;延时;------------------------此处为南北绿灯亮的时间-------------OR AL,0F0HOUT DX,AL;南北绿灯灭,东西红灯亮MOV CX,8IOLED1:MOV DX,IOBPTMOV AL,DS:[0601H]AND AL,10101111BOUT DX,AL;南北黄灯亮,东西黄灯亮CALL DELAY2;延时 --------------南北黄灯闪烁时间OR AL,01010000BOUT DX,AL;南北黄灯灭,东西黄灯灭CALL DELAY2;延时LOOP IOLED1;南北黄灯闪烁8次MOV DX,IOCPTMOV AL,0F0HOUT DX,AL;四路口红灯全亮;----------------------------------------------------------CALL DELAY2;延时;----------------------此处为四路口红灯全亮时间---------------- MOV AL,01011010BOUT DX,AL;东西绿灯亮,南北红灯亮;---------------------------------------------------------CALL DELAY1;延时CALL DELAY1;延时CALL DELAY1;延时CALL DELAY1;延时CALL DELAY2;延时CALL DELAY2;延时CALL DELAY2;延时CALL DELAY2;延时CALL DELAY2;延时CALL DELAY2;延时CALL DELAY2;延时CALL DELAY2;延时;----------------------此处为东西绿灯亮的时间-----------------------------------OR AL,0F0HOUT DX,AL;东西绿灯灭MOV CX,8IOLED2:MOV DX,IOBPTMOV AL,DS:[0601H]AND AL,01011111BOUT DX,AL;东西黄灯亮,CALL DELAY2;延时 --------------东西黄灯闪烁时间OR AL,10100000BOUT DX,AL;东西黄灯灭,CALL DELAY2;延时LOOP IOLED2;东西黄灯闪烁8次,南北黄灯亦然MOV DX,IOCPTMOV AL,0F0HOUT DX,AL;四路口红灯全亮;---------------------------------------------------------- CALL DELAY2;延时;----------------------此处为四路口红灯全亮时间------------ JMP IOLED0;循环继续DELAY1:PUSH AXPUSH CXMOV CX,0030HDELY2:CALL DELAY2;延时,DELAY1延时是DELAY2的48倍LOOP DELY2POP CXPOP AXRETDELAY2:PUSH CXMOV CX,8000HDELA1:LOOP DELA1POP CXRETCODE ENDSEND START四、实验结果本实验实现了双路口的,交通灯循环。

实验七 8255 并行IO扩展实验

实验七 8255 并行IO扩展实验

实验七8255 并行I/O扩展实验一、实验要求利用8255 可编程并行口芯片,实现输入、输出实验,实验中用8255PA 口作读取开关状态输入,8255PB 口作控制发光二极管输出。

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

2、了解8255 输入、输出实验方法。

三、实验电路及连线1、Proteus 实验电路2、硬件验证实验硬件连接表四、实验说明1、8255A 芯片简介:8255A 可编程外围接口芯片是INTEL 公司生产的通用并行接口芯片,它具有A、B、C 三个并行接口,用+5V 单电源供电,能在以下三种方式下工作:方式0:基本输入/ 输出方式方式l:选通输入/ 输出方式方式2:双向选通工作方式2、使8255A 端口A 工作在方式0 并作为输入口,读取Kl-K8 个开关量,PB 口工作在方式0作为输出口。

五、实验程序流程图六、实验步骤1、Proteus 仿真a.在Proteus 中打开设计文档8255_STM.DSN;b.建立实验程序并编译,仿真;c.如不能正常工作,打开调试窗口进行调试。

参考程序:CODE SEGMENTASSUME CS:CODEIOCON EQU 8006HIOA EQU 8000HIOB EQU 8002HIOC EQU 8004H START:MOV AL,90HMOV DX,IOCONOUT DX,ALNOPSTART1:NOPNOPMOV AL,0MOV DX,IOAIN AL,DXNOPNOPMOV DX,IOBOUT DX,ALJMP START1 CODE ENDSEND START2、实验板验证a.通过USB 线连接实验箱b.按连接表连接电路c.运行PROTEUS 仿真,检查验证结果。

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

实验七 8255并口扩展实验
一、实验目的
1.理解单片机并口编程方法; 2.掌握8255编程方法; 二、实验原理及内容
1.实验原理
8255资料读者可以参考微机原理相关内容或者参考光盘中的器件资料中的相关文档。

下图是8255在该实验系统的应用。

如图8-9所示,读写信号与单片机的接口如图所示。

A11通过跳线J408作为8255A 的片选信号。

实验系统工作原理:任意按下PA 口的键,对应的PB 发光二极管会亮,直到放下按键,PC 口在该实验系统中没有使用。

REST
RD WR A0A1D0D1D2D3D4D5D6D7A11
PB0PB1PB2PB3PB4PB5PB6PB7PA0PA1PA2PA3PA4PA5PA6PA7PC0PC1PC2PC3PC4PC5PC6PC7
11223344556677Vss 8
9910
1011111212131314141515Vdd 16s w 8
K401
SW8
AD0AD1AD2AD3AD4AD5AD6AD7
D0D1
D2D3D4D5
D6
D7
D03D14D27D38D413D514D617D7
18OE 1CP 11
Q02Q15Q26Q39Q412Q515Q616Q7
19VCC 20GND 10
U408
74LS373
R4081K R4091K R4101K R4111K R4121K R4131K R4141K R415
1K
R4161K R4171K R4181K R4191K R4201K R4211K R4221K R4231K
VCC
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PB0PB1PB2
PB3PB4
PB5
PB6PB7
D0D1A0A1GND ALE V401LED V402LED V403LED V404LED V405LED V406LED V407LED V408LED VCC
C404104
C405104
+
C40610u R42410K
VCC
GND D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC7
10RD 5WR 36A09A18RESET 35CS
6
GND 7VCC
26
U4078255A
S405
SW-PB S406
SW-PB S407
SW-PB S408
SW-PB S409
SW-PB S410
SW-PB S411
SW-PB S412
SW-PB GND
GND VCC
VCC
GND
GND
6
1
2J408CON2
R4274.7K
VCC
图8-9 8255应用原理图
2.实验内容
1)将扩展板的电源J501与主板的电源接口J2或J14连接起来;将扩展板的信号接口J500与主板的信号接口J15或J13连接起来。

2)在keil编程环境下编写程序,完成实验功能要求能任意按下PA口键,对应的PB口的LED
灯亮。

3)编译生成HEX文件,将HEX文件下载到实验系统中,调试程序。

三、实验例程
//PA口输入,8255驱动B口LED发光
#include <reg51.h>
#include <absacc.h>
#define COM8255 XBYTE[0x8003] /*命令口地址*/
#define PA8255 XBYTE[0x8000] /*口A地址*/
#define PB8255 XBYTE[0x8001] /*口B地址*/
#define PC8255 XBYTE[0x8002] /*口C地址*/
void delay(unsigned int j)
{ while(j--); }
void main(void)
{ COM8255=0x90; /*输出方式选择命令字--A口输入,B口输出*/ while(1)
{
PB8255 = PA8255;
delay(1000);
}
}
四、实验仪器和设备
Keil软件;AT89S52实验平台;ISP在线编程软件;仿真器。

五、实验结果和数据分析
问题:
修改程序按下PA口的键盘对应PB口的灯熄灭。

相关文档
最新文档