版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河北科技高校
课程设计报告
学生姓名:学号:—
专业班级:电子信息科学及工程
课程名称:微型计算机原理及应用
学年学期:2011—2012学年第1学期
指导老师:______________________
20011年12月
课程设计成果评定表
学生姓名学号成果
专业班级起止时间2011/12/26—2011/12/30
数字时钟程序
设计题目
指
导
教
师
评
语
指导老师:___________
年月日
书目
一、课设题目及目的.............................4
二、设计任务...................................4
三、总框图及设计流程..........................4
四、源程序清单................................6
五、调试结果及显示............................19
六、个人贡献..................................19
七、课程设计总结及体会.........................21
一、课设题目及目的
实习题目:数字时钟程序
实习目的:通过实习,使我们进一步弄懂所学到的课本学问,巩
固和深化对8086系统的指令系统、中断系统、键盘/显示系统、程序
设计、应用开发等基本理论学问的理解,提高汇编语言应用于技术的
实践操作技能,驾驭汇编语言应用系统设计、研制的方法,培育利用
科技革新、开发和创新的基本实力,为毕业后从事及其相关的工作打
下肯定的基础。
二、课设任务
本课题为利用汇编语言设置时钟程序,其显示效果为:截取系统
时间,能以时、分、秒(其中时为24小时制)的形式显示,并且通
过合理的操作能修改时和分的内容来修改时间。再有,可以给它设定
一个ALARM时间,到这个时间它就能产生信号,起到定时作用,。除
此之外还能显示日期,日期分为年、月、日,其显示方式为xxxx年
XX月XX日。
显示时I司
DB'*******PRESSMORMTOCHANGE
SOUND!*************',OAH,ODH
DB'****PRESSSORSTOSETTHETIME**************
,,OAH,ODH;显示功能菜单
DB'***********PRESSESCBUTTONTO
EXIT**************',OAH,ODH,'$'
TNDB'PLEASEINPUTTHENEWTIME(HH:MM:SS):,ODH,OAH,'$'
TMDB,PLEASEINPUTTHEALARMTIME(HH:MM:SS):,ODH,OAH,'$'
MUSICMESSDB'PLEASECHOOSETHETYPEOFMUSIC:1(FAST)
2(MIDDLE)3(SLOW),,ODH,OAH,'$'
MESS2DB,TIMEIS:',OAH,ODH,'$'
MESS3DB'TODAYIS:',OAII,ODH,'$'
DBUFFER1DB20DUP('')
TBUFFDB
40;
在数据段开一段时间显示缓冲区
DB?
DB40DUP(?)
I1ORDB?
MINDB?
SECDB?
TEMPHORDB?
TEMPMINDB?
TEMPSECDB?
MUSTCDW
800;存
放音乐的频率数
DATAENDS
STACKSEGMENT
DB100DUP(?)
STACKENDS
CODESEGMENT
ASSUMECS:CODE,SS:STACK,DS:DATA
START:
CALL
CLEAR;
调用清屏子程序
DISPLAY:
;时间显示部分
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETT_BUFF;送T_BUFF的偏移地址到BX
MOVAH,2CH;调用DOS时间调用功能,功能号:2CH,小时,
分钟,秒数分别保存在CH,CL,DH中
INT21H
推断时间是否相等
SUB
DH,1;秒数
+1修正
CALLCHECK
MOVAL,CH;小时数设定
MOVAH,0
CALLBCTD;调用进制转换子程序二进
制BCD码子程序
PUSHAX
ANDAL,0F011;选取AL高四位
MOVCL,4;设置右循环的次数
RORAL,CL;右循环
ORAL,30H;加30H得到ACSII码
MOV[BX],AL;将得到的结果送到T_BUFF缓冲
区
INCBX;BX自加1,指针指向下一个缓
冲区的下一个地址
POPAX
ANDAL,OFH;选取低四位
ORAL,30H
MOV[BX],AL;将转换后的低四位值送入缓冲区的下一个地址
INCBX
MOVAL,':显示分隔符号
MOV[BX],AL
INCBX
MOVAH,2CH;取时间
INT21H
MOVAL,CL;分钟数设定
MOVAH,0
CALLBCTD;调用进制转换子程序二进制BCD码子程序
PUSHAX
ANDAL,OFOH;选取AL高四位
MOVCL,4;设定循环次数
ROLAL,CL;循环左移4次
ORAL,30H;加30H得到ACS11码
MOV[BX],AL;将得到的结果送到T_BUFF缓冲区
INCBX;BX自加1,指针指向下一个缓冲区的下一个地址
POPAX
ANDAL,OFH;选取低四位
ORAL,30H
MOV[BX],AL;将转换后的低四位值送入缓冲区的下一个地
址
INCBX
MOVAL,J:';显示分隔符号
MOV[BX],AL
INCBX
MOVAH,2CH;秒设定
INT21H
MOVAL,DH
MOVAH,0
CALLBCTD;调用进制转换子程序二进制BCD码子程序
PUSHAX
ANDAL,OFOH;选取AL高四位
MOVCL,4
ROLAL,CL
ORAL,30H;加30H得到ACS11码
MOV[BX],AL;将得到的结果送到T_BUFF缓冲区
INCBX
POPAX
ANDAL,OFH;选取低四位
ORAL,3011
MOV[BX],AL;将转换后的低四位值送入缓冲区的下一个地
址
INCBX
MOVAL,'$';将字符串的结束位送至显示缓冲区的最终一
位
MOV[BX],AL
CALLDATE
PUSHBX;置光标位置,AH=2,BH=O,DH跟DL分别为行
号及列号,并入栈爱护BX
MOVAH,2;0^1用于此程序最下边的在下面的两个置光
标位置
MOVBH,0
MOVDH,17;行
MOVDL,41;列
INT1011
POPBX
LEADX,T.BUFF;送T_BUFF偏移地址到DX,并调用DOS显
不功能,功能号为9
MOVAH,9
INT21H;至此当前时间的显示功能结束!
PUSHBX;置光标位置
MOVAH,2
MOVBH,0
MOVDH,16
MOVDL,41
INT1OH;日期
POPBX
LEADX,DBUFFER1
MOVAH,9
INT21H
PUSHBX;置光标位置
MOVAH,2
MOVBH,0
MOVDH,16
MOVDL,21
INT1011
POPBX
LEADX,MESS3
MOVAH,9
INT21H;显示MESS3
PUSHBX;置光标位置
MOVAH,2
MOVBH,0
MOVDH,0
MOVDL,0
INT10H
POPBX
LEADX,MESSI
MOVAH,9
INT2III;显示MESSI
PUSHBX;置光标位置
MOVAH,2
MOVBH,0
MOVDH,17
MOVDL,21
INT1OH
POPBX
LEADX,MESS2
MOVAH,9
INT21H;显示MESS2
CALLDELAY1
MOVAH?1;调用键盘I/O中断功能号1,获得键值到AL
INT16H
CMPAL,'M'
JEEDITMUSIC
CMPAL,'M'
JEEDITMUSIC
CMPALJC';是C键,转移闹钟时间修改程序
JEEDITTIME
CMPAL,'C';是C键,转移闹钟时间修改程序
JEEDTTTTME
CMPAL,'S';是S键,转移时间修改程序
JECOR
CMPAL,'S';是S键,转移时间修改程序
JECOR
CMPAL,1BH
JZQUIT键,退出程序
JMPDISPLAY
QUIT:
MOVAll,4CI1
INT21H
RET
COR:CALLSETTIME;设置时间
EDITMUSICPROC
PUSHAX;入栈爱护数据
PUSHBX
PUSHCX
PUSHDX
PUSHF
MOVDX,OFFSETMUSICMESS;显示修改音乐的种类提示
MOVAH,09H
INT21H
MOVDX,OFFSETT_BUFF;数据缓冲区的数据输入
MOVAH,OAH
INT2111
ANDDX,OH
LEABX,T_BUFF
INCBX
INCBX
INCBX
MOVAL,[BX]
CMPAL,'1'
JEM800T0
CMPAL/2'
JEM1600T0
CMPAL,'3'
JEM3200T0
M800T0:M0VMUSIC,800
JMPT
M1600T0:M0VMUSIC,1600
JMPT
M3200T0:M0VMUSIC,3200
T:
POPF;出栈复原数据
POPDX
POPCX
POPBX
POPAX
JMPSTART
RET;返回DOS
EDITMUSICENDP;结束
BCTDPROCNEAR;二进制BCD码子程序
;AX输入参数
;AX输出参数,存放调整过的BCD码
MOVDX,AX
MOVAX,0
MOVCX,16;设置循环次数
BCTD1:
CLC;清进位标记C
RCLDX,1;通过进位的循环左移
ADCAL,AL;带进位加法
DAA;加法的十进制调整
XCHGAL,AH;交换高,低8位
ADCAL,AL
DAA
XCHGAL,AH
LOOPBCTD1;循环次数保存在CX里
RET
BCTDENDP
EDITTIMEPROC;时间修改程序
PUSHAX;入栈爱护数据
PUSHBX
PUSHCX
PUSHDX
PL'SHF
MOVDX,OFFSETTM;显示修改时间的格式提示
MOVAH,0911
INT21H
MOVDX,OFFSETT_BUFF;数据缓冲区的数据输入
MOVAH,OAH
INT21H
ANDDX,OH
LEABX,T_BUFF
INCBX
INCBX
INCBX
MOVDH,[BX]
SUBDH,3OH
INCBX
MOVDL,[BX]
SLBDL,3011
MOVCL,10
MOVAL,DH
MULCL
ADDAL,DL
MOVCH,AL
MOVHOR.AL
MOVTEMPIIOR,AL
INCBX
INCBX
MOVDH,[BX]
SUBDH,30H
INCBX
MOVDL,[BX]
SUBDL,3011
MOVCL,10
MOVAL,DH
MULCL
ADDAL,DL
MOVCL,AL
MOVMIN,AL
MOVTEMPMIN,AL
INCBX
INCBX
MOVDH,[BX]
SUBDH,3OH
INCBX
MOVDL,[BX]
SUBDL,3011
MOVCL,10
MOVAL,Dll
MULCL
ADDAL,DL
MOVDH,AL
MOVTEMPSEC,AL
POPF;出栈复原数据
POPDX
POPCX
POPBX
POPAX
JMPSTART
RET
EDTTTTMEENDP
CLEARPROCNEAR
PUSHAX;入栈爱护现场
PUSHBX
PUSHCX
PUSHDX
MOVAX,0600H;AH=06(滚动)AL=OO(全屏空白)
MOVBHJFH;设置背景颜色(1蓝色)和前景颜色(F白
色)
SUBCX,CX
MOVDX,5F5F11
INT10H
POPDX;出栈复原现场
POPCX
POPBX
POPAX
RET
CLEARENDP
DATEPROCNEAR
MOVAH,2AH;取日期CX:DH:DL二年:月:日AL二星期
INT21H
MOVSI,0
MOVAX,CX
MOVBX,100
DIVBL
MOVBL,AH
CALLBCDASC1;日期数值转换成相应的ASCII码字符
MOVAL,BL
CALLBCDASC1
INCSI
MOVAL,DH
CALLBCDASC1
INCSI
MOVAL,DL
CALLBCDASC1
MOVAL,'$'
MOVDBUFFER1[SI],AL
RET
DATEENDP
BCDASC1PROCNEAR
PUSHBX
CBW
MOVBL,10
DIVBL
ADDAL/O'
MOVDBUFFER1[SI],AL
INCSI
ADDAH,J0,
MOVDBUFFER1[SI],AH
INCSI
POPBX
RET
BCDASC1ENDP
SETTIMEPROC;时间修改子程序
CALLINPUT;调用键盘输入子程序输入数据
MOVCH,HOR
MOVCL,MIN
MOVDH,SEC
ANDDL?OH
MOVAH?2DH
INT21H
JMPSTART
RET
SETTIMEENDP
DELAY1PROC;精确延迟时间子程序
MOVDX,04FFH;循环次数
UP:XORCX,CX
A:NOP
LOOPA
DECDX
JNZUP
RET
DELAY1ENDP
INPUTPROC;输入子程序
PUSHAX;入栈爱护数据
PUSHBX
PUSHCX
PUSHDX
PUSHF
MOVDX,OFFSETTN;显示修改时间的格式提示
MOVAH,09H
INT21H
MOVDX,OFFSETT_BUFF;数据缓冲区的数据输入
MOVAH,OAH
INT21H
ANDDX,OH
LEABX,T_BUFF
INCBX
INCBX
MOVDH,[BX]
SUBDIL3011
INCBX
MOVDL,[BX]
SUBDL,30H
MOVCL,10
MOVAL,DH
MULCL
ADDAL,DL
MOVCH,AL
MOVHORfAL
INCBX
INCBX
MOVDH,[BX]
SUBDH,30H
INCBX
MOVDL,[BX]
SUBDL,30H
MOVCL,10
MOVAL,DH
MULCL
ADDAL,DL
MOVCL,AL
MOVMIN,AL
INCBX
INCBX
MOVDH,[BX]
SUBDH?30H
INCBX
MOVDL,[BX]
SUBDL,3011
MOVCL10
MOVALfDH
MULCL
ADDAL,DL
MOVDH,AL
MOVSEC,AL
POPF;出栈复原数据
POPDX
POPCX
POPBX
POPAX
RET
INPUTENDP
CHECKPROC
PUSHAX
PUSHBX
CMPCH,TEMPHOR;设置定点报时
JNECF1
CMPCL,TEMPMIN
JNECF1
CMPDU,TEMPSEC
JEXIANG
CF1:
CMPCL,0;设置整点报时
JNECF
CMPDH,0
JNECF
XIANG:
CALLOPEN
PUSHDX
PUSHCX
MOVDX,12H
MOVAX,34DEH
MOVCX,MUSIC
DIVCX
OUT42H,AL
MOVAL,AH
OUT42H,AL
MOVAH,1
INT21H
POPCX
POPDX
CALLCLOSE
CF:
POPBX
POPAX
RET
CHECKENDP
OPENPROC
PUSHAX
INAL,61H
ORAL,03H
OUT61H,AL
POPAX
RET
OPENENDP
CLOSEPROC
PUSHAX
INAL,61H
ANDAL,OFCH
OUT61H,AL
POPAX
RET
CLOSEENDP
CODEENDS
ENDSTART
五.调试结果及显示
,,煦D:\隹序$^\TM\TKASM2〜1khengxu\Masm\bin\DWTemp.exe
XXXXXXXXXXXXXXMXASMASSIGNHENTXXXX*XXMXX******XX,
XXXX乂XXXXXXXMX'ELECTRONICCLOCKxxxxxxxxxxxxxxxhxx
*******PRESSCORCTOEDITTHEALARMTIME*******
*******PRESSMORMTOCHANGESOUND?MMXXMMXXXXXXX
*M*»PRESSSORSTOSETTHETIME**************
XXMMXXMMXXXPRESSESCBUTTONTOEXITXXMXXXXXXXXXXX
TODAYIS:20111221
TIMEIS:23:20:07
六.个人贡献
在本次课设实现过程中,我主要负责程序校正,和一部分程序的
说明,主要有以下程序:MOVAL,CH;小时数设定
MOVAH,0
CALLBCTD;调用进制转换子程序二进
制BCD码子程序
PUSHAX
ANDAL,OFOH;选取AL高四位
MOVCL,4;设置右循环的次数
RORAL,CL;右循环
ORAL,3011;加30H得到A到II码
MOV[BX],AL;将得到的结果送到T.BUFF缓冲
区
INCBX;BX自加1,指针指向下一个缓
冲区的下一个地址
POPAX
ANDAL,OFH;选取低四位
ORAL,30H
MOV[BX],AL;将转换后的低四位值送入缓冲区的下一个地址
INCBX
MOVAL/:';显示分隔符号
MOV[BX],AL
INCBX
MOVAH,2cH;取时间
INT21H
MOVAL,CL;分钟数设定
MOVAH,0
CALLBCTD;调用进制转换子程序二进制BCD码子程序
PUSHAX
ANDAL,OFOH;选取AL高四位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家园共育协同下幼小衔接心理适应课程开发路径
- 极端天气环卫保洁物资储备与调配管理办法
- PVC卷材低温施工质量保障方案
- 有线电视客服部客服代表绩效考核办法
- 公司经营管理手册
- 养护作业安全指导手册
- 关岭布依族苗族自治县2026年三上数学期末综合测试模拟试题含解析
- 云南省文山州2026年数学五下期末检测模拟试题含答案含解析
- 2027届金溪县数学五年级第二学期期末检测模拟试题含答案含解析
- 山东省济宁市微山县2026年四上数学期末监测模拟试题含解析
- 2026年河北省中考物理试卷(含答案及解析)
- 2026届贵州省遵义市凤冈县四年级数学下学期期末综合测试试题含解析
- 2026广东深圳市公安局第十四批招聘警务辅助人员考试参考题库及答案详解
- 2026天津市面向甘南籍未就业高校毕业生招聘事业单位40人笔试参考题库及答案详解
- 2026年小学心理专题活动设计方案
- 肩袖损伤规范化诊治临床指南 (2026 版)
- 中国咽炎防治指南2025版
- 2026年省级行业企业职业技能竞赛(家畜(猪)繁殖员)练习题及答案
- 2026年湖北省孝感市幼儿园教师招聘笔试参考题库及答案解析
- 胫腓骨骨折手术后功能锻炼指南
- 产业园消防安全管理制度
评论
0/150
提交评论