微机课程设计之数字时钟程序Word格式文档下载.docx
《微机课程设计之数字时钟程序Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《微机课程设计之数字时钟程序Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
CHANGEVADIOSUCCESS(45M)!
'
更改广播成功
SET_SUCCE_RIN
CHANGERING
SUCCESS(10M)!
更改响铃成功
SET_RAD0
SET_RIN0
TIME_RINGDB
07H,08H,09H,0AH,0BH,0CH,0DH;
7~20点会整点或过5分打铃
DB
0EH,0FH,10H,11H,12H,13H,14H
10:
30会广播(默认)
FLAGDB00H
控制一分之内只响铃一次(不控制会一直响)
NOW_GUDB00H
区分手动广播和默认广播
RING_RECOVERDB00H;
恢复打铃时间(5分钟)
RADIO_RECOVERDB00H;
恢复广播时间
TIME_SET
05H
默认响铃分(5分钟)
TIME_TWO
0AH
手动设置打铃(10分钟)
TIME_SET0
00H
默认响铃(0分钟)
TIME_MUS
1EH
默认广播(30分钟)
TIME_MUSTWODB45;
手动设置广播(45分钟)
MUS_FREG
DW262,262,294,262,349
广播频率表
DW330,262,262,294,262
DW392,349,262,262,523
DW440,349,262,262,466
DW466,440,262,392,349,-1
MUS_FREG1
DW393,393,393,294,-2
响铃频率表
DW495,495,495,393,-2
DW393,495,589,589,-2
DW525,495,441,-2
DW441,495,525,-2,525,-2
DW495,441,495,393,-2
DW393,495,441,294,-2
DW371,441,393,-1
STR1
*********************Functiondeclaration*****************'
0DH,0AH,'
STR2
OpenLight<
O>
CloseLight<
C>
Radio<
M>
Ring<
R>
0DH,0AH,'
STR3
ChangeRadio<
V>
ChangeRing<
T>
STR4
**********************************************************'
STR5
STR6
灯、时间的状态显示处
STR7
修改后的状态显示处
STR8
**********************************************************'
DATAENDS
********************************定义堆栈段***********************************
STACKSEGMENT
STA
DW255DUP(?
)
TOPEQU$-STA;
50
STACKENDS
**********************************数据段*************************************
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MAIN
PROCFAR
MOVAX,DATA
MOVDS,AX
MOVAX,STACK
MOVSS,AX
MOVAX,TOP
MOVSP,AX
各段初始化
CLI
MOVAL,1CH
MOVAH,35H
INT21H
PUSHES
PUSHBX
PUSHDS
MOVDX,OFFSETCLOCK
MOVAX,SEGCLOCK
MOVDS,AX
MOVAX,251CH
写入新的中断向量(CLOCK)
POPDS
CALLINITIAL
屏面初始化
STI
SHOW
MACROSTR
显示字符串函数
LEADX,STR
MOVAH,9
INT21H
ENDM
SHOWH:
CALLDELAY_SOFT
软件延时函数
MOVAH,0BH
读键盘状态
CMPAL,00H
JZCONTINU
无键按下继续等待
MOVAH,08H
读取键值
CMPAL,4FH
若是O就开灯
JZOPEN_LIGHT
CMPAL,43H
若是C就关灯
JZ
CLOSE_LIGHT
CMPAL,4DH
若是M就开音乐广播(手动控制)
PLAY_MUSIC
CMPAL,52H
若是R就打铃(手动控制)
JZRING
CMPAL,56H
若是V就修改广播时间
JZSET_VODZ
CMPAL,54H
若果是T就修改打铃时间
SET_TIME
CMPAL,1BH
退出键ESC
JZEXIT1
JMPSHOWH
CONTINU:
JMPSHOWH
OPEN_LIGHT:
MOVDH,06H
开灯
MOVDL,03H
MOVBX,00H
MOVAH,02H
INT10H
SHOWLIGHT_ON
CLOSE_LIGHT:
MOVDH,06H
关灯
INT10H
SHOWLIGHT_OFF
PLAY_MUSIC:
MOV
AL,01H
播放广播
NOW_GU,AL
CALL
MUSIC
MOVAL,00H
NOW_GU,AL
RING:
CALLSOUND;
打铃
SET_VODZ:
CMPRADIO_RECOVER,00H;
JZSETVODZ
AL,00H
MOVRADIO_RECOVER,AL
MOVDH,09H
MOVDL,0FH
MOVAL,30
MOVTIME_MUS,AL
SHOWSET_RAD0
EXIT1:
JMPEXIT
SET_TIME:
CMPRING_RECOVER,00H;
恢复打铃时间
JZSETTIME
MOVRING_RECOVER,AL
MOVDH,08H
MOVAL,05H
MOVTIME_SET,AL
SHOWSET_RIN0
SETTIME:
MOVAL,01H
设置打铃时间
CALLSET_TM
SETVODZ:
设置广播时间
SET_VOD
EXIT:
POPBX
退出程序
POPES
MOVDX,BX
MOVBX,ES
MOVDS,BX
INT21H
MOVAH,4CH
RET
MAINENDP
INITIALPROCNEAR
初始化程序
SHOWSTR1
SHOWSTR2
SHOWSTR3
SHOWSTR4
SHOWSTR5
SHOWSTR6
SHOWSTR7
SHOWSTR8
INITIALENDP
*********************************修改打铃、广播时间************
SET_VOD
PROCNEAR
CLI
MOVAL,TIME_MUSTWO
SHOWSET_SUCCE_RAD
STI
ENDP
SET_TM
MOVAL,TIME_TWO
SHOWSET_SUCCE_RIN
**************************软件延时程序************************
DELAY_SOFT
PUSHCX
MOVCX,0FFFFH
CYCLE:
MOVAL,AH
MOVBX,0FFFFH
CYCLE1:
DECBX
CMPBX,0
JNZ
CYCLE1
LOOPCYCLE
POPCX
ENDP
***********************中断服务程序***************************
CLOCKPROCNEAR
PUSHDS
MOVAX,DATA
MOVDS,AX
CALLDATEDISPLAY
CALLTIMEDISPLAY
POPDS
IRET
CLOCKENDP
************************中断程序完******************************
******************************年份显示子程序********************
DATEDISPLAYPROCNEAR
PUSHSI
MOVAH,2AH
取当前系统日期
MOVAX,CX
MOVBX,10
LEASI,DATEDIS+4
MOVCX,4
PUSHDX
TAB:
XORDX,DX
DIVBX
ADDDL,30H
MOV[SI],DL
DECSI
LOOPTAB
POPDX
MOVAL,DL
XORAH,AH
DIVBL