电子钟课程设计报告微机原理与接口技术.docx

上传人:b****6 文档编号:7923856 上传时间:2023-01-27 格式:DOCX 页数:19 大小:90.66KB
下载 相关 举报
电子钟课程设计报告微机原理与接口技术.docx_第1页
第1页 / 共19页
电子钟课程设计报告微机原理与接口技术.docx_第2页
第2页 / 共19页
电子钟课程设计报告微机原理与接口技术.docx_第3页
第3页 / 共19页
电子钟课程设计报告微机原理与接口技术.docx_第4页
第4页 / 共19页
电子钟课程设计报告微机原理与接口技术.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

电子钟课程设计报告微机原理与接口技术.docx

《电子钟课程设计报告微机原理与接口技术.docx》由会员分享,可在线阅读,更多相关《电子钟课程设计报告微机原理与接口技术.docx(19页珍藏版)》请在冰豆网上搜索。

电子钟课程设计报告微机原理与接口技术.docx

电子钟课程设计报告微机原理与接口技术

课程设计报告

课程名称微机原理与接口技术

系别:

工程技术系

专业班级:

电子信息工程0901

学号:

09XXXXXX5

姓名:

XXX

课程题目:

电子钟的设计与制作

完成日期:

2011-12-23

*******

2011年12月23日

课程设计目的

1、熟悉唐都试验箱,掌握试验箱各个模块的使用方法。

2、掌握微机常用的输入输出方式及接口技术。

3、掌握一定的汇编语言知识,培养自己的动手操作能力。

4、学习程序设计的基本思路和方法。

5、利用现在的实验器材和软件平台,进行实验的调试,实现电子钟的各项功能要求,如动态显示实时时钟的时/分/秒数据。

课程设计要求

利用8254定时器设计一个具有分、秒显示的电子时钟,并定义一个启动键,当按下该键时时钟从当前设定值(可在显示,缓冲区中予置)开始走时。

利用微机原理试验箱的数码管显示单元,把时间显示在LED数码管上。

课程设计注意事项

1、编写代码时应注意代码的准确性。

2、正确的在试验箱上安装各芯片,注意其引脚是否正确。

3、在更换芯片时应用起子从芯片两端轻轻翘起。

4、连接完电路时要检查电路是否正确。

5、测试试验箱是否与pc机相连。

6、验证代码的正确性,发现问题。

课程设计内容

选用8253计数器2进行1s的定时,其输出OUT1与8259的IRQ0相连,当定时到1s时产生一个中断服务程序进行时、分、秒的计数,并送入相应的存储单元;8255的A口接七段数码管的位选信号,B口接数码管的段选信号。

时、分、秒的数值通过对8255的编程可送到七段数码管上显示。

课程设计简要操作步骤

1、了解电子钟的工作原理

2、画出电路原理图

3、根据原理图编写代码

4、连接电路图

5、将试验箱与pc机相连

6、植入代码,检查代码的正确性

7、反复检验,寻找问题,解决问题

8、撰写实验报告、实验过程及实验心得体会

9、完成实验

课程设计心得体会

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

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

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

同时加深了对相关理论知道及专业知识的掌握度,锻炼及提高了理解问题,分析问题,解决问题的饿能力,更深刻的体会到了理论联系实际的重要性。

课程设计评语及成绩

评语

成绩

指导教师

 

年月日

摘要1

关键词2

一、概述2

1.1设计目的2

1.2设计要求2

1.3设计内容3

1.4设计思想3

二、设计与制作4

2.1设计原理4

2.2硬件电路设计5

2.3程序流程图8

三、结果分析9

四、结论与展望9

五、心得体会及建议10

致谢11

参考文献12

电子钟的设计与制作

摘要:

微机控制即微型计算机原理控制。

是集CPU,RAM,ROM,定时,计数和多种接口于一体的微控制器。

它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。

