您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 微机课程设计----数字时钟
福建工程学院课程设计课程:微机接口技术课程设计题目:数字时钟专业:计算机科学与技术班级:1003座号:3100301307姓名:胡志伟2012年6月20日一、课程设计题目、目的、内容、功能数字时钟1.实现24小时走时的时钟,并将时间以HH.MM.SS显示在6位数码管上;2.可以根据预设的时间闹铃,一定时间后停止或按键操作停止;3.可通过按键修改时间;4.在8088系统总线的基础上,根据给定的要求设计出接口电路原理图;5.在微机接口实验台上模拟调试实现。二、设计思路,电路图、模块划分,程序的流程框图1、设计思路1)、计时单元有定时/计数器8253的通道0,工作方式3来实现(产生固定频率的方波)。然后再利用软件计数,实现计时。8253定时时间到后产生中断信号,中断服务实现时、分、秒累加。2)、时间显示采用实验箱上的6个LED数码管分别显示时、分、秒,采用动态扫描方式实现。3)设置时间通过开关产生单脉冲8255的PC0~PC2输入,有校时间,时加1,分加1。系统硬件设计主要利用微机实验箱上的电路模块,硬件电路主要有按键电路,单脉冲产生单元、8253定时计数、8255并行接口单元、LED显示电路。2、电路图1)、LED数码管显示电路2)、8253计时器和8255并行通信接口结构图8253端口地址208~20F,8255端口地址201~207f3)、硬件整体电路图:3、程序的流程框图1)、主程序2)、LED数码管显示3)、按键流程图4)、走时流程图三、程序源代码及注释CODESEGMENTASSUMECS:CODE,DS:CODESTART:MOVAX,CSMOVDS,AX;8253产生一秒的脉冲MOVDX,20BHMOVAL,36h;0号定时器,方式3,二进制OUTDX,ALMOVDX,208HMOVAX,7A12H;0.25M/8=31250HZ分频OUTDX,AL;1号数据口MOVAL,AHOUTDX,ALMOVAL,81H;A.B口方式0输出,PC0-3输入,PC4-7输出MOVDX,203HOUTDX,AL;写工作方式控制字START1:MOVDX,202HMOVAL,0F0HOUTDX,ALCALLBEGIN;走时CALLSET;设置MOVAL,HMOVH1,ALMOVAL,MMOVM1,ALMOVAL,SMOVS1,ALCALLNAOMOVAL,HMOVNH,ALMOVAL,MMOVNM,ALMOVAL,H1MOVH,ALMOVAL,M1MOVM,ALMOVAL,S1MOVS,ALJMPSTART1CHAIPROC;时钟显示的时间六位数拆开LEADI,RESMOVDX,00HMOVDL,HMOVCL,4SHRDL,CLMOVBX,DXMOVDL,BUF[BX]MOV[DI],DLINCDIMOVDL,HANDDL,0FHADDDL,0AHMOVBX,DXMOVDL,BUF[BX]MOV[DI],DLINCDIMOVDL,MSHRDL,CLMOVBX,DXMOVDL,BUF[BX]MOV[DI],DLINCDIMOVDL,MANDDL,0FHADDDL,0AHMOVBX,DXMOVDL,BUF[BX]MOV[DI],DLINCDIMOVDL,SSHRDL,CLMOVBX,DXMOVDL,BUF[BX]MOV[DI],DLINCDIMOVDL,SANDDL,0FHMOVBX,DXMOVDL,BUF[BX]MOV[DI],DLRETCHAIENDPCHAI1PROC;闹钟的时间拆开LEADI,RESMOVDX,00HMOVDL,HMOVCL,4SHRDL,CLMOVBX,DXMOVDL,BUF[BX]MOV[DI],DLINCDIMOVDL,HANDDL,0FHADDDL,0AHMOVBX,DXMOVDL,BUF[BX]MOV[DI],DLINCDIMOVDL,MSHRDL,CLMOVBX,DXMOVDL,BUF[BX]MOV[DI],DLINCDIMOVDL,MANDDL,0FHMOVBX,DXMOVDL,BUF[BX]MOV[DI],DLINCDIMOVDL,71HMOV[DI],DLINCDIMOVDL,71HMOV[DI],DLRETCHAI1ENDPKK0PROCMOVDX,202H;判断K0按下,且放开INAL,DXANDAL,01HCMPAL,01HJNZXIA0JMPKS0XIA0:MOVDX,202HINAL,DXANDAL,01HCMPAL,01HJZFU0JMPXIA0FU0:INCK0MOVAH,00HMOVAL,K0MOVBL,3DIVBLMOVK0,AHKS0:RETKK0ENDPKK1PROCMOVDX,202H;判断K1按下,且放开INAL,DXANDAL,02HCMPAL,02HJNZXIA1JMPKS1XIA1:MOVDX,202HINAL,DXANDAL,02HCMPAL,02HJZFU1JMPXIA1FU1:MOVAL,K1ADDAL,01HDAAMOVK1,ALMOVAH,00HMOVBL,24HDIVBLMOVK1,AHKS1:RETKK1ENDPKK2PROCMOVDX,202H;判断K2按下,且放开INAL,DXANDAL,04HCMPAL,04HJNZXIA2JMPKS2XIA2:MOVDX,202HINAL,DXANDAL,04HCMPAL,04HJZFU2JMPXIA2FU2:MOVAL,K2ADDAL,01HDAAMOVAH,00HMOVBL,60HDIVBLMOVAL,AHADDAL,00HDAAMOVK2,ALKS2:RETKK2ENDPSHOWPROC;8255显示时间子程序LOP2:CALLCHAILEADI,RESMOVCX,6MOVAL,KMOVX1,ALLOP:MOVDX,201HMOVAL,0FFHOUTDX,ALMOVDX,200H;A口输出段码MOVAL,[DI]OUTDX,ALINCDIMOVAL,X1MOVDX,201H;B口输出OUTDX,ALRORX1,1;循环右一位LOOPLOPRETSHOWENDPSHOW1PROC;8255显示时间子程序LOP22:CALLCHAI1MOVAL,81H;A.B口方式0输出,PC0-3输入,PC4-7输出MOVDX,203HOUTDX,AL;写工作方式控制字LEADI,RESMOVCX,6MOVAL,KMOVX1,ALLOP11:MOVDX,201HMOVAL,7FHOUTDX,ALMOVDX,200H;A口输出段码MOVAL,[DI]OUTDX,ALINCDIMOVAL,X1MOVDX,201H;B口输出OUTDX,ALRORX1,1;循环右一位LOOPLOP11RETSHOW1ENDPSETPROCMOVAL,HMOVK1,ALMOVAL,MMOVK2,ALDU5:CALLSHOWMOVDX,201HMOVAL,7FHOUTDX,ALCALLKK0MOVAL,K0CMPAL,1JZZHIJMPJIE1ZHI:CALLKK2CALLKK1MOVAL,K1MOVH,ALMOVAL,K2MOVM,ALCALLSHOWMOVDX,201HMOVAL,7FHOUTDX,ALJMPDU5JIE1:RETSETENDPBAOPROCMOVAL,HCMPNH,ALJZMMMJMPJJSMMM:MOVAL,MCMPNM,ALJZLOP33JMPJJSALOP33:MOVAL,00HMOVDX,202HOUTDX,ALJMPJJSJJSA:MOVAL,0F0HMOVDX,202HOUTDX,ALJJS:RETBAOENDPBEGINPROCDU:CALLSHOWMOVDX,201HMOVAL,7FHOUTDX,ALCALLBAOCALLKK0MOVAL,K0CMPAL,0JZXIANJMPJIEXIAN:MOVDX,202HINAL,DXANDAL,08HCMPAL,00HJZDUADDS,01HMOVAL,SDAAMOVS,ALCMPS,60HJNZDU1MOVS,00HADDM,01HMOVAL,MDAAMOVM,ALCMPM,60HJNZDU1MOVM,00HADDH,01HMOVAL,HDAAMOVH,ALCMPH,24HJNZDU1JMPLOP1DU1:CALLSHOWMOVDX,201HMOVAL,7FHOUTDX,ALMOVDX,202HINAL,DXANDAL,08HCMPAL,00HJNZDU1JMPDULOP1:MOVH,00HJMPDUJIE:RETBEGINENDPNAOPROCMOVAL,HMOVK1,ALMOVAL,MMOVK2,ALDU6:CALLSHOW1CALLKK0MOVAL,K0CMPAL,2JZZHI1JMPJIE2ZHI1:CALLKK2CALLKK1MOVAL,K1MOVH,ALMOVAL,K2MOVM,ALCALLSHOW1JMPDU6JIE2:RETNAOENDPHDB00HMDB00HSDB00HH1DB0M1DB0S1DB0NHDB12HNMDB36HKDB0DFHX1DB00HK0DB0K1DB0K2DB0BUFDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;不加点DB0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH;加点的数RESDB6DUP(?)CODEENDSENDSTART四、调试过程,出现的问题及解决1、调试过程中,时间显示和时间保存、传送过程出项错误,不过最后都解决了2、按键的消抖处理没能完成。五、运行结果,运行说明;按键:K0是选择设置键(时间、闹钟),K1是时设置,K2是分设置闹钟:发光二级管亮表示响铃时间显示:六个数码管(初始值00.00.00)六、课程设计心得体会、编程经验、程序改进之处;持续一周的课程设计即将结束,想起最初的无处下手,到分析设计,到编程调试,知识和经验一点点的在积累,最终较好的完成了本次课程设计的任务。在设计过程中,我也遇到的一下困难,例如:在时钟走时是时间的累加和显示,还有按键信息的读取和设置处理,闹钟子程序的设计等,我发现只要静下心来,思考问题并通过查阅相关资料都可以很好的解决。当然,由于时间关系,我的作品还存在不足,例如:在按键抖动方面没做处理(方案:可以通过比较最近几次按键的状态,判断按键的状态),还有就是没做闹钟的控制开关等。七.参考书1.杨立邓振杰荆淑霞,《微型计算机原理与接口技术》中国铁道出版社2.张荣祥,《微型计算机原理》,中国电力出版社3.范会敏李晋惠,《微型计算机原理及接口技术应用》,科学出版社
本文标题:微机课程设计----数字时钟
链接地址:https://www.777doc.com/doc-7827301 .html