已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西南科技大学微机原理课程设计题目 电子实时时钟软件设计1 任务Date YYYY:MM:DDTimeHH:MM:SSBeep On/OffHH:MM:SSMeter00:00:00:00MMMM实现如图所示电子日历时钟功能。2 基本要求1) 可通过M键切换显示模式:日期(年、月、日)、时间(小时、分、秒)、秒表(小时、分、秒、1/100秒)、闹钟(小时、分)。2) 在秒表显示模式,可通过I键切换(启动/暂停)计时,当暂停计时时可通过A键复位。3) 在闹钟显示模式,有两种输入方式方式一:直接按格式输入时间方式二:可通过A键依次使On/Off标志、小时、分、秒闪烁或变色,这时可通过I键切换On/Off标志或加1调整。4) 可通过esc键结束程序。3 扩展要求1) 在日期显示模式,可通过A键依次使年、月、日闪烁或变色,这时可通过I键加1调整。2) 在时间显示模式,可通过A键依次使小时、分、秒闪烁或变色,这时可通过I键加1调整。3) 调整和秒表操作不影响日期和时间的准确性。4) 自定义的其它扩展功能说明:本程序为西科微机原理课程设计题目,下面的代码只实现了基本要求部分,并且秒表还存在部分问题(秒表模式修改了定时器0,结束后对时间略有影响,测试闹钟时可以直接在秒表模式下,按q键跳过秒表模式),代码仅供参考,欢迎对其繁琐处进行修改,调试。各部分程序流程图:该过程与代码略有不同,处理on/off 位是后来添加的代码,流程图没有加入DATASEGMENTUISDB 0DH,0AH,10 dup(0),50 DUP(*),$UIEDB 0DH,0AH,10 dup(0),50 DUP(*),$;界面字符MSG1DB THE DATA IS $MSG2DB THE TIME IS $MSGINDB PLEASE CHOOSE INPUT METHODS:,0DH,0AHDB 21 DUP( ),PRESS A FOR A/I METHOD,OR FOR DIRECT METHOD$MSGDIRDB PLEASE INPUT LIKE THIS: OO:00,0DH,0AHDB 21 DUP( ),PRESS ENTER TO CONFIRM $MSGWARN DB ERROR!PLEASE ENTER AGAIN$MSGAIDB PRESS a TO CHANGE POSITION ,0DH,0AHDB 21 DUP( ),i TO CHANGE VALUE,ENTER TO CONFIRM $MSGSECDB PRESS i TO START AND STOP ,0DH,0AHDB 21 DUP( ),q TO QUIT,a TO CLEAR IF IT HAS STOPED $NULINEDB 25 DUP(?),$ ;清空行KSBUFDB 6,0,6 DUP(?)KEYNUMDB ?MODEDB ?DAYDB ?MONDB ?YEARDW ?SECDB ?MSECDB ?MINDB ?HOURDB ?BEEPHOUR DB 0 ,0BEEPMINDB 0,0SWIOFFDB FF$SWIONDB N $SETSTRDB 00:00 OFF/ON,$WSTRDB 00:00:00 ,$BFLAGDB 0SFLAGDB 0INISEGDW 0INIOFFDW 0DATAENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXCALLCLEARCALLCREATUIMOVMODE,0CALLSOUNDAGAIN:CALLREFRESH;刷新时间日期;*BFALG 为闹钟与秒表标志位。下面为处理闹钟CMPBFLAG,0JESETMOUCMPBFLAG,1JNECRINGCALLCHESTARTJMPSETMOUCRING:CALLCHESTOPJMPSETMOUJMAGAN:JMPAGAIN;二级跳转SETMOU:MOVDX,0815HMOVAH,02MOVBH,0INT10H;设置光标;模式判断*CMPMODE,0JEMODE0CMPMODE,1JEMODE1CMPMODE,2JEMODE2CMPMODE,3JEMODE3MODE0:CALLTIMESHOWJMPKEYSCANMODE1:CALLDATESHOWJMPKEYSCANMODE2:CALLBEEPMOVMODE,03HJMPKEYSCANMODE3: CALLSEDWHATCHMOVMODE,0H;键盘扫描*KEYSCAN:MOVAH,0BHINT21HCMPAL,00JEAGAINMOVAH,08HINT21HCMPAL,1BHJZSTOPCMPAL,mJNEAGAININCMODECMPMODE,4JNEJMAGANMOVMODE,0JMPJMAGANSTOP:MOVAH,4CHINT21H;*时间日期刷新*REFRESH PROCPUSHAXPUSHCXPUSHDXMOVAH,2AHINT 21HMOVDAY,DLMOVMON,DHMOVYEAR,CXMOVAH,2CHINT 21HMOVHOUR,CHMOVMIN,CLMOVSEC,DHMOVMSEC,DLPOPDXPOPCXPOPAXRETREFRESHENDP;*年月日显示DATESHOWPROCPUSHAXPUSHCXPUSHDXMOV DX,OFFSET MSG1MOVAH,09INT21HMOVAX,YEAR;取年CALLBTOBCDMOVDL,/MOVAH,02HINT21HMOVAH,0MOVAl,MON;月CALLBTOBCDMOVDL,/MOVAH,02HINT21HMOVAH,0MOVAL,DAY;日CALLBTOBCDMOV DX,OFFSET NULINEMOVAH,09INT21HPOPDXPOPCXPOPAXRETDATESHOWENDP;*时间显示TIMESHOWPROCPUSHAXPUSHBXPUSHCXPUSHDXMOV DX,OFFSET MSG2MOVAH,09INT21HMOVAH,0MOVAL,HOUR;取时CALLBTOBCDMOVDL,:MOVAH,02HINT21HMOVAH,0MOVAL,MIN;分CALLBTOBCDMOVDL,:MOVAH,02HINT21HMOVAH,0MOVAL,SEC;秒CALLBTOBCDCMPSFLAG,0JETOCLRMOVDL,:MOVAH,02HINT21HMOVAH,0MOVAL,MSEC;10M秒CALLBTOBCDTOCLR:MOV DX,OFFSET NULINEMOVAH,09INT21HPOPDXPOPCXPOPBXPOPAXRETTIMESHOWENDP;将二进制转化为BCD码并显示BTOBCDPROCPUSHDXPUSHBXPUSHCXMOVCX,0MOVBX,10BTOD:MOVDX,0DIVBXPUSHDXINCCLCMPAX,0JABTODSHOW:POPDXADDDL,30hMOVAH,02hINT 21hLOOPSHOWPOPCXPOPBXPOPDXRETBTOBCDENDP;*闹钟设定*BEEPPROCMOVDX,0715HMOVAH,02MOVBH,0INT10HMOV DX,OFFSET MSGINMOVAH,09INT21HCMPBFLAG,2;设定时还在响,那么关闭JNESETMINAL,61HANDAL,0FDHOUT61H,ALSETM:MOVDX,0715HMOVAH,02MOVBH,0INT10HMOVAH,07HINT21HCMPAL,aJEINA;选择输入方式,a为切换输入,其他键为键盘直接输入MOV DX,OFFSET MSGDIRMOVAH,09INT21HMOVDX,0915HMOVAH,02MOVBH,0INT10HMOVDX,OFFSET KSBUFMOVAH,10INT21H ;键盘输入字符存入缓存区MOVBFLAG,1MOVSI,OFFSET KSBUF+1MOVCL,BYTE PTRSIMOVBX,10INCSIANDBYTE PTRSI,0FHMOVAL,BYTE PTRSIMULBLINCSIANDBYTE PTRSI,0FHADDAL,BYTE PTRSIMOVBEEPHOUR,ALADDSI,2ANDBYTE PTRSI,0FHMOVAL,BYTE PTRSIMULBLINCSIANDBYTE PTRSI,0FHADDAL,BYTE PTRSIMOVBEEPMIN,ALJMPTOENDINA:MOV DX,OFFSET MSGAI ;A/I切换输入方式MOVAH,09INT21HMOVDX,0915HMOVAH,02MOVBH,0INT10HMOV DX,OFFSET SETSTRMOVAH,09INT21HMOVDX,0915HMOVAH,02MOVBH,0INT10HMOVSI,OFFSET BEEPHOUR;*a键切换光标位置*KASCAN: MOVAH,0BHINT21HCMPAL,00JEKASCANMOVAH,08HINT21HMOVKEYNUM,ALCMPAL,aJNEKISCANMOVBH,0MOVAH,03HINT10HINCDLINCSICMPDL,17HJETOMICMPDL,1AHJETOSWCMPDL,22HJETOHOJMPSETFTOMI:INCDLJMPSETFTOSW:MOVDL,21HJMPSETFTOHO:MOVDL,15HMOVSI,OFFSET BEEPHOURSETF:MOVAH,02HINT 10HKAJMP:JMPKASCAN;*i键改变光标处字符*KISCAN:CMPKEYNUM,iJNEJKCR0MOVAH,08H;读光标处字符INT10HINCALINCBYTE PTRSICMPSI,OFFSET BEEPHOURJEJUGHORCMPSI,OFFSET BEEPHOUR+1JEJUGHOR2CMPSI,OFFSET BEEPHOUR+2JEJUGMINCMPSI,OFFSET BEEPHOUR+3JEJUGMIN2CMPSI,OFFSET BEEPHOUR+4JECHGSWJMPJUGHORJKCR0:JMPKCRJUGHOR:CMPAL,32HJNAPRINTMOVBYTE PTRSI,0MOVAL,30HJMPPRINTJUGHOR2:CMPBEEPHOUR,2HJETO2CMPAL,39HJNAPRINTMOVBYTE PTRSI,0MOVAL,30HJMPPRINTTO2:CMPAL,34HJNAPRINTMOVBYTE PTRSI,0MOVAL,30HJMPPRINTJUGMIN:CMPAL,35HJNAPRINTMOVBYTE PTRSI,0MOVAL,30HJMPPRINTJUGMIN2:CMPAL,39HJNAPRINTMOVBYTE PTRSI,0MOVAL,30HJMPPRINTCHGSW:DECBYTE PTRSICMPBFLAG,0JETOONMOVBFLAG,0MOVDX,OFFSET SWIOFFJMPPRISWTOON:MOVBFLAG,1MOVDX,OFFSET SWIONPRISW:MOVAH,09HINT21HMOVDX,0921HMOVAH,02MOVBH,0INT10HJMPKAJMP0PRINT:MOVCX,1HMOVBX,07HMOVAH,09HINT10HKAJMP0:JMPKAJMPKCR:CMPKEYNUM,0DHJNEKAJMP0MOVAL,BEEPHOURMOVBX,10MULBLADDAL,BEEPHOUR+1MOVBEEPHOUR,ALMOVAL,BEEPMINMULBLADDAL,BEEPMIN+1MOVBEEPMIN,ALTOEND:RETBEEPENDPCHESTARTPROCMOVCH,HOURMOVCL,MINCMPBEEPHOUR,CHJNERETURNCMPBEEPMIN,CLJNERETURNINAL,61HORAL,2OUT61H,ALINC BFLAGRETURN:RETCHESTARTENDPCHESTOPPROCMOVCL,SECCMPCL,3JBESCPINAL,61HANDAL,0FDHOUT61H,ALANDBFLAG,0ESCP:RETCHESTOPENDPSOUNDPROCMOVAL,10110110BOUT43H,ALMOVDX,0012HMOVAX,34DEHMOVDI,1000DIVDIOUT42H,ALMOVAL,AHOUT42H,ALINAL,61HANDAL,0FDHOUT61H,ALINAL,61HORAL,1OUT61H,ALRETSOUNDENDP;*以下为秒表部分*SEDWHATCHPROCMOVDX,0715HMOVAH,02MOVBH,0INT10HMOV DX,OFFSET MSGSECMOVAH,09INT21HMOVDX,0915HMOVAH,02MOVBH,0INT10HCLIMOVAL,1CHMOVAH,35HINT21HMOVINISEG,ESMOVINIOFF,BXSHOWINI:MOVDX,0915HMOVAH,02MOVBH,0INT10HMOV DX,OFFSET WSTRMOVAH,09INT21HKSCANW:MOVAH,0BHINT21HCMPAL,00JEKSCANWMOVAH,08HINT21HCMPAL,qJEQTIMECMPAL,iJETOICMPAL,aJNEKSCANWCMPSFLAG,1JEKSCANWJMPSHOWINITOI:MOVSFLAG,1MOVHOUR,0MOVMIN,0MOVSEC,0MOVMSEC,0CALLINITIRWSTART: MOVDX,0915HMOVAH,02MOVBH,0INT10HCALLTIMESHOWWSTOP:MOVAH,0BHINT21HCMPAL,00JEWSTARTMOVAH,08HINT21HCMPAL,iJNEWSTARTMOVSFLAG,0JMPKSCANWQTIME:CLIPUSHDSMOVDX,INIOFFMOVDS,INISEGMOVAL,1CHMOVAH,25HINT21HSTIPOPDSMOVAL, 00110100BOUT43H, ALMOVAL,0FFHOUT40H,ALOUT40H,ALMOVDX,0715HMOVAH,02MOVBH,0INT10HMOV DX,OFFSET NULINEMOVAH,09INT21HMO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 漳州职业技术学院《跨文化交流》2024-2025学年第一学期期末试卷
- 湖南长沙县三中2026届高二上物理期末统考模拟试题含解析
- 2025-2026学年山东省微山二中化学高二第一学期期末考试模拟试题含解析
- 潇湘职业学院《Oacle数据库》2024-2025学年第一学期期末试卷
- 2026届新疆生产建设兵团农八师一四三团第一中学高二化学第一学期期末综合测试模拟试题含解析
- 2024年山东辅警招聘考试题库含答案详解(综合题)
- 2026届安徽省亳州市第十八中学数学高二第一学期期末统考试题含解析
- 试卷越容易(3篇)
- 河北省秦皇岛市昌黎汇文二中2026届高二上物理期末调研模拟试题含解析
- 四川省广安市武胜烈面中学校2025-2026学年高二物理第一学期期末检测模拟试题含解析
- 聚氯乙烯未来发展趋势报告
- 生源地就业调查报告
- 写小狗的说明文
- 室内空间手绘表现技法高职全套教学课件
- 《义务教育数学课程标准(2022年版)》解读
- 广东省法院通讯录
- 某证券公司财务信息系统建立方案
- GB/T 700-2006碳素结构钢
- GB/T 6144-1985合成切削液
- 人保财险首台套重大技术装备综合保险条款
- 产品质量法-产品质量法课件
评论
0/150
提交评论