基于Proteus的简易机械时钟的设计和仿真.docx

上传人:b****2 文档编号:17666861 上传时间:2023-07-27 格式:DOCX 页数:21 大小:114.47KB
下载 相关 举报
基于Proteus的简易机械时钟的设计和仿真.docx_第1页
第1页 / 共21页
基于Proteus的简易机械时钟的设计和仿真.docx_第2页
第2页 / 共21页
基于Proteus的简易机械时钟的设计和仿真.docx_第3页
第3页 / 共21页
基于Proteus的简易机械时钟的设计和仿真.docx_第4页
第4页 / 共21页
基于Proteus的简易机械时钟的设计和仿真.docx_第5页
第5页 / 共21页
基于Proteus的简易机械时钟的设计和仿真.docx_第6页
第6页 / 共21页
基于Proteus的简易机械时钟的设计和仿真.docx_第7页
第7页 / 共21页
基于Proteus的简易机械时钟的设计和仿真.docx_第8页
第8页 / 共21页
基于Proteus的简易机械时钟的设计和仿真.docx_第9页
第9页 / 共21页
基于Proteus的简易机械时钟的设计和仿真.docx_第10页
第10页 / 共21页
基于Proteus的简易机械时钟的设计和仿真.docx_第11页
第11页 / 共21页
基于Proteus的简易机械时钟的设计和仿真.docx_第12页
第12页 / 共21页
基于Proteus的简易机械时钟的设计和仿真.docx_第13页
第13页 / 共21页
基于Proteus的简易机械时钟的设计和仿真.docx_第14页
第14页 / 共21页
基于Proteus的简易机械时钟的设计和仿真.docx_第15页
第15页 / 共21页
基于Proteus的简易机械时钟的设计和仿真.docx_第16页
第16页 / 共21页
基于Proteus的简易机械时钟的设计和仿真.docx_第17页
第17页 / 共21页
基于Proteus的简易机械时钟的设计和仿真.docx_第18页
第18页 / 共21页
基于Proteus的简易机械时钟的设计和仿真.docx_第19页
第19页 / 共21页
基于Proteus的简易机械时钟的设计和仿真.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于Proteus的简易机械时钟的设计和仿真.docx

《基于Proteus的简易机械时钟的设计和仿真.docx》由会员分享,可在线阅读,更多相关《基于Proteus的简易机械时钟的设计和仿真.docx(21页珍藏版)》请在冰点文库上搜索。

基于Proteus的简易机械时钟的设计和仿真.docx

基于Proteus的简易机械时钟的设计和仿真

 

课程论文

 

题目:

基于Proteus的简易机械时钟的

设计和仿真

 

电子工程学院制

2015年5月

基于Proteus的简易机械时钟的设计和仿真

摘要:

随着社会的发展,LED灯的运用也越来越广泛,本文针对当今社会使用LED灯较为广泛的情况下,在缺少利用LED灯做一些生活中的小工具的背景下,提出利用单片机AT89C52微处理器作为主控元件设计LED机械时钟,实现了LED灯的运用进入平常生活中,达到了实现准点报时的时钟功能,并通过proteus仿真软件仿真其工作过程,验证机械时钟设计的可靠性,达到了设计目的。

对后继LED的发展进入民用阶段,及LED在民间的普及有很大的促进作用。

关键词:

单片机AT89C52,LED点阵,机械时钟。

前言:

本文针对当今社会使用LED灯较为广泛的情况下,在缺少利用LED灯做一些生活中的小工具的背景下,提出利用单片机AT89C52微处理器作为主控元件设计LED机械时钟,实现了LED灯的运用进入平常生活中,达到了实现准点报时的时钟功能,并通过proteus仿真软件仿真其工作过程,验证机械时钟设计的可靠性,达到了设计目的。

1绪论

1.1LED机械时钟的背景

在大型商场、车站、码头、地铁站以及各类办事窗口越来越多的场所需用LED点阵显示图形和汉字。

