当前位置:文档之家› 汇编汇编语言课程设计-电子时钟

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

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

课程设计任务书

专业计算机科学与技术班级姓名

设计起止日期

设计题目:电子时钟

设计任务(主要技术参数):

[1]硬件环境:CPU:1.6GH以上

内存:4GB以上

[2]软件环境:操作系统:Windows 8

运行环境:masm.Exe

[3]设计任务:要求有显示位置:屏幕中央;日期显示格式"时:分:秒";12/24时制可调;在显示屏上显示提示语“CURRENT TIME IS:”和当前时间;整点和半点报时功能。

指导教师评语:

成绩:签字:

年月日

电子时钟

1.课程设计目的

汇编语言是面向机器的程序设计语言。在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码。这样用符号代替机器语言的二进制代码,就把机器语言变成了汇编语言。汇编语言能够最大限度的发挥硬件的性能。

本次课程设计我做的是计算机时钟模拟显示程序的设计,要求有显示位置:屏幕中央;日期显示格式"时:分:秒";12/24时制可调;在显示屏上显示提示语“CURRENT TIME IS:”和当前时间。在这次课程设计中我加入了整点和半点报时功能。使得程序更加完善。

2.设计思路

2.1设计任务及要求

(1)使用汇编语言设计一个运行于计算机的时钟模拟显示软件,软件应实现模拟显示时钟。

(2)根据任务书的要求,可知需要设计的计算机时钟模拟显示程序是基于汇编语言的WINDOWS应用程序设计,程序运行成功后,页面出现数字式的时钟。具体过程如下首先界面中间出现“TIME SYSTEM IS:”提示输入12/24时制。输入以后会出现“CURRENT TIME IS:”提示输入初值时间其格式为:时(XX):分(XX):秒(XX)。接着就会在界面出现所设的初值开始计时其输出格式为XX:XX:XX。并且到半点或整点会报时。。此模拟时钟外观简洁明了,功能和实际运用到的时钟的基本功能一样,用起来非常方便、快捷。

2.2设计原理

1. 12/24时制的设置

调用DOS操作系统模块1,输入12/24时制的第一位即高位,再调用DOS操作系统模块1输入12/24时制的第二位即低位。然后将输入的两个ASCII码值转换为压缩BCD码存入定义的变量X中,用于与12H比较并跳转到相应进制显示的程序中。

2.时钟起始时间的设置

先调用设置光标子程序和清除屏幕子程序,调用DOS操作系统模块9,在显

示屏上显示提示符“CURRENT TIME IS:”,再调用DOS操作系统模块10,提示要输入时钟的起始时间,输入时间的格式是“时(XX):分(XX):秒(XX)”。输入的时间以字符串形式放在已定义的存储器缓冲区,继而调用TRAN1和MUL10子程序,将存放在存储器缓冲区的ASCII字符转换成压缩BCD码,并将时、分、秒的值放置在寄存器CH、DH、DL中。

3.延时程序

调用TIME延时1S子程序(并未精确计算),累加到存放秒值的寄存器DL 中,并进行十进制调整。在累加的过程中,不断地对时、分、秒进行比较,秒不能等于60,分不能等于60,时不能等于12或24.秒等于限值时,则使秒值为0并且分值加1;时等于限值时,先置零然后就转显示屏输出。

4.时间显示

调用DOS操作系统模块9,可用来显示存储器内字符串。由于显示的字符串必须为ASCII编码,因为要调用TRAN2转换子程序将寄存器CH、DH、DL内压缩BCD码字符串转换成ASCII码字符串,字符串最后以字符“$”结束,并按时、分、秒的顺序送存储器缓冲区内。调用DOS操作系统模块9时,(DS:DX)应指向字符串首址。

程序一旦进入运行,就将不间断地在显示屏显示时间,要想使程序停止运行,可同时在键盘按下Ctrl和Break二键。

5.半点、整点报时

当分达到30时,转到报时程序;当分到0时,转到报时程序;其余的情况都不用跳到报时程序而是正常执行输出。

2.3 程序流程图

根据以上程序流程相应的说明,在程序编写前,我们应先画出程序流程图本程序的流程图如图1所示。

图1 程序流程图

开始

显示提示语

键盘输入时制

显示提示语

键盘输入初始时间

时间数据转换为BCD 数

BCD 数转换为压缩BCD 数 时→CH ,分→DH ,秒→DL

延时1秒

12进制显示

24进制显示

DH=30H ? DH=0H ?

报时

字符显示

S=12H ? N

Y

N

Y

N

Y

2.4程序设计

2.4.1 12/24时制程序设计

很明显要想实现此功能必须使用分支结构程序,调用DOS操作系统模块1,输入12/24时制的第一位即高位,再调用DOS操作系统模块1输入12/24时制的第二位即低位。然后将输入的两个ASCII码值转换为压缩BCD码存入定义的变量X中,用于与12H比较并跳转到相应进制显示的程序中。其程序片段如下:MOV AH,1 ;DOS功能模块,从键盘输入字符

INT 21H

MOV BL,AL ;将输入的数据12,24转换为压缩BCD码存放在变量S 中

AND BL,0FH

SHL BL,1

SHL BL,1

SHL BL,1

SHL BL,1

MOV AH,1

INT 21H

MOV CL,AL

AND CL,0FH

OR CL,BL

MOV S,CL

MOV AH,1 ;输入最后一个回车字符

INT 21H

……

CMP S,12H

JNZ AGAIN1 ;24进制则跳转到AGAIN1执行24进制显示的程序2.4.2时钟起始时间的设置

先调用设置光标子程序和清除屏幕子程序,调用DOS操作系统模块9,在显

示屏上显示提示符“CURRENT TIME IS:”,再调用DOS操作系统模块10,提示要输入时钟的起始时间,输入时间的格式是“时(XX):分(XX):秒(XX)”。输入的时间以字符串形式放在已定义的存储器缓冲区,继而调用TRAN1和MUL10子程序,将存放在存储器缓冲区的ASCII字符转换成压缩BCD码,并将时、分、秒的值放置在寄存器CH、DH、DL中。其程序片段如下:MOV DX,OFFSET CT ;DOS功能模块,显示字符串,提示从键盘输入

MOV AH,9

INT 21H

MOV DX,OFFSET BUFFER

MOV AH,10 ;DOS功能模块,从键盘输入字符串到缓冲区

INT 21H

MOV BX,OFFSET BUFFER+2

CALL TRAN1 ;时转换为BCD数

INC BX

INC BX

CALL TRAN1 ;分转换为BCD数

INC BX

