微机原理电子钟设计汇编语言.docx

上传人:b****8 文档编号:12924442 上传时间:2023-06-09 格式:DOCX 页数:21 大小:424.57KB
下载 相关 举报
微机原理电子钟设计汇编语言.docx_第1页
第1页 / 共21页
微机原理电子钟设计汇编语言.docx_第2页
第2页 / 共21页
微机原理电子钟设计汇编语言.docx_第3页
第3页 / 共21页
微机原理电子钟设计汇编语言.docx_第4页
第4页 / 共21页
微机原理电子钟设计汇编语言.docx_第5页
第5页 / 共21页
微机原理电子钟设计汇编语言.docx_第6页
第6页 / 共21页
微机原理电子钟设计汇编语言.docx_第7页
第7页 / 共21页
微机原理电子钟设计汇编语言.docx_第8页
第8页 / 共21页
微机原理电子钟设计汇编语言.docx_第9页
第9页 / 共21页
微机原理电子钟设计汇编语言.docx_第10页
第10页 / 共21页
微机原理电子钟设计汇编语言.docx_第11页
第11页 / 共21页
微机原理电子钟设计汇编语言.docx_第12页
第12页 / 共21页
微机原理电子钟设计汇编语言.docx_第13页
第13页 / 共21页
微机原理电子钟设计汇编语言.docx_第14页
第14页 / 共21页
微机原理电子钟设计汇编语言.docx_第15页
第15页 / 共21页
微机原理电子钟设计汇编语言.docx_第16页
第16页 / 共21页
微机原理电子钟设计汇编语言.docx_第17页
第17页 / 共21页
微机原理电子钟设计汇编语言.docx_第18页
第18页 / 共21页
微机原理电子钟设计汇编语言.docx_第19页
第19页 / 共21页
微机原理电子钟设计汇编语言.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机原理电子钟设计汇编语言.docx

《微机原理电子钟设计汇编语言.docx》由会员分享,可在线阅读,更多相关《微机原理电子钟设计汇编语言.docx(21页珍藏版)》请在冰点文库上搜索。

微机原理电子钟设计汇编语言.docx

微机原理电子钟设计汇编语言

成绩

 

课程设计报告

 

题目可调时电子钟的设计

课程名称微机原理及应用

院部名称

专业工程及其自动化

班级工程及其自动化

学生姓名

学号11

课程设计地点工科楼B403

课程设计学时20

指导教师

金陵科技学院教务处制

摘要

运用了8086CPU芯片以及8259A芯片、8253芯片和显示器等辅助硬件电路,进行了可调时电子钟的设计。

进行了软件设计并编写了源程序。

该电子钟具有时、分、秒计时、显示功能,并且通过定义键盘的字母,可对电子钟进行时分秒时间调整。

关键词:

可调时电子钟;8259A;8253;8086微机系统

 

一、设计任务与要求………………………………………………………………………1

二、总体设计方案与说明……………………………………………………………1

三、系统硬件部分设计………………………………………………………………………2

3.18086微处理器的工作原理………………………………………………………2

3.28259A芯片的工作原理……………………………………………………3

3.38253芯片的工作原理……………………………………………………………4

3.4LED显示器………………………………………………………………………5

3.5系统原理图………………………………………………………………………6

四、系统软件部分设计……………………………………………………………………7

4.1系统软件流程图……………………………………………………………………7

4.2源程序………………………………………………………………………………9

五、系统调试…………………………………………………………………………17

六、课程设计体会…………………………………………………………………………17

七、参考文献……………………………………………………………………………17

 

一、设计任务与要求

设计一个可调时电子钟,要求:

1)给出系统设计方案;画出硬件连线图,并说明工作原理;

2)画出程序框图并编写程序完成如下功能:

6位七段LED数码管可显示时、分、秒,并按正常时间显示方法工作;

二、总体设计方案与说明

本实验利用8253做定时器,用定时器输出的脉冲控制8259产生中断。

在8259中断处理程序中,对时、分、秒进行计数,在等待中断的循环中用LED显示时间。

8253用定时器/计数器1,8253片选接CS4,地址为0C000H。

