
微机接口实验报告.docx
12页第一章需求分析1.1设计目的 11.2设计任务与要求 11.3软硬件运行环境及开发工具 1第二章概要分析2.1总体方案与说明 22.2 8255A 芯片图 32.3循环彩灯流程图 4第三章详细设计3.1硬件设计与实现 53.2实验电路图与说明 63.3源程序代码 6第四章系统调试与操作说明4.1系统调试 94.2操作说明 9第五章总结体会 10参考文献 10第一章:需求分析1.1设计目的巩固和加深课堂所学知识;熟悉各种指令的应用及条件;学习掌握一般的软硬件的设计方法和查阅、运用资料的能力;深入了解与掌握8255A在PC机系统的典型接法和8255A的工作方法及应用编程1.2设计任务与要求任务:循环彩灯控制系统输出四种参考花型如下:数位为1时表示灯亮1) 00000001 左循环2) 10000000 右循环3) 按 10000001,11000011,11100111,11111111 规律递增,全亮后同时闪烁十次,循环不断4) 按 11110000,00001111 交替闪烁要求:1. 画出硬件原理图(接口芯片和外设部分)和实验连线图;2. 功能要求:1) 循环彩灯的循环速度可调;2) 按键要求① 启动/暂停,按K0开关启动系统,按K1开关停止系统工作。
② 花型变换,由开关K2、K3进行四种花型切换;1.3软硬件运行环境及开发工具利用TDN86/88实验平台进行硬件电路的连接,在Wmd86软件下进行程序的调试,直 到使循环彩灯按照设计要求运行,实验所使用的实验开发平台是Wmd86,使用的编程语言 是汇编第二章:概要设计2.1总体方案与说明根据所学内容和对8255A的应用,整个系统硬件采用8086微处理器,和8255A可编 程并行接口芯片和8个led彩灯Intel 8255A是一种通用的可编程并行接口芯片,由于它是可以编程的,可以通过程序 来设置芯片的工作方式,通用性强,使用灵活,可为多种不同的CPU与外设之间提供并行 输入/输出的通道;8086微处理器,选择最小工作模式,所有的总线控制信号均由8086产生; 8086CPU的地址'数据总线AD15-AD0和地址'状态总线A16/S3-A19/S6是复用的,必须通过 地址锁存器把地址总线和数据总线分离可编程并行通信接口芯片8255A:方式0为简单I/O,查询方式,端口 A、端口 B、端口 C均可使用方式1为选通I/O,中断方式,端口 A、端口 B可以使用,选通的输入/输出方式方式2为双向I/O,中断方式,只有端口 A可以使用,双向的传输方式。
三个8位端口 PA、PB、PC端口 A(PA 口):有一个8位数据输入锁存器和一个8位数据输入锁存/缓冲器;端口 B(PB 口):有一个8位数据输入锁存器和一个8位数据输入/输出,锁存/缓冲器;端口 C(PC 口):有一个8位数据输入锁存器和一个8位数据锁存/缓冲器通常PA 口与PB 口用作输入/输出的数据端口,PC 口用作控制和状态信息端口PC 口可 以分为两个四位的端口,每个端口包含一个四位锁存器,可分别同PA 口和PB 口配合使用,用 作控制信号(输出)或作为状态信号(输入)方式0也叫基本输入/输出方式一种方式,不需要应答联络信号,端口 A、端口 B和 端口 C的高4位及低4位都可以作为输入或输出端口方式0的应用场合有无条件传送和查 询传送2种;故根据我们系统设计的要求,综上可知,选择8255A为工作方式0然而8255A的3种基本工作方式:由方式选择控制字来决定,D7 = 1 (特征位)表明是 设定方式选择控制字;D7=0,则表示是端口 C按位置位/复位控制字;端口 C分成高4位(PC7〜PC4)和低4位(PC3〜PC0),可分别设置成输入端口或输出端口; 端口 C的高4位与端口 A配合组成A组,端口 C的低4位与端口 B配合组成B组。
综上可得此系统需要满足A端口为输出,输出数据给到8个彩灯;端口 C为输入,需要 检测按键的输入情况2 8255A芯片图如图所示:PA3PA2PA+PA0RDCSGNDA+A0PC7PC6PC5PC4PC0PC+PC2PC3-PB0PB+-PC2+402393384375366357348339 8255A32+0311130+22913281427152616251724182319222021PA4PA5PA6PA7WRRESETDOD+D2D3D4D5D6D7VCCPB7PB6PB5PB4PB3图1 8255A芯片图2.3循环彩灯流程图图如下:图2循环彩灯流程图这个实验我是采用K0K1来空间开关的开合关的,用K2K3来切换彩灯花型的变化, 上面流程图清楚的表达了整个实验的实现过程第三章:详细设计3.1硬件设计与实现8255A的数据线,片选信号,地址线,读写控制线等与系统总线相连,CS与译码器的 也相连,通过译码器连接到系统总线电路使用共阳极接线发,提供低电平时发光二极管发 光通过软件向8255A中发送信号,启动系统,使彩灯实现循环的花形再使开关可以控制 彩灯在我们事先编译的花形中进行切换。
k2和k3的状态为00则00000001左循环,k2和 k3的状态为01则执行10000000右循环,k2和k3的状态为10则执行按10000001, 11000011……11111111规律递增,全亮后同时闪烁十次,循环不断k2和k3的状态为11则执行按11110000,00001111,红绿灯循环闪烁不断实验原理图如下:图3实验原理图D73.2实验电路图与说明 实验电路图如下:图4实验电路图如上图,在8255A芯片中,PA 口作为输出,工作在0方式下PA7---PA0接LED发光 二极管D7—D0PB作为输入端口,工作在0方式下PB 口的PB0和PB1接开关K2和K3, 控制四种花形PC 口的 上C 口作为输入口,PC7和PC6接开关K0和K1,K0启动系统,K1 退出程序,停止系统工作PB0和PB1控制四种花型的切换,当PB0PB1为00时,灯闪亮为 左循环,当为01时时右循环,当为10时时两边向里规律递增循环,11为红绿灯交替闪烁 循环3.3源程序代码如下:SPEED EQU 5000HSTACK SEGMENTDW 64 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODESTART:MOV AL,8AH ;8255 初始化OUT 63H,ALA0: IN AL,62HTEST AL,40H ;检测开关K0,启动JZ A0EXIT: MOV AX,004CHINT 21HA1: IN AL,62HTEST AL,80H ;检测开关K1,停止JNZ EXITIN AL,61HAND AL,0FHCMP AL,00HJZ L1CMP AL,01HJZ L2CMP AL,02HJZ L3CMP AL,03HJZ L4L1: MOV CX,08HMOV AL,0FEHL11: OUT 60H,ALCALL DALLYROL AL,1CALL DALLYLOOP L11JMP A1INT 21HL2: MOV CX,08HMOV AL,3HL21: OUT 60H,ALCALL DALLYROR AL,1CALL DALLY;屏蔽高四位;AL状态为00H;调用L1;AL状态为01H;调用L2;AL状态为02H;调用L3;AL状态为03H;调用L4;左移动子程序;左移动子程序;右移动子程序;调用延时程序LOOP L21JMP A1L3: MOV CX,08HMOV AL,07EHOUT 60H,ALCALL DALLY;两边向里规律递增子程序MOV AL,03CHOUT 60H,ALCALL DALLYMOV AL,018HOUT 60H,ALCALL DALLYMOV AL,00HOUT 60H,AXCALL DALLYPUSH CXMOV CX,10L31:MOV AL,00HOUT 60H,AXCALL DALLYMOV AL,0FFHOUT 60H,AXCALL DALLYLOOP L31JMP A1POP CXLOOP L3L4: MOV CX,04H ;交替亮灯子程序L41: MOV AL,0FHOUT 60H,ALCALL DALLYMOV AL,0F0HOUT 60H,ALCALL DALLYLOOP L41JMP A1INT 21HDALLY: PUSH CX ;延时子程序PUSH DXMOV CX,SPEED ;延时LOOP5:MOV DX,SPEEDLOOP6:DEC DXJNZ LOOP6POP DXPOP CXRETCODE ENDSEND START四:系统调试与操作说明4.1系统调试首先按照实验电路图连接实验线路,确认无误后。
输入编写好的源程序代码,确认没有 输入错误以后,编译连接加载程序,在下方会显示程序中出现的错误,找到出错的位置,因 为我将PA 口作为输出口,PB 口作为输入口,PC 口高4位作为输入口低4位作为输出口, 所以将 8255 初始化为 MOV AL 8AH,PC6 连接 K2 即 01000000H,TEST AL 40H,PC7 连接 K3 即 10000000H,TEST AL 80H,A 口地址为 60H,作为输出所以 OUT 60H AL,B 口地址为61H,作为输入口所以IN AL 62H经过以上的调式,编译加栽后系统能够正常的 运行4.2操作说明首先输入源程序代码,然后编译连接加载,加载成功后运行本系统主要由四个开关 控制,分别为K0、K1、K2和K3K0置1时启动系统,K1置1时退出系统K2和K3的状态 为00则00000001左循环,K0和K1的状态为01则执行10000000右循环,K2和K3的状态 为10则执行按1000001,11000011……11111111规律递增,全亮后同时闪烁十次,循环不 断K2和K3的状态为11则执行按11110000,00001111闪烁。
第五章:总结体会这又是一次关于计算机语言的课程设计了,以前我们做过c, java等计算机语言的编程 课程设计,那都是纯软件的课程设计,这次是用汇编语言编写程序,而且其中还涉及到了硬 件电路的应用我的选题是循环彩灯的设计,开始拿到题目的时候,我想到了上课。