LED行业已成为一个快速发展的新兴产业,市场空间巨大,前景广阔。

随着信息产业的高速发展,LED显示作为信息传播的一种重要手段,已广泛应用于室内外需要进行服务内容和服务宗旨宣传的公共场所,例如户内外公共场所广告宣传、机场车站旅客引导信息、公交车辆报站系统、证劵与银行信息显示、餐馆报价信息显示、高速公路可变情报板、体育场馆比赛转播、楼宇灯饰、交通信号、景观照明等。

显然,LED显示已成为城市亮化、现代化和信息化社会的一个重要标志。

1.2LED机械时钟国内的研究现状

在国内,绝大部分学者都用数码管或液晶显示屛做研究,应为那样他们觉得那样比较方便,简洁。

但是通过这么多的广告牌和LED的迅猛发张,我们就知道其实采用LED点阵做一些研究也是很方便的。

所以我希望通过这次设计LED机械时钟来尝试一下创新。

1.3LED机械时钟国外的研究现状

在国外,LED的发展也是迅猛,LED的发展已经成为一个信息化社会的标志,国外LED的设计也是很多,眼花缭乱,但是用LED实现设计机械时钟的还是比较少见的,同样数码管和液晶显示屏还是使用的比较多的,同样传统的时钟也是比较重要的一个方面。

1.4LED机械时钟的应用领域及发展

随着信息产业的高速发展,LED显示作为信息传播的一种重要手段,已广泛应用于室内外需要进行服务内容和服务宗旨宣传的公共场所,例如户内外公共场所广告宣传、机场车站旅客引导信息、公交车辆报站系统、证劵与银行信息显示、餐馆报价信息显示、高速公路可变情报板、体育场馆比赛转播、楼宇灯饰、交通信号、景观照明等。

显然,LED显示已成为城市亮化、现代化和信息化社会的一个重要标志。

2设计任务和要求

用AT89C52单片机作为控制器件设计一个简易的机械时钟,机械时钟的工作过程要和现实生活中的时钟一样或者类似,机械时钟能够体现现实生活中的时间。

用不同长度的指针指示不同的时间。

2.1仿真软件介绍

本次课程设计所用的仿真软件是KeiluVision4,它是KeilSoftware公司推出的一款可用于多种8051MCU的集成开发环境(IDE),该IDE同时也是PK51及其它开发套件的一个重要组件。

除增加了源代码、功能导航器、模板编辑以及改进的搜索功能外,uVision4还提供了一个配置向导功能,加速了启动代码和配置文件的生成。

此外其内置的仿真器可模拟目标MCU,包括指令集、片上外围设备及外部信号等。

uVision4提供逻辑分析器,可监控基于MCUI/O引脚和外设状态变化下的程序变量。

它还提供对多种最新的8051类微处理器的支持,包括AnalogDevices的ADuC83x和ADuC84x,以及Infineon的XC866等。

3.方案设计及论证[1][6]

方案一:

本方案采用AT89C52单片机作为控制器件,用液晶显示器LCD12864作为显示器件。

通过取字模软件可以取出机械时钟需要的数据,把数据烤到单片机中,然后通过单片机控制LCD12864就可以显示时钟了,其相比与LED点阵操作简单,但不利于理解,价格相对于LED点阵较高点,其系统框图如下。

图1方案二:

本方案采用AT89C52单片机作为控制器件,用LED点阵作为显示器件。

通过控制LED点阵中各个点的点亮来显示时钟,控制过程清晰,易于理解,其系统框图如下。

图2

通过以上综合分析可以看出,方案二具有综合设计优点,因此机械时钟设计采用方案二的设计思路。

4硬件单元电路设计

4.1单片机最小系统[10]

单片机最小系统包括时钟电路、复位电路和主控制系统。

时钟电路是时钟电路由一个晶体振荡器12MHZ和两个30pF的瓷片电容组成。