INC BX

CALL TRAN1 ;秒转换为BCD数

MOV BX,OFFSET BUFFER+2 ;原输入缓冲区的BCD数转换压缩BCD

MOV AL,[BX] ;数的同时将输入缓冲区的数据传给CALL MUL10 ;时-CH,分-DH,秒-DL

2.4.3延时程序设计

调用TIME延时1S子程序(并未精确计算,因机器的主频不同会有差异),累加到存放秒值的寄存器DL中,并进行十进制调整。在累加的过程中,不断地对时、分、秒进行比较,秒不能等于60,分不能等于60,时不能等于12或24.秒等于限值时,则使秒值为0并且分值加1;时等于限值时,先置零然后就转显示屏输出。其程序片段如下:

TIME PROC

PUSH CX

PUSH AX

MOV AX,25000 ;嵌套循环AX为外循环,CX为内循环

WAITED: MOV CX,24000

GOON: LOOP GOON

DEC AX

JNZ WAITED

POP AX

POP CX

RET

TIME ENDP

2.4.4时间显示程序设计

调用DOS操作系统模块9,可用来显示存储器内字符串。由于显示的字符串必须为ASCII编码,因为要调用TRAN2转换子程序将寄存器CH、DH、DL内压缩BCD码字符串转换成ASCII码字符串,字符串最后以字符“$”结束,并按时、分、秒的顺序送存储器缓冲区内。调用DOS操作系统模块9时,(DS:DX)应指向字符串首址。其程序片段如下:

DISPLAY: MOV BX,OFFSET BUFFER

INC BX

INC BX

CALL IOCLR

CALL IOSET

MOV AL,CH ;将小时的压缩BCD数转化为ASCII码在存储器中进行修改

CALL TRAN2

INC BX

MOV AL,':' ;在中间添加一个‘:’

MOV [BX],AL

INC BX

MOV AL,DH

CALL TRAN2

INC BX

MOV AL,':'

MOV [BX],AL

INC BX

MOV AL,DL

CALL TRAN2

CMP DH,30H ;到了30分钟不跳转,其余都跳到NEXT2 JNZ NEXT2

2.4.5半点、整点报时

当分达到30时,转到报时程序;当分到0时,转到报时程序;其余的情况都不用跳到报时程序而是正常执行输出。报时时会在时间后面接着显示“* :)”并发出嘀的一声。其半点、整点报时程序片段如下:

INC BX

MOV AL,'*' ;在输入缓冲区后面增加字符“* :)”用于显示

MOV [BX],AL

INC BX

MOV AL,':'

MOV [BX],AL

INC BX

MOV AL,')'

MOV [BX],AL

INC BX

MOV AL,07H ;在输入缓冲区后面加入07H=bel,报时

MOV [BX],AL

JMP NEXT3

2.5开发环境

2.5.1软、硬件环境

软件环境:操作系统:Windows 8.1 64位(DirectX 11)、

BIOS系统

DOS系统

硬件环境:处理器:英特尔第五代酷睿i5-5200U @ 2.40GHz 双核

内存:4GB(戴尔DDR3 1333MHz)

主硬盘:希捷ST500LM012 HN-M500MBB (500GB/5400转/分)

显示器:戴尔Inspiron(15.6英寸)

2.5.2 MASM开发环境

Masm是汇编编译器,是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发的优点,支持伪指令和宏汇编,最后编译生成obj文件,通过link工具连接成可执行文件exe。

使用步骤为:a使用编辑软件TE.EXE进行源程序的编写。

b使用汇编软件MASM.EXE对源程序汇编。

c使用连接软件LINK.EXE对目标文件进行连接。

d使用调试软件DEBUG.EXE对可执行程序进行调试。

3.调试过程和运行结果分析

3.1调试过程

(1)编写源程序,并命名为dianzizhong.asm,并保存于默认文件夹中。

(2)打开文件dianzizhong.asm,编译使之生成目标文件,检查源程序中的错误改正,直到编译无错误出现为止。

(3)点击菜单栏中运行里的连接,再点击运行,输入相应的字符就会显示相应的结果。

(4)首先屏幕上显示提示语“TIME SYSTEM IS:”用户输入12或者24即可实现12或24进制的转换。

(5)屏幕上显示“CURRENT TIME IS:”提示语,用户输入当前时间其输入格式为时(XX):分(XX):秒(XX)。

(6)屏幕上显示从我们设定的时间开始计时。

3.2运行结果显示

(1)当进入显示界面是屏幕上会出现提示语“TIME SYSTEM IS:”,在此窗口我们输入12或者24进制。其显示结果如图2所示。

图2 12/24进制选择界面

(2)当我们输入12或24进制时的窗口界面如图3和图4所示。

图3 输入12进制界面

图4 输入24进制的界面

(3)当输入进制信息以后,现在的提示语为“CURRENT TIME IS:”,现在再输入时间,其窗口界面如图5所示。

图5 提示输入时间的界面

(4)当输入了时间后的显示结果如图6所示。

图6 完成输入时间的界面

(5)最后,会显示设置的初始时间并开始计时。其结果如图7所示。

图7 计时的界面

(6)到了半点和整点时报时的显示结果如图8和图9所示。

图8 半点报时

图9 整点报时

3.3所遇到的问题与解决

1、对延时时间的设置:当计算机执行命令时,虽然快,但还是需要一定的时间。此时间与计算机的主频有关系,我们采用循环的方式来进行延时。但我们所使用的计算机的CPU主频比8086高,故需要内外两个循环来实现,内循环为24000,外循环为25000,这样延时约为1S。程序如下:

TIME PROC

PUSH CX

PUSH AX

MOV AX,25000 ;嵌套循环AX为外循环,CX为内循环

WAITED: MOV CX,24000

GOON: LOOP GOON

DEC AX

JNZ WAITED

POP AX

POP CX

RET

TIME ENDP

2、开始光标不在屏幕中央,原因是IOSET子程序中的光标设计的位置不对,重新改变DX后,光标到达屏幕中央。IOSET子程序如下:

IOSET PROC ;设置光标位置

PUSH AX

PUSH BX

PUSH DX

MOV DX,0C20H ;DH=光标所在行号,DL=光标所在列号

MOV BH,00 ;BH=光标所在页号

MOV AH,02

INT 10H

POP DX

POP BX

POP AX

RET

IOSET ENDP

3、检查错误过程中,系统提示“out of memory”

1)、原因:在某些程序段存在只有现场保护没有现场恢复

2)、解决办法:通过系统运行,发现错误的行数,找到相应的位置,添加现场恢复语句。

