汇编语言课程设计-电子闹钟

上传人:n**** 文档编号:91133540 上传时间:2019-06-26 格式:DOC 页数:18 大小:319.50KB
返回 下载 相关 举报
汇编语言课程设计-电子闹钟_第1页
第1页 / 共18页
汇编语言课程设计-电子闹钟_第2页
第2页 / 共18页
汇编语言课程设计-电子闹钟_第3页
第3页 / 共18页
汇编语言课程设计-电子闹钟_第4页
第4页 / 共18页
汇编语言课程设计-电子闹钟_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《汇编语言课程设计-电子闹钟》由会员分享,可在线阅读,更多相关《汇编语言课程设计-电子闹钟(18页珍藏版)》请在金锄头文库上搜索。

1、电子闹钟电子闹钟 一、一、课题内容和要求课题内容和要求 题目描述:利用汇编语言实现一个可以在显示器上显示时、分、秒的电子 时钟,并能提供整点报时功能。 基本要求:(1)设计一个基本的具有显示时、分、秒的电子时钟。 (2)到整点或预定的报警时间,能够以不同的音乐进行报时,可以 自行设置闹钟报警时间; (3)实物演示时要求讲出程序原理和设计思想; (4)程序运行良好、界面清晰。 提高要求:设计一个具有钟面、分针、秒针的指针式钟表,在圆盘上有均匀分 布的 60 根刻度,对应小时的刻度用不同颜色的长刻度区别,并且将 12、3、6、9 对应的拉丁文绘制于表盘外。 设计提示:(1)指针式钟表的绘制。将屏幕

2、设置成图形显示方式,通过画点、 画线,画圆等基本程序完成钟表的绘制。表盘圆周上刻度线段两端点坐标计算 是钟表绘制的核心部分。 (2)秒针、分针、时针的转动。是经过一定的延时时间,通过在下 一位置重新画一个,在原来的位置用背景色覆盖的方法实现。 (3)音乐的演奏。利用 CPU 支持的外围电路 8254 与 8255,通过汇 编程序改变 8255 的 PB0,PB1 口,接通扬声器,使得计算机能够发出一定频率 的声音,同时通过 8254 的与 8255 连接的 2 号计数器控制指定频率,从而达到 控制扬声器的音乐的效果。通过建立适当的延时程序达到一定时间后则改变 2 号计数器产生的方波的频率,实现

3、音乐程序的演奏。 二、需求和思路分析二、需求和思路分析 经分析本次程序设计的主要内容主要分为如下的几个模块: 当前时间的获取并显示,码制转换,设定闹钟报鸣的时间,不同频率的 闹铃声,钟表的绘制和并实现动态等模块。其中钟表的绘制和动态走动部分比 较难是本次课程设计的提高部分,且改模块可单独形成一个模块,所以放到最 后进行考虑 1 时间的获取可以用 INT 21H 的 2CH 功能,该功能调用 DOS 时间调用功 能,功能号:2CH,小时,分钟,秒数分别保存在,保存的形式是以二进制的形式, 故显示时要 2 码制转化利用 ASCII 码与二进制码的关系 ASCII=二进制+30H 3 闹钟鸣叫主要利

4、用 8254 的二号计数器和 8255 的 PB0 和 PB1 来设定 4 闹钟的表盘,指针的绘制,并实现时针,分针,秒针的走动。主要通 过过图形的画点进行操作,并通过在固定的区域内不断的刷屏来实现。 三、概要设计三、概要设计 (一)算法设计及重要程序流程图 1)程序整体流程 check displa y int 21h 2ch call bctd ASCII clear or ESC call editmusic call edittime 2)edittime子程序流程图 CALL EDITTIME (INT 21H 9 ) int 21h0ah h h:mm:ss t_buffer as

5、cii 30Hdh add dh,10 30Hdl add dl,10 inc bx() mov al,dh add al,dl mov temphor,al 2)editmusic子程序 CALL EDITMUSIC (INT 21H 9 ) int 21h 0ah t_buffer music 1 2 3 mov music,800 mov music,3200 mov music,1600 3)打开和关闭扬声器 此处重要用到了8254和8255的相关知识,书中P238有相关代码 首先,应该读出8255的PB端口当前的状态,将PB0和PB1分别置1,以读修改 写的方式修改PB0和PB1接通

