微机实时时钟课程设计.docx
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 实时 时钟 课程设计
- 资源描述:
-
DATA SEGMENT UIS DB 0DH,0AH,10 dup(0),50 DUP('*'),'$' UIE DB 0DH,0AH,10 dup(0),50 DUP('*'),'$';界面字符 MSG1 DB "The date is: $" MSG2 DB "The time is: $" MSGIN DB "Please select input methods:",0DH,0AH DB 21 DUP(" "),"Press a for single ,press i for all $" MSGDIR DB "Please input like this: OO:00",0DH,0AH DB 21 DUP(" "),"Press enter to continue $" MSGWARN DB "Error!Please enter again$" MSGAI DB "Press a to change position ",0DH,0AH DB 21 DUP(" "),"i to change value,enter to continue $" MSGSEC DB "Press i to start or stop ",0DH,0AH DB 21 DUP(" "),"Press q to quit,a to clear when it was stoped $" NULINE DB 25 DUP(?),'$' ;清空行 KSBUF DB 6,0,6 DUP(?) KEYNUM DB ? MODE DB ? DAY DB ? MON DB ? YEAR DW ? SEC DB ? MSEC DB ? MIN DB ? HOUR DB ? BEEPHOUR DB 0 ,0 BEEPMIN DB 0,0 SWIOFF DB "FF$" SWION DB "N $" SETSTR DB "00:00 OFF/ON",'$' WSTR DB "00:00:00 ",'$' BFLAG DB 0 SFLAG DB 0 INISEG DW 0 INIOFF DW 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX CALL CLEAR CALL CREATUI MOV MODE,0 CALL SOUND AGAIN: CALL REFRESH ;刷新时间日期 ;******BFALG 为闹钟与秒表标志位。下面为处理闹钟 CMP BFLAG,0 JE SETMOU CMP BFLAG,1 JNE CRING CALL CHESTART JMP SETMOU CRING: CALL CHESTOP JMP SETMOU JMAGAN: JMP AGAIN ;二级跳转 SETMOU: MOV DX,0815H MOV AH,02 MOV BH,0 INT 10H ;设置光标 ;模式判断*********** CMP MODE,0 JE MODE0 CMP MODE,1 JE MODE1 CMP MODE,2 JE MODE2 CMP MODE,3 JE MODE3 MODE0: CALL TIMESHOW JMP KEYSCAN MODE1: CALL DATESHOW JMP KEYSCAN MODE2: CALL BEEP MOV MODE,03H JMP KEYSCAN MODE3: CALL SEDWHATCH MOV MODE,0H ;键盘扫描********* KEYSCAN:MOV AH,0BH INT 21H CMP AL,00 JE AGAIN MOV AH,08H INT 21H CMP AL,1BH JZ STOP CMP AL,'q' JE EXIT CMP AL,'m' JNE AGAIN INC MODE CMP MODE,4 JNE JMAGAN MOV MODE,0 JMP JMAGAN STOP: MOV AH,4CH INT 21H ;*******时间日期刷新***** REFRESH PROC PUSH AX PUSH CX PUSH DX MOV AH,2AH INT 21H MOV DAY,DL MOV MON,DH MOV YEAR,CX MOV AH,2CH INT 21H MOV HOUR,CH MOV MIN,CL MOV SEC,DH MOV MSEC,DL POP DX POP CX POP AX RET REFRESH ENDP ;********年月日显示 DATESHOW PROC PUSH AX PUSH CX PUSH DX MOV DX,OFFSET MSG1 MOV AH,09 INT 21H MOV AX,YEAR ;取年 CALL BTOBCD MOV DL,'/' MOV AH,02H INT 21H MOV AH,0 MOV Al,MON ;月 CALL BTOBCD MOV DL,'/' MOV AH,02H INT 21H MOV AH,0 MOV AL,DAY ;日 CALL BTOBCD MOV DX,OFFSET NULINE MOV AH,09 INT 21H POP DX POP CX POP AX RET DATESHOW ENDP ;*********时间显示 TIMESHOW PROC PUSH AX PUSH BX PUSH CX PUSH DX MOV DX,OFFSET MSG2 MOV AH,09 INT 21H MOV AH,0 MOV AL,HOUR ;取时 CALL BTOBCD MOV DL,':' MOV AH,02H INT 21H MOV AH,0 MOV AL,MIN ;分 CALL BTOBCD MOV DL,':' MOV AH,02H INT 21H MOV AH,0 MOV AL,SEC ;秒 CALL BTOBCD CMP SFLAG,0 JE TOCLR MOV DL,':' MOV AH,02H INT 21H MOV AH,0 MOV AL,MSEC ;10M秒 CALL BTOBCD TOCLR: MOV DX,OFFSET NULINE MOV AH,09 INT 21H POP DX POP CX POP BX POP AX RET TIMESHOW ENDP ;将二进制转化为BCD码并显示 BTOBCD PROC PUSH DX PUSH BX PUSH CX MOV CX,0 MOV BX,10 BTOD: MOV DX,0 DIV BX PUSH DX INC CL CMP AX,0 JA BTOD SHOW: POP DX ADD DL,30h MOV AH,02h INT 21h LOOP SHOW POP CX POP BX POP DX RET BTOBCD ENDP ;*****闹钟设定****** BEEP PROC MOV DX,0715H MOV AH,02 MOV BH,0 INT 10H MOV DX,OFFSET MSGIN MOV AH,09 INT 21H CMP BFLAG,2;设定时还在响,那么关闭 JNE SETM IN AL,61H AND AL,0FDH OUT 61H,AL SETM: MOV DX,0715H MOV AH,02 MOV BH,0 INT 10H MOV AH,07H INT 21H CMP AL,'a' JE INA ;选择输入方式,a为切换输入,其他键为键盘直接输入 MOV DX,OFFSET MSGDIR MOV AH,09 INT 21H MOV DX,0915H MOV AH,02 MOV BH,0 INT 10H MOV DX,OFFSET KSBUF MOV AH,10 INT 21H ;键盘输入字符存入缓存区 MOV BFLAG,1 MOV SI,OFFSET KSBUF+1 MOV CL,BYTE PTR[SI] MOV BX,10 INC SI AND BYTE PTR[SI],0FH MOV AL,BYTE PTR[SI] MUL BL INC SI AND BYTE PTR[SI],0FH ADD AL,BYTE PTR[SI] MOV BEEPHOUR,AL ADD SI,2 AND BYTE PTR[SI],0FH MOV AL,BYTE PTR[SI] MUL BL INC SI AND BYTE PTR[SI],0FH ADD AL,BYTE PTR[SI] MOV BEEPMIN,AL JMP TOEND INA: MOV DX,OFFSET MSGAI ;A/I切换输入方式 MOV AH,09 INT 21H MOV DX,0915H MOV AH,02 MOV BH,0 INT 10H MOV DX,OFFSET SETSTR MOV AH,09 INT 21H MOV DX,0915H MOV AH,02 MOV BH,0 INT 10H MOV SI,OFFSET BEEPHOUR ;*****a键切换光标位置********* KASCAN: MOV AH,0BH INT 21H CMP AL,00 JE KASCAN MOV AH,08H INT 21H MOV KEYNUM,AL CMP AL,'a' JNE KISCAN MOV BH,0 MOV AH,03H INT 10H INC DL INC SI CMP DL,17H JE TOMI CMP DL,1AH JE TOSW CMP DL,22H JE TOHO JMP SETF TOMI: INC DL JMP SETF TOSW: MOV DL,21H JMP SETF TOHO: MOV DL,15H MOV SI,OFFSET BEEPHOUR SETF: MOV AH,02H INT 10H KAJMP: JMP KASCAN ;*****i键改变光标处字符***** KISCAN: CMP KEYNUM,'i' JNE JKCR0 MOV AH,08H;读光标处字符 INT 10H INC AL INC BYTE PTR[SI] CMP SI,OFFSET BEEPHOUR JE JUGHOR CMP SI,OFFSET BEEPHOUR+1 JE JUGHOR2 CMP SI,OFFSET BEEPHOUR+2 JE JUGMIN CMP SI,OFFSET BEEPHOUR+3 JE JUGMIN2 CMP SI,OFFSET BEEPHOUR+4 JE CHGSW JMP JUGHOR JKCR0: JMP KCR JUGHOR: CMP AL,32H JNA PRINT MOV BYTE PTR[SI],0 MOV AL,30H JMP PRINT JUGHOR2:CMP BEEPHOUR,2H JE TO2 CMP AL,39H JNA PRINT MOV BYTE PTR[SI],0 MOV AL,30H JMP PRINT TO2: CMP AL,34H JNA PRINT MOV BYTE PTR[SI],0 MOV AL,30H JMP PRINT JUGMIN: CMP AL,35H JNA PRINT MOV BYTE PTR[SI],0 MOV AL,30H JMP PRINT JUGMIN2:CMP AL,39H JNA PRINT MOV BYTE PTR[SI],0 MOV AL,30H JMP PRINT CHGSW: DEC BYTE PTR[SI] CMP BFLAG,0 JE TOON MOV BFLAG,0 MOV DX,OFFSET SWIOFF JMP PRISW TOON: MOV BFLAG,1 MOV DX,OFFSET SWION PRISW: MOV AH,09H INT 21H MOV DX,0921H MOV AH,02 MOV BH,0 INT 10H JMP KAJMP0 PRINT: MOV CX,1H MOV BX,07H MOV AH,09H INT 10H KAJMP0: JMP KAJMP KCR: CMP KEYNUM,0DH JNE KAJMP0 MOV AL,BEEPHOUR MOV BX,10 MUL BL ADD AL,BEEPHOUR+1 MOV BEEPHOUR,AL MOV AL,BEEPMIN MUL BL ADD AL,BEEPMIN+1 MOV BEEPMIN,AL TOEND: RET BEEP ENDP CHESTART PROC MOV CH,HOUR MOV CL,MIN CMP BEEPHOUR,CH JNE RETURN CMP BEEPMIN,CL JNE RETURN IN AL,61H OR AL,2 OUT 61H,AL INC BFLAG RETURN: RET CHESTART ENDP CHESTOP PROC MOV CL,SEC CMP CL,3 JB ESCP IN AL,61H AND AL,0FDH OUT 61H,AL AND BFLAG,0 ESCP: RET CHESTOP ENDP SOUND PROC MOV AL,10110110B OUT 43H,AL MOV DX,0012H MOV AX,34DEH MOV DI,1000 DIV DI OUT 42H,AL MOV AL,AH OUT 42H,AL IN AL,61H AND AL,0FDH OUT 61H,AL IN AL,61H OR AL,1 OUT 61H,AL RET SOUND ENDP ;*********以下为秒表部分************ SEDWHATCH PROC MOV DX,0715H MOV AH,02 MOV BH,0 INT 10H MOV DX,OFFSET MSGSEC MOV AH,09 INT 21H MOV DX,0915H MOV AH,02 MOV BH,0 INT 10H CLI MOV AL,1CH MOV AH,35H INT 21H MOV INISEG,ES MOV INIOFF,BX SHOWINI:MOV DX,0915H MOV AH,02 MOV BH,0 INT 10H MOV DX,OFFSET WSTR MOV AH,09 INT 21H TO: MOV HOUR,0 MOV MIN,0 MOV SEC,0 MOV MSEC,0 KSCANW: MOV AH,0BH INT 21H CMP AL,00 JE KSCANW MOV AH,08H INT 21H CMP AL,'q' JE EXIT CMP AL,'m' JE QTIME CMP AL,'i' JE TOI CMP AL,'a' JNE KSCANW CMP SFLAG,1 JE KSCANW JMP TO TOI: MOV SFLAG,1 CALL INITIR WSTART: MOV DX,0915H MOV AH,02 MOV BH,0 INT 10H CALL TIMESHOW WSTOP: MOV AH,0BH INT 21H CMP AL,00 JE WSTART MOV AH,08H INT 21H CMP AL,'i' JNE WSTART MOV SFLAG,0 JMP KSCANW QTIME: CLI PUSH DS MOV DX,INIOFF MOV DS,INISEG MOV AL,1CH MOV AH,25H INT 21H STI POP DS MOV AL, 00110100B OUT 43H, AL MOV AL,0FFH OUT 40H,AL OUT 40H,AL MOV DX,0715H MOV AH,02 MOV BH,0 INT 10H MOV DX,OFFSET NULINE MOV AH,09 INT 21H MOV DX,0915H MOV AH,02 MOV BH,0 INT 10H MOV DX,OFFSET NULINE MOV AH,09 INT 21H RET SEDWHATCH ENDP INITIR PROC CLI ;初始化8253计时器0,先送低八位,再送高八位,工作方式3,二进制计数方式 MOV AL, 00110110B OUT 43H, AL MOV AX, 11932 ;计数初值送AX OUT 40H, AL MOV AL,AH OUT 40H,AL PUSH DS MOV DX,OFFSET TIMER MOV AX,SEG TIMER MOV DS,AX MOV AX,251CH INT 21H POP DS RET INITIR ENDP TIMER PROC PUSH AX PUSH DS MOV AX,DATA MOV DS,AX INC MSEC CMP MSEC,100 JNE QUIT MOV MSEC,0 INC SEC CMP SEC,60 JNE QUIT AND SEC,0H INC MIN CMP MIN,60 JNE QUIT INC HOUR AND MIN,0H QUIT: POP AX MOV DS,AX POP AX STI IRET TIMER ENDP CREATUI PROC PUSH AX PUSH BX PUSH DX MOV DX,OFFSET UIS MOV AH,09 INT 21H MOV DX,1000H MOV AH,02 MOV BH,0 INT 10H MOV DX,OFFSET UIE MOV AH,09 INT 21H POP DX POP BX POP AX RET CREATUI ENDP CLEAR PROC MOV AX,0002H INT 10H RET CLEAR ENDP EXIT: MOV AH,4CH ;返回DOS状态 INT 21H CODE ENDS END START展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




微机实时时钟课程设计.docx



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/11227640.html