微机原理课程设计简单电子钟设计.doc
《微机原理课程设计简单电子钟设计.doc》由会员分享,可在线阅读,更多相关《微机原理课程设计简单电子钟设计.doc(19页珍藏版)》请在冰点文库上搜索。
微机原理课程设计:
简单电子钟设计
目录
课程设计任务书 I
微机原理及应用课程设计成绩评定表 IV
目录 I
中文摘要 II
一设计任务描述 1
1.1设计题目:
1
1.2设计目的 1
1.3设计要求 1
1.4电子时钟 2
二概要设计 3
2.1设计内容 3
2.2设计环境与器材 3
2.3电路原理与主要芯片功能 3
2.3.1电路原理 3
2.3.28255主要功能 4
2.3.38259主要功能 5
2.3.48254主要功能 6
三程序接线图及流程图 9
3.1实验接线图 9
3.2主程序流程图 9
四电子钟设计源程序 11
五总结体会 15
六致谢 16
七参考文献 17
中文摘要
计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。
微型计算机原理控制在这种情况下诞生了。
截止今日,微型计算机原理控制应用技术飞速发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开微型计算机原理控制。
微机控制即微型计算机原理控制。
是集CPU,RAM,ROM,定时,计数和多种接口于一体的微控制器。
它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。
这次毕业设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。
本文通过对一个基于微型计算机的能实现电子时钟的设计学习,详细介绍了微型计算机原理控制的应用中的数据转换显示,LED显示原理,微型计算机控制的定时中断原理。
从而达到学习、了解微机原理控制的相关指令在各方面的应用。
系统由8254、8255、8259等构成,能实现时钟显示的功能,能进行分、秒的显示。
文章后附有电路原理图,电路接线图和程序清单,以供读者参考。
因水平有限,难免有疏落不足之处,敬请老师和同学能给与批评指正。
关键字:
电子时钟、分频、定时中断原理、数据转换、LED显示
15
一设计任务描述
1.1设计题目:
简单电子钟设计
1.2设计目的
通过一个学期对《微型计算机原理及应用》学习,掌握的知识还停留在理论的上。
但是这是一门实践性较强的课程,让学生在学完该课程之后,进行一次课程设计,使学生将课堂所学的知识和实践有机结合起来,初步掌握计算机应用系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。
通过设计实践,培养学生查阅专业资料,工具书或参考书,了解有关工业标准,掌握现代设计手段和软件工具,并能以图纸和说明书表达设计思想和结果的能力。
通过设计,不但要培养和提高学生解决工程具体问题,动脑动手的技术工作能力,而且还要逐步建立科学正确的设计和科研思想,培养良好的设计习惯,牢固树立实事求是和严肃认真的工作态度。
具体要求如下:
1、中断工作原理,定时计数原理,并行通信原理工作原理。
2、掌握8259芯片,8254芯片,8255芯片功能,结构。
3、掌握8259芯片,8254芯片,8255芯片的编程。
4、能运用所提到的芯片,设计系统并进行程序开发,满足用户需求。
1.3设计要求
1、总体内容:
设计一电子时钟,能在数码管上显示时间并计时。
2、接口设计:
根据题目和所用的接口电路芯片设计出完整的接口电路,并在实验系统上完成电路的连接和调试通过.
3、程序设计:
要求画出程序框图,设计出全部程序并给出程序设计说明和程序注释。
4、前期完成的实验有:
8259A中断控制器实验,8254定时计数器实验,8255并行接口实验。
1.4电子时钟
电子时钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
传统的设计方法有两种,一是利用组合逻辑电路和时序电路等中小规模集成电路来设计;一是利用单片机编程技术来设计。
这两种设计都存在硬件复杂,设计周期长,成本高等缺点。
并且本学期通过对《微型计算机原理及应用》的学习,利用掌握的知识进行实践是必要的,以巩固基础知识,培养独立操作能力。
而本次课程设计要实现的功能为:
利用定时器从0开始进行计时,将计时的结果显示在数码管上。
每隔1秒,秒钟计时一次,到60秒,分钟加1,到60分小时加1。
根据需要,需选择的芯片有8254,8259,8255,系统时钟频率1.041667MHz;
二概要设计
2.1设计内容
本次课程设计的内容为电子时钟的设计与实现,利用定时器从0开始进行计时,将计时的结果显示在数码管上。
每隔1秒,秒钟计时一次,到60秒,分钟加1。
根据需要,需选择的芯片有8254,8259,8255,系统时钟频率1.041667MHz;
2.2设计环境与器材
(1)PC微机一台
用于对程序的编译测试等,同时还需要对实验设备进行控制,提供整个程序的运行平台,并且收集和释放硬件信号,实现程序功能。
(2)微机原理实验箱一台
此设备必须能提供8254、8255、8259和数码管等必要芯片。
并且能通过接受PC机传来的信息,显示出相应的功能。
以支持电子时钟的实现。
(8)导线若干条
用于电路和芯片之间的连接。
2.3电路原理与主要芯片功能
2.3.1电路原理
首先利用程序硬性规定分、秒的起始时间为零。
然后通过8254计时器分频,并将以分得的频率接通8259中断控制器,进而通过CPU响应可屏蔽中断达到按秒计时的效果。
具体做法是将四个七段管显示器接到两片可并行接口8255芯片上,以此来控制七段管显示器的位操作以及段操作。
并为之在数据段开辟一处空间,专门存放将要显示的数位代码。
8254计时器将由PC机给定的频率加以分频,得到的新频率加到8259中断控制器的中断请求输入端。
主程序为此可屏蔽中断设置专门的中断向量码。
CPU获取此中断向量码后转向待需解决的程序进行操作。
而这个程序便是整个主程序的心脏。
通过它将使电子钟的显示时间以秒为进位,达到秒、分的增加。
2.3.28255主要功能
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位、32位等。
用+5V单电源供电,能在以下三种方式下工作:
方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。
8255的内部结构及引脚如图2.1所示:
图2.1内部结构及引脚
8255工作方式控制字和C口按位置位/复位控制字格式如图2.2所示:
图2.2置位/复位控制字格式
2.3.38259主要功能
中断控制器8259是Intel公司专为控制优先级中断而设计开发的芯片。
它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。
同时,在不需增加其他电路的情况下,通过多片8259A的级连,能构成多达64级的矢量中断系统。
它的管理功能包括:
1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU传送中断类型号。
8259A的内部结构和引脚如图2.3所示:
图2.3内部结构和引脚
8259的命令共有7个,一类是初始化命令字,另一类是操作命令。
8259A的编程就是根据应用需要将初始化命令字ICW1-ICW4和操作命令字OCW1-OCW3分别写入初始化命令寄存器组和操作命令寄存器组。
OCW1-OCW3各命令字格式如图2.4所示,其中OCW1用于设置中断屏蔽操作字,OCW2用于设置优先级循环方式和中断结束方式的操作命令字,OCW3用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259内部寄存器的读出命令。
图2.4OCW1-OCW3各命令字格
2.3.48254主要功能
8254是Intel公司生产的可编程间隔定时器。
是8253的改进型,比8253具有更优良的性能。
8254具有以下基本功能:
●有3个独立的16位计数器;
●每个计数器可按二进制或十进制(BCD)计数;每个计数器可编程工作于6种不同工作方式;每个计数器允许的最高计数频率为10MHz;
●8254有读回命令,除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容。
●计数脉冲可以是有规律的时钟信号,也可以是随机信号。
计数初值公式为n=fCLKi÷fOUTi,其中fCLKi是输入时钟脉冲的频率,fOUTi是输出波形的频率。
图2.5内部结构框图和引脚图
上图是8254的内部结构框图和引脚图,它是由与CPU的接口、内部控制电路和三个计数器组成。
8254的工作方式如下述:
(1)方式0:
计数到0结束输出正跃变信号方式。
(2)方式1:
硬件可重触发单稳方式。
(3)方式2:
频率发生器方式。
(4)方式3:
方波发生器。
(5)方式4:
软件触发选通方式。
(6)方式5:
硬件触发选通方式。
8254的控制字有两个:
一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。
这两个控制字共用一个地址,由标识位来区分。
当读回控制字的D4位为0时,由该读回控制字D1~D2位指定的计数器的状态寄存器内容将被锁存到状态寄存器中。
状态字格式如图2.6所示:
图2.68254状态字格式
三程序接线图及流程图
3.1实验接线图
系统的连线图主要由五个部分构成。
8259中断控制器、8255并口控制器、8254定时计数器、键盘及数码管显示单元、开关及LED显示单元构成。
如下图所示:
芯片8254系统总线芯片8255LED数码管
D0PB0
D1PB1
D2PB2
D3PB3
D4PB4
D5PB5
D6PB6
D7PB7
WR
RDPA0
CSPA1
A0PA2
A1PA3
XD0
XD1
XD2
XD3
XD4
XD5
XD6
XD7
IOW#
IOR#
IOY3IOY0
XA1
XA2
Clk
Mir7
+5V
A
B
C
D
E
F
G
H
X1
X2
X3
X4
D0
D1
D2
D3
D4
D5
D6
D7
WR
RD
CS
A0
A1
CLK0
OUT0
GATE0
图3.4实验接线图
3.2主程序流程图
主程序的流程图是对整个程序的逻辑的图象表示。
首先是设置8254、8255、8259的各个端口地址。
接着初始化各个芯片,开始计时,并通过8259中断控制时间的正确显示。
在整个过程中都在检测是否有铵键响应。
有则停止,没有则返回继续执行。
图3.3系统实现流程图
四电子钟设计源程序
MY8255_AEQU0600H
MY8255_BEQU0602H
MY8255_CEQU0604H
MY8255_MODEEQU0606H
A8254EQU06C0H
B8254EQU06C2H
C8254EQU06C4H
CON8254EQU06C6H
SSTACKSEGMENTSTACK
DW32DUP(?
)
SSTACKENDS
DATASEGMENT
DTABLE DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH
MSEC DW0
SECDB0
MIN DB0
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,81H
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
MOVAX,DATA
MOVDS,AX
MOVSI,3000H
MOVAL,00H
MOV[SI],AL
MOV[SI+1],AL
MOV[SI+2],AL
MOV[SI+3],AL
MOVDI,3003H
BEGIN:
CALLDIS
CALLCLEAR
JMPBEGIN
MIR7:
STI
PUSHAX
PUSHSI
MOVAX,MSEC
INCAX
MOVMSEC,AX
CMPAX,1000
JBMRET
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
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
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
OUTDX,AL
RET
DIS:
PUSHAX
MOVSI,3000H
MOVDL,0F7H
MOVAL,DL
AGAIN:
PUSHDX
MOVDX,MY8255_A
OUTDX,AL
MOVAL,[SI]
MOVBX,OFFSETDTABLE
ANDAX,00FFH
ADDBX,AX
MOVAL,[BX]
MOVDX,MY8255_B
OUTDX,AL
CALLDALLY
INCSI
POPDX
MOVAL,DL
TESTAL,01H
JZOUT1
RORAL,1
MOVDL,AL
JMPAGAIN
OUT1:
POPAX
RET
DALLY:
PUSHCX
MOVCX,000FH
T1:
MOVAX,002FH
T2:
DECAX
JNZT2
LOOPT1
POPCX
RET
CODEENDS
ENDSTART
五总结体会
通过近一周的课程设计时间,课程设计的基本目的达到了。
另外还有很多其它有益的地方。
本系统完成了电子时钟的基本功能。
利用8254定时器从0开始进行计时,将计时的结果显示在数码管上。
每隔1秒,秒钟个位计时一次;到10秒,秒钟十位计时一次;到60秒,分钟个位计时一次;到10分,分钟十位计时一次。
数字变动信息通过8255送数码管显示。
期间通过8259中断控制器实现秒到分的转变,准确实现了计时。
随着科技的进步电子时钟的实现方法已经很多,由传统的物理实现转变到软件实现,而且起精确程度也大大的提高,且实现方法也越来越简单。
在这里是在学完了《微型计算机原理及应用》进行的课程设计,所以这里是基于微机原理的基础知识来实现电子时钟的,首先应该画出硬件设计图,这个过程是基础,然后是流程图,这个是重点,流程图的完成在很大程度上等于程序的完成,然后是程序的编写。
通过辅导老师的指导,同学们的相互帮助,我收获了很多,也通过设计增强了自己动手的能力,同时也对自己所学到的知识作一个肯定。
学好这门课程在自己今后的学习和工作中都有很大的作用,对自己以后的帮助也很大.这次课程设计给我的最大的印象就是如果自己有了兴趣,就动手去做,困难在你的勇气和毅力下是抬不了头的。
而在这次课程设计中,也是对《微型计算机原理及应用》的复习。
同时在设计中使我的编程水平提高了一大步,使我认识到合作的可贵。
这次设计涉及到很多芯片的应用,最大特点是软,硬件的结合,对动手能里的要求很大。
也使我更加的体会到,在一定程度和科技水平上,硬件和软件是可以实现对等转化的。
电子时钟的发展史就很好的诠释了这个过程。
从物理硬件实现到软件实现。
六致谢
在这个课程设计的过程中得到了XXX和XX老师的悉心指导。
两位老师都多次询问课程设计的进程,并为我们指点迷津,帮助我开拓解决问题思路,精心点拨、热忱鼓励。
老师们一丝不苟的作风,严谨求实的态度,踏踏实实的精神,不仅授我以文,而且教我如何付诸于实践,虽然只有短短一周的时间,却给以终生受益无穷之道。
对两位老师的感激之情是无法用言语表达的。
感谢学校对我们此次课程设计的大力支持,为我们安排了充分的时间使用学校的机房。
为我们安排了两位出色并且负责的老师来解答我们的疑虑。
最后我要感谢我们组的其他成员,也谢谢你们的支持,让我充分的体会到团队意识的重要性。
七参考文献
[1]李伯成等《微型计算机原理及应用》西安电子科技大学出版社,1998.5
[2]陈忠强《现代微机原理与接口技术》冶金工业出版社.2006年
[3]郭兰英《微机原理与接口技术》清华大学出版社.2006年
[4]西安唐都科教仪器公司《32位微机原理与接口技术实验教程》2005年
[5]西安唐都科教仪器公司《32位微机原理与接口技术用户手册》2005年
[6]胡汉才《微机原理与接口技术课程设计》[M]北京:
清华大学出版,1996
[7]付家才《微型计算机及其接口技术学习指导与题典》[M].北京:
化学工业出版社,2004.5
[8]潘新民《微型计算机控制技术》[M]北京:
人民邮电出版社,1999.9