时钟电路用于产生单片机工作所需要的时钟信号,而时序所研究的是指令执行中各信号之间的相互关系。

单片机本身就如一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地工作。

复位电路是使单片机的CPU或系统中的其他部件处于某一确定的初始状态,并从这状态开始工作,除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位电路以重新启动。

本设计采用的是按键复位电路。

主控制器采用AT89S52,是ATMEL公司生产的一款性能稳定的8位单片机。

AT89S52具有1个8KB的FLASH程序存储器,1个512字节的RAM,4个8位的双向可位寻址I/O端口,3个16位定时/计数器及1个串行口和6个向量二级中断结构。

其最小系统电路图如下:

图3

4.2特殊器件的介绍

(1)单片机的定时器[2][3]

MCS-51系列的单片机一般有两个内部的16位定时器/计数器,分别称为T0和T1。

这两个计数器分别是两个8位的RAM单元组成的,即每个计数器都是16位的计数器,最大的计数量是65536.

那么这个定时器/计数器是如何产生定时作用的呢?

例如:

如果将时钟定时到1分钟,那么秒针计数到60次,时钟闹铃就会响。

这里有个计数和定时之间的概念转化,时间表示为秒针的计数值,即秒针每一次走动的时间正好是1s。

单片机中定时器和计数器是复用的,计数器是记录外部脉冲的个数,而定时器则是出单片机提供的一个非常稳定的计数源。

定时器是又单片机的晶振经过12分频后获得的一个脉冲源。

当单片机的晶振为12MHz时,计数值为1代表的时间就是1us。

计数器的容量是16位,也就是最大的计数值到65536,因此计数到65536就会产生溢出,当定时器/计数器溢出时,就会使得相关寄存器标志产生变化,单片机将由此而产生定时中断,在中断服务程序中处理定时到而需要完成的任务。

TMOD是一个8位的特殊功能寄存器,对应的地址为89H,不可位寻址,TMOD控制字中可以完成3个功能:

1,确定选择定时器,还是计数器。

2,选择何种工作方式。

3,是否借用外中断控制定时器和计数器的启停。

TMOD的低4位是用于控制T0的字段,高4位用于控制T1。

TMOD的控制字的格式和含义如下:

表1TMOD的控制字

TMOD.7

TMOD.6

TMOD.5

TMOD.4

TMOD.3

TMOD.2

TMOD.1

TMOD.0

GATE

C/T

M1

M0

GATE

C/T

M1

M0

这里,以TMOD的低4位来说明各位的定义和功能。

GATE:

分为两种情况,GATE=0时,定时器的启停和INT1无关,在这种情况下,定时器的启停只取决TR0,GATE=1时,在这种情况下定时器/计数器的开关不仅要由TR0来控制而且还要受到INT1一脚的控制,只有TR1为1,且INT1引脚也是高电平,定时器才开始工作。

C/T:

定时器/计数器即可做定时也可用于计数。

选择何种功能,由C/T的控制字决定。

如果C/T为0就用作定时器,如果为1就用作计数器。

当然,一个定时/计数器同时要么作定时用,要么作计数用,不能同时用。

M1,M0:

用M1,M0来控制定时器/计数器4种工作方式的选择。

1,工作方式0:

M0=0,M1=0,13位定时/计数方式,它由TL(1/0)的低5位和TH(0/1)的8位构成13位计数器,此时TL(1/0)的高3位未用。

2,工作方式1:

M0=0,M1=1,是16位的定时/计数方式,其他特性与工作方式0相同。

3,工作方式2:

M0=1,M1=0,自动重装初值的8位定时/计数器。

初值放在T(0/1)

的高8位,在工作方式2,只有低8位参与计数,而高8位不参与计数,用作预制数的存在,计数范围256.每当计数溢出,就会打开T(0/1)的高,低8位之间的开关,预制数进入8位,这是由硬件自动完成的,不需要由人工干预。

定时器就是为了提供一个时间基准,计数溢出后重新装入预制数,再开始计数,不要任何延迟。