4、刚开始选择进制的功能的时候,只设置了两次DOS字符输入功能的调用因此只能输入两个字符,而当输入第二个字符以后提示语立即不见,根本看不到。因此为了在输入进制的两个字符以后,添加一个回车以完成输入则必须设置三次DOS字符输入功能调用。其程序如下:

MOV AH,1 ;DOS功能模块,从键盘输入字符

INT 21H ;第一次调用

MOV BL,AL ;将输入的数据12,24转换为压缩BCD码存放在变量S 中

AND BL,0FH

SHL BL,1

SHL BL,1

SHL BL,1

SHL BL,1

MOV AH,1

INT 21H ;第二次调用

MOV CL,AL

AND CL,0FH

OR CL,BL

MOV S,CL

MOV AH,1 ;输入最后一个回车字符

INT 21H ;第三次调用

5.在输入了进制信息以后并没有调用函数IOCLR因此在显示窗口中显示了多个信息,并不美观,后来我在输入了进制信息以后加了CALL IOCLR、CALL IOSET的调用程序。对屏幕进行清屏,并且设置光标位置。程序片段如下:MOV AH,1 ;输入最后一个回车字符

INT 21H

CALL IOCLR

CALL IOSET

MOV DX,OFFSET CT ;DOS功能模块,显示字符串,提示从键盘输入

MOV AH,9

INT 21H

3.4结果分析

经验证,在第一个提示窗口“TIME SYSTEM IS:”中输入进制为12或则24,会实现12/24进制的转换。

在第二提示窗口“CURRENT TIME IS:”中输入初始时间能正确的设置初试时间。并且我们在窗口中显示了“CURRENT TIME IS:”,满足任务的要求。

设置的时间程序能够正常的运行,达到了设计目的。并且时间在屏幕的正

中央显示。

在半点以及整点的时候在时间末尾处显示“*:)”的提示符号,并且发出报警声。实现了半点,整点报时的功能。

总的来说,此程序基本上完成了设计要求。

4.心得体会

经过以上步骤,课程设计所要求设计的电子钟显示设计软件便成功完成了,它能显示数字式的时钟,并且能设置初值和时钟进制。整个页面简洁清晰,方便用户读取,且操作简捷,符合课程设计中的各项要求。通过这次课程设计,我们对日常生活中司空见惯的时钟的工作原理有了一个比较深入的了解,将书本中的知识更好地与实际生活中的应用结合在了一起。

通过这次微机原理课程设计学到了很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。而且我第一次感受到在写一个程序的时候,一定要事先把程序原理方框图画出来的重要性。在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。

本次课程设计的过程中遇到了很多问题,比如时间走得太快、光标的位置无法定位等等。对每个问题的解决都是一种对知识的重新整理和考察。我更加感到愉悦的,此次的课程设计锻炼了我的编程能力。

到此为止,我们接近一周的课程设计也告一段落。通过这次课程设计,使我认识到理论与实际相结合的重要性,对课本上的只是在实际生活中的运用也有了进一步的了解,同时基本上能够掌握汇编语言编程中编程的步骤,可以说是从中受益匪浅。

通过本次课设我也学到很多课堂上学不到的调试知识。很感谢学校给我们提供了这么好的学习机会,感谢老师的指导,从老师的身上学到了对知识真正严谨细致的态度,让我受益匪浅。

5.参考文献

[1] 杨文显,宓双,胡建人.新编汇编语言程序设计[M],北京:清华大学出版社,2010:20-58

[2] 朱玉龙,任文览等.汇编语言程序设计[M],北京:清华大学出版社,2003:67-89

[3] 沈美明等.IBM-PC汇编语言及程序设计实验教程[M],北京:清华大学出版社,2001:45-67

[4]钱晓捷等.汇编语言程序设计[M], 北京:电子工业出版社,2000:1-24

[5]李珍香等.汇编语言程序设计案例精编[M],北京:中国水利水电出版社,2004:5-16

[6] 白小明.汇编语言程序设计[M],北京:中国铁道出版社,2009:56-76

6.附录:源程序

DAT SEGMENT

BUFFER DB 20

DB ?

DB 20 DUP(?)

TS DB 'TIME SYSTEM IS:$'

CT DB 'CURRENT TIME IS:$'

S DB ?

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,TOP

MOV SP,AX

CALL IOCLR

CALL IOSET

MOV DX,OFFSET TS ;DOS功能模块,显示字符串’TIME SYSTEM IS:’MOV AH,9

INT 21H

MOV AH,1 ;DOS功能模块,从键盘输入字符

INT 21H

MOV BL,AL ;将输入的数据12,24转换为压缩BCD码存放在变量S中AND BL,0FH

SHL BL,1

SHL BL,1

SHL BL,1

SHL BL,1

MOV AH,1

INT 21H

MOV CL,AL

AND CL,0FH

OR CL,BL

MOV S,CL

MOV AH,1 ;输入最后一个回车字符

INT 21H

CALL IOCLR

CALL IOSET

MOV DX,OFFSET CT ;DOS功能模块,显示字符串,提示从键盘输入

MOV AH,9

INT 21H

MOV DX,OFFSET BUFFER

MOV AH,10 ;DOS功能模块,从键盘输入字符串到缓冲区

INT 21H

MOV BX,OFFSET BUFFER+2

CALL TRAN1 ;转换小时为BCD数

INC BX

INC BX

CALL TRAN1 ;转换分钟BCD数

INC BX

INC BX

CALL TRAN1 ;转换秒BCD数

MOV BX,OFFSET BUFFER+2 ;原输入缓冲区的BCD数转换压缩BCD

MOV AL,[BX] ;数的同时将输入缓冲区的数据传给

CALL MUL10 ;CH,DH,DL

MOV CH,AL

INC BX

INC BX

MOV AL,[BX]

CALL MUL10

MOV DH,AL

INC BX

INC BX

MOV AL,[BX]

CALL MUL10

MOV DL,AL

AGAIN: CALL TIME

CMP S,12H

JNZ AGAIN1 ;24进制跳转到AGAIN1

MOV AL,DL

ADD AL,1

DAA

MOV DL,AL

CMP AL,60H

JNE DISPLAY

MOV DL,0

MOV AL,DH

ADD AL,1

汇编语言课程设计

沈阳大学

