微机原理课程设计——电子时钟设计.docx
2010级微机原理课程设计试验报告设计题目:电子时钟设计班级:电信IOIo2班分组名单:2012-6-28书目第一章设计部分1.1 设计目的1.2 设计要求13设计思路其次章实现部分2.1、 分析论证2.1.1 显示模块12.1.2 时钟运算模块12.1.3 对时模块22.2、 原理说明223、设计电路图223.18086量小工作方式223.2秒脉冲发生号32.3.3时、分调赘电路323.4.显示电路42.4、 元件功能说明241S253的主要功能42.4.2 .D触发器741.s273管脚排列图及功能表介绍52.4.3 单向总线驱动器741.s244功能介绍525、程序清单62.6、调试过程遇到问题及解决方法9第三章电子时钟运用说明3.1电子时钟按键说明第四章学习心得附录叁考文献9第一章设计部分1.1 设计目的学习驾驭protucs软件功能及其运用方法娴熟驾驭TND86/88教学系统的基本操作和调试程序的各种指令。娴熟驾驭8086CPU的运用与编程调试程序的方法。驾驭8253定时,计数器的工作原理、工作方式及其应用编程。练习7SEG-MPX8-CA-RED数码管的显示编程方法。1.2 、设计要求利用8253定时器设计一个具有时、分、杪显示的电子时钟,并定义一个启动键,当按卜.该键时时钟从当前设定值(可在显示缓冲区中予置)起先走时。13、设计思路电子时钟主要由显示模块、对时模块和时钟运算模块三大部分组成。其中对时模块和时钟运算模块要时时、分、杪的数值进行操作,并且秒计算到60时,要自己清零并向分进I;分计算到60时,要自己清零并向时进I:时计算到24时,要清零。这样,才能循环记时.显示时利用7段显示器显示六位十进制数据。前两个显示小时,中间两个显示分钟,后两个显示杪。时钟的运算是利用中断来实现的,利用8253的模式三输出肯定频率的方波作为触发中断的条件。8253A可编程定时浒数器的输入时钟为100KHz,设定时/计数器0的计数初值为100,工作在方式3,即方波发生器,其输出的IKHz方波作定时/计数器2的时钟。定时/计数器2的初值设为I(XX).工作在方式2,即每隔IS输出负脉冲,取反后用作不行屏蔽中断的中断申谙信号,在中断服务程序中计算时间,并通过741s273并行输H1.到数码管显示。其次章实现部分2.1、 分2.1.1、 显示UUfe利用数码管的显示功能来设计。数码管是由八个条形发光二极管组成的,这些发光二极管的阴极是相互连接在起的,所以称为共阴极数码管。通过在这八个发光二极管的阳极加+5V或0V的电压使不同的二极管发光,形成不同的字符和数字。电子时钟用到的是。到9十个数字,他们所对应的字符表依次是3FH、06H、5BH,4FH、66H,6DH、7DH,07H,7FH、6FH,该模块显示时先将保存在数据单元的当前时间包括小时和分钟读取出来,把十六进制数字转化成十进制用四个字节分别存放小时和分钟,并把这四个数值通过74k273端口输出给数码管显示。2.1.2、 时钟运算模块该模块的主要功能是对时、分、秒的运算,并把运算出的最终结果存到事先已经开拓的内存单元里,以便显示模块即时地显示出来。该模块可以细分为秒定时模块和运算模块.杪定时模块负货供应中断信号,由于CPU运算模块中的指令消耗肯定的时间,所以中断信号最好通过硬件来实现,选择的是8253定时/计数,但又因为8253所能供应的信号的周期时老秒级的,因此必需通过软件的方法在运算模块中设置个统计中断次数的变量,并且这一变量必需事先在内存里开拓存储堆元。中断信号是8253的计数涔2工作方式为方式2时,同过设置计数器2的初值来产生个IS的脉冲信号。运算模块负货时、分、秒的计算,该模块主要通过8086的NM1.信号中断来实现,首先将秒定时模块供应的中断信号为8086的NMI中断恳求信号。但由于每IS一次中断层求。所以在中断服务程序必需利用已申请内存单元CoUnt来统计中断恳求的次数,只有当count的值为100O时,才能让秒单元内的数值加I。另外,在中断服务程序里,必需对秒、分和时的雎元内的数值进行推断,当秒加到60时,分必需加1、秒清零:当分加到60时,时加1、分清零。当时加到24啊,干脆清零。2.1.3、 对时模块该模块主要功能是修改小时、分钟内存单元的数值在对时的时候,秒接着走时,并且在对分进行调整的时,时单元内的数值不变。由以上分析可见,对时、分的调整用两个优先级而于NMI的中断来完成。两个中断源的中断恳求信号只需干脆接在两个按键即可起到对时作用。2.2、 原理说明电子时钟主要由741.s273锁存器、8253定时/计数器、741s244反相器、1.ED数码显示管和两个按键组成。主要用8086的NMI的中断服务程序完成秒、分、时的运算即计时功能,两个开关的中断服务程序完成调时、调分功能。8253用来产生IS的脉冲信号作为NM1.的中断恳求信号。741.s273负责将内存里的时位和分位秒位值输出到数码管。23、设计电路图电子时钟的完整电路图如下:2.3.1.8086最小工作方式更s.233时、分调整电路2.4、元件功能说明2.4. K8253的主要功能1可编程定时器,计数器,其定时与计数功能可由程序故捷地设定,设定后与CPU并行工作,不占用CPU的时间。计数器2工作在模式3方式卜.,供应计.算一秒的中断恳求信号。2.4.2、 D触发器741.s273管脚排孔图及功能表介绍741.S273是一种带消除功能的8D触发器,ID-8D为数据输入端,IQ-8Q为数据输出端,正脉冲触发,低电平清除,常用作数据锁存器,地址锁存涔。CUOOUTO8T8QKDX232221笫2tt0st5xf3CONNECTIONDIAGRAMDIP(TOPVIEW)VccQ7D7DtQ6Q50$D4Q4CPI20U同向冈向国同向1.jJ山1.1.J1.AJIAJ1.1.J1.1.JIA1.1.IJ1.i1.1.MR(D1O1O2D2D3Q3GNO1.oADING(No1.ea)PINNAMESHIGH1.OWCPOoCi(AciweHIGHGoingEdge)Input0.5U.1.0.25U1.DOeDatahpub0.5U1.0.25U1.MRMasterReset(ACWe1.OW)Input0.5U.1.0.25U1.Qo-O?Regjseruui5101.SU.1.NOTES:a)1111.Unit1.oad(U.1.)三40AHIGH11.6mA1.OW.TRUTHTAB1.ECPDXQX1.HHXXH1.1.H1.HHIGH1.ogic1.ew1.-1.OW1.ogic1.eve1.XIrwnaieai2.4.3、 单向总线驱动器741.s244功能介绍741.S244是8路3态服向缓冲出动.也叫做总线邨动门电路或线驱动。简洁地说,它有8个输入端,8个输出端.可以增加信号的驱动实力.为单向驱动。A为输入,丫为输出,高电平有效。.MODE1.SMA1.1.8086.STACK.CODE.STARTUPNM1.INiTiPUSHES;nmi不行屏蔽中断向量表初始化XORX,XMOVES,AXMOVA1.02HXORAH.AHSH1.AX.1SH1.AX,1MOVSI.AX;相当于csip入栈MOVAX.OFFSETNMI-SERVICE:调用中断处理程序movesisi,axINCsiINCS1.MOVBX.CS;MOVES:(SI,BXPOPES:定时器初始化MOVA1.(X)1IOII1.BMOVDX,()406HOUTDX,A1.MOVDX.040()HMOVX.()100HOUTDX,AI.MOVA1.AHOUTDX.A1.MOV1.IO1.IOIO1.BMOVDX.()4()6HOUTDX,A1.MOVDX.0404HMOVX,1(XX)HOUTDX,A1.MOVA1.AHOUTDX.A1.1.OOPO:住任务CA1.1.KEYCA1.1.DISPJMP1.PONM1.SERVICE:;中断服务程序PUSHAXMOVA1.SECADDAU1.DAAMOVSEC.A1.CMPSEC.6()HJBEXITMOVSEC.0MOVA1.MINADDA1.JDAAMOVMIN.A1.CMPMIN.60HJBEXITMOVMIN,0MOVA1.HOUADDA1.JDMOVHOU,AI.CMPHOU.24JBEXITMOVHOU.()ExitpopaxIRETDISPPROCNEARMOVA1.OFFH;不显示MOVDX,()2()1HOUTDX.A1.MOVB1.SECANDBX.(XX)FHMOVS1.BXMovausituationisii;段码MOVDX.02HOUTDX.1.MOVA1.,OFEH;秒个位MOVDX.020IHOUTDX.A1.CA1.1.DE1.AYMOVA1.,OFFH;不显示MOVDX,020IHOUTDX.A1.MOVB1.SECANDBX1(X)FOHMOVC1.4SHRBX,C1.MOVSI.BXMOVA1.SITUATIONSIMOVDX.02(X)HOUTDX,A1.MOVA1.OFDHMOVDX.020IHOUTDX.A1.CA1.1.DE1.AYMOVA1.OFFHMOVDX.020IHOUTDX,1.MOVA1.40UMOVDX.0200HOUTDX.A1.MOVA1.OFBHMOVDX.020IHOUTDX.A1.CA1.1.DE1.AYMOVA1.OFFHMOVDX.()2()IUOUTDX.A1.MOVB1.MINNDBX.(XX)FHMOVS1.BXMOVA1.SITUATIONSIMOVDX,0200HOUTDX.1.MOVA1.,()F7HMOVDX.020IHOUTDX.A1.CA1.1.DE1.AYMOVAI.,0FHIMOVDX.020IHOUTDX.A1.MOVBI.MINANDBX1OOFOHMOVC1.4SHRBX.C1.MOVSI.BXMOVA1.SITUATIONSIMOVDX.0200HOUTDX.1.MOVA1.OEFHMOVDX.0201HOUTDX1AI.CA1.1.DE1.AY:分十位;段码MOVA1.OFFHMOVDX.O2()1HOUTDX,A1.:不显示秒十位MOVA1.40H;MOVDX.02HOUTDX.1.段码MOVA1.1ODFH;秒个位;不显示MOVDX,020IHOUTDX.A1.C1.1.DE1.AY;段码MOVA1.1OFFHMOVDX.020IHOUTDX.A1.;不显示渺个位MOVB1.HOUANDBXi(MX)FUMOVSI.BXMOVA1.SITUATION(SI;段码;不显示MOVDX.()2(M)HOUTDX,A1.MOVA1.OBFHMOVDX.0201HOUTDX.A1.Ca1.1.de1.ay;时个位;段码MOVA1.,OFFHMOVDX.0201HOUTDX.1.;不显示;分个位MOVB1.HOUANDBX,FOHMOVC1.4SHRBX.C1.;不显示MOVSI.BXMOVA1.,S1TUATION(S1MOVDX.02HOUTDX.A1.;段码MOVA1.,07FHMOVDX.020IHOUTDX.A1.CA1.1.DE1.AYRET;时十位;段码D1.SPENDPKEYPROCNEARMOVDX.06(X)HINA1.DXPOPCXTESTU)1HPOpBXJNZNEXTHOURETCA1.1.DISP;消抖DE1.AYENDPCA1.1.DISP.DATACA1.1.D1.SPSECDB(X)HMOVDX.(k>(M)HMINDBOOHINA1.,DXHOUDB23HTESTA1.01HSITUATIONJNZNEXHOUDBMOVA1.1MIn3FH,06HBH,4FH,66H,6DH,7DH.07H,7FH,6FH.ADDA1.J:分调整40HDAASn1.END=$MOVM1.N.A1.CMPMIN.60HJBNEXTHOUMOVMIN.0NEXTHOU:MOVDX.(XX)HINA1.,DXTESTA1.,02HJNZEXITKEYENDCA1.1.DISPCa1.1.dispCa1.1.dispMOVDX.0600HINA1.DXTESTA1.,02HJNZEXITKEYMOVA1.HOUDD1.,1;消抖DAAMOVHOU.A1.CMPHOU.24HJBNEXTHOUMOVHOU.OEXiTKEYzRETKEYENDP;时调整DE1.AYPROCNEAR;定时了程序PUSHBXPUSHCXMOVBX.11.PkMOVCX,4691.P2±OOP1.P2DECBXJNZ1.P1.2.6、调试过程遇到问JS及解决方法将编写好的源程序输入,编译后出现许多问题,经过反更修改程序域终运行通过。数码管显示的数字并不与理论计算值相符合,经过反发分析源程序发觉问题出现在内存单元里时位和分位在转化为十进制时出错,经过更改内存但愿数据。一起先数字闪动,后来请教同学,缘由应当出在显示子程序里,缺少延时程序。编写延时子程序,并在显示子程序调用它;编译源程序,装入生成的可执行文件,并运行。数码管显示的数字与理论值相符合,并能正常计时。第三章电子时钟运用说明3.1电子时钟按键说明本电子时钟可以24小时循环计时,并且具有调时功能,操作方法如下:开机运行后,即显示初始时间12:0()整,按动一下M1.N按键即可启动调分,此时每按动一卜MIN按健分位数字加1,完成对分的调整:再按动一下HOU按键启动调时,按动下HOU按键时位数字加I.完成对时的调整。再按吓HOU按键即关闭功能,正常计时.第四章学习心得在这次课程设计过程中,我们逐步养成了发觉、提出、分析和解决实际问题的习惯:这不但熬炼提高/我们的实践实力,更是对我们实际工作实力的详细训练和考察过程。对于此次电子时钟课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在这短短两个星期的日子里,不仅让我们巩固了以前所学过的学问,而且学到了许多在书本上所没仃学到过的学问。通过这次课程设计使我懂得理论与实际相结合的重要性,只有理论学问是远远不够的,只有把所学的理论学问与实践相结合起来,从理论中得出结论,从而提裔自己的实际动手实力和独立思索的实力。在设计的过程中也发觉了自己对以前所学过的学问理解得不够深刻,驾驭得不够坚固,比如说触发器的运用还是不怎么物悉,但是通过这次课程设计,我们对8086CPU,8253定时器74I.S273.74I.S244等一些芯片有了更深刻的理解与相识。同时也看到了臼己基础学问还是不够扎实,实践阅历还是比较缺乏,理论联系实际的实力还待急需提高。通过这次课程设计之后,肯定把以前所学过的学问重新温故。在这个过程中,也曾经因为实践阅历的缺乏失落过,也曾经仿真胜利而热忱高涨.生活就是这样,汗水预示若结果也见证者收获.虽然这只是一次的较简洁的课程设计,可是也耗蚀了我们不少的心血,让我们或正的体会到了对于设计者来说,钻研精神是何等的重要。经验过了这次课程设计,我们不但在学问上有了重要收获,精神上的丰收更加难能珍贵。这让我明白,我们每一个人做任何事,都须要探究精神,不管前方的道路有多艰险,走过,你才能知道自己的实力,人不能停留于眼前,因为学无止境。一次挫折是一份财宝,一次胜利是一份动力,一次跨步就是一次飞跃,人生费在拼搏!毋痛置疑,这次课程设计必将是高校里个新的起点!附录弁考文献:1、微型计算机技术及应用2,微机原理与接口技术试眩指导书