8253时钟源CLK1接分频电路的F/64输出。

分频器的FIN接4MHZ时钟。

8253的GATE1接VCC。

8259中断INT0接8253的OUT1,片选接CS5,地址为0D000H。

显示电路的KEY/LEDCS接CS0,地址为08000H。

系统工作框图如下:

8259A

8253

图1系统框图

 

三、系统硬件部分设计

3.1、8086微处理器

8086微处理器是16位机,16位微处理器比8位微处理器有更大的寻址空间、更强的运算能力、更快的处理速度和更完善的指令系统。

16位微处理器比8位微处理器有更大的寻址空间、更强的运算能力、更快的处理速度和更完善的指令系统。

芯片引脚为40根,20根地址线,16根数据线,其最大的地址空间为1MB。

8086从功能上来说可以分成两个大部分,总线接口单元BIU和执行单元EU。

BIU:

负责与存储器或I/O接口交换信息,即8086与存储器或I/O接口之间的信息传送,都是由BIU负责进行的,即:

(1)BIU从内存的指定部分取出指令,送到指令队列排队。

(2)取出执行指令时所需的操作数,送至EU部分。

EU:

负责指令的执行。

特点:

将CPU分为两个单元,可以使取指令和执行指令同进行,减少了CPU为取指令而等待的时间,从而提高了CPU的利用率,提高了系统的运行速度。

8086微处理器的引脚功能可分3部分:

地址总线、数据总线、控制总线。

(1)地址/数据总线AD15-AD0

AD15-AD0:

地址/数据复用引脚,双向,三态。

地址/数据总线分时复用。

在总线周期开始时(T1),用作地址总线的16位,给出内存单元的地址;其他时间为数据总线,用于数据传输。

(2)地址/状态总线A19/S6-A16/S3

A19/S6-A16/S3:

地址/状态总线复用引脚,输出,三态。

A19-A16:

输出访问存储器的20位地址的高4位地址A19-A16。

8086的20条地址线访问存储器时可寻址1MB内存单元;访问外部设备时,只用16条地址A15-A0,可寻址64K个I/O端口。

图28086CPU

3.2、8259A芯片的内部结构及引脚

中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。

它将中断源优先排队、辨别中断源以及提供中断矢量的电路集中于一片中。

因此无需附加任何电路,只需对8259A编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。

在MD微机系统中,8259芯片工作于单片方式。

8259引脚图如图3,各引脚功能如下。

D7~D0——八条双向数据线;

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

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

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

A0——地址信号;

INT——中断请求信号;

INTA(低电平有效)——中断响应信号;

CAS0~CAS2——级联信号,形成一条专用8259A总线,以便多片8259A的级联;

SP/EN——从编程/允许级联。

在缓冲方式中,可用做输出信号以控制总线缓冲器的接收和发送。

在非缓冲方式中,作为输入信号用于表示主片还是从片;

IR0~IR7——外部中断请求输入线。

要求输入的中断请求信号是由低电平到高电平的上升沿(并保持高电平到CPU响应时为止)或者是高电平。

8259A中断矢量表

中断序号

0

1

2

3

4

5

6

7

功能调用

08H

09H

0AH

0BH

0CH

0DH

0EH

0FH

矢量地址

20H

~

23H

24H

~

27H

28H

~

2BH

2CH

~

2FH

30H

~

33H

34H

~

37H

38H

~

3BH

3CH

~

3FH

说明

时钟

键盘

可用

可用

串行口

可用

可用

可用

3.3、可编程定时器/计数器8253

8253的功能用途是:

(1)延时中断

(2)可编程频率发生器

(3)事件计数器

(4)二进倍频器

(5)实时时钟

(6)数字单稳

(7)复杂的电机控制器

8253有六种工作方式:

(1)方式0:

计数结束中断

(2)方式1:

可编程频率发生器

(3)方式2:

频率发生器

(4)方式3:

方波频率发生器

(5)方式4:

软件触发的选通信号

(6)方式5:

硬件触发的选通信号

图48253引脚信号图

8253引脚图如图3.3示,各引脚功能如下。