微型计算机原理控制应用技术飞速发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡,电子宠物等,这些都离不开微型计算机原理控制。

我们组本次设计的题目是简单电子钟程序设计,用到了定时芯片8254,中断控制器8259和可编程并行芯片8255。

在编辑1毫秒定时程序时,用到了中断控制器8259。

此程序主要由四部分组成:

第一部分为最主要的部分定义显示界面;

第二部分为利用延时程序,并将调用的二进制表示的时间数转换成ASCII码,并将时间数存入内存区;

第三部分将存在系统内存区的时间数用七段数码管显示出来;

第四部分利用循环程序分别对秒个位、秒十位、分个位、分十位与相应的规定值进行比较,结合延时程序来实现电子钟数字的跳变,从而形成走时准确的电子钟。

该程序实现了准确显示秒和分,读数准确,走时精准。

此电子钟能准确的从0分0秒走时到59分59秒,然后能自动回复到0分0秒循环走时。

关键词:

可编程并行芯片8255定时芯片8254中断控制器8259延时计数比较定时中断七段数码显示管

一、概述

1.1设计目的

通过本次课程设计学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。

通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使设计者的设计水平和对所学知识的应用能力以及分析问题解决问题的能力得到全面提高。

1.1.1熟练掌握8086/88教学系统的基本操作和调试程序的各种指令。

1.1.2掌握8259中断控制器的工作原理和应用编程方法,练习编写中断程序的方法。

1.1.3掌握8255的各种工作方式及其应用编程。

1.1.4掌握8253定时/计数器的工作原理、工作方式及其应用编程。

1.1.5熟悉编程及调试程序的方法。

1.2设计要求

利用8259A中断控制器、8253定时/计数器、8255A接口芯片以及键盘和数码显示电路,设计一个电子时钟,由8253中断定时,小键盘控制电子时钟的启停及初始值的预置。

电子时钟的显示格式HH:

MM:

SS由左到右分别为时、分、秒,最大记时59:

59:

59超过这个时间时分秒位都清零从00:

00:

00重新开始。

1.3设计内容

选用8253计数器2进行1s的定时,其输出OUT1与8259的IRQ0相连,当定时到1s时产生一个中断服务程序进行时、分、秒的计数,并送入相应的存储单元;8255的A口接七段数码管的位选信号,B口接数码管的段选信号。

时、分、秒的数值通过对8255的编程可送到七段数码管上显示。

1.4设计思想

1.4.1在主程序中要分别对8253、8259、8255进行初始化编程,8253的计数器2可在方式0下工作。

1.4.28255的A口、B口都设为方式0,为基本的输入输出方式。

1.4.3在中断服务程序中对中断次数进行统计,当满10次时就进行一次时、分、秒的处理。

时、分、秒分别对应6个存储单元,分别存放时、分、秒的十位和个位。

当中断次数满10次时,将秒的个位加1,同理对分,时亻相应处理。

1.4.4七段数码管显示作为子程序,将时、分、秒对应存储单元的内容分别取出并转换成相应的段码,从8255的B口输出,A口输出对应位的位选信号,延时后进行下一位的显示。

 

二、设计与制作

2.1设计原理

基本工作原理:

系统设计的电子时钟主要由显示模块、时钟控制模块和时钟运算模块三大部分组成。

以8086微处理器作CPU,用8253做定时器产生时钟频率提供一个频率为10kHz的时钟信号,要求每隔10ms完成一次扫描键盘的工作。

在写入控制字与计数初值后,每到10ms定时器就启动工作,即当计数器减到1时,输出端OUT0输出一个CLK周期的低电平,向CPU申请中断,当达到100次时,则输出端OUT1输出1s,向CPU申请中断,由8255控制一个数码管显示,当计数到60s时,则输出端OUT2向CPU申请中断,由另一数码管显示1min,同理由数码管显示1h.CPU处理,使数码管的显示发生变化。

