汇编数字钟课程设计.docx

上传人:b****5 文档编号:7816831 上传时间:2023-01-26 格式:DOCX 页数:12 大小:156.15KB
下载 相关 举报
汇编数字钟课程设计.docx_第1页
第1页 / 共12页
汇编数字钟课程设计.docx_第2页
第2页 / 共12页
汇编数字钟课程设计.docx_第3页
第3页 / 共12页
汇编数字钟课程设计.docx_第4页
第4页 / 共12页
汇编数字钟课程设计.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

汇编数字钟课程设计.docx

《汇编数字钟课程设计.docx》由会员分享,可在线阅读,更多相关《汇编数字钟课程设计.docx(12页珍藏版)》请在冰豆网上搜索。

汇编数字钟课程设计.docx

汇编数字钟课程设计

微机原理与接口技术

课程设计报告

 

设计题目:

数字钟设计

学院名称:

信息工程学院

专业:

通信工程

班级:

0801

组员:

卢磊磊(组长)陶纯鑫季宪鹏

指导教师:

王老师

 

2011年1月5日星期三

摘要:

《微机原理及接口技术》是一门应用性、综合性、实践性较强的课程,没有实际的有针对性的设计环节,我们就不能很好的理解和掌握所学的技术知识,更缺乏解决实际问题的能力。

所以通过有针对性的课程设计,会使我们学会系统地综合运用所学的理论知识,提高我们在微机应用方面的开发与设计本领,系统的掌握微机硬软件设计方法。

通过课程设计实践,不仅要培养我们的实际动手能力,检验我们对本门课学习的情况,更要培养我们在实际的工程设计中查阅专业资料、工具书或参考书,掌握工程设计手段和软件工具,并能用设计报告表达设计思想和结果的能力。

培养我们实事求是和严肃认真的工作态度。

通过设计过程,要求我们熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使我们得到微机开发应用方面的初步训练。

集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。

通过本次课程设计,我们要熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。

关键词:

数字钟时间显示定时器

设计目的:

设计一种多功能数字钟,该数字钟具有基本功能和扩展功能两部分。

其中,基本功能部分的有准确计时,以数字形式显示时、分、秒的时间。

扩展功能部分则具有:

定时控制和复位功能。

数字钟的电路也是由主体电路和扩展电路两部分构成,在电路中,基本功能部分由主体电路实现,而扩展功能部电路实现。

这两部分都有一个共同特点就是它们都要用到振荡电路提供的256Hz脉冲信号。

为了使电路简单所设计的电路不具备校秒的功能。

并且要用数码管显示时、分、秒,初始时间由程序设定,通过控制按键进行计时。

设计内容:

通过设计数字钟,掌握8253芯片和微机接口原理和方法;熟悉汇编程序设计;熟悉编译环境;剖析实验箱、绘制原理电路并仿真、设计程序完成软硬件设计。

总体设计:

根据设计要求,初步思路如下:

1)计时单元由定时/计数器8253的通道0来实现。

定时采用硬件计数和软件技术相结合的方式,即通过8253产生一定的定时时间,然后再利用软件进行计数,从而实现24小时制定时。

8253定时时间到了之后产生中断信号,8253在中断服务程序中实现时、分、秒的累加。

2)时间显示采用实验平台上的6个LED数码管分别显示时、分、秒,采用动态扫描方式实现。

3)校时通过键盘电路和单脉冲产生单元来输入。

按键包括校时键、加1和减1键等。

系统硬件设计主要利用微机实验平台上的电路模块。

硬件电路主要由键盘电路、单脉冲产生单元、8253定时计数器、8255并行接口单元、LED显示电路和按键等等。

系统的硬件电路设计框图如图1所示。

按键

硬件电路设计框图如图1

硬件设计:

1、LED数码管显示电路如图2

如图2LED数码管是实现显示电路的器件

2、8253计时器和8255并行通信接口结构框图如图所示3、5

所示3为8253定时器为计数器控制电路的

3、按键显示电路如图所示4

如图4按键的作用是实现数字钟定时和计数的

如图5所示为8255并行接口结构图

4、CPU模块结构电路如图6

所示6为CPU电路实现软件运行和向控制端送信号的

5、硬件整体电路图如图7所示

程序流程图及清单:

1)主程序如图所示

(二)

数码管扫描输出

2)LED数码管显示框图

返回

如图(三)数码管显示子程序

 

3)按键扫描显示

六列扫描完

如图(四)按键扫描子程序框图

4)计数器流程框图如图(五)所示

 

Y

仿真过程及结果:

1、在按键没有按下的情况下,由于初始给它设定了时间如“82-55-08”

则开始只显示82-55-08,仿真电路图如下图

(一)所示:

2、在按键按下的情况下,在初始设定的时间下由秒个位开始变化,到十向秒十位加一,等到秒十位变为六十时向分为加一,以此类推到时位,完成数字中的变化。

此仿真电路图如下图

(二)所示。

如图

(一)所示电路图

如图

(二)所示电路图

设计心得:

两个星期的课程设计很快就结束了,想想每天在实验室的努力,看着自己两个星期的努力成果,心里感到格外的欣慰。

从最初的无从下手,到分析设计,到编程调试,一步步走来,知识一点一滴的积累,最终完成了这份另自己满意的作品。

