电子日历时钟系统Word下载.docx
- 文档编号:21526430
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:21
- 大小:18.60KB
电子日历时钟系统Word下载.docx
《电子日历时钟系统Word下载.docx》由会员分享,可在线阅读,更多相关《电子日历时钟系统Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
;
定义相关时间。
日期,闹钟,秒表的格式
datedb'
0000-00-00'
meterdb'
beepdb'
yeardw0;
日期定义
mouthdb0
daydb0
hourdb0;
时间定义
minutedb0
seconddb0
mhourdb0;
秒表定义
mminutedb0
mseconddb0
mmilisedb0
hoursdb0;
闹钟定义
minutesdb0
secondsdb0
sbufdb'
sbufydb'
0000'
flg1db0;
定义标志位用于实现跳转
flg2db0
flg3db0
mess1db'
off$'
定义闹钟的开关
mess2db'
on$'
dataends
codesegment
assumecs:
code,ds:
data
mainprocfar;
主函数段间调用
movax,data
movds,ax
moves,ax
movah,01h
movcx,2000h
mainendp
function1:
;
功能一
movflg1,0
clearscreen
showlinestring,0,24,0a20h,0001h;
功能一初始化显示
showlinestr1,0,4,0a20h,0029h
showlinetime,0,8,0b20h,0004h
callgettime;
调用系统时间
callshowtimeall
N11:
callshowtime
callgetchar
cmpal,'
a'
jneM11
callsettime
M11:
m'
jneM12
jmpfunction2
M12:
q'
jequit
jmpN11
function2:
功能二
movflg1,3
clearscreen
功能二初始化显示
showlinestr2,0,4,0a25h,0029h
showlinedate,0,10,0b20h,0004h
callgetdate;
调用系统日期
callshowdateall
N22:
jneN2
callsetdate
N2:
jneN22
jmpfunction3
function3:
功能三
clearscreen
功能三初始化显示
showlinestr3,0,5,0a2ah,0029h
showlinemeter,0,11,0b20H,0004H
N33:
movmhour,0
movmminute,0
movmsecond,0
movmmilise,0
Kt:
jneM31
callresetmeter
jmpN33
M31:
jneM32
jmpfunction4
M32:
jmpkt
function4:
功能四
showlinestring,0,24,0a20h,0001h;
功能四初始化显示
calloffon
callshowtimesall
N44:
jneM41
callsetbeepsta
M41:
jneM42
jmpquit
M42:
jneM43
jmpfunction1
M43:
i'
jneN44
incflg3
cmpflg3,2
jnew1
movflg3,0
W1:
jmpN44
quit:
movah,4ch;
退出
int21h
getcharprocnear;
得到字符即等待键盘输入。
movah,07h
int21h
ret
getcharendp
gettimeprocnear;
得系统时间
movah,2ch
int21h
movhour,ch
movminute,cl
movsecond,dh
gettimeendp
getdateprocnear;
得系统日期
movah,2ah
movyear,cx
movmouth,dh
movday,dl
getdateendp
bcdchprocnear;
db==>
'
未储存
movbl,0ah
movah,00h
divbl
addal,30h;
转换成ascii
addah,30h
bcdchendp
seconddelayprocnear;
延时一秒
pushdx
movah,00H
int1aH;
读当前闹钟的值
adddl,18;
55*18=1000ms
movbl,dl
lop1:
movah,00H
int1ah
cmpdl,bl
jnzlop1
popdx
seconddelayendp
waitfprocnear;
61h端口的延时子程序10ms
pushax
movcx,6630;
15.08*6630=10ms
waitf1:
inal,61h
andal,10h
cmpal,ah
jewaitf1
movah,al
loopwaitf1
waitfendp
showtimeproc;
时钟程序
loop1:
int16h
jnzloop2
cmpflg3,1;
闹钟是否开
jneti1
moval,hours;
比较闹钟时间
cmphour,al
jneti1
moval,minutes
cmpminute,al
moval,seconds
cmpsecond,al
callbam;
闹钟响
ti1:
callseconddelay;
延时一秒
incsecond
moval,second
callshowbuf
showlinesbuf,0,2,0b26H,0004H;
秒加
cmpsecond,58
jnaloop1
movsecond,-1
incminute
moval,minute
showlinesbuf,0,2,0b23H,0004H;
分加
cmpminute,58
jnaloop1
movminute,-1
inchour
moval,hour
showlinesbuf,0,2,0b20H,0004H;
小时加
cmphour,23
movhour,0
incday;
日加
cmpday,30
movday,1
incmouth;
月加
cmpmouth,11
movmouth,1
incyear;
年加
jmploop1
loop2:
ret
showtimeendp
offonprocnear;
闹钟状态显示
movdi,offsetstring
cmpflg3,0
jnepp1
showlinestr41,0,8,0a30h,0029h
leadx,mess1
movah,09
jmppp2
pp1:
showlinestr42,0,8,0a30h,0029h
leadx,mess2
pp2:
offonendp
resetmeterproc;
跑秒程序
loop11:
int16h
jneloop22
callwaitf;
延时10ms
incmmilise
moval,mmilise
showlinesbuf,0,2,0b29H,0004H
cmpmmilise,99
jnaloop11
movmmilise,0
incmsecond
moval,msecond
showlinesbuf,0,2,0b26H,0004H
cmpmsecond,58
movmsecond,-1
incmminute
moval,mminute
showlinesbuf,0,2,0b23H,0004H
cmpmminute,58
jnaloop11
movmminute,-1
incmhour
moval,mhour
showlinesbuf,0,2,0b20H,0004H
cmpmhour,23
jmploop11
loop22:
cmpal,'
jneloop33
jeloop11
loop33:
jneloop44
loop44:
jneloop55
loop55:
jefunction3
ret
resetmeterendp
settimeprocnear;
设置时间flg1=0,1,2分别代表调整时分秒
callmovshu
R1:
jneK11
calladdshu
callshowtimeall
callmovshu
jmpR1
K11:
jnek12
incflg1
cmpflg1,3
jnep1
movflg1,0
p1:
jmpR1
k12:
jnek13
jmpquit
k13:
jefunction1
settimeendp
setbeepstaprocnear;
设置闹钟时间flg2=0,1,2分别代表调整时分秒
callmovshus
R4:
jneK41
calladdshus
callmovshus
jmpR4
K41:
jnek42
incflg2
cmpflg2,3
jnep4
movflg2,0
p4:
jmpR4
k42:
jnek43
k43:
jefunction4
setbeepstaendp
setdateprocnear;
设置日期flg1=3,4,5分别代表调整年月日
R2:
jneK21
callshowdateall
jmpR2
K21:
jnek22
cmpflg1,6
jnep2
movflg1,3
p2:
jmpR2
k22:
jnek23
k23:
jefunction2
setdateendp
addshusproc;
根据flg2闹钟调整
cmpflg2,0
jnes1
inchours
cmphours,24
jnes4
movhours,0
s1:
cmpflg2,1
jnes2
incminutes
cmpminutes,60
jnes4
movminutes,0
s2:
cmpflg2,2
incseconds
cmpseconds,60
movsecond,0
s4:
addshusendp
addshuproc;
根据flg1调整时间日期
cmpflg1,0
jnet1
inchour
cmphour,24
jnet6
movhour,0
t1:
cmpflg1,1
jnet2
incminute
cmpminute,60
jnet6
movminute,0
t2:
cmpflg1,2
jnet3
incsecond
cmpsecond,60
movsecond,0
t3:
cmpflg1,3
jnet4
incyear
cmpyear,10000
movyear,1
t4:
cmpflg1,4
jnet5
incmouth
cmpmouth,13
movmouth,1
t5:
cmpflg1,5
incday
cmpday,32
t6:
addshuendp
movshusproc;
根据flg2显示闹钟调整对象
cmpflg2,0
jness1
moval,hours
showlinesbuf,0,2,0b20H,000eH
ss1:
cmpflg2,1
jness2
moval,minutes
showlinesbuf,0,2,0b23H,000eH
ss2:
jness3
moval,seconds
showlinesbuf,0,2,0b26H,000eH
ss3:
movshusendp
movshuproc
cmpflg1,0;
根据flg1显示时间日期调整对象
jnett1
tt1:
cmpflg1,1
jnett2
tt2:
jnett3
showlinesbuf,0,2,0b26H,000eH
tt3:
jnett4
callyearbcd
showlinesbufy,0,4,0b20H,000eH
tt4:
cmpflg1,4
jnett5
moval,mouth
showlinesbuf,0,2,0b25H,000eH
tt5:
cmpflg1,5
jnett6
moval,day
showlinesbuf,0,2,0b28H,000eH
tt6:
movshuendp
showtimesallproc;
显示闹钟时间
showlinesbuf,0,2,0b20H,0004H
showlinesbuf,0,2,0b26H,0004H
showtimesallendp
showtimeallproc;
显示时间
showtimeallendp
showdateallprocnear;
显示日期
callyearbcd
showlinesbufy,0,4,0b20h,0004h
moval,mouth
callshowbuf
showlinesbuf,0,2,0b25h,0004h
moval,day
showlinesbuf,0,2,0b28h,0004h
showdateallendp
yearbcdprocnear;
dw==>
movdi,offsetsbufy
movax,year
movbx,1000
movdx,0
divbx
addal,30h
mov[di],al
movax,dx
movdx,0
movbx,100
divbx
mov[di+1],al
moval,dl
callbcdch
mov[di+2],al
mov[di+3],ah
yearbcdendp
showbufprocnear;
movdi,offsetsbuf
callbcdch
mov[di+1],ah
showbufendp
bamprocnear;
闹钟子程序
s:
callsound
decbx
cmpbx,0
jnzs
bamendp
soundprocnear
moval,1011110B
out43h,al
movax,1983
out42h,al
moval,ah
oral,03h
out61h,al
movcx,0ffffh
delay:
loopdelay
soundendp
codeends
endmain
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 日历 时钟 系统