微机原理课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
—
微机原理
课程设计报告
——电子表程序设计
^
。
(一)设计任务:
用汇编语言设计一电子表程序,要求:
!
(1)实现秒、分、时的计时,并显示于屏幕中央
(2)能够校时
(3)能够半点、整点报时
(二)设计原理
该程序主要由三部分构成:时间设置、延时程序和时钟显示。
(1)时间设置
…
①输入初始时间
先调用DOS操作系统模块2,在显示屏上显示‘:’,再调用DOS操作系统模块10,提示输入初始时间。由键盘输入的时间以字符串形式存放在已定义的存储器缓冲区内,继而调用TRAN1转换子程序和MUL10乘10子程序,将存放在存储器缓冲区内的ASCII字符转换为压缩BCD码,并将时、分、秒的值放置在寄存器CH、DH、DL中。
②暂停计时
按Pause Break键即可暂停计时,再按下任意键恢复计时
③重新输入时间
在程序运行时,可按下Esc键重新输入初始时间,此时程序检测到Esc(ASCII码为1BH)被按下,返回①步提示重新输入时间。
以上两步可实现校时的功能。
④半点、整点报时
《
程序运行时,分钟值每次改变都需要与30、60比较,若相等,则调用DOS操作系统模块7使计算机响铃并在时间后显示‘ ------’。同时若分、秒值为60则需进位,时为24时进位,保证时钟程序的正确性。
(2)延时程序
计算机在执行指令时,各种操作都按指令执行,但在像程序控制器那样由计算机发出指令控制外部设备是,由于外部设备所具有的机械惯性或其他原因,需要在计算机发出指令后有规律地延迟或等待一段时间。这类延时,可以用硬件延时来完成,单用软件来实现也是一种方便和常用的方法。
计算机执行每一条指令,虽然很快,但还是需要一段时间的。因此从理论上讲,可在程序中加一些与程序无关的指令去完成,要计算指令执行的时间,又不能过多的为了延时而增加编制程序的工作量。因此,编制延时程序,应尽量采用较少的指令,节约存储器,并且不能对主程序造成影响。
每条指令执行时间的长短,是以计算机的时钟周期为基本单位的。当CPU采用的时钟频率一定时,时钟周期也为定值。因此可根据时钟周期的多少来计算执行指令所需的时间。完成本设计任务使用的计算机采用Intel Pentium 4处理器,主频为,时钟周期约为。
通过时间约1s的长延时累加,并以时、分、秒的形式显示出来,就可以编写出一个时钟程序。
(3)时钟显示
…
①设置光标位置子程序IOSET
一般的显示屏可显示25行、80列字符,屏幕左上角字符位置为0行0列,右下角字符位置为24行79列,对应于十六进制为:左上角为(0,0),右下角为(18,4F)。
设置光标,可调用BIOS系统,用汇编语句调用中断INT 10H,其入口信息为
(AH)=2 要设置光标;
(BH)=0 页号;
(DH,DL)=( 0CD,24) 置光标于行、列数,本程序要求置光标于屏幕中央,即为12行36列(十进制)。
②清除屏幕子程序IOCLR
当开始执行程序时,总希望有一个洁净的屏幕,此时可使显示屏幕作上滚动作,使屏幕留下一片空白,也可以清楚屏幕的一部分,是这部分空白留作它用。要使屏幕上滚,可用汇编语句调用中断INT 10H,其入口信息为
(
(AH)=6 是屏幕上滚;
(AL)=00 上滚行数,若(AL)=0,则整屏为空白;
(CH,CL)= 滚动区域的左上角行列号,本程序中(CX)=0;
(DH,DL)= 滚动区域的右下角行列号,本程序中(DX)=184FH;
(BG)= 空白行属性,当(BH)=7时,为正规属性(黑白)。
③屏幕显示程序DISPY
显示屏幕作为常用的输出设备,可用来显示运算的中间结果或最终数据,也可用来显示表示正确完成或检验出的错误信息。为了显示表示正确或显示错误的信息,必须在数据段中以字符串形式将提示信息加以定义,然后由显示器在屏幕上加以显示。DOS系统中的显示功能模块号为2,每次调用仅能显示DL中的一个字符。为显示字符串,可调用DOS系统另一功能,用汇编语句调用中断INT 21H,其入口信息为
(AH)=9 显示字符串的功能模块号;
^
(DS:DX) 指向字符串的首地址,要求字符串以字符‘$’结尾。
(三)框图
(四)程序清单
DAT SEGMENT
RING DB ' ------$'
FLAG DB 0
BUFFER DB 10
DB
`
DB 10 DUP ()
DAT ENDS
STA SEGMENT PARA STACK 'STACK'
STAPN DB 100 DUP ()
TOP EQU LENGTH STAPN
STA ENDS
COD SEGMENT
START PROC FAR
|
ASSUME CS:COD,DS:DAT,SS:STA
MOV AX,DAT
MOV DS,AX
MOV AX,STA
MOV SS,AX
MOV AX,OFFSET TOP
MOV SP,AX
MAIN: ;主程序
`
PUSH BX
PUSH CX
PUSH DX
CALL IOCLR ;清除屏幕
CALL IOSET ;设置光标位置
POP DX
POP CX
POP BX
:
MOV DL,':'
MOV AH,2 ;显示字符":",提示输入时间 INT 21H
MOV DX,OFFSET BUFFER
MOV AH,10
INT 21H
MOV BX,OFFSET BUFFER+2
CALL TRAN1
、
INC BX
INC BX