汇编课程设计电子闹钟10_第1页
汇编课程设计电子闹钟10_第2页
汇编课程设计电子闹钟10_第3页
汇编课程设计电子闹钟10_第4页
汇编课程设计电子闹钟10_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、中北大学微机原理与汇编语言课程设计任务书 20013/2014 学年第 一 学期 学学 院院:计算机与控制工程学院专专 业业 :计算机科学技术学学 生生 姓姓 名名:学学 号:号:设设 计计 题题 目目:电子闹钟 起起 迄迄 日日 期期 : 2013.12.30-2014.1.9设设 计计 地地 点点 :指指 导导 教教 师师 : 下达任务书日期: 2013 年 12 月 30 日微机原理与汇编语言课程设计任务书微机原理与汇编语言课程设计任务书1设计目的:通过微机原理与汇编语言课程设计,使学生根据所学的微机原理与汇编语言知识,进一步学习掌握汇编语言程序设计知识,充分理解计算机内部的管理、接口内

2、容以及系统功能调用。能针对一个简单的控制或汇编语言程序设计项目,做出分析,设计其硬件、软件,达到预期的控制目的。2设计内容和要求(包括原始数据、技术参数、条件、设计要求等):设计内容:设计内容:利用 8086 汇编语言,完成电子闹钟的软硬件设计工作,要求时间准确,操作方便。设计要求:设计要求:1. 能以表盘或数字形式显示时间(12H/24H 自动转换)。2. 能够修改时间和日期。3. 具有 3 个闹铃。4. 闹铃具有 5 种铃声。5 具有北京时间授时接受功能。3设计工作任务及工作量的要求:中北大学中北大学微机原理与汇编语言微机原理与汇编语言课课 程程 设设 计计 说说 明明 书书学生姓名学生姓

3、名:学学 号:号:学学 院院:电电子子与与计计算算机机科科学学技技术术学学院院专专 业业:计算机科学技术计算机科学技术题题 目目:电子闹钟电子闹钟成成绩绩 指导教指导教师师2014 年 1 月 9 日1. 引言引言 通过做电子闹钟的课程设计,可以加深对汇编语言的理解,理解掌握定时/计数器和中断的使用方法。掌握微机常用的输入输出方式及接口技术。掌握一定的汇编语言知识,培养自己的动手操作能力。 学习程序设计的基本思路和方法。2 2需求分析需求分析分析本次程序设计的主要内容主要分为如下的几个模块:当前时间的获取并显示,时间的 12H/24H 的转换,码制转换,设定闹钟报鸣的时间,不同频率的闹铃声,钟

4、表的绘制和并实现动态等模块。其中钟表的绘制和动态走动部分比较难是本次课程设计的提高部分,且改模块可单独形成一个模块,所以放到最后进行考虑1 时间的获取可以用 INT 21H 的 2CH 功能,该功能调用 DOS 时间调用功能,功能号:2CH,小时,分钟,秒数分别保存在,保存的形式是以二进制的形式,故显示时要2 码制转化利用 ASCII 码与二进制码的关系 ASCII=二进制+30H3 3总体设计总体设计.dataHOUR db 0MIN db 0SEC db 0MSEC db 0NHOUR db 0 ;设置时间使用NMIN db 0 ;设置时间使用NSEC db 0 ;设置时间使用RHOUR

5、db 1 ;设置闹铃时间使用RMIN db 1 ;设置闹铃时间使用RSEC db 1 ;设置闹铃时间使用FUNKEY db ? ;功能设置使用keySw db 00h ;是否按键开关RingSw db 00h ;闹铃开关 SWITCH db 0FFh ;刷新开关,真,则不断在定时器中断函数中刷新,否则不刷新4.4. 详细设计(这一部分每个人应该是不同的)详细设计(这一部分每个人应该是不同的) 时间显示 显示时间设置光标显示小时 数和“:”显示分钟和“:”显示秒和“:”返回调整时间是否是否是否调整时间Sec+1小于60Min+1 和 sec=0小于60hour+1 和min=0小于 tfHour

6、=0重置时间:Ret重置时间从键盘获取时间数据将时间分离成小时,分钟,秒数将小时给 HOUR,分钟给MIN,秒数给 SECRet转换为 12 小时制:否否是是转换为 24H:否否是是转换为 12HHOUR12HOUR-12RET 转换为 24HCh12获取系统时间的小时数HOUR+12RET 5.5. 软件测试软件测试 在测试显示时间的时候,直接给 HOUR,MIN,SEC 直接赋值,检查在界面上是否能够显示。 在测试时间的更改的时候,将键盘获取的时间的小时、分钟、秒分别赋给HOUR,MIN,SEC,然后调用显示的子程序将时间显示出来,以此来检查时间的更改是否正确。 在测试时间的调整的时候,通

