计算机科学与技术学院计算机组成原理课程设计报告书课题名扩展8253定时计数器班级芙蓉计算机0801姓名黎祖吉学号08120134指导教师杨红杰日期2010.12.20~2010.12.24一、设计目的1、融会贯通教材各章的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识,以及对计算机工作中“时间-空间”概念的理解,从而清晰地建立计算机的整机概念。2、在构成一台完整的模型机的基础上,控制真实的外围接口芯片,进行基本的接口实验。3、本实验外扩一块8253接口实验板,完成定时计数器实验。4、熟悉8253定时器/计数器的功能及接口方法。二、实验任务1.分析本实验主板上8253的硬件电路原理。2.熟悉8253的工作原理后,运行出8253的初始化程序。三、设计内容1、8253的引脚8253有3个独立的16位减计器通道,每一个通道有三条引线:CLK、GATE和OUT。①CLK:输入时钟,8253规定,加在CLK引脚的输入时钟周期不能小于380ns。②GATE:门控信号输入引脚。这是控制计数器工作的一个外部信号。当GATE引脚为低时,通常都是禁止计数器工作的;只有GATE为高时,才允许计数器工作。③OUT:输出引脚。当计数到“0”时,OUT引脚上必然有输出,输出信号波形取决于工作方式。8253内部端口的选择及每个通道的读/写操作的选择如下表所示:RDWRA1A0寄存器选择和操作1000写入计数器01001写入计数器11010写入计数器21011写入控制寄存器0100读计数器00101读计数器10110读计数器20111无操作(3态)8253的端口的控制子:实验电路组成原理框图:OUT0GATE0CLK0OUT1GATE1CLK1OUT2GATE2CLK2CSRDWRA0A1111091314151617182MHZfx2122232019DSDCDCLKQQVccD0....D71Y5RDWRA0A1VccPC3AO2FX自激振荡(自D/A输出)(外部输入TTL)(实验主板振荡电路)指示灯电路D0D7VccVccVccD7D6D5D4D3D2D1D000选择计数器001选择计数器110选择计数器211非法选择00计数器锁存命令01只读/写最高有效字节(高8位)10只读/写最低有效字节(低8位)11先写最低有效字节再写最高有效字节000方式0001方式1x10方式2x11方式3100方式4101方式50二进制1BCD初始状态:2、8253的工作方式和输出波形方式功能输出波形0计完最后一个数中断写入计数值N后,经过N+1个CLK脉冲输出变高1硬件再触发单拍脉冲单拍脉冲的宽度为N个CLK脉冲2速率发生器每N个CLK脉冲,输出一个宽度为CLK周期的脉冲3方波速率发生器写入N后,输出1/2N个CLK高电平,1/2N个CLK低电平(N为偶数)(N+1)/2个CLK高电平,(N-1)/2N个CLK低电平(N为奇数){4软件触发选通写入N后,过N+1个CLK,输出一个宽度为1个CLK的脉冲5硬件触发选通门控触发后,过N+1个CLK,输出一个宽度为1个CLK的脉冲芯片介绍8253芯片内部有三个独立的16位定时/计数器。每个计数器有三个信号端,其作用是:1).CLK——时钟输入信号2).GATE——门选通信号3).OUT——计数器输出信号8253有六种工作方式,分别为:1).方式0:计数结束产生中断方式2).方式1:可编程单次脉冲方式3).方式2:分频工作方式4).方式3:方波方式5).方式4:软件触发选通方式6).方式5:硬件触发选通方式3、8253芯片引脚特性及外部连接⑴8253的引脚分配图如图3-19所示:⑵实验接线①实验机内部连接同实验九②外部连接说明·扩展区数据总线KJ1用8芯排线连至数据总线BUS6;·扩展区KJ2用5芯排线连至外部总线区的KZ;·CLK1用单针连接线连至H24;·扩展区的VCC和GND用单针连接线分别连至主控区的VCC和GND上;·扩展区短路片DL1、DL2连右边。⑶A0、A1、CS、RD、WR五个引脚的电平与8253操作关系如表3-11所示。4、为本实验新设计几条指令⑴清寄存器指令助记符机器码CLRR011100XX这是一条单字节指令,XX为寄存器选择码,00=R0,01=R1,02=R2。其功能是清0寄存器Ri。⑵取数指令助记符机器码LDAM,D,R00XX00XXXXXXXXXX这是一条双字节指令,前面的XX(M)为寻址模式(详见实验九),后面XX(R)为寄存器选择码,00=R0,01=R1,02=R2,其功能是将((R)+D)内存中的内容送到目标寄存器R中。5、实验步骤⑴连好线路,并检查无误后接通电源。⑵在实验九所设计的微程序基础上将表3-12的微程序改写到微程序控制存储器中,根据上面指令格式,对8253编程,编写如下机器指令,写入主存,微程序流程图见3-19(A),如果是在联机状态下,只要将16进制文件C8JHE5装载到实验机即可。然后,执行机器指令,验证系统执行指令的正确性。机器指令如下:地址(二进制)内容(二进制)助记符说明0000000001000100INR0;输入开关量→R0;输入开关置数011101100000000111110000COUTR0,[03];R0→以03H为地址的端口00000010000000110000001101110000CLRR0;清0寄存器R00000010000010000LDAM,20H,R0;((R0)+20)→R000000101001000000000011011110000COUTR0,[01];R0→以01H为地址的端口00000111000000010000100001110000CLRR0;清0寄存器R00000100100010000LDAM,21H,R000001010001000010000101111110000COUTR0,[01];R0→以01H为地址的端口00001100000000010000110100001000JMPM,00H;00→PC00001110000000000010000000010000;20H、21H单元定义时间常数0010000100000000;其中,第一条指令从输入设备置数01110110,是将8253置成方式3,且通道1输出OUT1输出方波。将机器指令写入主存,运行程序,用示波器测量OUT1端,应有方波输出。实验程序框图四、系统调试结果1.程序运行图执行第一条指令,程序计数器将指令地址送到地址寄存器PC→AR,AR为00;PC自加1,pc由00变为01.;存储器RAM的内容为00地址内的内容01000100(44)微地址为02,存储器RAM将存储器中的内容经bus总线传给指令寄存器IR,故IR的内容为44,再传到微控器中。微地址为14。将输入数据01110110(76)经数据总线传送到R0寄存器中。微地址为01。执行第二条指令,程序计数器将指令地址送到地址寄存器PC→AR,AR为01,PC自加1为02,存储器RAM中的值为第二条即地址为01中的内容,11110000(F0)。微地址为02。存储器RMA将其内容经bus总线传送到指令寄存器IR,IR为F0,再传到微控器中。微地址为1F。执行第3条指令,程序计数器将指令地址送到地址寄存器PC→AR,AR为02,pc自加1为03,存储器RAM中的值为第二条即地址为02中的内容00000011(03)。微地址为39存储器RAM将内容03传送到地址寄存器中,即地址寄存器AR为03,又经地址总线将第四条指令03地址内的内容01110000(70)送到存储器中RAM。微地址为3A。寄存器R0中的内容经数据总线输出。微地址为01。执行第4条指令,程序计数器将指令地址送到地址寄存器PC→AR,AR为03,pc自加1为04,存储器RAM中的值为第4条即地址为03中的内容01110000(70)。微地址值为02。微地址为17。计数器ALU经BUS总线将ALU中的数据内容传给寄存器R0,在经BUS总线传给299。微地址为01。。。。。。。。。。。。。。。。。。。。。。。。2.程序运行波形图将触头插入OUT1中,打开示波器即可看到示波器中的波形图,如不大明显可将笔触头贴近8253的相应的引脚上,因引脚的效果比较明显。五、实验分析运行时要先输入数据01110110。经以上运行结果可知,当微地址为01时,则将运行程序计数器将其中的内容传给地址寄存器,后程序计数器将自加1,即PC→AR,PC+1。当微地址为02时,存储器RAM将其内容经bus总线传送到指令寄存器IR,即RAM-BUS,BUS→IR。当微地址为14时,执行SW经BUS总线传到R0寄存器中,即SW-BUS,BUS-AR。当微地址为1F时,执行程序计数器PC将其中的内容传给地址寄存器,后程序计数器自加1,即PC→AR,PC+1。当微地址为39时,执行存储器RAM的内容经BUS总线传到地址寄存器AR。即RAM-BUSBUS-AR。当微地址为3A时,R0寄存器中的数据经BUS总线到OUTPUT输出。即R0-BUS,BUS-OUTPUT。当微地址为17时,计数器ALU经BUS总线将ALU中的数据内容传给寄存器R0。当微地址为10时,则将运行程序计数器将其中的内容传给地址寄存器,后程序计数器将自加1,即PC→AR,PC+1。当微地址为03时,执行存储器RAM经BUS总线经内容传到数据寄存器DR1。即ALU-BUSBUS-DR1。当微地址为04时,执行存储器RAM的内容经BUS总线传到地址寄存器AR。即RAM-BUSBUS-AR。当微地址为11时,执行程序计数器PC将其中的内容传给地址寄存器,后程序计数器自加1,即PC→AR,PC+1。当微地址为22时,执行SW经BUS总线传到R0寄存器中,即SW-BUS,BUS-AR。当微地址为2C时,执行存储器RAM的内容经BUS总线传到地址寄存器AR。即RAM-BUSBUS-AR。当微地址为2D时,执行存储器RAM经BUS总线将存储器中的内容送给数据寄存器DR2中。即RAM-BUSBUS-DR2。当微地址为2E时,存储器RAM经BUS总线将RAM中的内容送格给数据寄存器DR1中。即RAM-BUSBUS-DR1。当微地址为2F时,将执行把ALU中的DR1+DR2的结果经BUS总线传送给寄存器R0中。即DR1+DR2-BUSBUS-R0.六、设计总结这次实验,要求对8253非常了解的基础上才能灵活的运用。在学习的时候知道8253有6种工作方式。8253的工作方式有6种,不论哪种工作方式,都遵守如下几条基本原则:(1)控制字写入计数器时,所有的控制逻辑电路立即复位,输出端OUT进入初始状态。该初始状态与工作方式有关,设置成方式0时,OUT的初始状态为低电平,设置成其他工作方式,OUT的初始状态为高电平。(2)初始值写入初值计数器CR以后,要经过一个时钟脉冲的上升沿和下降沿,将初值送入计数执行单元,计数执行单元从下一个时钟开始进行计数。(3)通常,在时钟脉冲CLK的上升沿对门控信号GATE进行采样,各计数器的门控信号的触发方式与工作方式有关。在方式0、方式4中,门控信号为电平触发;方式1、方式5中,门控信号为上升沿触发;方式2、方式3中,即可用电平触发,也可用上升沿触发。(4)在时钟脉冲的下降沿计数器进行计数。1).方式0:计数结束产生中断方式2).方式1:可编程单次脉冲方式3).方式2:分频工作方式4).方式3:方波方式5).方式4:软件触发选通方式6).方式5:硬件触发选通方式在这次实验我们用到方式3,方式3为方波发生器。方波的每个周期宽度总是N个CLK脉冲周期,因此输入的CLK脉冲信号也是具有N分频关系。在正确选择方式的情况下,我们如何设置呢?首先,要确定控制端口地址,端口地址的确定要结合实验具体的硬件电路来确定。其次,在正确定义确定端口地址后,我们需要对端口进行控制字的写入。最后,还要写完整的汇编程序写入编程软件,并下载到实验机进行验证程序是否符合要求。七、心得体会本次