定时报警器(闹钟)课程设计.doc
《定时报警器(闹钟)课程设计.doc》由会员分享,可在线阅读,更多相关《定时报警器(闹钟)课程设计.doc(26页珍藏版)》请在沃文网上搜索。
1、 摘 要 本次课设主要是熟练老师上课讲的内容,对自己有一个很好的测量。这次课设题目是设计一个定时报警器,主要是利用学过的时钟调用,时间的修改,外加我们自己理解的声音输出的播放,利用汇编语言实现一个可以在显示器上显示时、分、秒的电子时钟,并能提供在设定的时间发出声音的功能。目 录1课题名称12课题小组成员23课题内容和要求34软件设计44.1软件流程图44.2 汇编程序75结论206参考文献227心得体会23241 课题名称定时报警器2 课题小组成员王春来,熊小龙,徐晶,易思谦,占涛王春来,易思谦和占涛负责资料收集整理,熊小龙与徐晶负责程序的调试,修改。3 课题内容和要求题目描述:利用汇编语言实
2、现一个可以在显示器上显示时、分、秒的电子时钟,并能提供定时报警功能。基本要求:(1)设计一个基本的具有显示时、分、秒的电子时钟。(2)到整点或预定的报警时间,能够以不同的音乐进行报时,可以自行设置闹钟报警时间; (3)实物演示时要求讲出程序原理和设计思想;(4)程序运行良好、界面清晰。提高要求:设计一个具有钟面、分针、秒针的指针式钟表,在圆盘上有均匀分布的60根刻度,对应小时的刻度用不同颜色的长刻度区别,并且将12、3、6、9对应的拉丁文绘制于表盘外。设计提示:(1)指针式钟表的绘制。将屏幕设置成图形显示方式,通过画点、画线,画圆等基本程序完成钟表的绘制。表盘圆周上刻度线段两端点坐标计算是钟表
3、绘制的核心部分。 (2)秒针、分针、时针的转动。是经过一定的延时时间,通过在下一位置重新画一个,在原来的位置用背景色覆盖的方法实现。 (3)音乐的演奏。利用CPU支持的外围电路8254与8255,通过汇编程序改变8255的PB0,PB1口,接通扬声器,使得计算机能够发出一定频率的声音,同时通过8254的与8255连接的2号计数器控制指定频率,从而达到控制扬声器的音乐的效果。通过建立适当的延时程序达到一定时间后则改变2号计数器产生的方波的频率,实现音乐程序的演奏。4 软件设计4.1软件流程图1) 程序整体流程2) edittime子程序流程图3)editmusic子程序4)打开和关闭扬声器此处重
4、要用到了8254和8255的相关知识,书中P238有相关代码首先,应该读出8255的PB端口当前的状态,将PB0和PB1分别置1,以读修改写的方式修改PB0和PB1接通扬声器。其次,利用8254的2号计数器产生XXX Hz 的方波,此处计数初值利用公式 N=fclk1 /fout2 对8254先写低8位,再写高8位,out2输出方波最后,将8255的PB0和PB1回复位00,用AND AL,11111100B来修改 5)BCTD子程序的流程图该子程序程序功能主要是实现二进制转化成相应BCD码AX输入参数 AX输出参数,存放调整过的BCD码 4.2 汇编程序 课题任务实现的源程序(可以是一组源程
5、序,每个功能模块采用不同的函数实现),源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。1)变量名声明DATA SEGMENTMESS1 DB *ASM ASSIGNMENT* ,0AH,0DHDB ,0AH,0DHDB *ELECTRONIC CLOCK* ,0AH,0DHDB ,0AH,0DHDB ,0AH,0DHDB *PRESS C OR C TO EDIT THE ALARM TIME PRESS M OR M TO CHANGE SOUND!* ,0AH,0DHDB ,0AH,0DHDB *PRESS ESC BUTTON TO EX
6、IT* ,0AH,0DH,$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 ? ;存放键入的定时时间的秒数MU
7、SIC DW 800 ;存放默认音乐的频率数DATA ENDSSTACK SEGMENT DB 100 DUP(?) STACK ENDS 2)主函数代码DATA SEGMENTMESS1 DB *ASM ASSIGNMENT* ,0AH,0DHDB ,0AH,0DHDB *ELECTRONIC CLOCK* ,0AH,0DHDB ,0AH,0DHDB ,0AH,0DHDB *PRESS C OR C TO EDIT THE ALARM TIME PRESS M OR M TO CHANGE SOUND!* ,0AH,0DHDB ,0AH,0DHDB *PRESS ESC BUTTON TO
8、EXIT* ,0AH,0DH,$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 ? ;存放键入的定时时间的秒数
9、MUSIC DW 800 ;存放默认音乐的频率数DATA ENDSSTACK SEGMENT DB 100 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,SS:STACK,DS:DATA ;确定各个逻辑段的类型 START: MOV AX,DATA MOV DS,AX CALL CLEAR ;调用清屏子程序 DISPLAY: ;时间显示部分 MOV AX,DATA MOV DS,AX MOV BX,OFFSET T_BUFF ;送T_BUFF的偏移地址到BX MOV AH,2CH ;调用DOS时间调用功能,功能号:2CH,小时,分钟,秒数分别保存在
10、CH,CL,DH中 INT 21H ;判断时间是否相等SUB DH,1 ;秒钟+1修正CALL CHECKMOV AL,CH ;小时数设定 MOV AH,0 CALL BCTD ;调用进制转换子程序 二进制转BCD码子程序PUSH AX AND AL,0F0H ;选取AL高四位 MOV CL,4 ;设置右循环的次数 ROL AL,CL ;右循环 OR AL,30H ;加30H得到ACSII码 MOV BX,AL ;将得到的结果送到T_BUFF缓冲区 INC BX ;BX自加1,指针指向下一个缓冲区的下一个地址 POP AX AND AL,0FH ;选取低四位 OR AL,30H MOV BX,
11、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,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
12、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 MOV DL,41 INT 10H POP BX LEA
13、DX,T_BUFF ;送T_BUFF偏移地址到DX,并调用DOS显示功能,功能号为9 MOV AH,9 INT 21H ;至此当前事前时间的显示功能结束!PUSH BX ;置光标位置 MOV AH,2 MOV BH,0 MOV DH,0 MOV DL,0 INT 10H POP BX LEA DX,MESS1 MOV AH,9 INT 21H ; 显示MESS1PUSH BX ;置光标位置 MOV AH,2 MOV BH,0 MOV DH,17 MOV DL,21 INT 10H POP BX LEA DX,MESS2 MOV AH,9 INT 21H ; 显示MESS2CALL DELAY1
14、 MOV AH,1 ;调用键盘I/O中断功能号1,获取键值到AL INT 16H CMP AL,C ;是C键,转到时间修改程序 JE EDITTIME CMP AL,M ;是M键,转到闹铃种类设定程序,但超出跳转字节范围,现跳转到过渡指令JE XJCMP AL,1BH JZ QUIT ;是ESC键,退出程序 JMP DISPLAY QUIT: MOV AH,4CH ;程序终止功能号 INT 21H RET BCTD PROC NEAR ;二进制转BCD码子程序 ;AX输入参数 ;AX输出参数,存放调整过的BCD码 MOV DX,AX MOV AX,0 MOV CX,16 ;设循环次数 BCTD
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 定时 报警器 闹钟 课程设计