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实验报告关键信息项: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可编程并行口芯片,实现输入/输出,实验中用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)编写程序、编译程序,用单步、断点、连续方式调试程序,排除软件错误。
运行程序,直至达到本实验的要求为止。
最新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可编程并行接口(基本输入输出、动静态七段数码管、竞赛抢答器)微机原理实验报告

微机实验报告书学号: XXXXX 姓名: XXXXX 班级: XXXXX同组名单: XXXXXXXXX 实验日期: 5实验题目: 8255可编程并行接口实验目标: 1、掌握8255方式0的工作原理及使用方法。
2、进一步掌握中断处理程序的编写。
3、掌握数码管显示数字的基本原理。
4、了解微机化竞赛抢答器的基本原理。
实验步骤:实验一、 8255A的基本输入输出图1. 8255A的基本输入输出接线图实验步骤如下:(1)实验电路如图1,8255A的C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。
(2)编程从8255A的C口输入数据,再从A口输出。
实验二、七段数码管图2. 七段数码管接线图实验步骤如下:(1)静态显示:按图2(a)连接好电路,将8255A的A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1接+5V(选中),S0、dP接地(关闭)。
编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。
(2)动态显示:按图2(b)连接好电路,七段数码管段码连接不变,位码驱动输入端S1接+5V(选中),S0接8255A的C口的PC1。
编程在两个数码管上显示“56”。
实验三、竞赛抢答器图3. 竞赛抢答器电路图实验步骤如下:图3位竞赛抢答器(模拟)的原理图,逻辑开关K0~K7代表竞赛抢答按钮0~7号,当某个逻辑电平开关置“1”时,相当于某组抢答按钮按下。
在七段数码管上将其组号(0~7)显示出来。
程序框图:实验一:实验二:实验三:程序清单:;*************************;;* 8255A的基本输入输出 *;;*************************;IOPORT EQU0E400H-280HIO8255A EQU IOPORT+288HIO8255B EQU IOPORT+289HIO8255C EQU IOPORT+28AHIO8255K EQU IOPORT+28BHCODE SEGMENTASSUME CS:CODESTART:MOV DX,IO8255K ;对8255进行设定,A输出,C输入MOV AL,10001001BOUT DX,ALINPUT:MOV DX,IO8255C ;从C输入IN AL,DXMOV DX,IO8255A ;从A输出OUT DX,ALMOV DL,0FFH ;判断是否有按键MOV AH,06HINT21HJZ INPUT ;若无,则继续C输入,A输出MOV AH,4CH ;否则,返回DOSINT21HCODE ENDSEND START;************************************;;*键盘输入数据(0-9)控制LED数码管显示*;;************************************;DA TA SEGMENTIOPORT EQU 0E400H-280HIO8255A EQU IOPORT+288HIO8255B EQU IOPORT+289HIO8255C EQU IOPORT+28AHIO8255K EQU IOPORT+28BHLED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHMESG1 DB 0DH,0AH,'Input a num (0--9),other key is exit:',0DH,0AH,'$'DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DA TAMOV DS,AXMOV DX,IO8255K ;使8255的A口为输出方式MOV AX,10000000BOUT 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码减30HMOV BX,OFFSET LED ;BX为数码表的起始地址XLAT ;求出相应的段码MOV DX,IO8255A ;从8255的A口输出OUT DX,ALJMP SSS ;转SSSEXIT: MOV AH,4CH ;返回INT 21HCODE ENDSEND START;******************************;;* LED数码管实验动态显示“56”*;;******************************;DA TA SEGMENTIOPORT EQU 0E400H-280HIO8255A EQU IOPORT+288HIO8255B EQU IOPORT+289HIO8255C EQU IOPORT+28AHIO8255K EQU IOPORT+28BHLED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;段码BUFFER1 DB 6,5 ;存放要显示的个位和十位BZ DW ? ;位码DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DATAMOV DS,AXMOV DX,IO8255K ;将8255设为A口输出MOV AL,80HOUT DX,ALMOV DI,OFFSET BUFFER1 ;设di为显示缓冲区LOOP2: MOV BH,02LLL: MOV BYTE PTR BZ,BHPUSH DIDEC DIADD DI, BZMOV BL,[DI] ;bl为要显示的数POP DIMOV AL,0MOV DX,IO8255COUT DX,ALMOV BH,0MOV SI,OFFSET LED ;置led数码表偏移地址为SIADD SI,BX ;求出对应的led数码MOV AL,BYTE PTR [SI]MOV DX,IO8255A ;自8255A的口输出OUT DX,ALMOV AL,BYTE PTR BZ ;使相应的数码管亮MOV DX,IO8255COUT DX,ALMOV CX,3000DELAY: LOOP DELAY ;延时MOV BH,BYTE PTR BZSHR BH,1JNZ LLLMOV DX,0FFHMOV AH,06INT 21HJE LOOP2 ;有键按下则退出MOV DX,IO8255CMOV AL,0 ;关掉数码管显示OUT DX,ALMOV AH,4CH ;返回INT 21HCODE ENDSEND START;***************;;* 模拟抢答器 *;;***************;DA TA SEGMENTIOPORT EQU 0E400H-280HIO8255A EQU IOPORT+288HIO8255B EQU IOPORT+289HIO8255C EQU IOPORT+28AHIO8255K EQU IOPORT+28BHLED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;数码表DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DATAMOV DS,AXMOV DX,IO8255K ;设8255为A口输出,C口输入MOV AL,10001001BOUT DX,ALMOV BX,OFFSET LED ;使BX指向段码管首址SSS: MOV DX,IO8255CIN AL,DX ;从8255的C口输入数据OR AL,AL ;比较是否为0JE SSS ;若为0,则表明无键按下,转sssMOV CL,0FFH ;cl作计数器,初值为-1 RR: SHR AL,1INC CLJNC RRMOV AL,CLXLATMOV DX,IO8255AOUT DX,ALMOV DL,7 ;响铃ASCII码为07MOV AH,2INT 21HWAI: MOV AH,1INT 21HCMP AL,20H ;是否为空格JNE EEE ;不是,转eeeMOV AL,0 ;是,关灭灯MOV DX,IO8255AOUT DX,ALJMP SSSEEE: MOV AH,4CH ;返回INT 21HCODE ENDSEND START运行结果:实验一:当逻辑开关K0~K7中的一个或几个打开时,对应的LED灯就会亮起来,即利用8255A实现了基本的输入输出控制。
实验六---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芯片的输入输出原理和使用方法,通过实验了解并掌握8255芯片的原理和控制方法,提高实际操作能力。
实验器材
1. 8255芯片
2. 8086单片机
3. 电源
4. 万用表
5. LED灯
6. 按钮开关
实验步骤
1. 连接电路
根据实验原理和电路图,连接相应的电路,包括8255芯片、8086单片机、电源、万用表、LED灯和按钮开关等。
2. 编写程序
根据实验要求,编写相应的程序,包括8255芯片的输入输出控制
程序,以及相关的控制指令。
3. 运行程序
将编写好的程序烧录到8086单片机中,启动程序,进行相应的输入输出操作。
4. 测试结果
通过测试程序的运行结果,验证输入输出是否正确,并进行相应的调试和修改。
实验结果
经过实验,我们成功地掌握了8255芯片的输入输出原理和使用方法,熟悉了8255芯片的控制指令和编写程序的方法,成功地实现了输入输出操作。
本次实验不仅提高了我们的实际操作能力,还增强了我们对硬件电路和控制程序的理解和应用能力。
实验体会
本次实验让我深刻地认识到了硬件电路和控制程序的重要性,同时也让我感受到了实验的乐趣和挑战。
通过实验,我不仅学会了控制8255芯片的方法,还深入了解了单片机和电路原理,提高了自己的实际操作能力和理论知识水平。
结论
通过本次实验,我们掌握了8255芯片的输入输出原理和使用方法,熟悉了8255芯片的控制指令和编写程序的方法,成功地实现了输入输出操作。
本次实验不仅提高了我们的实际操作能力,还增强了我们对硬件电路和控制程序的理解和应用能力。
并行接口8255实验报告