本设计由8259A中断控制器、8253定时/计数器、8255A接口芯片、LED数码显示管和两个按键组成。

主要用8259A的IRQ7的中断服务程序完成秒、分、时的运算即计时功能,IRQ6的中断服务程序完成调时、调分功能。

8253用来产生50ms的脉冲信号作为IRQ7的中断请求信号。

按键KK1+和KK2+分别作为IRQ2和IRQ6的中断请求信号。

按键KK1+启动/关闭对时功能。

它决定是否屏蔽IRQ7和IRQ6中断源。

8255A负责将内存里的时位和分位值输出到数码管。

电子时钟的显示格式HH:

MM:

SS由左到右分别为时、分、秒,每百分之一秒对百分之一秒寄存器的内容加一,并依次对秒、分、小时寄存器的内容加一,六个数码管动态显示时、分、秒的当前值。

最大记时59:

59:

59超过这个时间时分秒位都清零从00:

00:

00重新开始。

2.2硬件电路设计

2.2.18259芯片介绍

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

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

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

同时,在不需要增加其他电路的情况下,通过多片8259A的级连,能构成多达64级的矢量中断系统。

8259A的主要功能如下:

8259芯片

①一片8259A可以接受并管理8级可屏蔽中断请求,通过9片8259A级联可扩展至64级可屏蔽中断优先控制。

②对每一级中断都可以通过程序来屏蔽或允许。

③在中断响应周期,8259A可为CPU提供相应的中断类型码。

④具有多种工作方式,并可通过编程来加以选择。

通过初始化编程向8259A写入相应的初始化命令ICW,可以使芯片处于一个规定的基本工作方式,并在此方式下进行工作。

8259A的初始化命令字共有4个ICW1-ICW4,进行初始化时要求ICW1-ICW4按一定的顺序写入。

2.2.28253芯片介绍

8253芯片

8253是NMOS工艺制成的可编程计数器/定时器,有几种芯片型号,外形引脚及功能都是兼容的,只是工作的最高计数速率有所差异,例如8253(2.6MHz),8253-5(5MHz)8253内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全相同。

每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立。

每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。

每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。

2.2.38255芯片介绍

8255特性:

①一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口.

②具有24个可编程设置的I/O口,即使3组8位的I/O口为PA口,PB口和PC口.它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3).A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定.

8255引脚功能:

RESET:

复位输入线,CS:

芯片选择信号线,RD:

读信号线,WR:

写入信号,D0~D7:

三态双向数据总线,PA0~PA7:

端口A输入输出线,PB0~PB7:

端口B输入输出线,PC0~PC7:

端口C输入输出线,A0,A1:

地址选择线

2.3程序流程图

显示模块流程图:

 

三、结果分析

最后,我们得到了预期的结果,电路能完成准确的硬件定时和显示。

在一开始的连线中,因为粗心,没有把片选信号连正确,后来参考了网上的一些资料,仔细的盘查,才发现了错误,在实验过程中有些实验箱也可能会存在一些问题,有时可以换个实验箱解决问题

四、结论与展望

将编写好的源程序输入,编译后出现很多错误,经过反复修改直到程序运行通过。

将生成的可执行程序装入TND86/88的内存里,在监控状态下运行程序,可是数码管显示的数字并不与理论计算值相符合,并且显示的数字不停地闪动,经过反复分析源程序发现问题出现在内存单元里时位和分位在转化为十进制时,存储转化的结果的地址空间的顺序弄混了。

数字闪动的原因应该出在显示子程序里,经过分析问题出在显示子程序里缺少延时程序。

编写延时子程序,并在显示子程序调用它;编译源程序,装入生成的可执行文件,并运行。

数码管显示的数字与理论值相符合,并能正常计时,但当按动KK1+键时,却不能启动对时功能,按动KK2+时,也不能调时、调分。

问题很可能出在两键控制的中断源上,检查源程序也找不出错误,当把IRQ5换成IRQ2后,在进行调试,结果成功。

