1《微机接口课程设计》数字钟论文201X/201X年第一学期专业:计算机科学与技术班级:XXX学号:XXXXXX姓名:XXX指导教师:XXXX+2摘要.....................................................3第一章引言.............................................4一、研究背景..........................................4二、研究目的..........................................4三、研究内容..........................................4四、研究结果..........................................4第二章硬件系统构成......................................6一、系统构成..........................................6二、芯片介绍.........................................6(一)、8255A芯片介绍.............................6(二)、8253芯片介绍.............................11(三)、8259芯片介绍.............................13第三章软件系统构成.....................................17一、程序流程图......................................17(一)、主程序流程图..............................17(二)、E键操作流程图............................18(三)、C键操作流程图............................18(四)、g键操作流程图............................19(五)、d键操作流程图............................19(六)、p键操作流程图............................20(七)、LED显示流程图............................22(八)、矩阵式键盘按键流程图.....................23第四章课程设计总结.....................................24一、心得体会........................................24二、源程序...........................................25三、参考文献........................................283摘要我们小组做的是数字钟实验,主要包括了8253、8255A、8259等接口技术,键盘扫描以及LED动态显示技术,实现了用六个数码管显示时间,用小键盘控制计时和显示的功能,具体包括了清除、启动、停止、终止程序、设置初始值的功能。关键词:数字钟、动态显示、8253定时器、8255A并行I/O接口、8259中断控制器、矩阵键盘4第一章引言一、研究背景数字钟是一种用数字电路技术实现时、分、秒计时的钟表。与机械钟相比具有更高的准确性和直观性,具有更长的使用寿命,已得到广泛的使用。数字钟的设计方法有许多种,例如可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟,还可以利用单片机来实现电子钟等等。这些方法都各有其特点,其中利用单片机实现的电子钟具有编程灵活,以便于功能的扩展。二、研究目的熟悉8255A、8253、8259等I/O接口的编程技术,掌握键盘扫描和LED动态显示的工作原理三、研究内容用试验台上的并行口扫描键盘,控制LED显示,以制作一个时间显示系统。四、研究结果使用六个数码管显示时间,用小键盘控制计时和显示:C键(清除)显示初值G键(启动)显示变化时间5D键(停止)显示时间不变E键(终止程序)熄灭数码管,程序退出P键(设置初始值)设置初值6第二章硬件系统构成一、系统构成本系统以8086CPU为核心,采用了8255A芯片、8253芯片、8259芯片、LED、小键盘等器件,分别的功能如下:Intel8255A:一种通用的可编程并行接口芯片Intel8253:可编程定时/计数器,是Intel公司为它的微处理器系列设计的一种外围电路芯片Intel8259:与8086系列CPU兼容的可编程中断控制器LED显示器:六个LED灯从左向右分别表示小时、分钟、秒键盘:用于控制电子钟以及设置初值二、芯片介绍(一)、8255A芯片介绍1.功能Intel8086/8088系列的可编程外设接口电路(ProgrammablePeripheralInterface)简称PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。72.8255A内部结构(1)数据总线缓冲器这是一个双向三态8位数据缓冲器,是Intel8255A与CPU数据总线的接口。输入数据、输出数据、CPU发送给8255A的控制字以及从8255A读出的状态信息都通过该缓冲器传送。(2)端口A、B、CIntel8255A有三个8位端口,分别称为端口A、端口B、端口C。各端口可由程序设定为输入端口或输出端口,但三个端口有着各自的功能特点。端口A有一个8位的输入锁存器和一个8位的输出锁存/缓冲器,所以用端口A作为输入口或输出口时,都有数据锁存的功能。端口B有一个8位的输入锁存器和一个8位的输入/输出锁存/缓冲器,所以用端口B作为输入口或输出口时,也都有数据锁存的功能。端口C有一个8位的输入锁存器和一个8位的输出锁存/缓冲8器,所以用端口C作为输入口时,对数据不作锁存,而作为输出口时,对数据进行锁存。(3)A组控制和B组控制这两组控制逻辑电路一方面接收来自CPU的控制字,另一方面接收来自读/写控制逻辑电路的读/写命令,由此来决定两组端口的工作方式及读/写操作。A组控制——控制端口A及端口C的高4位。B组控制——控制端口B及端口C的低4位。(4)读/写控制逻辑读/写控制逻辑负责管理Intel8255A的数据传送过程,接收片选信号CS___,来自地址总线的地址信号A1、A0,以及来自控制总线的信号RESET、WR___和RD___,这些信号的组合产生A组部件和B组部件的控制信号。3.8255A外部引脚D7~D0(databus):三态、双向数据线,与CPU数据总线连接,用来传送数据。A1,A0(portaddress):地址线,用来选择内部端口。CS___(chipselect):片选信号线,低电平有效时,芯片被选中。RD___(read):读出信号线,低电平有效时,允许数据读出。WR___(write):写入信号线,低电平有效时,允许数据写入。RESET(reset):复位信号线,高电平有效时,将所有内部寄9存器(包括控制寄存器)清0。PA7~PA0(portA):A口输入/输出信号线。PB7~PB0(portB):B口输入/输出信号线。PC7~PC0(portC):C口输入/输出信号线。VCC:+5V电源。GND:电源地线。4.工作方式(1)方式0:基本输入/输出方式(basicInput/Output)方式0是8255A的基本输入/输出方式,其特点是与外设传送数据时,不需要设置专用的联络(应答)信号,可以无条件的直接进行I/O传送。(2)方式1:单向选通输入/输出方式(strobeInput/Output)10方式1是一种带选通信号的单方向输入/输出工作方式,其特点是:与外设传送数据时,需要联络信号进行协调,允许用查询或中断方式传送数据。(3)方式2:双向选通输入/输出方式(bi-directionalbus)方式2为双向选通输入/输出方式,是方式1输入和输出的组合,即同一端口的信号线既可以输入又可以输出。由于C口的PC7~PC3定义为A口工作在方式2时的联络信号线,因此只允许A口工作在方式2,5.初始化8255A的A,B,C三个端口的工作方式是在初始化编程时,通过向8255A的控制端口写入控制字来设定的。8255A由编程写入的控制字有两个:方式控制字和置位/复位控制字。方式控制字用于设置端口A,B,C的工作方式和数据传送方向;置位/复位控制字用于设置C口的PC7~PC0中某一条口线PCi(i=0~7)的电平。两个控制字公用一个端口地址,由控制字的最高位作为区分这两个控制字的标志位。8255A的初始化编程比较简单,只需要将工作方式控制字写入控制端口即可。另外,C口置位/复位控制字的写入只是对C口指定位输出状态起作用,对A口和B口的工作方式没有影响,因此只有需要在初始化时指定C口某一位的输出电平时,才写入C口置位/复位控制字。11(二)、8253芯片介绍1.8253功能intel8253是NMOS工艺制成的可编程计数器/定时器,有几种芯片型号,外形引脚及功能都是兼容的2.8253内部结构(1)数据总线缓冲器该缓冲器为双向三态,可直接挂在数据总线上,CPU通过该缓冲器可向8253写入方式控制字、计数器初始值或从8253读出计数器的当前值。(2)控制字寄存器控制字寄存器接受来自数据总线缓冲器的信息。该寄存器是8位的,只能写,不能读。12(4)计数器0、1、2三个计数器相互独立,均是16位的减法计数器。三个计数器的内部结构完全相同,含有16位的计数寄存器和锁存器。3.8253外部引脚(1)数据总线缓冲器(8位、三态、双向);(2)读/写控制逻辑;CS___:片选信号,低电平有效;RD___:读信号,低电平有效;W____R:写信号,低电平有效(3)A1A0:端口选择信号(4)三个通道(0~2);(5)一个控制寄存器;13(三)、8259芯片介绍1.8259功能可编程中断控制器8259A是Intel公司专为80x86CPU控制外部中断而设计开发的芯片。它将中断源优先级判优、中断源识别和中断屏蔽电路集于一体,不需要附加任何电路就可以对外部中断进行管理,单片可以管理8级外部中断,在多片级联方式下,可以管理多达64级的外部中断。2.8259内部结构(1)数据总线缓冲器数据总线缓冲器为三态、双向、8位寄存器,数据线D7~D0与CPU系统总线连接,构成CPU与8259A之间信息传送的通道。(2)读/写控制逻辑读/写控制逻辑用来接收CPU系统总线的读/写控制信号和端口地址选择信号,用于控制8259A内部寄存器的读/写操作。(3)级联缓冲/比较器148259A既可以工作于单片方式,也可以工作于多片级联方式,级联缓冲/比较器提供多片8259A的管理和选择功能,其中一片为主片,其余为从片。(4)中断控制逻辑中断控制逻辑按照编程设定的工作方式管理中断,负责向片内各部件发送控制信号,向CPU发送中断请求信号INT和接收CPU回送的中断响应信号,控制8259A进入中断管理状态。(5)中断请求寄存器(interruptrequestregister,IRR)IRR是一个8位寄存器,用于记录外部中断请求。其中D7~D0分别与外部中断请求信号IR7~IR0相对应。(6)中断服务寄存器(interruptserviceregister,ISR)ISR是一个8位寄存器,用于记录CPU当前正在服务的中断标志。当外部中断IRi(i=0~7)的请求得到CPU响应进入服务时,由CPU发来的第一个中断响应脉冲将ISR中的相应位Di(i=0~7)置1,而ISR的复位则由8259A中断结束方式决定。(7)中断屏蔽寄存器(