并行接口8255实验一、实验目的1.掌握可编程并行接口电路8255的工作原理及初始化方法2.掌握8255在实际应用中的硬件连接及编程应用二、实验要求根据实验室现有条件,针对实验任务,设计实验方案并进行实现三、实验内容通过使用8255,8253实现一个倒计时设备,具体的方法是,用户逐个打开开关,然后8255定时读取开关状态并输出给二极管,当所有灯都亮起时,输出一个高电平给Gate0,对8253而言,要求每1s查看一次用户是否摁下了所有开关,一旦是这样蜂鸣器就会响起来,然后给8253送一个锁存命令,查看计数器1和计数器0当前的计数值,锁存两个计数值,便于后期的计算和数据处理。
四、实验线路图其中,8255的各个端口分别是:F0H,F2H,F4H,F6H 8253的各个端口分别是:F8H,F9H,FAH,FBH 五、实验程序清单CSEG SEGMENTASSUME CS:CSEGSTART:;初始化8255和8253MOV DX,F6HMOV AL,1001000BOUT DX,ALMOV DX,FBHMOV AL,01110110BOUT DX,ALMOV AL,00110110B;选择8253计数器1MOV DX,F8HMOV AL,0OUT DX,ALMOV AL,10OUT DX,AL;选择8253计数器0MOV DX,FGHMOV AL,0OUT DX,ALMOV AL,10MOV CX,2000H;用CX延时,读取开关状态 NEXT:OUT DX,ALMOV DX,F2HIN DX,AL;输出开关状态,此时亮起灯,如果灯全亮起,蜂鸣器响起MOV DX,F4HOUT DX,ALLOOP NEXT;锁存两个计数器的计数值MOV AL,00110110BMOV DX,F8HOUT DX,ALMOV AL,01110110BMOV DX,F9HOUT DX,ALCSEG ENDSEND START六、实验总结及体会1.实验总结:本次实验中我设计了8086连接8253和8255的相关电路,并且与输出设备相连接,也重新复习了数电的知识,通过学习微机原理和汇编语言这门接近底层的语言我意识到代码与底层的交互是怎样实现的,也有利于我学习其他的高级语言。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
东南大学
《微机实验及课程设计》
实验报告
实验六8255并行输入输出
姓名:学号:
专业:实验室:计算机硬件技术实验时间:2012年05月18日报告时间:2012年05月20日评定成绩:审阅教师:
一. 实验目的与内容
1)掌握8255 方式0 的工作原理及使用方法,利用直接输入输出进行控制显示;
2)掌握8 段数码管的动态刷新显示控制;
3)分析掌握8255 工作方式1时的使用及编程,进一步掌握中断处理程序的编写。
二. 基本实验原理
(一)、8255 方式0:简单输入输出
实验电路如下图所示,8255C 口输入接逻辑电平开关K0~K7,编程A 口输出接LED 显示电路L0~L7;用指令从 C 口输入数据,再从A 口输出。
实验电路及程序流程图如下:
/CS为片选信号,由系统地址线译码产生,低电平有效;此方式为简单输入输出,A口、B口、C口的高4位和低4位都可以分别设置成输入或输出,在此实验中设置C口为数据输入端,A口为数据输出端。
(二)、数码管显示原理
实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。
七段数码管的字型代码如下表所示: 数码管对应断码为:
(三)、8 段数码管静态显示
按下图所示连接好电路,将8255 的A 口PA0~PA6 分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1 接+5V(选中),S0、dp 接地(关闭)。
编程从键盘输入一位
十进制数字(0~9),在七段数码管上显示出来。
单管静态显示电路如下图所示:
输入数据经8255芯片并行输出,将信息反映在8段数码管s1上。
实验结果显示:
(四)、 8 段数码管动态显示
按下图所示连接好电路,七段数码管段码连接不变,位码驱动输入端S1、S0 接8255 C 口的PC1、PC0。
编程在两个数码管上显示“56”。
(注意字符变换之间应使段位全灭,避免显示“影子”)
双管动态电路设计及程序流程图如下:
送位码02H至C口,使PC0为0,PC1为1,即选中S1,关闭S0,在S1的数码管上显示“5”;送位码01H至C口,使PC0为1,PC1为0,即选中S0,关闭S1,在S0的数码管上显示“6”。
这是数码管动态显示方式。
由于两个数码管之间轮流显示的间隔时间很短,因视觉暂留作用,所以人眼无法判别其间隔作用。
实验图片:
三. 方案实现与测试
(一)、获取TPC 扩展卡 I/O 和存储基地址
直接在windows 下利用控制面板查看占用的存储和中断资源,可知:
TPC设备内存范围: FDDFF000—FDDFF0FF
接口芯片输入输出范围: BC00—BCFF
TPC设备输入输出范围: ec00—B87F
接口芯片内存范围: FDC00000—FDCFFFFF
(二)、检查硬件设备
运行程序前先用动态I/O 命令单步输出控制字,对相应端口进行I/O 操作。
连接如简单输入输出的电路,通过拨开关设置输入数据。
在DEBUG模式下,键入命令ib80a可读出开关状态。
如果读出数正确,则8255工作正常。
在DEBUG模式下键入命令行:
mov dx,b80b ;设8255 为C 口输入,A 口输出
mov al,8bh
out dx,al
inout: mov dx,b80a ;从C 口输入一数据
in al,dx
mov dx,b808 ;从A 口输出刚才自C 口
out dx,al ;所输入的数据
可看到LED灯显示为开关的状态。
(三)、8255 方式0:简单输入输出
源程序见书P69
指令中重要片段见上,设置控制字8B:10001011,通过in、out指令对其进行数据的读入和写出。
运行程序后可看到LED灯L0~L7显示为开关K0~K7的状态。
(四)、编程将A 口 L0-L7 控制成流水灯,流水间隔时间由软件产生;流水方向由K0 键在线控制,随时可切换;流水间隔时间也可由K4~K7 键编码控制,如0000 对应停止,0001 对应1 秒,1111 对应15 秒,大键盘输入ESC 键退出。
源程序见8255_light文件,但该程序中只实现了K0控制方向,K4~K7为0000时停止,其它键间隔相同时间(1秒)的功能,没有改变间隔时间和键入ESC 键退出的功能。
完善程序以实现流水灯,见创新部分。
(五)、8 段数码管静态显示
源程序见8255_led_s.asm,其中指令 xlat 的功能是求出相应的段码。
运行程序后可看到题目中提到的功能都能实现。
(六)、8 段数码管动态显示
源程序见8255_led_d.asm,主要程序片段如下:
mov byte ptr bz,bh
push di
dec di
add di, bz
mov bl,[di] ;bl 为要显示的数
pop di
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
由实验现象可看到数码管显示相应数值,但因为间隔时间太短,由于视觉暂留,误认为数码管是一起显示的。
五.分析与总结
1、具体实验分析见各部分的调试实验分析。
2、硬件是基础,做实验时要首先检查硬件设备是否可用,保证后续实验的可检测性。
3、在实验中应不要带电接线、插拔芯片;插拔接线时轻微转动,便于插拔。
4、在实验中学会使用示波器、万用表、逻辑笔观察、测量。