关键词不能为空

当前您在: 主页 > 英语 >

微机原理课程设计-闹钟

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-13 17:19
tags:

-

2021年2月13日发(作者:annual是什么意思)


微机原理与接口技术课程设计——响铃闹钟







微机原理课程设计说明书







学院:



电力学院




姓名:




学号:













专业:




指导老师:




微机原理与接口技术课程设计——响铃闹钟




目录



一、设计意义


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1


二、设计任务


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1


1


、设计要求


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1



2


、设计原理


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1



三、硬件设计


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 2


四、软件设计


. . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . .. . . . . . .4


1


、设计过程


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5



2


、程序流程图


. . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . 5


3


、功能模块


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5



五、设计心得


. . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . .. . . . . . .. .8


附录


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . .. . . . . . .. . . . .9







微机原理与接口技术课程设计——响铃闹钟




1


.


设计意义



“微机原理与接口技术”是一门实践性和实用性都很强的课程,


学习的目的


在于应用。


本课程设计是配合“微机原理与接口技术 ”课堂教学的一个重要的实


践教学环节,


它能起到巩固课堂和书 本上所学知识,


加强综合能力,


提高系统设

计水平,启发创新思想的效果。



2


.


设计任务



一、


设计要求



1.


从键盘输入闹铃时间(如


09:45



2.


程序开始记时,并在屏幕 上显示时间(如


08



30

< p>


21


)并实时刷新


< /p>


3.


时间到,则发出闹铃声,声音维持数秒,同时屏幕显示响铃提 示;同时时间停


止刷新;



4.


能处理输入错误


(如闹钟响铃时间应为数字,


但用户错误输入非数值型的字符)



二、


设计原理分析



1.


显示系统时间


< br>1


)使用


DOS


功能调用(


INT 21H


)中的


2CH


中断截取系统时间,再调用显


示时间的子程序把时间显示出来(例如显示当前 时间为



16



30



45



并且如果


时间数少于两位数就要在其前面加


0


后显示出来如



04



07



03





2


)利用端口< /p>


61H


中的


PB4



15.08


微秒触发一次的特点,通过适当的循环


次数进行循环从而实现延时


1


秒钟;

< p>


3


)在延时后再循环执行步骤

< br>1


从而实现时间每一秒的刷新,在屏幕上不断


显示当前的 时间;



2.


设置闹钟响铃时间与输入 时的容错处理方法



1


)在数据段定义 好字型变量


HOUR



MINUTE< /p>


分别用于存放响铃时的小时


数与分钟数;



2



设置闹钟响铃时间由于形式为



12



45


(小时:


分钟)



为了方便进行容错


处理,可以分别用一段代码实现每一位数的输入,总共需要输入五位数 字。例


如,输入前两位的小时数时,在输入第一位时,判断输入的是否是从


0



2


< br>围里的一个数字,


如果不是就显示错误信息并停止程序的运行;

< br>在输入小时的


第二位数时,


判断输入的是否是

< p>
0



9


范围里的一个数字 ,


如果不是就显示错


误信息并停止程序的运行;


在输入第三位时


(应该是冒号)


再判断是否是冒号,< /p>


如果不是就显示错误信息并停止程序的运行;


输入第四位


(即分钟数的第一位)


1



微机原理与接口技术课程设计——响铃闹钟




判断输入的是否是


0



5


数字里的一个,


如果不是 就显示错误信息并停止程序


的运行;


输入最后一位判断是否是< /p>


0



9


的范围中 的一个数字,


如果不是就显


示错误信息并停止程序的运行等等;



3


)每次输入如果确定输入无误就使 用书本中处理输入一个十进制数常用的


方法把输入的数存储到寄存器中,


再把它存入相应的变量中如小时数存到变量


HOUR


中 ,分钟数存入变量


MINUTE


中;



3.


当到达闹钟响铃时间时响铃



1


)每次在截取系统时间前先把寄存器


BX


清零,截取时间后把截取到的系


统时间分别与变量


HOUR


与变量


MINUTE


进行比较,如果相等,就使寄存器


BX


1



这样再执行完截取系统时间后检查

BX


是否为


2


< br>如果是


2


就表示已


经到达设定好 的闹铃时间,就跳出显示时间的死循环,跳到响铃的循环去;



2


)响铃是使用


DOS


功能调用(


INT 21H


)中的


2H


,


同时把


7H


放到


DL



存器中,执行一次后延时三秒(延时的方法同显示时间时所用延时方法 一样)


再执行一次共循环执行


40


次从 而实现了响铃几秒钟的功能;



3


.


硬件设计



音乐播放



1.


8253


功能结构:



Intel8253



8086/8088

< p>
微机系统常用的定时器


/


计数器芯片,它具有定时 计


数两大功能。


8253


具有三个独立 的


16


位计数器,


使用单一

< p>
+5V


电源,


采用


NMO S


工艺,是具有


24


引脚的双排直插式 封装大规模集成芯片。



2.


主要功能:




1


)每片有三个独立的


16


位计数器 通道,称为通道


0


—通道


2

< p>




2


)每个计数器都可以按照二进制或十进制计数。



(< /p>


3


)每个计数器的最高技术速率可达


2. 6MHz





4


)每个计数器具有


6


种可编程工作 方式。




5


)所有输入


/


输出都与


TTL


电平兼容,便于与外界接口相连。



3.


六种工作方式:



方式


0


:计数结束中断



方式


1


:可编程频率发生器


< br>方式


2


:频率发生器



方式


