微机原理课程设计电子钟Word格式.docx

上传人:b****5 文档编号:8497498 上传时间:2023-05-11 格式:DOCX 页数:16 大小:97.10KB
下载 相关 举报
微机原理课程设计电子钟Word格式.docx_第1页
第1页 / 共16页
微机原理课程设计电子钟Word格式.docx_第2页
第2页 / 共16页
微机原理课程设计电子钟Word格式.docx_第3页
第3页 / 共16页
微机原理课程设计电子钟Word格式.docx_第4页
第4页 / 共16页
微机原理课程设计电子钟Word格式.docx_第5页
第5页 / 共16页
微机原理课程设计电子钟Word格式.docx_第6页
第6页 / 共16页
微机原理课程设计电子钟Word格式.docx_第7页
第7页 / 共16页
微机原理课程设计电子钟Word格式.docx_第8页
第8页 / 共16页
微机原理课程设计电子钟Word格式.docx_第9页
第9页 / 共16页
微机原理课程设计电子钟Word格式.docx_第10页
第10页 / 共16页
微机原理课程设计电子钟Word格式.docx_第11页
第11页 / 共16页
微机原理课程设计电子钟Word格式.docx_第12页
第12页 / 共16页
微机原理课程设计电子钟Word格式.docx_第13页
第13页 / 共16页
微机原理课程设计电子钟Word格式.docx_第14页
第14页 / 共16页
微机原理课程设计电子钟Word格式.docx_第15页
第15页 / 共16页
微机原理课程设计电子钟Word格式.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理课程设计电子钟Word格式.docx

《微机原理课程设计电子钟Word格式.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计电子钟Word格式.docx(16页珍藏版)》请在冰点文库上搜索。

微机原理课程设计电子钟Word格式.docx

(2)微机原理实验箱一台

此设备必须能提供8254、8255、8259和数码管等必要芯片。

并且能通过接受PC机传来的信息,显示出相应的功能。

以支持电子时钟的实现。

(3)导线若干条

用于电路和芯片之间的连接。

2设计思路

电子钟的总体设计原理是:

首先利用定时芯片8254的定时作用定时计数,在给定的时间内逐渐变为0时,就会发出一个中断信号,8259中断器接到此中断信号就会调用MIR7时间显示程序,执行此程序后8255就会工作,把接到的二进制时间码转换成ASCII码在四个码管上显示时间。

具体做法是为了实现精确走时,显示分秒。

我们先在数据段开辟一显示缓冲区,用来存储系统时间,初始化我们所要应用的芯片8254,8255,8259后,允许中断信号输入,主程序开始。

为了显示分秒,并被我们识别,先调用DIS程序,实现片选的功能。

为了得到良好的显示效果,本程序调用了一段精确的延时程序没,使各位在时间显示上有短暂的间隔,延时程序要尽量接近1秒,但又不能超过一秒。

为了实现会跳动的电子钟,我们调用了子程序clear的清屏功能,不断以刷新的方式来获取时间,形成会跳动的电子钟。

同时,由于8254定时器的分频功能,产生中断信号,8259中断器就会调用MIR7时间显示程序,实现位选,最后通过LED数码管显示出来,时间刷新,再显示,如此循环,就形成了精确走时的电子钟。

3主要元器件介绍

3.18254简介

8254具有3个独立的16位计数器,6种不同的工作方式。

计数寄存器用来寄存计数初值,计数工作单元为16位减1计数器,它的初值便是计数寄存器内容,计数单元对CLK脉冲计数,每出现一个CLK脉冲,计数器减1,当减为零时,通过OUT输出指示信号表明计数单元已为零。

当作为定时器工作时,每当计数单元为零时,计数寄存器内容会自动重新装入计数单元,而且CLK输入是均匀的脉冲序列,于是OUT输出频率是降低了的(相对于CLK信号频率)脉冲序列。

当作为计数器工作时,表明只关心在CLK端出现(代表事件)的脉冲个数,当CLK端出现了规定个数的脉冲时,OUT输出一个脉冲。

3.1.18254引脚功能

图3.3.1内部结构框图和引脚图

上图是8254的内部结构框图和引脚图,它是由与CPU的接口、内部控制电路和三个计数器组成。

本次设计主要利用8254产生1ms的方波,其与总线相连接的引线主要是:

D0~D7双向数据线,用以传送数据和控制字。

这里分别与XD0~XD7相连接。

CS输入信号,低电平有效,当它有效时才能选中该定时器芯片,实现对它的读或写,这里与系统IOY3相连接。

RD读控制信号,低电平有效,与系统总线IOR#相连接。

WR写控制信号,低电平有效,与系统总线IOW#相连接。

A0、A1为8254的内部计数器和一个控制寄存器的编码选择信号,其功能如下:

A1

A0

选择

计数器0

1

计数器1

计数器2

控制寄存器

CLK0是计数器的时钟输入端。

本次设计的时钟为1MHZ,计数器对此时钟信号进行计数。

GATE0门控信号,即计数器的控制输入信号,用来控制计数器的工作,这里使其为高电平,直接接系统5V。