4,工作方式3:

M0=1,M1=1,这种工作方式之下,定时/计数器0被拆成2个独立的定时/计数器来用,其中,TL0可以构成8位的定时器或计数器的工作方式,而TH0则只能作为定时器来用,一般情况下,只有在T1以工作方式2运行时,才让T0工作方式3。

接下来,介绍定时器/计数器的控制器TCON。

TCON是一个8位的特殊功能寄存器,对应的地址为88H,可位寻址。

TCON中的低4位用于外部中断的控制,在后文中将加以介绍,此处只对高4位的T0,T1控制字及其控制原理进行介绍。

TCON控制寄存器的格式和含义如表:

表2TCON控制寄存器

TCON.7

TCON.6

TCON.5

TCON.4

TCON.3

TCON.2

TCON.1

TCON.1

TF1

TR1

TF0

TR0

IE1

TF1

IE0

IT0

TRO:

T0的运行控制位。

启动定时器T0没有专门的指令,而是通过位TR0进行制。

TR0是由软件置位或清零的。

当门控位GATE=0时,T0的运行只取决于TR0的0和1;当门控位GATE=1时,仅当TR0=1,并且外中断0引脚的输入值为高电平时,T0才开始计数,这两个条件有一个不满足,则禁止T0计数。

TF0:

T0的溢出和中断申请标志位。

当T0溢出时,硬件TF0,表示提出了中断申请。

该标志位可以通过软件查询,也可以用软件清零和置位。

在单片机响应中断申请后,硬件自动清零。

TR1:

T1的运行控制位。

TF1:

T1的溢出标志位和中断申请标志位。

表3TCON中的控制字

TCON.7

TCON.6

TCON.5

TCON.4

TCON.3

TCON.2

TCON.1

TCON.0

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

外部中断申请求源

IT0:

INT0触发方式控制位,可由软件进行置位和复位,IT0=0,INT0为低电平触发方式:

IT0=1,INT0为负跳变触发方式。

IE0:

INT0中断请求标志位。

当有外部的中断请求时,这位就会置1,cpu响应中断后,由硬件将IE0清0。

IT1:

INT1触发方式控制位,可由软件进行置位和复位,用途IT0相同。

4.2机械时钟显示模块[7]

机械时钟显示模块采用4个8*8的LED点阵模块组成一个16*16的LED点阵,通过单片机控制此显示模块显示机械时钟的外形及时间。

由于AT89C52的I/O口较少,为节省I/O口资源,在此我们采用74HC1544线-16线译码器, 74154这种单片4线—16线译码器非常适合用于高性能存储器的译码器。

当两个选通输入G1和G2为低时,它可将4个二进制编码的输入译成16个互相独立的输出之一。

实现解调功能的办法是:

用4个输入线写出输出线的地址,使得在一个选通输入为低时数据通过另一个选通输入。

当任何一个选通输入是高时,所有输出都为高。

其真值表如下:

表474HC154的真值表

TRUTHTABLE真值表:

INPUTS输入

SELECTEDOUTPUT选定输出(L)

G1

G2

D

C

B

A

L

L

L

L

L

L

Y0

L

L

L

L

L

H

Y1

L

L

L

L

H

L

Y2

L

L

L

L

H

H

Y3

L

L

L

H

L

L

Y4

L

L

L

H

L

H

Y5

L

L

L

H

H

L

Y6

L

L

L

H

H

H

Y7

L

L

H

L

L

L

Y8

L

L

H

L

L

H

Y9

L

L

H

L

H

L

Y10

L

L

H

L

H

H

Y11

L

L

H

H

L

L

Y12

L

L

H

H

L

H

Y13

L

L

H

H

H

L

Y14

L

L

H

H

H

H

Y15

X

H

X

X

X

X

NONE

H

X

X

X

X

X

NONE

引脚功能表:

表5

引脚端No

SYMBOL符号

NAMEANDFUNCTION名称及功能

1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17

