8255流水灯实验
实验三 8255_1_输入_输出实验报告
实验三开关量输入与显示
一、实验要求
编写程序,通过8255的A口读取开关的状态,并在C口所连接的LED灯上显示出来。
二、实验目的
通过使8255读取开关量,进一步掌握8255的编程方法。
三、连接图
图1
四、实验程序框图
五实验过程及步骤
1 按实验要求连接线,将K1~K8连PA0~PA7,PC0~PC7连DL1~DL8,CS连200~207H。
连线结果如上图1所示。
2 对8255进行初始化:方式控制字为90h
3 读入A口状态:
mov dx,200h
in al,dx
4 写入C口
not al
mov dx,202h
out dx,al
5延迟代码段
mov cx,0fffh
lop:loop lop ;延迟,便于观察实验现象
6 运行程序,观察实验结果。
并改变开关的状态,再运行,观察不同开关状态下,LED灯的亮灭情况。
六实验结果
开关打开,相应的LED灯会亮;开关关闭,相应的LED会熄灭。
实验源代码
code segment
assume cs:code
start:
mov dx,203h;对8255进行初始化
mov al,90h
out dx,al
gg:
mov dx,200h ;写入A口
in al,dx
not al
mov dx,202h ;从C口输出
out dx,al
mov cx,0fffh
lop:loop lop ;延迟,便于观察实验现象
jmp gg
code ends
end start。
微机原理与接口技术控制流水灯
微机原理与接口技术控制流水灯一、实验目的:掌握汇编语言设计和调试方法。
二、实验要求:利用8253、8255、8259三块芯片相接实现流水灯。
三、芯片介绍:1、intel8253是NMOS工艺制成的可编程计数器/定时器,有几种芯片型号,外形引脚及功能都是兼容的,只是工作的最高计数速率有所差异,例如8253(2.6MHz),8253-5(5MHz) 8253内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全相同。
每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立。
每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GA TE,另一个为输出端OUT。
每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。
执行部件实际上是一个16位的减法计数器,它的起始值就是初值寄存器的值,而初始值寄存器的值是通过程序设置的。
输出锁存器的值是通过程序设置的。
输出锁存器OL用来锁存计数执行部件CE的内容,从而使CPU可以对此进行读操作。
顺便提一下,CR、CE和OL都是16位寄存器,但是也可以作8位寄存器来用。
2、8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。
同时必须具有与外设连接的接口A、B、C口。
由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。
1)与CPU连接部分根据定义,8255能并行传送8位数据,所以其数据线为8根D0~D7。
由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0~A1。
此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。
各信号的引脚编号如下:(1)数据总线DB:编号为D0~D7,用于8255与CPU传送8位数据。
利用8255A实现LED的流水点亮实验
outdx,al
;-
movdx,211h
moval,00000000b
outdx,al
movdx,210h
moval,40h
outdx,al
movdx,211h
moval,00000010b
outdx,al
;A
movdx,211h
moval,00000000b
outdx,al
moval,7fh
outdx,al
movdx,211h
moval,00100000b
outdx,al
;2
movdx,211h
moval,00000000b
outdx,al
movdx,210h
moval,5bh
outdx,al
movdx,211h
moval,00010000b
outdx,al
;5
movdx,211h
movdx,210h
moval,77h
outdx,al
movdx,211h
moval,00000001b
outdx,al
loop lp ;转至lp
jmplop ;跳至lop
hlt ;使处理器处于暂时停机状态.
codeends
end start
在数码管上显示“8255-A”。
三、实验分析
实验要求利用8255芯片8个开关来控制8个LED灯的开关。我们在课堂上学过8255有ABC三个口,可以输入和输入。因此首先可以想到的就是,把PA口A0-A7接8个波动开关K1-K7,并将A口调整为读入。同时将A口读入的信号用B口输出,这样就可以通过拨动开关来控制LED灯的明灭。为了让灯亮的时间足够人眼分辨出来,需要在程序里加入延时语句,其中加零语句就可以实现延时。
微机实验 可编程并行接口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流水灯实验报告
《微机系统与接口技术》预习报告学院:计算机学院专业:网络工程班级学号:学生姓名:小发实验日期:指导老师:成绩评定:五邑大学计算机学院制表一,实验目的1,学习并掌握8255 的工作方式及其应用。
2,掌握 8255 典型应用电路的接法。
3,掌握程序固化及脱机运行程序的方法。
二,实验设备PC机器一台,TD-PITE实验装置或TD-PITC实验装置一套三,实验内容1,基本输入输出实验。
编写程序,使 8255 的 A 口为输入,B 口为输出,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就发生相应改变。
2,流水灯显示实验。
编写程序,使 8255 的 A 口和 B 口均为输出,数据灯 D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~D8 与 D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。
四实验内容及步骤1. 基本输入输出实验本实验使 8255 端口 A 工作在方式 0 并作为输入口,端口 B 工作在方式 0 并作为输出口。
实验接线图如图 6 所示,按图连接实验线路图。
用一组开关信号接入端口 A,端口 B 输出线接至一组数据灯上,然后通过对 8255 芯片编程来实现输入输出功能。
具体步骤如下述:(1)实验接线图如图 1-4所示,按图连接实验线路图。
(2)编写实验程序,经编译、连接无误后装入系统。
(3)运行程序,改变拨动开关,同时观察 LED 显示,验证程序功能。
(4)点击“调试”下拉菜单中的“固化程序”项,将程序固化到系统存储器中。
(5)将短路跳线 JDBG 的短路块短接到 RUN 端,然后按复位按键,观察程序是否正常运行;关闭实验箱电源,稍等后再次打开电源,看固化的程序是否运行,验证程序功能。
(6)实验完毕后,请将短路跳线 JDBG 的短路块短接到 DBG 端。
图1-4 8255基本输入输出实验接线图实验程序清单(A82551.ASM)SSTACK SEGMENT STACKDW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: 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流水灯显示实验:使 8255 的 A 口和 B 口均为输出,数据灯 D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~D8 与 D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。
(完整word版)利用8255A芯片实现流水灯闪烁设计
目录摘要··2第1章利用8255A芯片实现流水灯闪烁设计的概述··2第2章三种方案的论述与最终方案的确定··22.1 第一种方案的论述··22.2 第二种方案的论述··52.3 第三种方案(最终方案)的论证··10第3章测试结果及体会心得··13第4章致谢··14第5章参考文献··14附录1 方案一Proteus仿真电路效果图··15附录2 方案一源程序代码··16附录3 方案二Proteus仿真电路效果图··18附录4 方案二源程序代码··19附录5 方案三(最终方案)Proteus仿真电路效果图··20附录6 方案三(最终方案)源程序代码··21摘要:8255A是一种通用的可编程并行I/O接口芯片(Programmable Peripherial Interface),它是为Inter系列微处理器设计的配套电路,也可用于其它微处理器系统中。
通过对它进行编程,芯片可工作于不同的工作方式。
此次课程设计的目的就是利用端口和8255协同工作来实现LED 显示功能,对8255A芯片进行编程使流水灯左移或右移,通过延时程序使流水灯进行顺序点亮。
通过这次课程设计掌握8255A的功能特点、工作原理以及显示器接口的基本原理与方法技术。
关键词:8086芯片AT89C51单片机8255A芯片LED流水灯第1章利用8255A芯片实现流水灯闪烁设计的概述流水灯在日常的生活中有着广泛的应用,例如,许多楼面上的彩灯广告就是应用了流水灯设计。
此次的课程设计的题目是利用了端口和8255A协同工作来实现LED显示功能,编写程序,使用8255的A口和B口均为输出,接8个或16个发光二极管,实现流水灯的显示效果。
微机实验-流水灯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读取信息或数据。
8255LED流水灯控制
8255LED流水灯控制实验四8255led流水灯控制实验一、实验目的1、认识8255接口芯片、学习其在微机系统中的应用;2、学习8255编程原理;3.掌握LED水灯的汇编语言编程方法。
2、实验仪器1、dj-598kc开发系统1台2、pc机1台三、实验内容1.8086实验箱主系统电路组成★该流水灯系统采用8255芯片扩展连接“led灯”模块。
★ 测试仪包括12个发光二极管和相应的驱动电路,如下图所示。
LED控制信号输入端子l1-l12。
当输入端为低电平“0”时,LED点亮,否则LED熄灭。
2、8255编程要点指南8255是一种通用可编程并行接口芯片。
它提供三个I/O端口。
每个端口都可以编程以多种方式工作。
它广泛应用于中小型系统。
其组成结构如下图所示。
★三个i/o口,分别是pa口、pb口和pc口。
每个口提供八根数据线,如pa口线(pa0~pa7),用于连接外设。
★ dB、CB和ab总线用于连接三条CPU总线,dB用于接收来自CPU的控制命令字或数据,CB用于选择8255数据端口的读写操作,ab用于选择读写哪个端口。
★a组和b组控制电路用于编程控制pa口、pb口和pc口的工作方式选择。
见下图控制命令字格式。
如果端口a的模式0用于控制LED灯,则控制字为1000000B=80h。
★编程控制方法a、将控制命令字设置为使端口a在模式0下工作-将控制命令字写入控制端口。
b、输出要点亮的LED数据——将照明数据写入端口A。
c.8255基地址为0ff28h,则a口地址0ff28h,b口地址0ff29h,c口地址0ff2ah,控制口地址0ff2bh。
3.实验系统的建设和使用a.键盘显示器设置:jk开关置“系统”处,进入监控状态。
c、电路连接:8255A芯片a口pa0-pa7依次连接ll-l8,B口pb0-pb3依次连接l9-l12。
d.接通实验仪电源,+5vled指示灯正常发光,实验仪数码管显示闪动p.,说明实验仪初始化成功,处于待命状态。
利用8255A芯片实现流水灯闪烁设计
目录摘要 (2)第1章利用8255A芯片实现流水灯闪烁设计的概述 (2)第2章三种方案的论述与最终方案的确定 (2)2.1第一种方案的论述 (2)2.2第二种方案的论述 (5)2.3第三种方案(最终方案)的论证 (10)第3章测试结果及体会心得 (13)第4章致谢 (14)第5章参考文献 (14)附录1 方案一Proteus仿真电路效果图 (15)附录2 方案一源程序代码 (16)附录3 方案二Proteus仿真电路效果图 (18)附录4 方案二源程序代码 (19)附录5 方案三(最终方案)Proteus仿真电路效果图 (20)附录6 方案三(最终方案)源程序代码 (21)摘要:8255A是一种通用的可编程并行I/O接口芯片(Programmable Peripherial Interface),它是为Inter系列微处理器设计的配套电路,也可用于其它微处理器系统中。
通过对它进行编程,芯片可工作于不同的工作方式。
此次课程设计的目的就是利用端口和8255协同工作来实现LED显示功能,对8255A芯片进行编程使流水灯左移或右移,通过延时程序使流水灯进行顺序点亮。
通过这次课程设计掌握8255A的功能特点、工作原理以及显示器接口的基本原理与方法技术。
关键词:8086芯片AT89C51单片机8255A芯片LED流水灯第1章利用8255A芯片实现流水灯闪烁设计的概述流水灯在日常的生活中有着广泛的应用,例如,许多楼面上的彩灯广告就是应用了流水灯设计。
此次的课程设计的题目是利用了端口和8255A协同工作来实现LED显示功能,编写程序,使用8255的A口和B口均为输出,接8个或16个发光二极管,实现流水灯的显示效果。
在实验中8255A的A和B两个端口不能同时赋值,从而我们可以用通用寄存器BX对所需要赋值的数据进行存储,因为BX可以分从高8位寄存器BH和低8位寄存器BL两部分进行独立的操作,我们用寄存器BH对A口进行赋值,用寄存器BL对B口进行赋值,通过延时一段时间再对BH 和BL进行移位和输出,实现了流水灯的效果。
8255并行口实验实验报告
8255并行口实验实验报告作者:一、实验目的掌握8255A的编程原理。
二、实验设备CPU挂箱、8086CPU模块。
三、实验内容8255A 的A 口作为输入口,与逻辑电平开关相连。
8255A的B 口作为输出口,与发光二极管相连。
编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。
四、实验原理介绍本实验用到两部分电路:开关量输入输出电路和8255可编程并口电路。
五、实验步骤1、实验接线CS0 CS8255;PA0〜PA7 平推开关的输出K1〜K8;PBL PB7发光二极管的输入LED〜LED82、编程并全速或单步运行。
3、全速运行时拨动开关,观察发光二极管的变化。
当开关某位置于L 时,对应的发光二极管点亮,置于H时熄灭。
六、实验提示实验也是如此。
实验中,8255A工作于基本8255A是比较常用的一种并行接口芯片,其特点在许多教科书中均有介绍。
8255A 有三个8位的输入输出端口,通常将A端口作为输入用,B端口start: mov作为输出用,C 端口作为辅助控制用,本输入输出方式(方式0)。
七、 实验结果程序全速运行后,逻辑电平开关的状态改变应能在 LED 上显示出来。
例如:K2置于L 位置,则对应的LED2应该点亮。
八、 程序框图(实验程序名:)九、程序源代码清单:codesegme nt movpublicax,90h ;设置为A 口输入,B 口输出assume cs:code dx,04a6h ;控制寄存器地址org 100hout dx,axadd:mov al,Ofehstart1:mov dx,04a2h 芯片的入口地址out dx,almov bl,almov dx ,04a0hin al,dxtest ax,01hjz strat2mov al ,blrol al,1 流水灯循环左移mov bl,almovcx,3000h设置cx为灯闪烁时间对应的循环次数loop addjmp start1 无条件跳转至start1 strat2:mov al,blmov dx,04a2hout dx,alror al,1 流水灯循环左移mov bl, almov cx,3000hadd1:loop addjmp start 无条件跳转至startcode endsend start十、实验总结通过该实验,掌握了8255A的编程原理,学会了用汇编语言来编写程序控制8255A进行流水灯的操作实验。
8255并行接口流水灯显示实验
※※※※※※※※※※※※※※※※※※※※※※※※微机原理课程设计报告书课题名称 8255 并行接口流水灯显示实验姓名学号院、系、部物理与电信工程系专业指导教师一、设计任务及要求:设计任务:流水灯显示实验。
编写程序,使8255 的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。
要求:指导教师签名:2009年6月8日二、指导教师评语:指导教师签名:2009 年6月8 日三、成绩验收盖章2009年6 月8日8255 并行接口流水灯显示实验一、设计目的1. 学习并掌握8255 的工作方式及其应用;2. 掌握8255 典型应用电路的接法。
二、设计要求流水灯显示实验。
编写程序,使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 的内部结构及引脚如图2-6-1 所示,8255工作方式控制字和C口按位置位/复位控制字格式如图2-6-2所示图2-6-1 8255内部结构及外部引脚图(a)工作方式控制字(b)C口按位置位/复位控制字图2-6-2 8255控制字格式图2-6-5 8255流水灯实验接线图四、使用说明使8255的A口和B口均为输出,数据灯D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~D8 与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。
可编程并行接口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。
微机原理实验报告
微机原理实验报告微机原理实验报告班级:自动化72组员梁慕佳 07054031张乐 07054033张林鹏 07054034实验一:8255 并行接口实验1 实验目的1. 学习并掌握8255 的工作方式及其应用;2. 掌握8255 典型应用电路的接法。
2 实验设备PC机一台,TD-PITE 实验装置一套。
3 实验内容1. 基本输入输出实验。
编写程序,使8255 的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就发生相应改变。
2. 流水灯显示实验。
编写程序,使8255 的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。
4 实验原理并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位或32 位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O 接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。
8255的内部结构及引脚如图2-6-1 所示,8255工作方式控制字和C口按位置位/复位控制字格式如图2-6-2所示。
图2-6-1 8255内部结构及外部引脚图图2-6-2 8255控制字格式5 实验步骤1. 基本输入输出实验本实验使8255 端口A工作在方式0 并作为输入口,端口B工作在方式0 并作为输出口。
用一组开关信号接入端口A,端口B 输出线接至一组数据灯上,然后通过对8255 芯片编程来实现输入输出功能。
具体实验步骤如下述:(1)实验接线图如图2-6-3所示,按图连接实验线路图;(2)编写实验程序,经编译、连接无误后装入系统;(3)运行程序,改变拨动开关,同时观察LED 显示,验证程序功能。
微机原理可编程并行接口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
单片机流水灯实验报告
单片机流水灯实验报告一、实验目的1、熟练掌握AT89S52-?型开发板的使用方法和注意事项。
2、了解简单单片机应用系统的设计方法。
3、掌握应用KEIL软件编辑、编译源汇编程序的操作方法。
4、掌握应用USBISP烧录软件的操作方法。
5、帮助学生养成良好实验习惯。
二、实验内容在AT89S52-?开发板上实现8个发光LED“流水”的现象,并通过编写程序控制流水现象。
三、实验说明当8255 的PA口有低电平输出时,相应的发光二极管就会点亮。
应用这一原理我们可以容易的点亮一个数码管,例如令PA口输出0111 1111时D1就会点亮。
若再把0111 1111向右循环一位,利用PA口输出,就会点亮D2。
在发光二极管两次点亮的间隔中加延时程序,让每次点亮停留一段时间,像这样人眼就可以看到“流水” 的现象。
五、实验原理图六、实验参考程序#include<reg52.h>#define uchar unsigned charships of 72 and a half the Harbour, like room Tao Yuan. Triangle at the cemetery (Shanghai, Nanjing and Hangzhou), and the small triangle (Soviet Union, Ka, Lake) where the hinterland, at the junction of Jiangsu, East, South and west sides respectively, and jiaxing in Zhejiang Province, Wuzhen, Nanxun town and connected. After the liberation, 17 townships, Yan Tomb, provided there is a town, District Administration had in town. A unique geographical environment, has become the military's battleground. On November 5, 1937, Japan 10th army landed in Hangzhou Bay, North Bay, on November 12, Shanghai fell. Part of the Japanese army to the North along the flood of jiaxing railway, Jiujiang road, invaded Wu Jiang. On November 18, the Japanese army occupied Wujiang city. Stationed in Wujiang's#define uint unsigned intuchar table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; sbit P00=P0^0;sbit P01=P0^1;void delay(uchar t) {uchar i,j;for(i=0;i<t;i++)for(j=0;j<110;j++); }void main(){uchar i;while(1){P00=1;delay(2000);P00=0;for(i=0;i<8;i++){P1=table[i];P2=table[i];delay(2000);}P01=1;delay(2000);P01=0;}}实物展示:ships of 72 and a half the Harbour, like room Tao Yuan. Triangle at the cemetery (Shanghai, Nanjing and Hangzhou), and the small triangle (Soviet Union, Ka, Lake) where the hinterland, at the junction of Jiangsu, East, South and west sides respectively, and jiaxing in Zhejiang Province, Wuzhen, Nanxun town and connected. After the liberation, 17 townships, Yan Tomb, provided there is a town, District Administration had in town. A unique geographical environment, has become the military's battleground. On November 5, 1937, Japan 10th army landed in Hangzhou Bay, North Bay, on November 12, Shanghai fell. Part of the Japanese army to the North along the flood of jiaxing railway, Jiujiang road, invaded Wu Jiang. On November 18, the Japanese army occupied Wujiang city. Stationed in Wujiang's(1)单片机最小系统板(2)自己焊制的集成最小系统板ships of 72 and a half the Harbour, like room Tao Yuan. Triangle at the cemetery (Shanghai, Nanjing and Hangzhou), and the small triangle (Soviet Union, Ka, Lake) where the hinterland, at the junction of Jiangsu, East, South and west sides respectively, and jiaxing in Zhejiang Province, Wuzhen, Nanxun town and connected. After the liberation, 17 townships, Yan Tomb, provided there is a town, District Administration had in town. A unique geographical environment, has become the military's battleground. On November 5, 1937, Japan 10th army landed in Hangzhou Bay, North Bay, on November 12, Shanghai fell. Part of the Japanese army to the North along the flood of jiaxing railway, Jiujiang road, invaded Wu Jiang. On November 18, the Japanese army occupied Wujiang city. Stationed in Wujiang's(3)自己制作的心形流水灯实验板(4)系统板与实验板的连接展示ships of 72 and a half the Harbour, like room Tao Yuan. Triangle at the cemetery (Shanghai, Nanjing and Hangzhou), and the small triangle (Soviet Union, Ka, Lake) where the hinterland, at the junction of Jiangsu, East, South and west sides respectively, and jiaxing in Zhejiang Province, Wuzhen, Nanxun town and connected. After theliberation, 17 townships, Yan Tomb, provided there is a town, District Administration had in town. A unique geographical environment, has become the military's battleground. On November 5, 1937, Japan 10th army landed in Hangzhou Bay, North Bay, on November 12, Shanghai fell. Part of the Japanese army to the North along the flood of jiaxing railway, Jiujiang road, invaded Wu Jiang. On November 18, the Japanese army occupied Wujiang city. Stationed in Wujiang'sships of 72 and a half the Harbour, like room Tao Yuan. Triangle at the cemetery (Shanghai, Nanjing and Hangzhou), and the small triangle (Soviet Union, Ka, Lake) where the hinterland, at the junction of Jiangsu, East, South and west sides respectively, and jiaxing in Zhejiang Province, Wuzhen, Nanxun town and connected. After the liberation, 17 townships, Yan Tomb, provided there is a town, District Administration had in town. A unique geographical environment, has become the military's battleground. On November 5, 1937, Japan 10th army landed in Hangzhou Bay, North Bay, on November 12, Shanghai fell. Part of the Japanese army to the North along the flood of jiaxing railway, Jiujiang road, invaded Wu Jiang. On November 18, the Japanese army occupied Wujiang city. Stationed in Wujiang's(5)环形流水灯效果展示2011年12月15日ships of 72 and a half the Harbour, like room Tao Yuan. Triangle at the cemetery (Shanghai, Nanjing and Hangzhou), and the small triangle(Soviet Union, Ka, Lake) where the hinterland, at the junction of Jiangsu, East, South and west sides respectively, and jiaxing in Zhejiang Province, Wuzhen, Nanxun town and connected. After the liberation, 17 townships, Yan Tomb, provided there is a town, District Administration had in town. A unique geographical environment, has become the military's battleground. On November 5, 1937, Japan 10th army landed in Hangzhou Bay, North Bay, on November 12, Shanghai fell. Part of the Japanese army to the North along the flood of jiaxing railway, Jiujiang road, invaded Wu Jiang. On November 18, the Japanese army occupied Wujiang city. Stationed in Wujiang's。
微机流水灯实验
深圳大学实验报告课程名称:微机原理及应用实验实验项目名称:可编程并行接口8255 实验学院:专业:应用物理指导教师:报告人:学号:班级:实验时间:实验报告提交时间:教务处制一、实验名称:可编程并行接口 8255 实验二、实验目的了解可编程并行接口芯片8255 的内部结构、工作方式、初始化编程及应用。
三、实验内容(1) 流水灯实验:利用8255 的A 口循环点亮发光二极管。
(2) I/O 输入输出实验:利用8255 的A 口读取开关状态,8255 的B 口把状态送发光二极管显示。
图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) 实验连线该模块的WR、RD 分别连到MCU 主模块的WR、RD。
该模块的数据(AD0~AD7)、地址线(A0~A7)分别连到MCU 主模块的数据(AD0~AD7)、地址线(A0~A7)。
8255 模块选通线CE 连到MCU 主模块的地址A15。
8255 的PA0~PA7 接开关K0~K7,8255 的PB0~PB7 接发光二极管L0~L7。
图3 I/O 输入输出实验(2) 运行程序,拨动开关,观察发光二极管。
8255流水灯实验
1)设计题目分析编写程序,使用8255的A口和B口均为输出,实现16位流水灯显示效果2)功能扩展i:将流水灯设计成可以正着流水,也可以倒着流水ii:通过开关对流水灯闪烁的速度进行控制,高电平时为快,低电平时为慢速2)总体方案设计分析要求用8255的A口和B口做为输出,接16个发光二极管,从而实现16位流水灯的显示效果,基本的界限可如下图A所示,在C口的地两位接两个开关,实现两个扩展功能的控制。
i:基本流水灯显示电路A口和B口两个端口不能同时复制,从而在试验中可以用BX进行需要复制的数据的存储,因为BX可以分从BH BL两个部分进行独立的操作,在本次试验中用BH对A口进行赋值,用BL对B口进行赋值,通过演示一段时间再对BH BL 进行移位和输出,实现流水灯的效果。
ii:正反方向选择把PC.0口接在开关上,编写程序对C端口的数据进行读取,并进行判断,使得当PC.0为高电平的时候则灯进行左移,同时B口与A口相反。
iii:快慢速度控制把PC.1口接在开关上,编写程序对C端口的数据进行读取,并进行判断,使得当PC.1为高电平的时候则延时的时间缩短,使得流水灯的流水速度加快,低电平的时候则进行延时的时间变长,使得流水灯的流水速度加快。
3硬件原理设计A该模块的WR.RD分别练到PC总线接口模块的XIOW和XIORB该模块的数据(AD0~AD7)、地址线(A0~A7)分别连到PC总线接口模块的数据(D0~D7)、地址线(A0~A7)C 8255模块选通线CA连到PC总线接口模块的IOY3D 8255的PA0~PA7连到发光二极管的L1~L8;8255的PB0~PB7连到发光二极管的L9~L16E 8255的PC0 PC1分别练到开关K0 K1F 软件流程框图及程序清单程序代码MY8255_A EQU 09860HMY8255_B EQU 09861HMY8255_C EQU 09862HMY8255_MODE EQU 09863HCODE SEGMENTASSUME CS:CODESTART:MOV DX,MY8255_MODEMOV AL,81H ;设置A口、B口方式0输出,C口低四位方式0输出OUT DX,ALMOV CL,0XOR BX,BX ;将BX清零MOV DX,MY8255_BMOV AL,0FEHMOV BL,ALOUT DX,ALMOV DX,MY8255_AMOV AL,7FHMOV BH,ALOUT DX,AL ;对A口、B口赋值,并将值保存在BH BL中A1:ROL BL,1ROR BH,1 ;对BH BL做出相应的移位A3:PUSH BX ;保护现场CALL BREAK ;调用任意键退出程序CALL DELAY ;调用延时程序POP BX ;恢复现场MOV DX,MY8255_AMOV AL,BHOUT DX,ALMOV DX,MY8255_BMOV AL,BLOUT DX,AL ;将移位后的结果输出MOV DX,MY8255_CIN AL,DX ;将C都的数据输入AND AL,01H ;查看PC0口是否有数据输入,改变流水灯的方向JNZ A2 ;结果不全为0,则跳转JMP A1A2:ROL BH,1ROR BL,1JMP A3DELAY PROC NEAR ;延时程序MOV CX,0FFFHK1:MOV BX,0FFFHK2:DEC BXCMP BX,1000HJNE K2MOV DX,MY8255_CIN AL,DX ;将C口的数据输入AND AL,02H ;查看PC1是否有输入,改变延时,使得延时的时间变快JNZ K3 结果不全为0.则跳转LOOP K1K3:RETDELAY ENDPBREAK PROC NEAR ;按任意键退出MOV AH,06HMOV DL,0FFHINT 21HJE RETURNMOV AX,4C00HINT 21HRETURN:RETBREAK ENDPCODE ENDSEND START取反输出SSTACK SEGMENT STACKDW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV DX, 0646HMOV AL, 90HOUT DX, ALAA1: MOV DX, 0640HIN AL, DXCALL DELAYMOV DX, 0642Hnot ALOUT DX, ALJMP AA1 DELAY: PUSH CXMOV CX,0F00H AA2: PUSH AXPOP AXLOOP AA2POP CXRETCODE ENDSEND START流水灯两边向中间显示SSTACK SEGMENT STACKDW 32 DUP(?) SSTACK ENDSCODE SEGMENTASSUME CS:CODE START: MOV DX, 0646HMOV AL, 80HOUT DX, ALMOV BX, 8001HAA1: MOV DX, 0640HMOV AL, BLOUT DX, ALROL BL, 1MOV DX, 0642HMOV AL, BHOUT DX, ALROR BH, 1CALL DELAYCALL DELAYJMP AA1 DELAY: PUSH CXMOV CX, 08F00H AA2: PUSH AXPOP AXLOOP AA2POP CXRETCODE ENDSEND START4)实验心得:写过基本输出输入之后,对本实验只是有个大概了解,直到真正懂也花了很长时间,接着做流水灯闪烁效果时,开始混乱,有很多代码不懂,后来通过问同学,问老师,自己不断地思考、理解,对不懂的代码进行注释,终于克服了代码。
微机原理第三次实验实验3 8255A并行口实验(一)
实验38255A并行口实验(一)一、实验目的1.了解实验箱的组成及实验系统软件的使用。
2.掌握8255A的工作方式、编程原理和与微机的接口方法。
二、实验内容用8255PA口控制PB口。
三、实验接线图四、编程指南⒈8255A芯片简介: 8255A可编程外围接口芯片是INTEL公司生产的通用并行接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0:基本输入/ 输出方式方式l:选通输入/ 输出方式方式2:双向选通工作方式⒉使8255A端口A工作在方式0并作为输入口,读取Kl-K8个开关量,PB 口工作在方式0作为输出口。
8255端口地址见第一章表“I/O地址分配(二)”五、实验程序框图六、实验步骤1 8255A芯片A口的PA0-PA7依次和开关量输入Kl-K8相连。
2 8255A芯片B口的PB0-PB7依次接Ll-L8。
3 运行实验程序。
七、思考题1 由8255PA口接发光二极管,PB口接开关,该如何编程?CODE SEGMENTASSUME CS:CODEORG 1000HSTART:JMP STARTOPA EQU 0FF28HPB EQU 0FF29HCTL EQU 0FF2BHSTARTO:MOV DX,0FF2BHMOV AL,10000010BOUT DX,ALTEST_IT:MOV DX,0FF29HIN AL,DXMOV DX,0FF28HOUT DX,ALJMP TEST_ITCODE ENDSEND START2 由8255控制发光二极管顺序循环点亮,即“流水灯”过程,该如何编程?3 利用8255在方式0下工作,令其在PB1和PB2产生如图所示的波形,试编程实现。
(将图中的延时时间单位为ms的地方均改为s)CODE SEGMENTASSUME CS:CODEORG 1000HSTART:JMP STARTOPA EQU 0FF28HPB EQU 0FF29HCTL EQU 0FF2BHSTARTO:MOV DX,0FF2BHMOV AL,10010000BOUT DX,ALTEST_IT:MOV DX,0FF28HIN AL,DXMOV DX,0FF29HOUT DX,ALJMP TEST_ITCODE ENDSEND STARTCODE SEGMENT ASSUME CS:CODEORG 1000H START:JMP STARTO PA EQU 0FF28HPB EQU 0FF29H CTL EQU 0FF2BHSTARTO: MOV DX,0FF2BHMOV AL,10010000BOUT DX,ALMOV AL,11111110B MOV DX,0FF29H TEST_IT: OUT DX,AL DELAY:MOV CX,60000LP2:PUSHFPOPFLOOP LP2ROL AL,1JMP TEST_ITCODE ENDSEND START。
《微机系统与接口技术》8255流水灯实验报告
微机系统与接口技术:8255流水灯实验报告实验目的本次实验的目的是加深对8255芯片的理解,掌握8255口的输入、输出和中断原理,在此基础上,实现8255流水灯的控制。
实验原理8255芯片8255是一个可编程的并行输入 / 输出设备,拥有三个可编程I / O端口(Port A,Port B和Port C)。
篮牙分别对应着六个可用的I / O线路。
8255芯片可通过编程来设置8255设备的I / O方式,实现不同的应用。
8255芯片也支持中断请求(IRQ)和中断响应(IRQACK)。
流水灯流水灯是一种LED应用,即多个LED依次熄灭和点亮,形成一个具有动态效果同的图形。
在此次实验中,我们将通过8255口控制流水灯的状态,从而实现LED的流动效果。
实验步骤硬件实现本实验用到的硬件包括:8255芯片、LED灯、电路图板、电缆和电源。
在构建电路时,请按照以下步骤操作:1.首先,将8255芯片插入电路图板上的8255插槽中。
注意芯片的方向应该正确,否则芯片可能会被损坏。
2.将三个分别对应Port A, Port B和Port C的引脚与相应的电路元件进行连接。
在此,我们需要连接6个灯泡和6个电阻,其中每个电阻都应与一个电源连接。
3.最后,将电源输入并连接到电路图板,并打开电源。
软件实现为了控制流水灯的状态,我们将使用汇编程序编写代码,在8255口上进行读/写操作。
具体步骤如下:1.设置8255口的方式。
在此处,我们需要将8255口设置为模式0,即所有口都是单向的,其中Port A和Port B都是输出口,Port C则是输入口。
2.将Port A设为11111111。
这将设置第一个LED灯亮起。
3.然后,依次将Port A的状态更改为10111111,10011111,10001111等,以便LED灯以递减的顺序熄灭。
4.最后,在将Port A的状态设置为00000000之后,程序跳转到开始执行第二个LED的流动。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1)设计题目分析
编写程序,使用8255的A口和B口均为输出,实现16位流水灯显示效果
2)功能扩展
i:将流水灯设计成可以正着流水,也可以倒着流水
ii:通过开关对流水灯闪烁的速度进行控制,高电平时为快,低电平时为慢速2)总体方案设计分析
要求用8255的A口和B口做为输出,接16个发光二极管,从而实现16位流水灯的显示效果,基本的界限可如下图A所示,在C口的地两位接两个开关,实现两个扩展功能的控制。
i:基本流水灯显示电路
A口和B口两个端口不能同时复制,从而在试验中可以用BX进行需要复制的数据的存储,因为BX可以分从BH BL两个部分进行独立的操作,在本次试验中用BH对A口进行赋值,用BL对B口进行赋值,通过演示一段时间再对BH BL 进行移位和输出,实现流水灯的效果。
ii:正反方向选择
把PC.0口接在开关上,编写程序对C端口的数据进行读取,并进行判断,使得当PC.0为高电平的时候则灯进行左移,同时B口与A口相反。
iii:快慢速度控制
把PC.1口接在开关上,编写程序对C端口的数据进行读取,并进行判断,使得当PC.1为高电平的时候则延时的时间缩短,使得流水灯的流水速度加快,低电平的时候则进行延时的时间变长,使得流水灯的流水速度加快。
3硬件原理设计
A该模块的WR.RD分别练到PC总线接口模块的XIOW和XIOR
B该模块的数据(AD0~AD7)、地址线(A0~A7)分别连到PC总线接口模块的数据(D0~D7)、地址线(A0~A7)
C 8255模块选通线CA连到PC总线接口模块的IOY3
D 8255的PA0~PA7连到发光二极管的L1~L8;8255的PB0~PB7连到发光二极管的L9~L16
E 8255的PC0 PC1分别练到开关K0 K1
F 软件流程框图及程序清单
程序代码
MY8255_A EQU 09860H
MY8255_B EQU 09861H
MY8255_C EQU 09862H
MY8255_MODE EQU 09863H
CODE SEGMENT
ASSUME CS:CODE
START:
MOV DX,MY8255_MODE
MOV AL,81H ;设置A口、B口方式0输出,C口低四位方式0输出
OUT DX,AL
MOV CL,0
XOR BX,BX ;将BX清零
MOV DX,MY8255_B
MOV AL,0FEH
MOV BL,AL
OUT DX,AL
MOV DX,MY8255_A
MOV AL,7FH
MOV BH,AL
OUT DX,AL ;对A口、B口赋值,并将值保存在BH BL中A1:
ROL BL,1
ROR BH,1 ;对BH BL做出相应的移位
A3:
PUSH BX ;保护现场
CALL BREAK ;调用任意键退出程序
CALL DELAY ;调用延时程序
POP BX ;恢复现场
MOV DX,MY8255_A
MOV AL,BH
OUT DX,AL
MOV DX,MY8255_B
MOV AL,BL
OUT DX,AL ;将移位后的结果输出
MOV DX,MY8255_C
IN AL,DX ;将C都的数据输入
AND AL,01H ;查看PC0口是否有数据输入,改变流水灯的方向
JNZ A2 ;结果不全为0,则跳转
JMP A1
A2:
ROL BH,1
ROR BL,1
JMP A3
DELAY PROC NEAR ;延时程序
MOV CX,0FFFH
K1:
MOV BX,0FFFH
K2:
DEC BX
CMP BX,1000H
JNE K2
MOV DX,MY8255_C
IN AL,DX ;将C口的数据输入
AND AL,02H ;查看PC1是否有输入,改变延时,使得延时的时间变快
JNZ K3 结果不全为0.则跳转
LOOP K1
K3:
RET
DELAY ENDP
BREAK PROC NEAR ;按任意键退出
MOV AH,06H
MOV DL,0FFH
INT 21H
JE RETURN
MOV AX,4C00H
INT 21H
RETURN:RET
BREAK ENDP
CODE ENDS
END START
取反输出
SSTACK SEGMENT STACK
DW 32 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV DX, 0646H
MOV AL, 90H
OUT DX, AL
AA1: MOV DX, 0640H
IN AL, DX
CALL DELAY
MOV DX, 0642H
not AL
OUT DX, AL
JMP AA1 DELAY: PUSH CX
MOV CX,0F00H AA2: PUSH AX
POP AX
LOOP AA2
POP CX
RET
CODE ENDS
END START
流水灯两边向中间显示SSTACK SEGMENT STACK
DW 32 DUP(?) SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE START: MOV DX, 0646H
MOV AL, 80H
OUT DX, AL
MOV BX, 8001H
AA1: MOV DX, 0640H
MOV AL, BL
OUT DX, AL
ROL BL, 1
MOV DX, 0642H
MOV AL, BH
OUT DX, AL
ROR BH, 1
CALL DELAY
CALL DELAY
JMP AA1 DELAY: PUSH CX
MOV CX, 08F00H AA2: PUSH AX
POP AX
LOOP AA2
POP CX
RET
CODE ENDS
END START
4)实验心得:
写过基本输出输入之后,对本实验只是有个大概了解,直到真正懂也花了很长时间,接着做流水灯闪烁效果时,开始混乱,有很多代码不懂,后来通过问同学,问老师,自己不断地思考、理解,对不懂的代码进行注释,终于克服了代码。
再后来,在流水通闪烁时想出了自己的方案。
整个实验过程虽然不是一帆风顺,更不是一蹴而就,通过实践的积累,终于对8255有一定的理解。