7、过时间更改子程序,分别获取时间的小时、分钟、秒数,并在此基础上进行改变,在通过调用显示子程序将时间显示出来,以此来检查时间的更改是否正确。 6.6. 程序清单程序清单;-;显示小时DISPLYH PROC NEAR PUSHA ; 设置光标位置 mov dh,2h ;set Row No. mov dl,10d ;set Column NO. call MOVCUR mov dh,0 mov dl,ds:HOUR call output ;调用 output 函数输出小时 mov dl,: mov ah,02h int 21h POPA RETDISPLYH ENDP;-;显示分钟DISPLY

8、M PROC NEAR PUSHA ;设置光标位置 mov dh,2h ;set Row No. mov dl,13d ;set Column NO. call MOVCUR mov dh,0 mov dl,ds:MIN call output mov dl,: mov ah,02h int 21h POPA RETDISPLYM ENDP;-;显示秒DISPLYS PROC NEAR PUSHA ;设置光标位置 mov dh,2h ;set Row No. mov dl,16d ;set Column NO. call MOVCUR mov dh,0 mov dl,ds:SEC call o

9、utput POPA retDISPLYS endp;-;调整时间,累加秒,分,时CALTIME proc near PUSHA ;调整秒 inc ds:SEC cmp ds:SEC,60d jb endc mov ds:SEC,0h setM: ;调整分钟 inc ds:MIN cmp ds:MIN,60d jb endc mov ds:MIN,0h setH: ;调整小时 inc ds:HOUR cmp ds:HOUR,24d jb endc mov ds:HOUR,0h endc: POPA retCALTIME endp;-;设置时间SETTIME proc near PUSHA ca

10、ll closeSw ;关闭定时刷新 mov dh,11h mov dl,00h call MOVCUR ;移动光标 mov dx,00h mov ah,09h ;输出提示信息,提示输出设置时间 mov dx,offset setTMsg int 21h call READNT ;读取时间(HH:MM:SS) ;设置时间 mov ch,ds:NHOUR ;HOUR mov cl,ds:NMIN ;MIN mov dh,ds:NSEC ;SECOND mov dl,0h ;1/100 SECOND mov ah,2Dh int 21h cmp al,00h je SetSuccess mov a

11、h,02h ;设置时间中断调用失败处理 mov dl,! int 21h SetSuccess: call openSw ;打开刷新开关 POPA retSETTIME endp;-;读取时间(从 ASCII 码到 16 进制数值的转换)(HH:MM:SS)READNT proc near PUSHA mov ah,01h int 21h mov bx,0h ;bx 存放得到的数值(16 进制) loop1: cmp al,0 ;读取小时 jl endloop1 cmp al,9 jg endloop1 sub al,30h ;transform from char to number cbw

12、 xchg ax,bx mov cx,0ah ;put 10d into cx mul cx xchg ax,bx add bx,ax mov ah,01h ;put the read interrupt type int 21h ;call the DOS interrupt jmp loop1 ;存取小时endloop1: mov ds:NHOUR,bl; mov bx,0h; loop2: mov ah,01h int 21h ;bx 存放得到的数值(16 进制) cmp al,0 ;读取分钟 jl endloop2 cmp al,9 jg endloop2 sub al,30h ;tr

13、ansform from char to number cbw xchg ax,bx mov cx,0ah ;put 10d into cx mul cx xchg ax,bx add bx,ax jmp loop2 ;存取分钟endloop2: mov ds:NMIN,bl mov bx,0h loop3: mov ah,01h int 21h ;bx 存放得到的数值(16 进制) cmp al,0 ;读取秒 jl rlast cmp al,9 jg rlast sub al,30h ;transform from char to number cbw xchg ax,bx mov cx,0

14、ah ;put 10d into cx mul cx xchg ax,bx add bx,ax jmp loop3rlast: ;存取秒 mov ds:NSEC,bl POPA retREADNT endp;-;变 12 小时显示格式changese proc near PUSHA cmp HOUR,12 jnz abc retabc: sub HOUR,12 ret changese endp ;-;变 24 小时显示格式changees proc near PUSHA mov ah,2ch ;get the System time,CH:CL=(H:M),DH:DL=(s:1/100s) int 21h

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论