Y0toY15

Outputs输出(ActiveLOW)低电平

18,19

G1,G2

EnableInputs(ActiveLOW)使能输入(低电平)

23,22,21,20

AtoD

AddressInputs地址输入

12

GND

Ground接地(0V)

24

VCC

PositiveSupplyVoltage电源电压

图4

显示模块电路图如下[9]:

图5

5软件设计与流程图

5.1程序设计说明

机械时钟主要是通过图形显示指示时间,所以可以采用计时的方法,当计时时间到显示此时的时间指示图形。

本设计采用计时1s为计时单元,1s的计时通过定时器延时来达到。

5.2程序流程图

图6

6.1仿真效果图[8]

图7

图8

图9

图10

图11

图12

6.2系统电路的PCB设计

6.3结论

通过这次的课程设计,我受益匪浅,通过对单片机等所学知识的回顾以及充分发挥对所学知识的理解和对课程设计的思考及书面表达,经过不断的努力和在老师的指导,同学的帮助下,本设计已经基本完成。

1.通过这次课程设计,加强了我们动手、思考和解决问题的能力。

在整个设计过程中,我们通过这个方案包括设计了一套电路原理连接图,和芯片上的选择。

2.在设计过程中,经常会遇到这样那样的情况,就是心里想老着这样的接法可以行得通,但实际接上电路,总是实现不了,因此耗费在这上面的时间用去很多。

3.我沉得做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且对于其在电路中的使用有了更多的认识。

平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。

而且还可以记住很多东西。

比如一些芯片的功能,平时看课本,这次看了,下次就忘了,通过动手实践让我们对各个元件映象深刻。

认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。

所以这个期末测试之后的课程设计对我们的作用是非常大的。

4.此次课程设计,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,和与人合作共同提高,都受益非浅,今后的制作应该更轻松,自己也都能扛的起并高质量的完成项目。

通过本次课程设计我也发现,只有理论水平提高了,才能够将课本知识与实践知识相整合,理论知识服务于教学实践,才能增强自己的动手操作的能力。

7总结

众所周知,单片机是电子信息工程专业的一们重要的课程,也是当今电子行业的重要分支之一,应用范围之广,普遍程度之高大家有目共睹,所以学好单片机对于电子信息工程专业的学生来说至关重要,甚至直接关系到日后的就业。

正因为这重要性才需要我们去实践,去锻炼。

在此次课程设计中,在最初的写程序及设计时遇到了一些困难。

因为一开始课堂上接触的是汇编语句,但汇编语句不易读懂,所以难以下手。

后来经过上网了解知道有郭天翔老师的“十天学会单片机”,下载来认真看了后大有所得,也因为之前的C基础,比较容易上手,所以最后程序是用C程序编写。

这样来不仅进一步增强了自己对单片机的兴趣,也让自己对单片机的认识又有新的提高。

在经过后面的查阅,知道单片机深入我们生活的方方面又让我“一定要学好单片机”的念头更深了。

虽然此次的选题难度并不大,但是就是这样一个简单的题目却让我明白“纸上得来终觉浅”的深刻意义。

经过一次次的修改程序和软件调试,使我了解了KEILC和PROTUES软件的使用,为日后自己主动地去设计一些东西打下了基础。

参考文献:

[1]张义和,王敏男,等.例说51单片机(C语言版)[M].北京:

人民邮电出版社,2008:

2-12.

[2]谢维成,杨加国.单片机原理与应用及C51程序设计[M].北京:

清华大学出版社,2009:

127-136.

[3]李光才.单片机课程设计实例指导[M].北京:

北京航空航天大学出版社2004.

[4]谭浩强.C程序设计(第四版)[M].北京:

清华大学出版社,2010.

[5]陈忠平.基于Proteus的51系列单片机设计与仿真[M].北京:

电子工业出版社,2012:

234-253.

[6]刘同法,陈忠平,等.单片机基础与最小系统实践[M].北京:

北京航空航天大学出版社,2007.