2.3 MASM的介绍 MASM是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm是Windows下开发汇编的利器。它与windows平台的磨合程度非常好,但是在其他平台上就有所限制,使用MASM的开发人员必须在windows下进行开发,历经二三十年的发展,目前MASM的版本已升至6.15,支持MMX Pentium、Pentium II、Pentium III及Pentium 4等指令系统。 2.4总体设计功能 本次课程设计的内容是采用汇编语言设计一个运行于计算机的“霓虹灯”的模拟显示 程序,由$及*字符相间,从两侧向中间螺旋汇聚直至形成一个矩形,这就要求该霓虹灯能够动态地进行变化;霓虹灯模拟显示程序主要是进行程序循环调用,可以通过CMP、JMP、JZ、RET等命令进行跳转。由于是霓虹灯的模拟显示,因此在进行程序循环调用前需要进行数据段定义,以使子程序在进行调用时能够根据数据段的定义来执行,最后显示结果。 定时器中断处理程序:计数器中断的次数记录在计数单元count中,由于定时中断的引发速率是每秒18.2次,即计数一次为55ms,当count计数值为18时,sec计数单元加一(为1秒)。 视频显示程序设计:一般由DOS 或BIOS调用来完成。有关显示输出的DOS功能调用不多,而BIOS调用的功能很强,主要包括设置显示方式、光标大小和位置、设置调色板号、显示字符、显示图形等。用INT 10H中断即可建立某种显示方式。用DOS功能调用显示技术,把系统功能调用号送至AH,把程序段规定的入口参数,送至指定的寄存器,然后由中断指令INT 21H来实现调用。 键盘扫描程序设计:利用DOS系统功能调用的01号功能,接受从键盘输入的字符到AL寄存器,以及检测键盘状态,有无输入,并检测输入各值。 2.5详细功能设计 2.5.1主程序功能 主程序通过调用各个子程序来实现清屏,改变图形等功能,具体调用过程如图1所示。 沈阳大学

汇编语言程序设计实验报告

微机原理实验报告 实验名称汇编语言程序设计 一、实验目的 1、掌握Lab6000p实验教学系统基本操作; 2、掌握8088/8086汇编语言的基本语法结构; 3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备 装有emu8086软件的PC机 三、实验内容 1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH, 97H,64H,BBH,7FH,0FH,D8H。编程并显示结果:如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最大值,并显示。 2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H 的BCD是:” 3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD 码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再 将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子程序) 5、键盘输入一个小写字母(a~z),转换成大写字母 显示:请输入一个小写字母(a~z): 转换后的大写字母是: 6、实现4字节无符号数加法程序,并显示结果,如99223344H + 第1页

99223344H = xxxxxxxxH 四、实验代码及结果 实验代码见代码附录 1.1程序运行结果 图1 无符号最大值结果截图 1.1 程序运行结果

图2 有符号最大值截图2.0 程序运行结果

图3 BCD码显示3.0 程序运行结果

图4 ASCII码显示4.0 程序运行结果

图5 移动次数显示5.0 程序运行结果

电子钟课程设计

数字电子技术课程设计报告 设计题目:数字电子钟的设计 课程设计时间2011..24~2011..30 院系:XX纺织大学电子信息工程学院 班级:电气094 设计学生:杨海X爱祥 一、数电课程设计的目的: 数字电子技术课程设计是在学习完数字电子电路课程之后,按照课程教学的要求,对学生进行综合性训练的一个实践性教学环节。主要目的是培养学生综合运用理论知识能力,分析问题和解决问题的能力,以及根据实际要求进行独立设计的能力;了解数字电子电路的一般设计方法,初步掌握数字电子线路安装、布线、焊接、调试等基本技能;熟练掌握电子电路基本元器件的使用方法,训练、提高读图能力;掌握组装、调试方法。 二、设计题目及内容 、设计题目:数字电子时钟 2、内容和要求: ()时间以24 小时为一个周期; (2)显示时、分、秒;

(3)有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间; (4)根据要求阅读数字时钟电路原理图,阅读教材及查找相关资料,叙述工作原理; (5)画出包含+5 伏的稳压电源在内的原理电路图,根据原理图画出对应的印刷电路图,并在图中标出元器件的符号及代码; (6)安装、焊接、连线、调试电路; (7)最后提交调试好的设计作品,撰写并提交实验、调试报告,解答思考题。 三、功能及简单工作原理数字电子钟的原理方框图 如下图()所示。干电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路组成。秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。将标准秒信号送入“秒计数器”,“秒计数器”采用60 进制计数器,每累计60 秒发现一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60 进制计数器,每累计60 分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”“时计数器”采用24 进制计时器,可实现对一天24 小时的累计。。译码显示电路将“时”“分”“秒”计数器的输出状态由七段显示译码器译码,通过六位LED 七段显示器显示出来。校时电路是用来对“时”“分”“秒”显示数字进行校对调整的。

基于某52单片机电子时钟的设计论文设计(纯总汇编语言编写)

编号 单片机课程设计 (2013级) 题目:基于52单片机电子时钟的设计 学院:物理与机电工程学院 专业:电子信息科学与技术 作者姓名:陈??党??杜?? 指导教师:张??职称:教授 完成日期:2016 年7月2日 二〇一六年七月

基于52单片机电子时钟的设计 摘要 本次设计的多功能时钟系统采用STC89C52单片机为核心器件,利用其定时器/计数器定时和记数的原理,结合液晶显示电路、时钟芯片DS1302电路、电源电路以及按键电路来设计计时器。将软硬件有机地结合起来,使得系统能够实现液晶显示,显示有年、月、日、时、分、秒以及星期,还可以设置闹钟和整点报时。其中软件系统采用单片机汇编语言编写程序,包括显示程序、闹钟程序、中断、延时程序,按键消抖程序等,并在keil中调试运行,硬件系统利用PROTEUS 强大的功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。 关键词:STC89C52芯片;时钟芯片DS1302;单片机汇编语言;液晶显示电路

1 设计任务及要求分析 1.1 设计任务:基于单片机的电子时钟设计 1.2 要求: 1.2.1 用LCD液晶作为显示设备 1.2.2 可以分别设定小时、分钟和秒,复位后时间为 00 00 00 1.2.3 能实现日期的设置年、月、日 1.3 扩展要求:如闹钟功能、显示星期、整点音乐报时等 2 系统方案 2.1 系统整体方案的论证 电路原理设计是基于小系统板包括电源电路、复位电路、按键电路、DS1302时钟电路、液晶显示驱动电路、输出控制电路。电源部分是用电池来提供的3v-5v,晶体振荡器采用的是12MHz的石英晶体振荡器。 整个系统用单片机为中央控制器,由单片机执行采集时钟芯片的时间信号并通过显示模块来输出信号及相关的控制功能。时钟芯片产生时钟信号,利用单片机的I/O口传给单片机;并通过I/O口实现LCD的显示。系统设有4个独立式按键可以对时间年、月、日和星期进行调整,还可以设置闹钟。具体如图2.1所示: 图2.1 系统整体框图