OUT计数器输出信号,用来产生不同方式工作时的输出波形,本次设计的1ms方波由此输出。

3.1.28254的工作方式

8254有6种方式工作,由于只用来产生方波,所以使其工作在方式3(方波发生器),在此方式下,GATA信号为低电平时,强迫OUT输出高电平,当GATA主高电平时,OUT输出时称方波。

(1)方式0:

计数到0结束输出正跃变信号方式。

(2)方式1:

硬件可重触发单稳方式。

(3)方式2:

频率发生器方式。

(4)方式3:

方波发生器。

(5)方式4:

软件触发选通方式。

(6)方式5:

硬件触发选通方式。

3.1.38354内部控制字

8254的控制字有两个:

一个用来设置计数器的工作方式,称为方式控制字;

另一个用来设置读回命令,称为读回控制字。

这两个控制字共用一个地址,由标识位来区分。

当读回控制字的D4位为0时,由该读回控制字D1~D2位指定的计数器的状态寄存器内容将被锁存到状态寄存器中。

状态字格式如图6.3.2所示:

图3.3.28254状态字格式

4源程序清单及注释

MY8255_AEQU0600H

MY8255_BEQU0602H

MY8255_CEQU0604H

MY8255_MODEEQU0606H

A8254EQU06C0H;

宏定义

B8254EQU06C2H

C8254EQU06C4H

CON8254EQU06C6H

SSTACKSEGMENTSTACK

DW32DUP(?

);

设置段,开辟一个内存空间

SSTACKENDS

DATASEGMENT

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

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

MSECDW0;

定义数据段

SECDB0

MINDB0

DATAENDS

CODESEGMENT;

定义代码段

ASSUMECS:

CODE,DS:

DATA,SS:

SSTACK

START:

PUSHDS;

入栈代码段

MOVAX,0000H

MOVDS,AX

MOVAX,OFFSETMIR7;

取中断入口地址

MOVSI,003CH;

中断矢量地址

MOV[SI],AX;

填IRQ7的偏移矢量确定地址

MOVAX,CS;

段地址

MOVSI,003EH

填IRQ7的段地址矢量

CLI;

清除中断标志

POPDS;

出栈

;

初始化主片8255

MOVDX,MY8255_MODE

MOVAL,80H

OUTDX,AL

;

初始化主片8254

MOVDX,CON8254

MOVAL,36H

MOVDX,A8254

MOVAL,0E8H

MOVAL,03H

;

初始化主片8259

MOVAL,11H

OUT20H,AL;

ICW1

MOVAL,08H

OUT21H,AL;

ICW2

MOVAL,04H

ICW3

MOVAL,01H

ICW4

MOVAL,6FH;

OCW1

OUT21H,AL

STI;

置中断标志位IF

MOVAX,DATA;

数据传给AX

MOVDS,AX;

再把AX中心数据送入段DS中

MOVSI,3000H;

SI中的值设为3000H

MOVAL,00H;

把AL清0

MOV[SI],AL;

把地址为3000H的空间清0给DEL初始化

MOV[SI+1],AL;

把地址为3001H的空间清0

MOV[SI+2],AL;

把地址为3002H的空间清0

MOV[SI+3],AL;

把地址为3003H的空间清0

MOVDI,3003H

BEGIN:

CALLDIS;

调用子程序DIS

CALLCLEAR;

调子程序CLEAR

JMPBEGIN;

无条件跳到BEGIN

MIR7:

STI;

置中断标志位IF

PUSHAX

PUSHSI

MOVAX,MSEC;

毫秒内容0给AX,并让其在AX中自增,

INCAX然后再传回到毫秒中

MOVMSEC,AX

CMPAX,2000AX中的数经过自增后变化了,用这个

JBMRET数与2000比较,如果低于2000跳到MRET

MOVAX,0

MOVMSEC,AX

MOVAL,SEC

ADDAL,1

DAA

MOVSEC,AL

CMPAL,60H

JBMTODIS

MOVAL,0

MOVAL,MIN

MOVMIN,AL

CMPAL,60H

JNZMTODIS

MOVAL,0

MOVMIN,AL

MTODIS:

MOVAL,SEC

MOVAH,AL

MOVSI,3000H

ANDAL,0FH

MOV[SI],AL

RORAH,1

ANDAH,0FH

MOV[SI+1],AH

MOV[SI+2],AL

MOV[SI+3],AH

MRET:

MOVAL,20H

OUT20H,AL;

中断结束命令

POPSI

POPAX

IRET

CLEAR:

MOVDX,MY8255_B

MOVAL,00H把00H写入8255的B口,使B口停止工作

OUTDX,AL

RET

DIS:

PUSHAX;

AX内容存在栈中

MOVSI,3000H

MOVDL,0F7H

MOVAL,DL

AGAIN:

PUSHDX;

内容入栈保存

MOVDX,MY8255_A把AL内容OF7H写入A口中

MOVAL,[SI]

MOVBX,OFFSETDTABLE

ANDAX,00FFH

ADDBX,AX