[7]赵建领,崔昭霞.精通51单片机开发技术与应用实例[M].北京:

电子工业出版社,2012:

:

315-329.

[8]肖倩.单片机系统设计与仿真-基于Proteus[M].北京:

北京航空航天大学出版社,2010:

11-20.

[9]基于LED点阵屏的时钟研究与设计[R].李劲:

西安邮电学院,2008.

[10]贺敬凯,刘德新,等.[M].西安:

西安电子科技大学出版社,2011:

1-16.

致谢:

本次的课程设计参考了陈忠平老师编著的基于Proteus的51系列单片机设计与仿真这本书,利用相关知识进行了原理图的仿真和验证,同时也参考了谢维成,杨加国.单片机原理与应用及C51程序设计这本书,利用这本书的相关定时计数器进行程序的编写并利用其他软件进行调试,本课程设计借鉴了他们的部分成果,他们的工作给我们带来了很大的启发,在这里我表示对他们由衷的感谢。

 

附录1:

元件清单

BillOfMaterials

=================

Design:

C:

\DocumentsandSettings\Administrator\桌面\课程设计\zhoulu.DSN

Doc.no.:

Revision:

Author:

Created:

12/12/25

Modified:

13/11/21

QTYPART-REFSVALUECODE

---------------------

Resistors

---------

1R1100

1R210k

Capacitors

----------

2C1,C230pF

1C310uF

IntegratedCircuits

-------------------

1U1AT89C52

1U274HC154

Miscellaneous

-------------

1K1

1RP1RESPACK-8

1X112MHz

附录2:

程序[4]

部分编码程序

#include

#defineucharunsignedchar

#defineuintunsignedint

uintq=0;

ucharsec,a=0,counter=0;

sbitKEY=P3^0;

codeuchartab1[]={0xc0,0x07,0x10,0x10,0x08,0x20,0x04,0x40,0x00,0x00,0x02,

0x80,0x02,0x80,0xfe,0x81,0x02,0x81,0x02,0x81,0x00,0x01,

0x04,0x40,0x08,0x20,0x10,0x10,0xc0,0x07,0x00,0x00};//开始时间

codeuchartab3[]={0xc0,0x07,0x10,0x10,0x08,0x20,0x04,0x40,0x00,0x00,0x02,

0x80,0x02,0x80,0xf2,0x81,0x82,0x81,0x42,0x81,0x20,0x01,

0x14,0x40,0x08,0x20,0x10,0x10,0xc0,0x07,0x00,0x00};

codeuchartab4[]={0xc0,0x07,0x10,0x10,0x08,0x20,0x04,0x40,0x00,0x00,0x02,

0x80,0x02,0x80,0xf2,0x81,0x02,0x81,0x02,0x81,0x00,0x01,

0x04,0x41,0x08,0x21,0x10,0x11,0xc0,0x07,0x00,0x00};

codeuchartab5[]={0xc0,0x07,0x10,0x10,0x08,0x20,0x04,0x40,0x00,0x00,0x02,

0x80,0x02,0x80,0xf2,0x81,0x02,0x83,0x02,0x85,0x00,0x09,

0x04,0x10,0x08,0x20,0x10,0x10,0xc0,0x07,0x00,0x00};

codeuchartab6[]={0xc0,0x07,0x10,0x10,0x08,0x20,0x04,0x40,0x00,0x00,0x02,

0x80,0x02,0x80,0xf2,0xff,0x02,0x81,0x02,0x81,0x00,0x01,

0x04,0x40,0x08,0x20,0x10,0x10,0xc0,0x07,0x00,0x00};

扫描程序

constuchartab2[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,

0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};//位选,扫描代码

延时程序

voiddelay(uintms)

{

uinti;

while(ms--)

{

for(i=0;i<10;i++);

}

}

voiddelay5(void)

{

ucharm;

for(m=500;m>0;m--);

}

按键扫描程序

voidscankey()

{

if

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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