五、心得体会及建议

经过一周努力,在指导老师和同学的帮助下,终于如期完成了该电子时钟的课程设计。

当然在课程设计的过程中遇到了许多问题,但是经过查阅有关资料和向老师、同学请教后,还是一一解决了。

首先,通过这次课程设计使使我在课堂中学到的东西充分的融入到实践当中。

我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

其次,通过本次设计,我系统的了解了时钟的设计流程,尤其是硬、软件的设计方法,掌握了显示电路的基本功能及编程方法,掌握了显示电路的一般原理。

开拓了思路,锻炼了实践动手能力,提高了分工协作能力和分析问题,解决问题的能力,达到了本次课程设计的目的。

最后,通过该课程设计,我进一步的熟悉了可并行通信接口8255、计数器/定时器8253及中断控制器8259处理器程序的编程方法的编程原理和7段LED数码管显示器的工作原理,为以后独立的设计系统提供了丰富的实践经验。

以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

本次课程设计完成了实时时钟的设计到实现的全部过程,结果满足设计要求,设计主要用到了8255,8253,8259和三个芯片,程序也比较长比较麻烦,同时也遇到了不少困难。

系统设计的开始几天的时间,没有什么大的进展,仅仅是初始界面就调试了很长时间才成功,当8253定时/计数器来做其中的秒定时模块时,因为8253所能提供的信号的周期是毫秒级的,因此必须通过软件的方法在运算模块中设置一个统计中断次数的变量,并且这一变量必须事先在内存里开辟存储单元,所以就要求在写程序时就要有明确的思路。

关于显示模块和对时模块,在了解LED、8259、8253的功能和用法后,问题很容易解决。

以后的几天的时间开始调中断程序,程序中一旦有了中断,调试就困难了,调中断调了好几天,难度挺大的,任何一个初始化的失误都可能使你的程序不正常,在多次调试之后,终于完成了该部分的调试工作。

参考文献

[1]杨立,邓振杰,荆淑霞等编著.微型计算机及接口技术(第三版).中国铁道出版社

附录:

程序清单:

MY8255_AEQU0600H

MY8255_BEQU0602H

MY8255_CEQU0604H

MY8255_CONEQU0606H

A8254EQU06C0H

B8254EQU06C2H

C8254EQU06C4H

CON8254EQU06C6H

DATASEGMENT

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

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

DATAENDS

SSTACKSEGMENTSTACK