汇编语言-课程设计1

) 汇编语言课程实验报告 实验名称 课程设计1 实验环境 硬件平台:Intel Core i5-3210M 操作系统:DOSBox in Windows 软件工具:Turbo C , Debug, MASM 实验内容 《 将实验7中的Power idea公司的数据按照下图所示的格式在屏幕上显示出来。 实验步骤 1.要完成这个实验,首先我们需要编写三个子程序。第一个子程序是可以显示字符串到屏 幕的程序,其汇编代码如下: ;名称:show_str

;功能:在屏幕的指定位置,用指定颜色,显示一个用0结尾的字符串 ;参数:(dh)=行号,(dl)=列号(取值范围0~80),(cl)=颜色,ds:si:该字符串的首地址 ;返回:显示在屏幕上 ¥ show_str: push ax push cx push dx push es push si push di mov ax,0b800h - mov es,ax mov al,160 mul dh add dl,dl mov dh,0 add ax,dx mov di,ax mov ah,cl . show_str_x: mov cl,ds:[si] mov ch,0 jcxz show_str_f mov al,cl mov es:[di],ax inc si inc di 【 inc di jmp show_str_x show_str_f: pop di pop si pop es pop dx pop cx } pop ax ret 2.第二个程序是将word型数据转换为字符串,这样我们才能调用第一个程序将其打印出

微机原理与汇编语言课程设计报告

西北师范大学 计算机科学与工程学院 微机原理与汇编语言 课程设计报告 设计题目:中断控制点阵显示与音乐模块姓名: 学号: 专业班级: 系所中心: 指导老师: 起讫时间: 设计地点: 2016年8月20日

摘要 使用8086汇编语言,在唐都TD-PITE实验箱上进行硬件连线,在计算机上采用与该实验箱配套的软件进行输入,观察实验结果。设计思路是利用在实验箱上i386内集成的两片8259芯片分别进行中断,通过实验箱上的两个脉冲开关发送信号到总线上开放的两个中断口,送入CPU内部的8259中。此时按下脉冲开关kk1+,第一个中断发生,在16*16点阵上循环滚动显示“西北师大汇编设计李泓毅”,若按下kk2+则第二个中断发生,执行音乐模块子程序,利用8254芯片开始响应预先编排好的音乐。 【关键词】级联中断;8259芯片;16*16点阵;8254芯片;SPK音乐模块;脉冲信号

目录 摘要 (2) 第一章课程设计 (2) 1.1 目的和任务 (2) 1.2 设计环境、设备与器材 (2) 第二章设计内容和方案 (3) 2.1 设计内容 (3) 2.2 设计方案 (3) 第三章课程设计相关原理简述 (3) 第四章设计实现 (4) 4.1 系统设计框架结构 (4) 4.2 系统硬件设计 (4) 4.3 系统软件设计 (6) 4.4 程序流程图 (6) 4.5 核心数据结构 (8) 4.6 关键代码片段分析 (10) 第五章设计验证 (10) 5.1 验证步骤及结果 (10) 5.2 数据分析 (10) 5.3 遇到的问题及解决 (11) 5.4 需要讨论的其它问题 (11) 5.5 结论 (11) 第六章设计总结 (12) 第七章本课程教学建议 (13) 第八章参考文献 (13) 第九章附录:源代码 (13) 第一章课程设计 1.1 目的和任务 使用8259芯片进行中断程序设计,在第一个中断中响应字模显示模块,在第二个中断中响应音乐发声模块。

电子时钟课程设计.

单片机实训课题电子时钟 班级11电气本1班学号4110211140 姓名陈后亥 指导教师叶文通 日期2013.12.30~2014.1.3

摘要 随着时代的进步,越来越多的电子厂品趋向于低成本,高性能,耐用性好的方向发展。特别是趋向于自动化控制的方向走。89c51作为控制芯片是最好不过的选择啦。它具有强大的功能,并且简单易于操作,安全性与稳定性较高,价格便宜,适合中小型电子厂品开发中的控制器。就像我们的课程设计,基于89c51单片机的电子时钟的课程设计。 这款课程设计用到的主要材料有89c51单片机,1602液晶显示屏,矩阵键盘,以及一些电容电阻元件等等。 使用89c51作为电子时钟的控制器很简单,就是由于其经济型与稳定性和易操作性。显示电路上,选择使用1602液晶显示屏上。1602不仅操作上臂数码管简单许多,而且使用1602能在很大程度上是电路图尽量简化,便于操作与错误的检修。并且1602价格也比较便宜。 基于89c51电子时钟的设计,利用了单片机内部的一个自带定时/计数器来实现定时功能,并通过内部程序,实现对时分秒,年月日这几个输出数值的自增,并且通过编写程序,实现通过键盘控制时分秒,年月日大小的调整,这是必要的功能。最后通过1602液晶显示电路将时间显示在其上。 这样的电子时钟比较精准,其主要误差来源与晶振的误差,即使是这样,他的误差也只是微妙级别,对于日常生活中的时间计数是足够的。 关键词:89c51单片机;1602液晶显示屏;矩阵键盘;keil软件

目录摘要 1单片机简介 1.1 单片机概述 1.2 单片机基本结构 21602液晶显示屏简介 1.11602显示原理 1.21602指令集合 3 电子时钟硬件设计 3.1 功能框图 3.2 单片机复位与晶振电路 3.3 1602显示电路 3.4 总体电路设计 4 电子时钟软件设计 4.1 程序流程框图 4.2 程序源代码 参考文献 致谢

微机原理实习报告---电子时钟(用汇编语言实现)

河南农业大学 课程设计报告 题目:电子时钟显示设计 课程:微型计算机原理 专业:电子信息工程 班级: 学生姓名: 学号: 指导教师: 完成日期: 机电工程学院

目录 前言 (1) 第一章绪论 (2) 一、实习目的 (2) 二、实习要求 (2) 三、设计所需设备 (2) 第二章软件系统介绍 (3) 一、中断技术(或其它相关技术) (3) (一)介绍中断的概念中断技术 (3) (二)DOS及BIOS中断 (3) 二、汇编语言及汇编工具简介 (3) 三、软件介绍 (3) 第三章设计分析 (4) 一、软件设计思路 (4) 二、软件各模块内容 (4) (一)光标定位子程序原理 (4) (二)清屏原理 (4) (三)字符及字符串显示原理 (4) (四)压缩BCD转为ASCII码原理 (5) (五)动态扫描键盘原理 (5) 三、程序流程图设计 (5) 第四章系统实现 (7) 一、程序原代码清单及详细注释 (7) 二、实验结果 (15) 总结 (16) 一、软件的选取 (16) 二、图案的设计 (16) 三、程序调试 (16) 参考文献 (16)

