微机原理与接口技术课程设计报告姓名:班级:专业:指导教师:2012年6月目录一、设计题目...................................................................................................................................3二、题目要求...................................................................................................................................3三、设计原理...................................................................................................................................31、8259A中断控制器.............................................................................................................32、8254定时/计数器...............................................................................................................53、8255可编程芯片................................................................................................................64、七段数码管.........................................................................................................................7四、设计思路...................................................................................................................................81、电子钟基本功能的实现.....................................................................................................82、电子钟按键功能的实现.....................................................................................................93、显示的实现.......................................................................................................................10五、设计电路原理图.....................................................................................................................10六、流程图.....................................................................................................................................111、主程序流程.......................................................................................................................112、中断处理程序流程...........................................................................................................123、键盘扫描程序流程...........................................................................................................13七、程序清单(包括必要的注释).............................................................................................14八、设计最后实现的功能及结果.................................................................................................21九、设计过程中的问题及解决方案.............................................................................................22十、心得体会.................................................................................................................................22附录一TD-PIT-B实验系统的硬件环境....................................................................................23一、设计题目电子钟二、题目要求设计一电子时钟,能在数码管上显示时间并计时。根据题目和所用的接口电路芯片设计出完整的接口电路,并在实验系统上完成电路的连接和调试通过.由8254定时,数码管显示时间,小键盘控制计时:图2-11键(清除)显示初值00、002键(启动)电子钟计时3键(停止)电子钟停止计时4键(终止程序)熄灭数码管,程序退出5键(设置初始值)设置分、秒值。同时具有判断错误的能力,若输入有错,则显示错误提示,此时按5可从输入预置值。前期完成的实验有:8259A中断控制器实验,8254定时计数器实验,8255并行接口实验,LED数码管测试实验。三、设计原理本系统是利用8254定时/计数器产生的固定频率的脉冲作为8255可编程芯片的中断信号,来控制数码管的显示及小键盘的按键处理,从而实现电子钟的计时、按键控制等功能。1、8259A中断控制器8259A中断控制器将中断源优先级排队、辨别中断源以及提供中断向量的电路于一片中,因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设置。同时,在不需增加其他电路的情况下,通过多片8259A的级连,能构成多达64级的矢量中断系统。8259A的内部结构和管脚如图3-1所示。8259A的中断过程,即微机系统响应可屏蔽中断的过程(1)将加到引脚IR0~IR7上的中断请求寄存到中断请求寄存器中。(2)在中断屏蔽寄存器的管理下,没有被屏蔽的中断请求被送到优先权电路判优。(3)选中当前级别最高的中断源,然后从引脚INT向CPU发出中断请求信号。(4)CPU满足一定的条件后,向8259A发出两个中断响应信号(负脉冲):1)8259A从引脚INTA收到第1个中断响应信号之后,立即使中断服务寄存器中与被选中的中断源对应的那一位置1,同时把中断请求寄存器中的相应位清0。2)从引脚INTA收到第2个中断响应信号之后,8259A把选中的中断源类型码n通过数据线送往CPU。(5)在实模式下,CPU从4×n~4×n+3单元取出该中断源的中断向量→IP,CS,从而引导CPU执行该中断源的中断服务程序。8259A编程(1)初始化编程提供了4个(ICW1~ICW4)初始化命令字,写入命令寄存器组后,就建立了8259A的基本工作方式。系统8259A的初始化编程在微机启动时,由BIOS自动完成。用户不需再对其初始化,更改它的初始化设置。BIOS对系统8259A初始化为:中断触发方式采用边沿触发。中断屏蔽方式采用常规屏蔽方式。中断优先级的管理采用完全嵌套即固定优先级方式。IR0的请求级别最高,IR7的请求级别最低。中断结束,采用常规结束方式。(2)操作方式编程将操作命令字OCW1~OCW3写入操作命令寄存器组,对中断处理过程实现动态控制。OCW1~OCW3各命令格式如图3-2所示。OCW1——写中断屏蔽字(对奇地址操作)某位Mi为1,表示对应的中断源IRQi被屏蔽;Mi为0,IRQi被开放。OCW2——写中断方式命令字(对偶地址操作)3-1设置优先级是否进行循环,循环的方式及中断结束的方式。OCW3——(对偶地址操作)用来设置特殊屏蔽方式、查询方式用来读8259A的中断请求寄存器IRR,中断服务寄存器ISR、中断屏蔽寄存器IMR的当前状态。2、8254定时/计数器8254是Intel公司生产的可编程间隔定时器。是8253的改进型,比8253具有更优良的性能。8254具有以下基本功能:(1)有3个独立的16位计数通道;(2)每个计数器可按二进制或十进制(BCD)计数;(3)每个计数器可编程工作在6种不同工作方式;(4)每个计数器允许的最高计数频率为10MNZ(8253为2MHZ);(5)有读回命令(8253没有),可以读出当前计数单元的内容和状态寄存器内容;图3-33-2图3-3是8254的内部结构框图和管脚图。它是由与CPU的接口、内部控制电路和三个计数器组成。8254的工作方式:方式0——计数结束输出正跃变信号(可作为中断请求信号),方式1——单脉冲发生器(形成负脉冲,宽度=N×CLK脉冲周期)方式2——分频器(输出固定频率的脉冲)方式3——方波发生器方式4——软件触发的单脉冲发生器(输出负脉冲,宽度为一个CLK周期)方式5——硬件触发的单脉冲发生器(输出负脉冲,宽度为一个CLK周期)8254的方式控制字格式,如图3-4:图3-43、8255可编程芯片8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,具有A、B、C三个并行接口,用+5V单电源供电,其内部结构及管脚,如图3-5:图3-58255的工作方式:方式0——基本输入/输出方式,其工作特点为:1)即为无条件输入/输出方式,端口与外设之间不需要联络信号。2)A口、B口、C口可由控制字规定为输入/输出。方式1——选通型输入/输出方式方式2——双向选通方式8255工作方式控制字和C口按位置位/复位控制字格式如图3-6所示:图3-64、七段数码管数码的显示方式中最常应用的是分段式,主要器件是七段发光二极管(LED)显示器。它可以分为两种,一种是共阳极显示器(发光二极管的阳极都接在一个公共点上),另一种是共阴极显示器(发光二极管的阴极都接在一个公共点上,使用时公共点接地)。我们的电子钟是由4个“七段数码管”排列组成,分别显示对应数字,如“00.00”。七段数码管a、b、c、d、e、f、g如图3-7所示:图3-7当显示“1”时b、c段亮,“2”时a、b、g、e、d亮,依次推导。下面是数码转换图3-8,其中包括七段码中共阴部分对应关系。汇编中显示0、1、