DW200DUP(?

SSTACKENDS

CODESEGMENT

ASSUMECS:

CODE,SS:

SSTACK,DS:

DATA

START:

PUSHDS

MOVAX,0000H

MOVDS,AX

MOVAX,OFFSETIRQ7;取中断入口地址

MOVSI,003CH;中断矢量地址

MOV[SI],AX;填IRQ7的偏移矢量

MOVAX,CS;段地址

MOVSI,003EH

MOV[SI],AX;填IRQ7的段地址矢量

CLI

POPDS

MOVAX,DATA

MOVDS,AX

MOVCX,03H

MOVDI,3000H

MOVAL,00H

LP:

MOV[DI],AL

INCDI

LOOPLP

;MOVDI,3003H

MOVSI,4000H

MOVAL,00H

MOV[SI],AL;清显示缓冲

MOV[SI+1],AL

MOV[SI+2],AL

MOV[SI+3],AL

MOV[SI+4],AL

MOV[SI+5],AL

MOVSI,4000H

MOVAL,11H

OUT20H,AL

MOVAL,08H

OUT21H,AL

MOVAL,04H

OUT21H,AL

MOVAL,01H

OUT21H,AL

MOVAL,6FH

OUT21H,AL

MOVDX,CON8254

;MOVAL,30H;计数器0,方式0

MOVAL,36H;计数器0,方式3,产生50ms方波

OUTDX,AL

MOVDX,A8254;计数初值为3E8H=1000,产生1ms中断

MOVAL,50H;c350H=50000,产生50ms

OUTDX,AL

MOVAL,0c3H

OUTDX,AL

MOVDX,CON8254

MOVAL,50H;计数器1,方式0

OUTDX,AL

MOVDX,B8254;计数初值为3E8H=1000,产生1ms中断

MOVAL,20H;c350H=50000,产生50ms中断

OUTDX,AL

MOVDX,MY8255_CON;写8255控制字

MOVAL,81H

OUTDX,AL

STI

AA1:

CALLDIS;调用显示子程序

JMPAA1

DIS:

PUSHAX

MOVSI,4000H

MOVDL,0DFH

MOVAL,DL

AGAIN:

PUSHDX

MOVDX,MY8255_A

OUTDX,AL;selectfirstseg

MOVAL,[SI]

MOVBX,OFFSETDTABLE

XLAT

MOVDX,MY8255_B

OUTDX,AL

CALLDALLY

INCSI

POPDX

MOVAL,DL

TESTAL,01H

JZOUT1

RORAL,1

MOVDL,AL

JMPAGAIN

OUT1:

POPAX

RET

DALLY:

PUSHCX

MOVCX,0005H

T1:

MOVAX,0010H

T2:

DECAX

JNZT2

LOOPT1

POPCX

RET

IRQ7:

PUSHAX

MOVDX,B8254;重装计数初值

MOVAL,20H

OUTDX,AL

;MOVAX,0173H

;INT10H;显示字符s

;;SECOND

MOVDI,3000H

MOVDL,[DI]

MOVAH,00H

MOVAL,DL

MOVBL,10

DIVBL

MOVBH,AH;AH保存余数,al保存商

MOVBL,AL;

MOVSI,4001H;4000H内存单元保存秒的十位

MOV[SI],AL

ORAL,30H;ADD30H

MOVAH,01H

INT10H

MOVAL,BH

MOVSI,4000H;4001H内存单元保存秒的个位

MOV[SI],AL

ORAL,30H;ADD30H

MOVAH,01H

INT10H

MOVAX,0120H;20h=空格

INT10H

MOVDI,3000H

MOVDL,[DI]

INCDL

MOV[DI],DL

CMPDL,60

JLNEXT1

MOVDL,00H

MOVDI,3000H

MOV[DI],DL

MOVDI,3001H

MOVDL,[DI]

INCDL

MOV[DI],DL;SAVEUPDATEMINUTE

MOVAH,00H

MOVAL,DL

MOVBL,10

DIVBL

MOVBH,AH;AH保存余数,al保存商

MOVBL,AL;

MOVSI,4003H;4000H内存单元保存秒的十位

MOV[SI],AL

ORAL,30H;ADD30H

MOVAH,01H

INT10H

MOVAL,BH

MOVSI,4002H;4001H内存单元保存秒的个位

MOV[SI],AL

ORAL,30H;ADD30H

MOVAH,01H

INT10H

MOVAX,0120H;20h=空格

INT10H

MOVDI,3001H

MOVDL,[DI]

CMPDL,60

JLEXIT

MOVDL,00H;CLEARMINUTE

MOV[DI],DL

JMPAA

NEXT1:

JMPEXIT

AA:

MOVDI,3002H

MOVDL,[DI]

INCDL

MOV[DI],DL

MOVAH,00H

MOVAL,DL

MOVBL,10

DIVBL

MOVBH,AH;AH保存余数,al保存商

MOVBL,AL;

MOVSI,4005H;4000H内存单元保存秒的十位

MOV[SI],AL

ORAL,30H;ADD30H

MOVAH,01H

INT10H

MOVAL,BH

MOVSI,4004H;4001H内存单元保存秒的个位

MOV[SI],AL

ORAL,30H

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

当前位置:首页 > 高等教育 > 工学

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

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