在设计的过程中,我也遇到了一些困难,例如,在将键盘输入的值转换成显示数据的时候,我重复调用子程序GetKey,却没有得到我想要的结果,经过一系列的探索和修改,我在调用子程序GetKey前先调用了子程序TestKey,如果键盘有输入,再转入GetKey执行,结果完全正确。

在设计定时器的时候也遇到了一些问题,由于实验箱的故障,输出的时间频率和真正的时间频不等,简单地将计数器的计数初值增大,必定会超出计数器的计数范围。

我翻阅了相关的书本,在老师的帮助下成功解决了这个问题。

解决方法是采用两个计数器串联的方式。

在克服一个又一个困难的过程中,巩固了我所学的理论知识,还培养我的实际动手能力,还培养我在实际的工程设计中查阅专业资料、工具书或参考书,掌握工程设计手段和软件工具,并能用设计报告表达设计思想和结果的能力。

当然,我所完成的这个作品仍不完美。

例如,缺乏人机互动功能,在修改时间的时候秒针停止计时。

这些问题有待我在今后的学习过程中进一步完善。

参考文献:

1、王让定、朱莹、叶富乐等编著《微机原理与接口技术》第二版,清华大学出版社出版,2007.11

2、《IBM-PC汇编语言程序设计》清华大学出版社出版,2001

附录:

源代码

程序:

DATASEGMENT

LEDDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

XDW?

YDW?

ZDW?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVDX,46H;01000110[8255]

MOVAL,82H;10000010A方式0输出B方式0输入C输出

OUTDX,AL;向8255写控制字

NEXT:

MOVX,08;记录按键次数

MOVY,53

MOVZ,82

LEASI,LED

MOVAL,00010111B;定时器0方式0

OUT4EH,AL;向8253写控制字

MOVAL,255;计数初值为1

MOVDX,48H;计数器0的端口地址

OUTDX,AL

REPEAT0:

REPEAT1:

CALLCONVER;显示子程序

MOVDX,42H

INAL,DX;将PB中的值输入到ALPB的值取决于PB7

CMPAL,0FEH

JZNEXT

TESTAL,80H;判断计数是否结束TEST相与但不改变相应的值

JNZREPEAT1

REPEAT2:

CALLCONVER

MOVDX,42H

INAL,DX

CMPAL,7EH

JZNEXT

TESTAL,80H

JZREPEAT2

INCX;计数结束,按键次数加1

CMPX,60

JNZNEXT1

MOVX,0

INCY

NEXT1:

CMPY,60

JNZNEXT2

MOVY,0

INCZ

NEXT2:

CMPZ,24

JNZNEXT3

MOVZ,0

NEXT3:

CALLCONVER;显示子程序

JMPREPEAT0;重新初始化定时器,为下一次按键准备

CONVERPROC

MOVAX,X

MOVCL,10

DIVCL;按键次数除以10,商是次数的十位,存在AL中,余数是次数的各位,存在AH中

MOVBX,AX;AH:

BHAL:

BL

MOVAL,02H

OUT44H,AL;向8255端口C的Pc0置1使显示管1工作

MOVBP,BX

ANDBP,0FFH;清除余数,保留商

MOVAL,[SI+BP];使显示管显示相应的值

OUT40H,AL;将商的值显示通过PA

CALLDELY

MOVAL,01H;00000010

OUT44H,AL;点亮各位led置8255的Pc1为0

XCHGBH,BL;交换商和余数

MOVBP,BX

ANDBP,0FFH;清除商,保留余数

MOVAL,[SI+BP]

OUT40H,AL;将余数的值显示通过PA

CALLDELY

MOVAX,Y

MOVCL,10

DIVCL;按键次数除以10,商是次数的十位,存在AL中,余数是次数的各位,存在AH中

MOVBX,AX;AH:

BHAL:

BL

MOVAL,20H

OUT44H,AL;向8255端口C的Pc0置1使显示管1工作

MOVBP,BX

ANDBP,0FFH;清除余数,保留商

MOVAL,[SI+BP];使显示管显示相应的值

OUT40H,AL;将商的值显示通过PA

CALLDELY

MOVAL,10H;00000010

OUT44H,AL;点亮各位led置8255的Pc1为0

XCHGBH,BL;交换商和余数

MOVBP,BX

ANDBP,0FFH;清除商,保留余数

MOVAL,[SI+BP]

OUT40H,AL;将余数的值显示通过PA

CALLDELY

MOVAX,Z

MOVCL,10

DIVCL;按键次数除以10,商是次数的十位,存在AL中,余数是次数的各位,存在AH中

MOVBX,AX;AH:

BHAL:

BL

MOVAL,80H

OUT44H,AL;向8255端口C的Pc0置1使显示管1工作

MOVBP,BX

ANDBP,0FFH;清除余数,保留商

MOVAL,[SI+BP];使显示管显示相应的值

OUT40H,AL;将商的值显示通过PA

CALLDELY

MOVAL,40H;00000010

OUT44H,AL;点亮各位led置8255的Pc1为0

XCHGBH,BL;交换商和余数

MOVBP,BX

ANDBP,0FFH;清除商,保留余数

MOVAL,[SI+BP]

OUT40H,AL;将余数的值显示通过PA

CALLDELY

RET

CONVERENDP

DELYPROC

PUSHCX

MOVCX,1000

L:

LOOPL

POPCX

RET

DELYENDP

CODEENDS

ENDSTART

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 药学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1