您好,欢迎访问三七文档
——微机原理课程设计田昊20071901198同组:孟健指导教师:刘志珍电子时钟设计2目录一设计目标:...........................................................................................3二设计要求:...........................................................................................3三硬件设计...............................................................................................33.1系统总框图:..........................................................................33.2模块电路设计..........................................................................4四软件设计...............................................................................................94.1设计思路:.............................................................................94.2程序流程图.............................................................................94.3关键程序设计........................................................................10五调试过程...............................................................................................12六心得体会.............................................................................................12七致谢.....................................................................................................12附件...........................................................................................................13完整原理图:...........................................................................................13完整程序...................................................................................................143显示模块8086最小系统计时模块中断管理模块一设计目标:设计以8086为控制核心,基于时钟芯片8253的电子时钟。系统通过晶振获得时钟信号,由8253进行分频计数产生秒中断,通过中断管理芯片8259向控制核心提出中断请求,通过由8255进行管理的LED数码管显示由时间。二设计要求:1.计时精确2.显示方式清晰。3.具有时间调整功能。4.系统稳定可靠。三硬件设计3.1系统总框图:43.2模块电路设计3.2.18086最小系统在本系统中,8086工作在最小模式下。负责对8259,8253等芯片进行工作方式控制和数据处理,对时钟信号进行响应并控制led数码管进行显示。1.AD7~AD0(双向。三态)为低8位地址/数据的复用引脚线。采用分时的多路转换方法来实现对地址线和数据线的复用。在总线坐骑的T1状态。这些银线表示为这些银线用作株距总线。可见对复用信号使用时间来加以划分的。它要求在T1状态线出现低8位地址时,用地址锁存器加以锁存。这样在随后的T状态,即使这些线用作数据线,而第8位地址线的地址在个体却被记录保存下来,并送到地址总线上。在DMA方式时,这些银线被浮置为高阻状态。2.A15~A8(输出,三态)为8位地址线。在读写存储器或外设端口色中个总线周期内,都作为地址线输出高8位地址。在DMA方式时,这些引线被浮置为高阻。3.A19/S6~A16/S3(输出。三态)为地址/状态服用引脚线,在总线周期的T1状态,这些线表示为最高4位的地址线,在总线周期的其他T状态,这些线用作提供状态信息,同样需要地址锁存器对T1状态出现的最高4位地址加以锁存。状态信息S6总是为低电平,S5反映当前允许中断标志的状态。S4与S3一起指示当前那一个段寄存器被使用。在DMA方式时,这些引线被浮置为高阻。4.RD(输出,三态)读信号,当其有效时表示正在对存储器或I/O端口进行读操作。若IO/M为低电平,表示读取存储器的数据,若IO/M为高电平,表示读取I/O端口的数据。5在DMA方式时,这些引线被浮置为高阻。5.READY(输入)为准备就绪信号。低电平有效。本信号由等待指令WAIT来检查。我们知道当CPU执行WAIT指令时,CPU处于等待状态,一旦检测到TEST号为低,则结束等待状态,继续执行WAIT指令下面的指令。6.TEST(输入)为检测信号,低电平有效。本信号由低呢古代指令WAIT来检查。我们知道当CPU执行WAIT指令时,CPU处于等待状态,一旦检测到TEST号为低,则结束等待状态,继续执行WAIT指令下面的指令。7.INTR(输入)可屏蔽中断请求信号,高电平有效。CPU在执行每条指令的最后一个T状态时,去采样INTR信号,若发现有效,而中断允许标志IF有为1,则CPU在结束当前指令周期后相应中断请求,赚取执行中断处理程序。8.NMI(输入)非屏幕中断请求信号,为一个边缘触发信号,不能有软件加以屏蔽。只要在NMI线上出现由低到高的变化信号,则CPU就会在当前指令中,赚取之行给屏蔽中断处理程序。9.RESET(输入)复位信号,高电平有效,复位时该信号要求维持高电平值到4个时钟周期,若使初次加电,则高电平信号至少要保持50us,复位信号的到来,将立即结束CPU的当前操作,内部寄存器恢复到初始状态。当RESET信号从高电平回到低电平时,及复位后进入重新启动时,变质型从内存FFFF0H处带式的指令,通常在FFFF0H存放一条无条件转移指令,转移到系统程序的实际入口处。这样只要系统被复位启动,就自动进入系统程序。10.CLK(输入)时钟信号,它为CPU和总线控制电路提供基准时钟,对时钟信号要求:1/3周期为高电平,2/3周期为低电平。8088的标准时钟频率为5MZ。11.电源和地VCC为电源引线,单一的为+5V电源。引脚为1和20为两条GND线,要求均6要接地。12.IO/M访问存储器或I/O端口的控制信号。若IO/M为高电平,则访问的是I/O端口;若IO/M为低电平,则访问的是存储器。13.WR写信号。当其有效时表示CPU正在对存储器或I/O端口进行写操作,具体对水进行写操作,有IO/M信号决定。本信号在总线周期的T2,T3。TW状态有效。在DMA方式时,此线被浮置为高阻。3.2.2计时模块计时模块以8253为核心,通过工作于工作方式3的计时器1将5M的信号分频为1kHz的信号,并将其引入计时器2的CLK端,计时器2计数1000次,产生秒信号,并将其送入8259产生中断请求。计时器的初值计算如下:计时器1初值:X=5000(即61051X=31011),用十六进制表示为1388H;计时器2初值:X=1000(即110113X),用十六进制表示为3E8H。D71D62D53D44D35D26D17D08CLK09OUT010GATE011GND12OUT113GATE114CLK115GATE216OUT217CLK218A019A120CS21RD22WR23VCC248253*VCCRDWRGNDVCCIR0START73.2.3中断管理模块采用8259进行中断管理。将8253产生的秒脉冲信号作为中断源,向cpu8086进行中断请求。8259通过总线与8086进行连接。须将8259配置为非缓冲,一般完全嵌套,边沿触发,一般EOI,开放IR0,封锁IR1~IR7。对应的初始化命令字如下:ICW1=13H;ICW2=60H;ICW4=01H;OCW1=0FBH;OCW2=20H;3.2.4显示模块用共阳极数码管进行时间显示。段码与位码均由并行管理芯片8255进行管理。模块电路图略。CS1WR2RD3D74D65D56D47D38D29D110D011CAS012CAS113GND14CAS215SR/EN16INT17IR018IR119IR220IR321IR422IR523IR624IR725INTA26A027VCC288259A*VCCGNDRDWRIR083.2.5地址译码8086与外围芯片的控制方式是将外围器件作为一个端口,通过编址实现芯片的识别。将地址信号经译码后传入cs端,并与芯片的A0,A1口结合实现8位地址。同时注意M\IO端口应输出0。例如8255,通过与非门和非门的结合进行译码,如图:地址为40~43H。9四软件设计4.1设计思路:1、通过2CH,2AH,两种系统中断取得系统时间,进行显示错误!未找到引用源。、借助字模提取软件构造字符,以“*”显示4.2程序流程图是否转换为字模显示保存开始取系统时间秒信号是否改变104.3关键程序设计4.3.1BCD码转换子程序由于年月日等时间参数存储的空间各不相同,机械的处理会造成大量的冗余和低效代码,需要解决了子程序参数传递的问题。为此,我采用了堆栈传递的方式,此方式的优点在于每次可以传递不同地址的数据。并通过宏定义完成取址和压栈。程序如下:GET_OFFSETMACROADDRESSMOVBX,OFFSETADDRESSPUSHBXENDM;************************************************************;时间参数转换为BCD码;;;************************************************************BIN_BCDPROC;BIN_BCDPROC;POPBXPUSHFPUSHDXMOVDL,10CBWDIVDLMOVBX,BPMOV[BP],ALMOV[BP+1],AHPOPDXPOPF11RETBIN_BCDENDP调用时,程序如下:GET_OFFSETYEARCALLBIN_BCD通过宏取得偏移地址,压栈后在子程序中调用。通过此种方式,简化了代码。4.3.2字模显示DOS环境下字符过小,显示效果较差,为获得较好的显示效果,采用了构造字模的形式,取得了较好的效果。方法是通过ROMBIOS中断功能的调用,依次定位光标位置,通过在相应位置输出‘*’字符,构造出字形。显示效果如下:12五调试过程1.使用DXP绘制原理图的时,将功能相近的引脚进行集中排布,以克服原始封装(尤其是8086,其16位的AD口和A16~A19分布在了芯片的两侧,造成连线时整个原理图混乱)带来的逻辑不清的麻烦。2.在硬件图完成之后,发现没有将地址和数据总线分开,由于AD口是地址数据复用口,如果不加区分,则无法实现正常功能。故加入了地址锁存及数据功能,用以将地址线和数据线分开
本文标题:8086数字时钟
链接地址:https://www.777doc.com/doc-5431936 .html