前言 软件设计题目 电子时钟。(在计算机屏幕上显示当前系统的时间,日期,或时间和日期,3人一组)设计目的: 1.了解定时/计数器和中断(DOS/BIOS)的使用; 2.掌握定时/计数器和中断的工作原理和编程方法。 编程要求: 1.调用系统时间,在屏幕上显示出来; 2.获取键盘的按键值,判断键值并退出系统。 程序设计参考步骤: 第一部分:定义显示界面。 第二部分:调用系统时间(日期),并将调用的用二进制表示的时间数转换成ASCII码, 并将时间数(日期数)存入内存区。 第三部分:将存在系统内存区的时间数(日期数)用显示字符串的形式显示出来。 第四部分:获取键盘的按键值,判断键值并退出系统。

汇编课程设计

燕山大学 汇编语言课程设计说明书 题目:计算机钢琴程序 交通灯控制系统 学院(系):信息科学与工程学院 年级专业: 10级计算机科学2班 学号: 100104010113 学生姓名:马强 学号: 100104010116 学生姓名:夏洋 指导教师:何海涛、邹晓红 完成日期: 2013年7月3日

目录 1.课程设计的目的和意义........................................................................................................... - 2 - 1.1课程设计目的................................................................................................................ - 2 - 1.2课程设计的意义............................................................................................................ - 2 - 2.题目一:计算机钢琴程序....................................................................................................... - 2 - 2.1系统的主要功能............................................................................................................ - 2 - 2.2总体设计方案................................................................................................................ - 2 - 2.2.1扬声器驱动方式................................................................................................. - 2 - 2.2.2延时原理............................................................................................................. - 3 - 2.2.3键盘控制发声程序............................................................................................. - 4 - 2.2.4设计总结............................................................................................................. - 5 - 2.3作品使用说明................................................................................................................ - 6 - 3.题目二:交通灯控制系统....................................................................................................... - 6 - 3.1系统的主要功能............................................................................................................ - 6 - 3.2 系统工作原理............................................................................................................... - 6 - 3.2.1 8259的工作原理................................................................................................ - 6 - 3.2.2 8255A的工作原理:...................................................................................... - 7 - 3.2.3 8253的工作原理:............................................................................................ - 7 - 3.3总体设计方案................................................................................................................ - 7 - 3.3.1程序流程图......................................................................................................... - 8 - 3.3.2接口电路图....................................................................................................... - 11 - 3.4交通灯的设计总结...................................................................................................... - 11 - 4.课程设计心得体会................................................................................................................. - 12 - 5.参考文献................................................................................................................................. - 12 - 6.附录:程序代码..................................................................................................................... - 12 - 6.1计算机钢琴程序代码.................................................................................................. - 12 - 6.2交通灯控制系统代码.................................................................................................. - 14 -

汇编语言课程设计报告——实现加减乘除四则运算的计算器

汇编语言课程设计报告 ( 2011 -- 2012 年度第 2 学期) 实现加减乘除四则运算的计算器 专业 计算机科学与技术 学生姓名 班级 学 号 指导教师 完成日期

目录 目录 (2) 1概述 (1) 1.1 设计目的 (1) 1.2 设计内容 (1) 2系统需求分析 (1) 2.1 系统目标 (1) 2.2 主体功能 (1) 2.3 开发环境 (1) 3 系统概要设计 (2) 3.1 系统的功能模块划分 (2) 3.2 系统流程图 (3) 4系统详细设计 (3) 5测试 (4) 5.1 测试方案 (4) 5.2 测试结果 (4) 6小结 (5) 参考文献 (6) 附录 (7) 附录源程序清单 (7)

实现加减乘除四则运算的计算器 1 概述 1.1 设计目的 本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。 1.2 设计内容 能实现加、减、乘、除的计算;该程序接受的是16进制数;执行时,需要在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下: c:\tasm>js 3+2 5 2 系统需求分析 2.1 系统目标 本次汇编语言课程设计的最终目的是要实现一个简单加减乘除四则运算的计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。比如,十进制数的加减乘除四则运算。我们曾经学习过两个具体数字进行加减法运算,但是对于简单计算器用汇编语言实现难点在于这两个要做运算的数是未知的,是由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数进行运算,而且做的是加法运算、减法运算乘法运算还是除法运算也未可知,为此我们还要判断用户所输入的运算是四则运算中的哪一个运算。此外,运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。 2.2 主体功能 系统分析主要包括设计的功能分析和系统的流程,功能分析放在首位,每一个软件都要能满足一定的功能才有使用价值。根据功能需求来创建应用程序。 本设计的功能如下: 1、输入2个数,先判断是加减运算还是乘除运算,再进行计算 2、判断符号是否为运算符 3、回车为换行符 4、用十进制或十六进制输出运算结果 2.3 开发环境 TASM5.0集成环境

基于单片机的电子时钟课程设计报告

目录 一、引言········ 二、设计课题········· 三、系统总体方案········· 四、系统硬件设计······ 1.硬件电路原理图 2.元件清单 五、系统软件设计········· 1.软件流程图 2.程序清单 六、系统实物图········ 七、课程设计体会········ 八、参考文献及网站········· 九、附录·········

一.引言 单片机因将其主要组成部分集成在一个芯片上而得名,就是把中央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接口电路等部件集成在一个芯片上。 基于单片机设计的数字钟精确度较高,因为在程序的执行过程中,任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。 数字钟是采用数字电路实现对日期、时、分、秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。数字钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便。不仅如此,在现代化的进程中,也离不开电子钟的相关功能和原理,比如机械手的控制、家务的自动化、定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。而且是控制的核心部分。因此,研究数字钟及扩大其应用,有着非常现实的意义。 本设计使用12MHZ晶振与单片机AT89C51相连接,以AT89C51芯片为核心,采用动态扫描方式显示,通过使用该单片机,加之在显示电路部分使用HD74LS373驱动电路,实现在8个LED数码管上显示时间,通过4个按键进行调时、复位等功能,在实现各功能时数码管进行相应显示。软件部分用C语言实现,分为显示、延迟、调时、复位等部分。通过软硬件结合达到最终目的。

单片机电子时钟汇编语言程序