3


:方波频率发生器



方式


4


:软件触发的选通信号



2



微机原理与接口技术课程设计——响铃闹钟




方式


5


:硬 件触发的选通信号



4. 8253


引脚图如图所示,各引脚功能如下:



D7~D0


——八条双向数据线;



WR


(低电平有效)——写输入信号;



RD


(低电平有效


0

< br>)——读输入信号;



CS


(低 电平有效)——片选输入信号;



A0



A1


——片内寄存器地址输入信号;



CLK


——计数输入,用于输入定时基准脉冲或计数脉冲;



OUT


——输出信号,以相应的电平指示 计数的完成,或输出脉冲波;



GATE


——选通输入,用于启动或禁止计数器的操作,以使计数器和计测对


象同步。































1




8253


引脚图



5.


工作原理:


< br>所有音乐都是由各个不同频率的音阶和其延续时间的长短来实现的。


不同的


音乐是由各个音阶按某种排列各自播放一定时间形成的,


将各音乐音阶 和其延续


时间存在数据段中,


然后根据不同按键值选择不同的音 阶和时间表,


再使用计数


器产生该音阶频率。

< br>



3



微机原理与接口技术课程设计——响铃闹钟




4


.


软件设计



一、


设计过程:




1


)采用模块化程序结构设计 软件,首先将整个软件分成若干个功能模块。



2


)对各模块设计写一个详细的程序流程图。




3


)根据流程图,编写源程序。




4


)上机调试各模块程序。




5


)各程序模块联调。



6


)与硬件一起联调,最后完成全部调试工作。



二、


程序流程图



1. START


开始




在屏幕上输出设置响铃时间的提示





从键盘接收输入的响铃时间并存储在相应变量中



调用子程序


SETRINGTIME





使光标回到行首并且把这一行的字符串消去



调用子程序


CLEANLINE










是否到达响



铃时间








输出响铃提示




延时一秒钟



输出设置好的响铃时间



结束



截取并且显示系统时间




调用中断响铃一声



cx



0



延时三秒钟





GETTIME PROC


用于截取系统时间的子程序




4



微机原理与接口技术课程设计——响铃闹钟





开始











小时数是否与响



铃小时数相同







输出小时数,并输出一个冒号





分钟数是否与响


铃分钟数相同












结束



当< /p>


bx



2


时就是 已经到达了设定好的响铃时间



输出分钟数,并输出一个冒号





使


BX



1


使


BX



1


调用中断截取系统时间



使

< p>
BX


寄存器清零



三、


功能模块



3.1


显示输入闹钟时间



MOV






DS, AX













;


输出设置响铃时间的提示




MOV






AH, 9H



LEA







DX, S1



INT







21H




3.2


显示设置的响铃时间





SHOWRINGTIME PROC




;


用于显示响铃时间





PUSH





AX



5


微机原理与接口技术课程设计——响铃闹钟









PUSH





BX







PUSH





CX








PUSH





DX








LEA






BX, HOUR








MOV






AX, [BX]








CALL





OUTPUTNUMBER








MOV






AH, 2h








MOV






DL, ':'








INT






21h








ADD






BX, 2









MOV






AX, [BX]








CALL





OUTPUTNUMBER








POP






DX








POP






CX








POP






BX








POP






AX








RET



SHOWRINGTIME ENDP



3.3


从系统获得时间并显示当前时间



GETTIME PROC



PUSH AX




MOV BX, 0



MOV AH, 2ch



INT 21h



MOV AL, CH



MOV AH, 0



CMP AX, hour



JE E1


G1: CALL OUTPUTNUMBER



MOV AH, 2H



MOV DL, ':'



INT 21H



MOV AH, 0




MOV AL, CL



CBW



CMP MINUTE,AX



JE E2


G2: CALL OUTPUTNUMBER




MOV AH, 2H



MOV DL, ':'



INT 21H



MOV AH, 0




MOV AL, DH



CBW



6



用于截取系统时间


;



微机原理与接口技术课程设计——响铃闹钟





CALL OUTPUTNUMBER



JMP ED



E1: INC BX



JMP G1


E2: INC BX



JMP G2



ED: POP AX



RET


GETTIME ENDP



3.4



播放铃声程序



MUSIC PROC NEAR


;


定义一个名为


MUSIC


的子程序



PUSH BX


PUSH CX


PUSH DX


PUSH SI


PUSH DI


LEA DX, MESSAGE


;



MESSGAE


的地址至


DX



MOV AH, 09H


INT 21H



显示


MESSAGE


缓冲器中的字符串



MOV AL, 10110110B


;


选择工作方式


3

,使用计数器


2



OUT 43H,AL


;


通过


AL


将控制字写入


43H


端口



MOV SI, OFFSET MUSICB


;



MUSICB


的地址至


SI



MOV DI, OFFSET COUNT


;



COUNT


的地址至


DI



NEXT: MOV CX, [SI]


MOV AX, 34DCH


MOV DX, 12H


;DX:AX=1234DCH=1193 180Hz


时钟



DIV CX


;(DXAX)/CX


的商至


AX



MOV BX, AX


OUT 42H,AL



商的低


8


位送入计数通道


2



MOV AL, AH


OUT 42H,AL


;


商的高


8


位 送入计数通道


2



IN AL, 61H


;


读取


8255


的状态,以控制


PB0

< p>


PB1



7


-


-


-


-


-


-


-


-



本文更新与2021-02-13 17:19,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/651588.html

微机原理课程设计-闹钟的相关文章