D7~D0——八条双向数据线;

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

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

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

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

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

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

GATE——选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。

8253端口地址表

2、8253端口地址

信号线

寄存器

编址

IOY2

0#计数器

40H

1#计数器

41H

2#计数器

42H

控制寄存器

43H

 

3.4、LED显示器

LED显示器有静态显示与动态显示两种方式。

我们使用的为动态显示LED动态显示方式。

在多位LED显示时,为了简化电路,降低成本,将所有位的段选线并联在一起,由一个8位I/O口控制,而共阴极点或共阳极点分别由响应的I/O口线控制。

显示模块是将显示缓冲区的数值送到LED显示的功能模块,显示缓冲区是由六个字节构成,分别保存小时的高位和低位,分钟的高位和低位,秒钟的高位和低位。

硬件上由六个LED构成,软件上由扫描显示的方法实现。

 

3.5系统原理图

 

四、系统软件部分设计

4.1系统软件流程图

1、主程序流程图

 

 

主程序框图

、100us定时中断服务程序

 

100us定时中断服务程序

4.2源程序:

CONTROLEQU0C003H

COUNT0EQU0C000H

COUNT1EQU0C001H

COUNT2EQU0C002H

MD8255EQU82H;8255工作方式

PA8255EQU8000H;8255PA口输出地址

CTL8255EQU8003H;8255控制口地址

OUTBITEQU08002H;位控制口

OUTSEGEQU08004H;段控制口

ICW1EQU00010011B;单片8259,上升沿中断,要写ICW4

ICW2EQU00100000B;中断号为20H

ICW4EQU00000001B;工作在8086/88方式

OCW1EQU11111110B;只响应INT0中断

CS8259AEQU0D000H;8259地址

CS8259BEQU0D001H

DATASEGMENT

CNTDB0

LEDBUFDB6DUP(?

);显示缓冲

NUMDB1DUP(?

);显示的数据