51单片机架构下时钟控制程序 ;KEY A A键功能程序开启/关闭定时器 ;KEYB B键功能程序时值加1 ;KEYC C键功能程序分值加1 ;KEYD D键功能程序秒值加1 ;KEYE E键功能程序12/24时值转换 ;BEEP_BL整点报时 ;P0 显示接口 ;系统初始化程序**************************************************** KEY A EQU P3.0 ;单片机控制设置 KEYB EQU P3.1 ;单片机控制设置 KEYC EQU P3.2 ;单片机控制设置 KEYD EQU P3.3 ;单片机控制设置 KEYE EQU P3.4 ;单片机控制设置 BEEP EQU P3.7 ;单片机控制设置 ORG 0000H AJMP MAIN ;转到系统初始化程序 ORG 000BH AJMP PITO ;转到定时器0中断服务程序 ORG 0100H MAIN: MOV SP, #60H ;确立堆栈区 MOV TMOD, #01H ;设定定时器0为工作方式1 MOV TL0, #0DCH ;装计数器初值 MOV TH0, #0BH CLR 21H.0 CLR TR0 ; TR0置"0",定时关闭 SETB EA ; EA置"1",中断总允许 SETB ET0 ; ET0置"1",定时器0中断 ; 允许 MOV 30H, #10H ; 循环次数 MOV 7EH, #0AH ; P.点显示初始化 MOV R0, #79H MOV R1, #05H PP: MOV @R0, #0BH INC R0 DJNZ R1, PP MOV R0, #31H ; 时、分、秒值存储单元清零

汇编课程设计报告

汇编课程设计报告

学 号: 课程设计 题目打印水仙花数 学院计算机科学与技术 专业计算机科学与技术 班级 姓名 指导教师

武汉理工大学《汇编语言程序设计》课程设计 2012 年 6 月28 日 课程设计任务书 学生姓名:专业班级: 指导教师:工作单位:计算机科学与技术学院 题目: 打印水仙花数 初始条件: 理论:完成了《汇编语言程序设计》课程, 对微机系统结构和80系列指令系 统有了较深入的理解,已掌握了汇 编语言程序设计的基本方法和技 巧。 实践:完成了《汇编语言程序设计》的4 个实验,熟悉了汇编语言程序的设 计环境并掌握了汇编语言程序的 调试方法。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 进一步理解和掌握较复杂程序的设计方 法,掌握子程序结构的设计和友好用户界 3

2.1简要分析 2.1.1原理说明 可以用标签来接收三位数,标签的好处在于可以限制输入的位数,并且通过实际输入位数可以直接进行一部分的异常处理。 将数存到标签后,因为是以ASCII码的形式存的,所以需要进行转换,将其变成十六进制数,转换后将数字存到申请的内存字中。在转换成十六进制数的过程中,可以对输入的数进行异常处理,判断是否输入有误。 在输出水仙花数时,设置一个计数器,从100开始循环判断,直到等于用户输入的数为止,依次判断是否为水仙花数,决定是否输出该数。 在输出时,分别取出水仙花数的个、十、百位数,转换成ASCII码再输出。 系统提示是否继续后,程序对用户输入的信息进行判断,若为y或Y则系统回到初始状态,若为n或N则退出系统,若为其他则提示输入错误并重新输入。 2.1.2程序流程图

数字电子钟课程设计实验报告

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计任务书2016/2017 学年第一学期 学生姓名:张涛学号: 李子鹏学号: 课程设计题目:数字电子钟的设计 起迄日期:2017年1月4日~2017年7月10日 课程设计地点:科学楼 指导教师:姚爱琴 2017年月日 课程设计任务书

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计开题报告2016/2017 学年第一学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号:

指导教师:姚爱琴 2017 年 1 月 6 日 中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计说明书2016/2017 学年第二学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号: 指导教师:姚爱琴 2017 年月日

目录 1 引言 (6) 2 数字电子钟设计方案 (6) 2.1 数字计时器的设计思想 (6) 2.2数字电路设计及元器件参数选择 (6) 2.2.2 时、分、秒计数器 (7) 2.2.3 计数显示电路 (8) 2.2.5 整点报时电路 (10) 2.2.6 总体电路 (10) 2.3 安装与调试 (11) 2.3.1 数字电子钟PCB图 (11) 3 设计单元原理说明 (11) 3.1 555定时器原理 (12) 3.2 计数器原理 (12) 3.3 译码和数码显示电路原理 (12) 3.4 校时电路原理 (12) 4 心得与体会 (12) 1 引言 数字钟是一种用数字电子技术实现时,分,秒计时的装置,具有较高的准确性和直观性等各方面的优势,而得到广泛的应用。此次设计数字电子钟是为了了解数字钟的原理,在设计数字电子钟的过程中,用数字电子技术的理论和制作实践相结合,进一步加深数字电子技术课程知识的理解和应用,同时学会使用Multisim电子设计软件。 2数字电子钟设计方案 2.1 数字计时器的设计思想 要想构成数字钟,首先应选择一个脉冲源——能自动地产生稳定的标准时间脉冲信号。而脉冲源产生的脉冲信号地频率较高,因此,需要进行分频,使得高频脉冲信号变成适合于计时的低频脉冲信号,即“秒脉冲信号”(频率为1Hz)。经过分频器输出的秒脉冲信号到计数器中进行计数。由于计时的规律是:60秒=1分,60分=1小时,24小时=1天,就需要分别设计60进制,24进制计数器,并发出驱动信号。各计数器输出信号经译码器、驱动器到数字显示器,是“时”、“分”、“秒”得以数字显示出来。 值得注意的是:任何记时装置都有误差,因此应考虑校准时间电路。校时电路一般

单片机电子时钟汇编语言程序

51单片机架构下时钟控制程序 ;KEYA A键功能程序开启/关闭定时器 ;KEYB B键功能程序时值加1 ;KEYC C键功能程序分值加1 ;KEYD D键功能程序秒值加1 ;KEYE E键功能程序12/24时值转换 ;BEEP_BL整点报时 ;P0 显示接口 ;系统初始化程序**************************************************** KEYA EQU P3.0 ;单片机控制设置 KEYB EQU P3.1 ;单片机控制设置 KEYC EQU P3.2 ;单片机控制设置 KEYD EQU P3.3 ;单片机控制设置 KEYE EQU P3.4 ;单片机控制设置 BEEP EQU P3.7 ;单片机控制设置 ORG 0000H AJMP MAIN ;转到系统初始化程序 ORG 000BH AJMP PITO ;转到定时器0中断服务程序 ORG 0100H MAIN: MOV SP, #60H ;确立堆栈区 MOV TMOD, #01H ;设定定时器0为工作方式1 MOV TL0, #0DCH ;装计数器初值 MOV TH0, #0BH CLR 21H.0 CLR TR0 ; TR0置"0",定时关闭 SETB EA ; EA置"1",中断总允许 SETB ET0 ; ET0置"1",定时器0中断 ; 允许 MOV 30H, #10H ; 循环次数 MOV 7EH, #0AH ; P.点显示初始化 MOV R0, #79H MOV R1, #05H PP: MOV @R0, #0BH INC R0 DJNZ R1, PP MOV R0, #31H ; 时、分、秒值存储单元清零

