微机原理课程设计电子钟.docx
- 文档编号:5348415
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:16
- 大小:97.10KB
微机原理课程设计电子钟.docx
《微机原理课程设计电子钟.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计电子钟.docx(16页珍藏版)》请在冰豆网上搜索。
微机原理课程设计电子钟
摘要
微机控制即微型计算机原理控制。
是集CPU,RAM,ROM,定时,计数和多种接口于一体的微控制器。
它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。
微型计算机原理控制应用技术飞速发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡,电子宠物等,这些都离不开微型计算机原理控制。
我们组本次设计的题目是简单电子钟程序设计,用到了定时芯片8254,中断控制器8259和可编程并行芯片8255。
在编辑1毫秒定时程序时,用到了中断控制器8259。
此程序主要由四部分组成:
第一部分为最主要的部分定义显示界面;
第二部分为利用延时程序,并将调用的二进制表示的时间数转换成ASCII码,并将时间数存入内存区;
第三部分将存在系统内存区的时间数用七段数码管显示出来;
第四部分利用循环程序分别对秒个位、秒十位、分个位、分十位与相应的规定值进行比较,结合延时程序来实现电子钟数字的跳变,从而形成走时准确的电子钟。
该程序实现了准确显示秒和分,读数准确,走时精准。
此电子钟能准确的从0分0秒走时到59分59秒,然后能自动回复到0分0秒循环走时。
关键词:
可编程并行芯片8255定时芯片8254中断控制器8259
七段数码显示管延时计数比较定时中断
1设计任务描述
1.1设计题目
简单电子钟设计
1.2设计内容
利用微机原理试验箱的发光数码管显示单元,把时间显示在LED数码管上。
1.2.1设计目的
通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。
通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。
为以后学生结合专业从事微机应用设计奠定基础
1.2.2设计要求
利用8254定时器设计一个具有分、秒显示的电子时钟,并定义一个启动键,当按下该键时时钟从当前设定值(可在显示,缓冲区中予置)开始走时。
利用微机原理试验箱的发光数码管显示单元,把时间显示在LED数码管上。
基本要求:
(1)走时准确。
(2)显示无误。
1.2.3设计发挥
(1)延时
(2)显示小时
1.3设计环境与器材
(1)PC微机一台
用于对程序的编译测试等,同时还需要对实验设备进行控制,提供整个程序的运行平台,并且收集和释放硬件信号,实现程序功能。
(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
0
计数器0
0
1
计数器1
1
0
计数器2
1
1
控制寄存器
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
MOV[SI],AX;填IRQ7的段地址矢量
CLI;清除中断标志
POPDS;出栈
;初始化主片8255
MOVDX,MY8255_MODE
MOVAL,80H
OUTDX,AL
;初始化主片8254
MOVDX,CON8254
MOVAL,36H
OUTDX,AL
MOVDX,A8254
MOVAL,0E8H
OUTDX,AL
MOVAL,03H
OUTDX,AL
;初始化主片8259
MOVAL,11H
OUT20H,AL;ICW1
MOVAL,08H
OUT21H,AL;ICW2
MOVAL,04H
OUT21H,AL;ICW3
MOVAL,01H
OUT21H,AL;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
MOVSEC,AL
MOVAL,MIN
ADDAL,1
DAA
MOVMIN,AL
CMPAL,60H
JNZMTODIS
MOVAL,0
MOVMIN,AL
MTODIS:
MOVAL,SEC
MOVAH,AL
MOVSI,3000H
ANDAL,0FH
MOV[SI],AL
RORAH,1
RORAH,1
RORAH,1
RORAH,1
ANDAH,0FH
MOV[SI+1],AH
MOVAL,MIN
MOVAL,MIN
MOVAH,AL
ANDAL,0FH
MOV[SI+2],AL
RORAH,1
RORAH,1
RORAH,1
RORAH,1
ANDAH,0FH
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口中
OUTDX,AL
MOVAL,[SI]
MOVBX,OFFSETDTABLE
ANDAX,00FFH
ADDBX,AX
MOVAL,[BX]
MOVDX,MY8255_B把数据传到A口,再经过B口传出接DEL
OUTDX,AL段显示器
CALLDALLY
INCSI
POPDX
MOVAL,DL
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
A0
A1
CLK0
OUT0
GATE0
设计总结
为期一周的微机原理课程设计在紧张的期末复习期间匆忙的结束了,时间虽然很短暂,但是我却收获了不少。
之前大半个学期的学习都是些理论知识,这次的课程设计才使我对微机原理的应用有了一次真正的感悟。
在本次设计的时候,我们已经学完了《微型计算机原理及应用》这本教材,所以对于微机原理的一些基础知识也有所掌握,但这离一个完整设计的距离还有很大的一步。
这次课设的题目是简单电子钟课程设计,为了更好的完成这次课程设计,我去图书馆查阅了很多相关资料,并对课本进行了一次重新的学习,这一切让我对微机原理知识有了进一步的认识,并丰富了我的相关知识。
我真的很庆幸我有机会着手设计这么一个题目,它所应用到的知识覆盖面很广,所以本次课程设计让我学习到了很多新的微机知识,并从中获益良多。
在刚开始设计的时候,我真的是一头雾水,不知道从何下手,于是就借来了以前学长的程序设计作个参考,我先将他们的程序设计看懂,然后再自己尝试着去设计。
首先应该画出硬件设计图,这个过程是基础,然后是流程图,这个是重点,流程图的完成在很大程度上等于程序的完成,然后是程序的编写。
在整个设计的过程中真的遇到了很多的困难,总有自己想不明白的问题,多亏了王老师的批评指正和我组热心的同学们对我的关心帮助,让我学到了正确的知识。
在这里,我要特别感谢你们!
这次设计让我收获了很多,既是对自己所学到的知识作一个肯定,也是对《微型计算机原理及应用》的复习,更主要的是通过设计增强了自己动手的能力。
在这次课程设计中涉及到很多芯片的应用,最大特点是软,硬件的结合,对动手能里的要求很大,设计完成后我的编程水平提高了一大步。
这次设计,更增加了我对微机原理的兴趣,为我将来的学习明确了目标。
令我遗憾的是,由于时间的限制以及自身能力的不足,我这次的设计方案没有任何的创新。
虽然我在设计的时候有很多想法想去尝试,并且参阅了大量的专业资料,然而最后都因为自身学识的不足而放弃,很遗憾。
但是,在这个设计的期间激发了我很多学习的乐趣,并准备在以后的课余时间多学习相关知识,多作这方面的研究,补全这次设计不足的遗憾。
最后,我认真地完成了课程设计的论文。
希望这次能取得好成绩!
致谢
一个星期的微机原理课程设计结束了,我很顺利的完成了本次课程设计的题目,这次课程设计的完成与很多人对我的关心帮助是密不可分的。
首先我要感谢王老师在为期一周的微机原理课程设计里为我的设计方案提供参考意见,指导我改正设计方案中的错误以及不厌其烦地解答我的问题。
使我得以最终完成这次课程设计的题目。
其次我要感谢同小组的同学在讨论中为我消除了很多疑惑,使我对电子钟的设计有了更清楚的思路。
再次我还要感谢上一届的学长学姐给我提供了一些设计思路作为参考以及大力的支持与鼓励。
最后要感谢学校图书馆为我们提供了很多实用的参考书籍和庞大的数字图书馆数据库。
谢谢你们!
参考文献
[1].周明德.《微型计算机系统原理与应用》(第四版).北京:
清华大学出版社,1998
[3].韩进宏.贾鹏《微型计算机原理与接口技术实验指导书》.北京:
机械工业出版社,1996
[5]王颐.《微机原理及应用实验教程》.重庆:
重庆大学出版社,1998
[6]潘峰.《微型计算机原理与汇编语言》.电子工业出版社,1997
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 课程设计 电子钟