微机原理课程设计1微机原理课程设计专业班级:计算机1301姓名:学号:指导老师:2016年1月15日微机原理课程设计2彩灯控制器一、实验要求、设计目的及功能实现实验要求:现在有8盏彩灯,4个开关作为输入,控制4种闪烁方式。当没有开关闭合时,4种花型依次轮流闪烁,每种花型闪烁时间持续2分钟,每盏灯点亮的时间为1秒。只有某一个开关闭合时,对应的花型连续不断的闪烁。设计实现该功能的电路,并编写完整的代码。设计目的:(1)巩固和加深微机原理所学知识;(2)学习掌握一般的软硬件的设计方法和查阅、运用资料的能力。所实现的功能:本课程设计所设计的彩灯控制器的主要功能有:向外发散显示、向中递推显示、0-7依次显示、奇数灯显示,偶数灯显示等功能。输出采用8个二极管显示,每个灯亮1秒。二、实验原理在这次课程设计中主要用到了8255A可编程并行接口芯片可用程序来设置芯片的工作方式,通用性强,使用灵活,可为CPU与外设之间提供并行输入/输出的通道。8254给1S的信号送到8259,再送到8255A控制灯亮的时间。三、硬件原理图123456ABCD654321DCBATitleNumberRevisionSizeBDate:14-Jan-2016SheetofFile:H:\接口实验代码\接口\MyDesign.ddbDrawnBy:RD32AD016LOC/WR29AD115QS0ALE25AD214QS1INA24AD313AD412S0,DEN26AD511S1DT/R27AD610S2M/IO28AD79AD88RQ/GT031AD97RQ/GT130AD106AD115AD124NMI17AD133INTR18AD142AD1539MN/MX33TEST23A16/S338READY22A17/S437A18/S536A19/S635CLK19RESET21BHE/S734CPU8086D08OUT010D17GATE011D26CLK09D35D44D53D62OUT113D71GATE114CLK115CS21RD22WR23OUT217A019GATE216A120CLK218计数器8253D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710RD5WR36A09A18RESET35CS6X?8255AD011D110D29D38D47D56D65D74A027CS1RD3WR2SP/EN16INT17INTA26IR018IR119IR220IR321IR422IR523IR624IR725CAS012CAS113CAS215中断8259AD7LEDD1LEDD3LEDD2LEDD4LEDD6LEDD0LEDD5LEDA1B2C3G2A4G2B5G16Y77Y69Y510Y411Y312Y213Y114Y015译码器SN74LS138K2SW-PBK3SW-PBK4SW-PBK1SW-PB+5V微机原理课程设计38255工作原理及内部结构1.8255A内部结构8255A的内部结构如图2所示,它由4部分组成:(1)数据总线缓冲器它是一个双向三态8位缓冲器,用作与系统总线连接是的缓冲部件.CPU与8255A之间所有的数据的发送与接收以及CPU向8255A发送的控制信息和8255A向CPU回送的状态信息都是通过它传送的(2)三个8位端口PA、PB、PC端口A(PA口):有一个8位数据输入锁存器和一个8位数据输入锁存/缓冲器;端口B(PB口):有一个8位数据输入缓冲器和一个8位数据输入/输出,锁存/缓冲存储器器;微机原理课程设计4端口C(PC口):有一个8位数据输入缓冲存储器器和一个8位数据输出锁存/缓冲器。通常PA口与PB口用作输入/输出的数据端口,PC口用作控制和状态信息端口。PC口可以分为两个四位的端口,每个端口包含一个四位锁存器,可分别同PA口和PB口配合使用,用作控制信号(输出)或作为状态信号(输入)。(3)A组和B组控制电路A组:PA口和PC口的高四位(PC7~PC4);B组:PB口和PC口的低四位(PC3~PC0)。这两组控制电路一方面接收CPU发来的控制字并决定8255A的工作方式;另一方面接收来自读写控制逻辑电路的读写命令,完成接口的读写操作。(4)读/写控制逻辑用来管理数据信息。控制字和状态字的传送,它接收来自CPU的地址总线的A1,A0和控制总线的信号RD.WR.RESET等,并向8255A的A,B两组发送命令.由它控制把CPU发出的控制命令字或输出的数据送到相应的端口,或把外设的状态信息或输入的数据从相应的端口送到CPU。2.8255A引脚功能PA7-PA0PC7-PC4PC3-PC0D7-D0/RD/WRA1A0/CSRESETA组控制数据总线缓冲器读/写控制逻辑B组控制A组A口(8位)A组C口高4位B组C口低4位B组B口(8位)PB7-PB0图2内部结构图微机原理课程设计58255A芯片除电源和地引脚以外,其他引脚可分为两组,引脚如图3所示:(1)8255A与外设连接引脚8255A芯片与外设连接的有24条双向、三态数据引脚,分成三组,分别对应于A,B,C三个数据端口:PA7-PA0,PB7-PB0,PC7-PC0.(2)8255A与CPU连接引脚D7——与CPU侧连接的八条双向数据线;WR(低电平有效)——写输入信号;RD(低电平有效)——读输入信号;CS(低电平有效)——片选输入信号;A0、A1——片内寄存器选择输入信号;PA7~PA0——A口外设双向数据线;PB7~PB0——B口外设双向数据线;PC7~PC0——C口外设双向数据线;RESET——复位输入信号/CS/RD/WRA1A0执行的操作14023933843753663573483393210311130122913281427152616251724182319222021PA3PA2PA1PA0/RD/CSGNDA1A0PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PB2PA4PA5PA6PA7/WRRETD0D1D2D3D4D5D6D7VCCPB7PB6PB5PB4PB3图3引脚图表18255A的控制信号和传送操作的对应关系微机原理课程设计600100读端口A00101读端口B00110读端口C00111非法状态01000写端口A01001写端口B01010写端口C01011写控制字端口1未选通8255A的工作方式控制字8255A有两个控制字:方式选择控制字和端口C置位/复位控制字。这两个控制字公用一个地址,即控制端口地址,用控制字的D7位来区分这两个控制字,D7=1为方式选择控制字;D7=0为端口置位/复位控制字。1.方式选择控制字如图4所示:D7D6D5D4D3D2D1下C口pc3-pc00输入1输PB0输1输出上C口pc7-pc40输入1输出PA0输入1输出A组工作方式0方式001方式012方式10特征位图48255A方式选择控制字微机原理课程设计72.端口C置位/复位控制字端口C置位/复位控制字的格式如下图所示:D3-D1三位的编码与端口C的某一位相对应,D0决定置位或复位操作,最高位为0是端口C置位或复位控制字标志。如图5所示0D3D2D1D0图58255A端口C置3.8255A的工作方式8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源引脚图供电,能在以下三种工作方式下工作:方式0—基本输入/输出方式方式0下,每一个端口都作为基本输入或输出口,端口C的高4位和低4位以及端口A、端口B都可独立的设置为输入口或输出口。4个端口的输入或输出可有16种组合。8255A工作于方式0时,CPU可采用无条件读写方式与8255A交换数据,也可采用查询方式与8255A交换数据。采用查询方式时,可利用端口C作为与外设的D3D2D1位选择000PC0001PC1010PC2011PC3100PC4101PC5110PC6111PC7置位或复位选择1:置位0:复位微机原理课程设计8联络信号。方式1—选通输入/输出方式:适用于查询和中断方式。方式2—双向选通输入/输出方式:方式2为双向传输方式,8255A的方式2可使8255A与外设进行双向通信,既能发送数据,又能接受数据,可采用查询方式和中断方式进行传输。8086的引脚信号如图6所示:8086具有两种不同工作方式,即最小模式和最大模式。若把MN/MX引脚连至电源+5V,则为最小模式。若把它接地,则处在最大模式。四、软件设计14023933843753663573483393210311130122913281427152616251724182319222021GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15A16/S3A1/S4A18/S5A19/S6/BHE/S7MN//MX/RDHOLDHLDA/WRM//IODT//R/DENALE/INTR/TESTREADYRESET图68086引脚图微机原理课程设计91.主程序流程图2.开关设计开始初始化调用向外发散显示向中递推向左依次显示奇、偶数灯亮检测k1检测k2检测k3检测k4暂停检测k5中断开始K5=1K1=1显示当前灯全灭NYNY继续当前循环微机原理课程设计10五、调试过程1.硬件调试设计的电路是由k5来控制灯的暂停和开始,k1-k5接PB0-PB4。花型变换由k1,k2,k3,k4控制。2.软件调试输入程序,经编译,连接后下载到实验箱运行。六、心得体会通过彩灯控制器的汇编实现,对硬件特别是8253A,8255并行口的原理和实现都有了很深的了解。更加深了对汇编语言的使用.在算法实现上要有一定的思路要更能体现设计的目的。同时上机调试也是十分重要的,在调试的过程中能够不断的发现在编写算法时应该注意的一些细节和算法语句的非法使用,在调试过程中通过对算法的不断测试、更正、扩充功能、修饰细节,使算法程序不断的得到完善。通过这次的课程设计使我认识到要将微机原理这门计算机专业的课学好不仅仅是要把书上的基本知识学好而且还要不断进行实践,将所学的跟实践操作结合起来才能更好地巩固所学,才能提高自己实践能力.通过这次的设计使我认识到只停留在表面理解问题是很难使问题得到很好的解决的,实践能力与理论知识同样重要。可以说此课程设计的理论难度并不大,但是若要深入发掘其中的东西,并且实际去编程实现,就遇到了相当大的难度。因为与之涉及的很多方面并没有学过,需要自己去自学和实践检验。七、实验源程序(附注释).486pstackpequ1400hCODESEGMENTUSE16ASSUMEDS:CODE,ES:CODE,CS:CODEORG03000HBEG:JMPSTARTIFSWITCHDB0SHANSHUOCOUNTDB0SWITCHCOUNTDB1ORDERNODB0ShanShuoLimitDB120微机原理课程设计11DENG1DB0,18H,24H,42H,81HDENG2DB0,81H,42H,24H,18H,24H,42HDENG3DB0,00H,80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFHDENG4DB0,01H,02H,04H,08H,10H,20H,40H,80H,40H,20H,10H,08H,04H,02HDENGCountDB4PORT1EQU203H;APORT2EQU207H;BPORT3EQU20BH;CPORT4EQU20FH;CTRLPORT8254AEQU300HPORT8254BEQU304HPORT8254CEQU308HPORT8254DEQU30CHPORTJIEQU