6、扬声器。 其次,利用8254的2号计数器产生XXX Hz 的方波,此处计数初值利用公式 N=fclk1 /fout2 对8254先写低8位,再写高8位,out2输出方波 最后,将8255的PB0和PB1回复位00,用AND AL,11111100B来修改 CALL OPENCALL CLOSE8254 4)BCTD子程序的流程图 该子程序程序功能主要是实现二进制转化成相应BCD码 AX输入参数 AX输出参数,存放调整过的BCD码 MOV DX,AX MOV AX,0 MOV CX,16 - XCHG AL,AH ; ADC AL,AL DAA XCHG AL,AH clc ; C rcl dx

7、,1 ; - adc al,al ; daa ; CALL BCTD LOOP BCTD1 (二)变量名声明 DATA SEGMENT MESS1 DB *ASM ASSIGNMENT* ,0AH,0DH DB ,0AH,0DH DB *ELECTRONIC CLOCK* ,0AH,0DH DB ,0AH,0DH DB ,0AH,0DH DB *PRESS C OR C TO EDIT THE ALARM TIME PRESS M OR M TO CHANGE SOUND!* ,0AH,0DH DB ,0AH,0DH DB *PRESS ESC BUTTON TO EXIT* ,0AH,0DH

8、,$ TN DB PLEASE INPUT THE NEW TIME (HH:MM:SS):,0DH,0AH,$ MUSICMESS DB PLEASE CHOOSE THE TYPE OF MUSIC:1(FAST) 2(MIDDLE) 3(SLOW),0DH,0AH,$ MESS2 DB *TIME IS:,0AH,0DH,$ T_BUFF DB 40 ;在数据段开一段时间显示缓冲区 DB ? DB 40 DUP (?) TEMPHOR DB ? ;存放键入的定时时间的小时 TEMPMIN DB ? ;存放键入的定时时间的分钟 TEMPSEC DB ? ;存放键入的定时时间的秒数 MUSI

9、C DW 800 ;存放默认音乐的频率数 DATA ENDS STACK SEGMENT DB 100 DUP(?) STACK ENDS 四、详细设计四、详细设计 课题任务实现的源程序(可以是一组源程序,每个功能模块采用不同的函 数实现) ,源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变 量,重点功能部分要加上清晰的程序注释。 (一) 1 主函数代码 CODE SEGMENT ASSUME CS:CODE,SS:STACK,DS:DATA ;确定各个逻辑段的类型 START: MOV AX,DATA MOV DS,AX CALL CLEAR ;调用清屏子程序 DISPLAY:

10、;时间显示部分 MOV AX,DATA MOV DS,AX MOV BX,OFFSET T_BUFF ;送T_BUFF的偏移地址到BX MOV AH,2CH ;调用DOS时间调用功能,功能号:2CH,小时,分钟,秒数分别保存在CH,CL,DH中 INT 21H ;判断时间是否相等 SUB DH,1 ;秒钟+1修正 CALL CHECK MOV AL,CH ;小时数设定 MOV AH,0 CALL BCTD ;调用进制转换子程序 二进制转BCD码子程序 PUSH AX AND AL,0F0H ;选取AL高四位 MOV CL,4 ;设置右循环的次数 ROL AL,CL ;右循环 OR AL,30H

11、 ;加30H得到ACSII码 MOV BX,AL ;将得到的结果送到T_BUFF缓冲区 INC BX ;BX自加1,指针指向下一个缓冲区的下一个地址 POP AX AND AL,0FH ;选取低四位 OR AL,30H MOV BX,AL ;将转换后的低四位值送入缓冲区的第二个地址 INC BX ;- MOV AL,: ;显示分隔符号 MOV BX,AL INC BX ;- MOV AH,2CH INT 21H MOV AL,CL ;分钟数设定 MOV AH,0 CALL BCTD PUSH AX AND AL,0F0H MOV CL,4 ROL AL,CL OR AL,30H MOV BX,

12、AL INC BX POP AX AND AL,0FH OR AL,30H MOV BX,AL INC BX ;- MOV AL,: ;显示分隔符号 MOV BX,AL INC BX ;- MOV AH,2CH ;秒设定 INT 21H MOV AL,DH MOV AH,0 CALL BCTD PUSH AX AND AL,0F0H MOV CL,4 ROL AL,CL OR AL,30H MOV BX,AL INC BX POP AX AND AL,0FH OR AL,30H MOV BX,AL INC BX ;- MOV AL,$ ;将字符串的结束位送至显示缓冲区的最后一位 MOV BX,AL ;- PUSH BX ;置光标位置 ,AH=2,BH=0,DH跟DL分别为行号与列号,并入栈保护BX MOV AH,2 ;01用于此程序快下边的 在下面的两个置光标位置 MOV BH,0 MOV DH,17 M

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号