MOVAL,[BX]

MOVDX,MY8255_B把数据传到A口,再经过B口传出接DEL

OUTDX,AL段显示器

CALLDALLY

INCSI

POPDX

TESTAL,01H

JZOUT1

RORAL,1;

循环右移

MOVDL,AL

JMPAGAIN

OUT1:

POPAX

RET

DALLY:

PUSHCX;

延时过程

MOVCX,000FH

T1:

MOVAX,009FH

T2:

DECAX

JNZT2

LOOPT1

POPCX

RET

CODEENDS;

程序结束

ENDSTART

5设计原理流程图

6实际硬件电路接线图

系统的连线图主要由五个部分构成。

8259中断控制器、8254可编程时间间隔定时器、8255并口控制器、键盘及数码管显示单元、开关及LED显示单元构成。

如下图所示:

芯片8254系统总线芯片8255DEL数码管

D0PB0

D1PB1

D2PB2

D3PB3

D4PB4

D5PB5

D6PB6

D7PB7

WR

RDPA3

CSPA2

A0PA1

A1PA0

A

B

C

D

E

F

G

H

X1

X2

X3

X4

XD0

XD1

XD2

XD3

XD4

XD5

XD6

XD7

IOW#

WOR#

IOY3IOY0

XA1

XA2

PCLK

MIR7

+5V

D0

D1

D2

D3

D4

D5

D6

D7

WR

RD

CS

CLK0

OUT0

GATE0

设计总结

为期一周的微机原理课程设计在紧张的期末复习期间匆忙的结束了,时间虽然很短暂,但是我却收获了不少。

之前大半个学期的学习都是些理论知识,这次的课程设计才使我对微机原理的应用有了一次真正的感悟。

在本次设计的时候,我们已经学完了《微型计算机原理及应用》这本教材,所以对于微机原理的一些基础知识也有所掌握,但这离一个完整设计的距离还有很大的一步。

这次课设的题目是简单电子钟课程设计,为了更好的完成这次课程设计,我去图书馆查阅了很多相关资料,并对课本进行了一次重新的学习,这一切让我对微机原理知识有了进一步的认识,并丰富了我的相关知识。

我真的很庆幸我有机会着手设计这么一个题目,它所应用到的知识覆盖面很广,所以本次课程设计让我学习到了很多新的微机知识,并从中获益良多。

在刚开始设计的时候,我真的是一头雾水,不知道从何下手,于是就借来了以前学长的程序设计作个参考,我先将他们的程序设计看懂,然后再自己尝试着去设计。

首先应该画出硬件设计图,这个过程是基础,然后是流程图,这个是重点,流程图的完成在很大程度上等于程序的完成,然后是程序的编写。

在整个设计的过程中真的遇到了很多的困难,总有自己想不明白的问题,多亏了王老师的批评指正和我组热心的同学们对我的关心帮助,让我学到了正确的知识。

在这里,我要特别感谢你们!

这次设计让我收获了很多,既是对自己所学到的知识作一个肯定,也是对《微型计算机原理及应用》的复习,更主要的是通过设计增强了自己动手的能力。

在这次课程设计中涉及到很多芯片的应用,最大特点是软,硬件的结合,对动手能里的要求很大,设计完成后我的编程水平提高了一大步。

这次设计,更增加了我对微机原理的兴趣,为我将来的学习明确了目标。

令我遗憾的是,由于时间的限制以及自身能力的不足,我这次的设计方案没有任何的创新。

虽然我在设计的时候有很多想法想去尝试,并且参阅了大量的专业资料,然而最后都因为自身学识的不足而放弃,很遗憾。

但是,在这个设计的期间激发了我很多学习的乐趣,并准备在以后的课余时间多学习相关知识,多作这方面的研究,补全这次设计不足的遗憾。

最后,我认真地完成了课程设计的论文。

希望这次能取得好成绩!

致谢

一个星期的微机原理课程设计结束了,我很顺利的完成了本次课程设计的题目,这次课程设计的完成与很多人对我的关心帮助是密不可分的。

首先我要感谢王老师在为期一周的微机原理课程设计里为我的设计方案提供参考意见,指导我改正设计方案中的错误以及不厌其烦地解答我的问题。

使我得以最终完成这次课程设计的题目。

其次我要感谢同小组的同学在讨论中为我消除了很多疑惑,使我对电子钟的设计有了更清楚的思路。

再次我还要感谢上一届的学长学姐给我提供了一些设计思路作为参考以及大力的支持与鼓励。

最后要感谢学校图书馆为我们提供了很多实用的参考书籍和庞大的数字图书馆数据库。

谢谢你们!

参考文献

[1].周明德.《微型计算机系统原理与应用》(第四版).北京:

清华大学出版社,1998

[3].韩进宏.贾鹏《微型计算机原理与接口技术实验指导书》.北京:

机械工业出版社,1996

[5]王颐.《微机原理及应用实验教程》.重庆:

重庆大学出版社,1998

[6]潘峰.《微型计算机原理与汇编语言》.电子工业出版社,1997

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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