DELAYTDB1DUP(?

HOURDB0

MINUTEDB0

SECONDDB0

LEDMAP:

;八段管显示码

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H

DB7FH,6FH,77H,7CH,39H,5EH,79H,71H

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

DELAYPROCNEAR

PUSHAX;延时子程序

PUSHCX

MOVAL,0

MOVCX,AX

LOOP$

POPCX

POPAX

RET

DELAYENDP

DISPLAYLEDPROCNEAR

MOVBX,OFFSETLEDBUF

MOVCL,6;共6个八段管

MOVAH,00100000B;从左边开始显示

DLOOP:

MOVDX,OUTBIT

MOVAL,0

OUTDX,AL;关所有八段管

MOVAL,[BX]

MOVDX,OUTSEG

OUTDX,AL

MOVDX,OUTBIT

MOVAL,AH

OUTDX,AL;显示一位八段管

PUSHAX

MOVAH,1

CALLDELAY

POPAX

SHRAH,1

INCBX

DECCL

JNZDLOOP

MOVDX,OUTBIT

MOVAL,0

OUTDX,AL;关所有八段管

RET

DISPLAYLEDENDP

IENTERPROCNEAR

PUSHAX

PUSHDX

INCSECOND

MOVAL,SECOND

CMPAL,60

JNEEXIT

MOVSECOND,0

INCMINUTE

MOVAL,MINUTE

CMPAL,60

JNEEXIT

MOVMINUTE,0

INCHOUR

MOVAL,HOUR

CMPAL,24

JNEEXIT

MOVHOUR,0

EXIT:

MOVDX,CS8259A

MOVAL,20H;中断服务程序结束指令

OUTDX,AL

POPDX

POPAX

IRET

IENTERENDP

IINITPROC

MOVDX,CS8259A

MOVAL,ICW1

OUTDX,AL

MOVDX,CS8259B

MOVAL,ICW2

OUTDX,AL

MOVAL,ICW4

OUTDX,AL

MOVAL,OCW1

OUTDX,AL

RET

IINITENDP

STARTPROCNEAR

MOVAX,DATA

MOVDS,AX

MOVHOUR,0

MOVMINUTE,0

MOVSECOND,0

CLI

MOVAX,0

MOVDS,AX

MOVAL,76H;01110110B;计数器1,16位,方式3,二进制

MOVDX,CONTROL

OUTDX,AL

MOVAX,62500

MOVDX,COUNT1

OUTDX,AL;计数器低字节

MOVAL,AH

OUTDX,AL;计数器高字节

MOVAL,MD8255

MOVDX,CTL8255

OUTDX,AL

MOVBX,4*ICW2;中断号

MOVAX,CODE

SHLAX,4;X16

ADDAX,OFFSETIENTER;中断入口地址(段地址为0)

MOV[BX],AX

MOVAX,0

INCBX

INCBX

MOV[BX],AX;代码段地址为0

CALLIINIT

MOVAX,DATA

MOVDS,AX

MOVCNT,0;计数值初始为0

MOVAL,CNT

MOVDX,PA8255

OUTDX,AL

STI

LP:

;等待中断,并计数。

MOVAL,HOUR

MOVAH,0

MOVCL,10

DIVCL

MOVCH,AH

MOVAH,0

MOVBX,OFFSETLEDMAP

ADDBX,AX

MOVAL,[BX]

MOVLEDBUF,AL

MOVBX,OFFSETLEDMAP

MOVAL,CH

MOVAH,0

ADDBX,AX

MOVAL,[BX]

ORAL,80H

MOVLEDBUF+1,AL

MOVAL,MINUTE

MOVAH,0

MOVCL,10

DIVCL

MOVCH,AH

MOVAH,0

MOVBX,OFFSETLEDMAP

ADDBX,AX

MOVAL,[BX]

MOVLEDBUF+2,AL

MOVBX,OFFSETLEDMAP

MOVAL,CH

MOVAH,0

ADDBX,AX

MOVAL,[BX]

ORAL,80H

MOVLEDBUF+3,AL

MOVAL,SECOND

MOVAH,0

MOVCL,10

DIVCL

MOVCH,AH

MOVAH,0

MOVBX,OFFSETLEDMAP

ADDBX,AX

MOVAL,[BX]

MOVLEDBUF+4,AL

MOVBX,OFFSETLEDMAP

MOVAL,CH

MOVAH,0

ADDBX,AX

MOVAL,[BX]

ORAL,80H

MOVLEDBUF+5,AL

CALLDISPLAYLED

JMPLP

STARTENDP

CODEENDS

ENDSTART

 

 

五、系统调试

第一个问题是在用伟福软件编译时出现了错误,通过老师的帮助下知道了要把名称用英文表示。

第二个问题是在伟福8000上没有4MHZ的电路,在老师的帮助下知道了从伟福6000实验箱上可以得到。

六、课程设计体会

通过本次课程设计,我对利用微机原理课程所学的知识设计电子表的基本过程的设计方法、步骤、思路、有一定的了解与认识。

它相当于实际工业设计的模拟。

在课程设计过程中,我先是收集、调查有关资料,然后进入草案阶段,其间与指导教师进行几次方案的讨论、修改,再讨论、再修改,最后定案,得出了总体方案设计。

设计方案确定后,又在老师指导下进行扩初详细设计,并分别设计了相应的模块;将这些模块组合起来,便形成了一个完整的电子表的设计。

对8259、8255、8253有了进一步的了解,对中断处理有了更深的理解,很好的复习了微机原理,同时对端口有了初步的理解。

通过课程设计更加体会到了团队作战的长处,大家一起受益颇多,取长补短,最主要的是认识到了自己的不足,需要进一步学习所含知识,尤其是端口,更需要勤加练习汇编语言与微机原理的结合,课程设计受益颇多。

经过这次成功的设计,我更加深刻的理解了微机原理的相关知识。

对一些常用芯片有了更深一步的认识,并且能够很好的使用它们。

应该说,这次课程设计达到了目的。

七、参考文献

[1]许立梓.微型计算机原理及应用[M].北京:

机械工业出版社,2003.

[3]戴梅萼等.微型计算机技术及应用.北京:

清华大学出版社,2003

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

当前位置:首页 > 临时分类 > 批量上传

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2