(新)汇编语言课程设计四则运算

计算机与信息工程学院《汇编语言》课程设计四则运算器的设计 专业:计算机科学与技术 班级:控制11-2班 姓名: 倪天天 学号:2011025745 指导教师:郝维来 2013年6月28日

摘要 计算器是最简单的计算工具,简单计算器具有加、减、乘、除四项运算功能。想要用汇编语言实现简单的计算器,就必须通过对数据存储,寄存器的使用,加减乘除相关指令以及模块的调用等汇编语言知识进行运用,以实现一个基本功能完善,界面友好,操作简便易行的计算器。用汇编语言实现简单计算器还涉及到输入输出模块的设计,加减乘除运算的判断以及退出程序的判断的设计。通过对各种指令的合理使用,设计各个功能模块。当实现各个程序模块后,通过程序的调用最终实现一个简单的计算器。 关键词:计算器,汇编语言,四则运算,功能模块

Abstract Calculator is the easiest calculation tools, a simple calculator with addition, subtraction, multiplication, division four arithmetic functions. Want to use assembly language to achieve a simple calculator, you must pass on the data storage, register usage, addition, subtraction, and related instructions such as assembly language module calls the use of knowledge in order to achieve a basic functional, user-friendly, easy to operate easy calculator. Using assembly language to achieve a simple calculator also involves the design of input and output modules, the judgment of arithmetic operations and exit the program to judge design. Through the rational use of various commands, design various functional modules. When implementing various program modules, through a call to the ultimate realization of the program a simple calculator. Keyword:Calculator, assembly language, four arithmetic, functional modules

汇编语言课程设计报告

课程设计报告 课程名称课题名称 汇编语言程序设计 1.显示彩色菱形 2.显示系统当前时间 专业 班级 学号 姓名 指导教师 年月日

课程设计任务书 课程名称汇编语言程序设计 课题 1.显示彩色菱形 2.显示系统当前时间专业班级 学生姓名 学号 指导老师 审批 任务书下达日期年月日 任务完成日期年月日

一、设计内容与设计要求 1.设计内容:通过本周的课程设计,学生能够巩固所学的基础知识,并能 够使学生更加熟练运用汇编程序设计语言来掌握综合汇编程序设计的方法和过程,以及为设计其它应用软件提供帮助,进而提高学生的软件设计能力。 (1)、编制一计算比赛成绩的程序,要求完成以下功能: a、9 名评委,每个评委给分范围为 0~100(整数); b、9名评委给分中,去掉一个最高分和一个最低分,剩余7 名评委的平均分即为参赛者的得分(精确到小数点二位); c、将得分在光标位置处显示出来。 (2) 、编制一程序,要求接收从键盘输入的一个班的学生成绩,并存放于30 字的 grade 数组中,各数据的格式为: 学号,成绩 1,成绩 2,?,成绩 5 然后根据 grade 中的学生成绩,把学生名次填入rank 数据组中,并显示出来,格式为:学号,名次 (3)、利用 INT 1CH(大约每秒中断 18.2 次)编写一个中断驻留程序,要求在屏幕的右 上角显示计算机中当前系统时间,显示格式为 时:分: 秒:1/100 秒 (4)、输入一个菱形的两条对角线长,在屏幕上用‘ * ’号画出一个彩色的菱形。 (5)、设置图形方式并显示彩条,要求: 选择背景色为蓝色,调色板为0,然后每行显示一种颜色,每四行重复一次, 一直到整个屏幕都显示出彩条 2.设计要求: 掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一 些实际的问题,为将来编写软件积累一些典型的案例处理经验。 (1)、设计正确,方案合理。 (2)、界面友好,使用方便。 (3)、程序精炼,结构清晰。 (4)、设计报告 5000 字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。 (5)、上机演示。 (6)、按学号顺序选课题号,并在规定的时间内独自完成相关课题的汇编源程序编

电子时钟单片机【完整版】

烟台南山学院 单片机课程设计题目电子时钟 姓名: 所在学院 所学专业: 班级: 学号: 指导教师: 完成时间:

随时代的发展,生活节奏的加快,人们的时间观念愈来愈强;随自动化、智能化技术的发展,机电产品的智能度愈来愈高,用到时间提示、定时控制的地方也会愈来愈多,因此,设计开发数字时钟具有良好的应用前景。 由于单片机价格的低成本、高性能,在自动控制产品中得到了广泛的应用。本设计利用Atmel公司的AT89S52单片机对电子时钟进行开发,设计了实现所需功能的硬件电路,应用汇编语言进行软件编程,并用实验板进行演示、验证。 在介绍本单片机的发展情况基础上,说明了本设计实现的功能,以及实验板硬件情况,并对各功能电路进行了分析。主要工作放在软件编程上,用实验板实现时间、日期、定时及它们的设定功能,详细对软件编程流程以及调试进行了说明,并对计时误差进行了分析及校正,提出了定时音与显示相冲突问题及解决方案。实验证明效果良好,可以投入使用。 本次仿真设计的目的就是让同学们在理论学习的基础上,通过完成一个涉及MCS—51单片机都种资源应用并具有综合功能的小系统目标板的设计与编程应用,使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排版调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立进行某些单片机应用系统的开发设计工作打下一定的基础。在本学期的开始我们进行了计算机工程实践,在实践中我们以微机原理与接口技术课程中所学知识为基础,设计了电子时钟系统。本系统为多功能数字钟的系统。本设计以单片机AT89c51为控制核心,选用DS1302串行时钟芯片,RT1602液晶显示器实现液晶显示当前时间、日期、星期。本电子时钟具有日期、时、分、秒的显示、调整功能,采用的时间制式为24小时制,时间显示格式为时(十位、个位)、分(十位、个位)、秒(十位、个位)。 关键词:单片机 AT89S52 电子时钟汇编语言

相关主题
文本预览
相关文档 最新文档