电子日历微机课程设计.docx

上传人:b****2 文档编号:1910959 上传时间:2022-10-25 格式:DOCX 页数:13 大小:16.70KB
下载 相关 举报
电子日历微机课程设计.docx_第1页
第1页 / 共13页
电子日历微机课程设计.docx_第2页
第2页 / 共13页
电子日历微机课程设计.docx_第3页
第3页 / 共13页
电子日历微机课程设计.docx_第4页
第4页 / 共13页
电子日历微机课程设计.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

电子日历微机课程设计.docx

《电子日历微机课程设计.docx》由会员分享,可在线阅读,更多相关《电子日历微机课程设计.docx(13页珍藏版)》请在冰豆网上搜索。

电子日历微机课程设计.docx

电子日历微机课程设计

 

stacksegmentstack

dw64dup(?

stackends

clearscreenmacro;清屏宏

pushax

pushbx

pushcx

pushdx

movah,6

moval,0

movbh,7;blankline

movcx,0000h;upperleftrow+upperleftcolumn(0,0)

movdx,184fh;lowerrightrow+lowerrightcolum(24,79)

int10h

popdx

popcx

popbx

popax

endm

showlineMACROSTR,STA,LEN,POS,COL;显示字符串宏

PUSHDX

PUSHBX

PUSHAX

MOVBP,OFFSETSTR

ADDBP,STA

MOVDX,POS

MOVCX,LEN

MOVBX,COL

MOVAX,1301H

INT10H

POPAX

POPBX

POPDX

endm

datasegment;数据定义

str1db'TIME'

str2db'DATE'

stringdb'TIMEDATE'

timedb'00:

00:

00'

datedb'0000-00-00'

yeardw0

mouthdb0

daydb0

hourdb0

minutedb0

seconddb0

sbufdb'00'

sbufydb'0000'

flg1db0

flg2db0

flg3db0

dpdb'year'

dataends

codesegment

assumecs:

code,ds:

data

start:

;mainprocfar;主函数

movax,data

movds,ax

MOVes,ax

movah,01h

movcx,2000h

int10h

callgettime;调用系统时间

callgetdate;调用系统日期

function1:

;功能一

movflg1,0

clearscreen

showlinestring,0,9,0a20h,0001h;功能一初始化显示

showlinestr1,0,4,0a20h,0029h

showlinetime,0,8,0b20h,0004h

callshowtimeall

N11:

callshowtime

callgetchar

cmpal,'a'

jneM11

callsettime

M11:

cmpal,'m'

jneM12

jmpfunction2

M12:

cmpal,'q'

jegoesc

jmpN11

function2:

;功能二

movflg1,3

clearscreen

showlinestring,0,9,0a20h,0001h;功能二初始化显示

showlinestr2,0,4,0a25h,0029h

showlinedate,0,10,0b20h,0004h

callshowdateall

N22:

callgetchar

cmpal,'a'

jneN2

callsetdate

N2:

cmpal,'q'

jegoesc

cmpal,'m'

jneN22

cmpal,'m'

jefunction1

goesc:

movah,4ch;退出

int21h

getcharprocnear;得到字符

movah,07h

int21h

ret

getcharendp

gettimeprocnear;得系统时间

movah,2ch

int21h

movhour,ch

movminute,cl

movsecond,dh

ret

gettimeendp

getdateprocnear;得系统日期

movah,2ah

int21h

movyear,cx

movmouth,dh

movday,dl

ret

getdateendp

bcdchprocnear;db==>'00'未储存

movbl,0ah

movah,00h

divbl

addal,30h

addah,30h

ret

bcdchendp

seconddelayprocnear;延时一秒

pushax

pushbx

pushdx

movah,00H

int1aH

adddl,17

movbl,dl

lop1:

movah,00H

int1ah

cmpdl,bl

jnzlop1

popdx

popbx

popax

ret

seconddelayendp

waitfprocnear;61h端口的延时子程序10ms

pushax

movcx,6630

waitf1:

inal,61h

andal,10h

cmpal,ah

jewaitf1

movah,al

loopwaitf1

popax

ret

waitfendp

showtimeproc;时钟程序

loop1:

movah,01h

int16h

jnzloop2

ti1:

callseconddelay;延时一秒

incsecond

moval,second

callshowbuf

showlinesbuf,0,2,0b26H,0004H;秒加

cmpsecond,58

jnaloop1

movsecond,-1

incminute

moval,minute

callshowbuf

showlinesbuf,0,2,0b23H,0004H;分加

cmpminute,58

jnaloop1

movminute,-1

inchour

moval,hour

callshowbuf

showlinesbuf,0,2,0b20H,0004H;小时加

cmphour,23

jnaloop1

movhour,0

incday;日加

cmpday,30

jnaloop1

movday,1

incmouth;月加

cmpmouth,11

jnaloop1

movmouth,1

incyear;年加

jmploop1

loop2:

ret

showtimeendp

settimeprocnear;设置时间flg1=0,1,2分别代表调整时分秒

callmovshu

R1:

callgetchar

cmpal,'i'

jneK11

calladdshu

callshowtimeall

callmovshu

jmpR1

K11:

cmpal,'a'

jnek12

incflg1

cmpflg1,3

jnep1

movflg1,0

p1:

callshowtimeall

callmovshu

jmpR1

k12:

cmpal,'q'

jnek13

jmpgoesc

k13:

cmpal,'m'

jefunction1

jmpR1

ret

settimeendp

setdateprocnear;设置日期flg1=3,4,5分别代表调整年月日

callmovshu

R2:

callgetchar

cmpal,'i'

jneK21

calladdshu

callshowdateall

callmovshu

jmpR2

K21:

cmpal,'a'

jnek22

incflg1

cmpflg1,6

jnep2

movflg1,3

p2:

callshowdateall

callmovshu

jmpR2

k22:

cmpal,'q'

jnek23

jmpgoesc

k23:

cmpal,'m'

jefunction2

jmpR2

ret

setdateendp

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

jnet6

movsecond,0

t3:

cmpflg1,3

jnet4

incyear

cmpyear,10000

jnet6

movyear,1

t4:

cmpflg1,4

jnet5

incmouth

cmpmouth,13

jnet6

movmouth,1

t5:

cmpflg1,5

jnet6

incday

cmpday,32

jnet6

movday,1

t6:

ret

addshuendp

movshuproc

cmpflg1,0;根据flg1显示时间日期调整对象

jnett1

moval,hour

callshowbuf

showlinesbuf,0,2,0b20H,000eH

tt1:

cmpflg1,1

jnett2

moval,minute

callshowbuf

showlinesbuf,0,2,0b23H,000eH

tt2:

cmpflg1,2

jnett3

moval,second

callshowbuf

showlinesbuf,0,2,0b26H,000eH

tt3:

cmpflg1,3

jnett4

callyearbcd

showlinesbufy,0,4,0b20H,000eH

tt4:

cmpflg1,4

jnett5

moval,mouth

callshowbuf

showlinesbuf,0,2,0b25H,000eH

tt5:

cmpflg1,5

jnett6

moval,day

callshowbuf

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1