收藏 分销(赏)

单片机课程设计-基于AT89C52单片机的LED点阵显示电子钟设计.doc

上传人:精*** 文档编号:2226229 上传时间:2024-05-23 格式:DOC 页数:27 大小:769.50KB
下载 相关 举报
单片机课程设计-基于AT89C52单片机的LED点阵显示电子钟设计.doc_第1页
第1页 / 共27页
单片机课程设计-基于AT89C52单片机的LED点阵显示电子钟设计.doc_第2页
第2页 / 共27页
单片机课程设计-基于AT89C52单片机的LED点阵显示电子钟设计.doc_第3页
第3页 / 共27页
单片机课程设计-基于AT89C52单片机的LED点阵显示电子钟设计.doc_第4页
第4页 / 共27页
单片机课程设计-基于AT89C52单片机的LED点阵显示电子钟设计.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、课程名称:单片机课程设计设计题目: 单片机LED点阵显示电子钟 院 系: 电气工程系 专 业: 电子信息工程 年 级: 2010 级 姓 名: 指导教师: 赵琳 西南交通大学峨眉校区 2013年 月 日 1绪论 1.1 LED点阵显示电子钟的背景及意义在日常生活中,大家见到的都是数码管制作的电子钟,LED点阵时钟则不多见。用单片机控制的LED点阵显示电子钟具有结构简单、性能可靠、成本低廉、价格便宜和显示灵活等优点,其应用前景广阔。之所以使用LED点阵电子屏显示,是与它本身所具有的优点分不开的1。这些优点概括起来就是:亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定。在实际应用中的显

2、示屏由于成本和可靠性的因素常采用一种动态扫描的显示方法。本文设计的是一个室内用16块88点阵时钟显示屏,数字采用静止显示方式。电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟走时更准确、性能更稳定。由于用LED点阵显示数据,在夜晚或黑暗的场合里也可以使用,具有一定的实用性。随着人们生活环境的不断改善和美化,在许多场合都可以看到LED点阵显示电子钟。在城市的主要营业场所、车站、码头等公共场所使用LED数字电子钟已经成为一种时尚2。 1.2 设计任务及

3、要求任务:利用AT89C52单片机结合LED点阵显示器设计一个电子钟。电子时钟将在16块88点阵显示屏上分别显示(小时十位)、(小时个位)、(:)、(分十位)、(分个位)(:)(秒十位)、(秒个位)。设计一种基于AT89C52单片机的LED点阵显示时钟,基本设计要求如下:(1) 电子钟的基本功能,也就是计时的功能,要保证电子钟的正常工作,正常计时。(2) 时钟的显示由LED点阵构成,格式为XX:XX:XX(时:分:秒),点阵为88点阵显示屏。(3) 能正确显示时间,上电显示为当前时间 。 2 总体方案设计及论证在本章节中将对总体的方案进行阐述,同时将对可能用到的元器件进行详细介绍,以便接下来的

4、设计工作能顺利,有效的进行打下结实的基础。 2.1 系统方案因为是应用AT89C52单片机来实现控制,所以系统总的方案集中在两个部分,一个是硬件结构的设计,一个是控制的总体思想。在本小节中将对这两部分内容进行简单的叙述。 2.1.1 硬件结构根据项目的功能和要求,可采用AT89C52单片机作为核心控制器。LED点阵电子钟系统组成包括:晶振电路模块、显示电路模块、显示行驱动电路模块、 电源模块。 2.1.2 控制思想LED点阵电子钟程序主要功能是屏幕显示时间稳定,精确。所以按照分块设计的方法可以把程序分为主程序、显示程序、计时程序。主程序主要是用来初始化系统和控制各个子程序之间执行的顺序。显示程

5、序用来完成数字在LED点阵上的显示,时钟的显示是使用16块88点阵显示屏。计时程序用来完成计时,数时功能。 2.2 设计方案论证 由时钟电路经转换子程序转换成适应LED点阵显示屏显示的数据,并通过单片机的输出功能输入到LED点阵显示屏,再通过显示扫描程序,显示出时钟的走时时间。用计时程序来完成计时,数时功能,再通过单片机综合控制将数字显示出来。由此可见,通过AT89C52单片机的控制功能,完全可以实现LED点阵显示电子钟。2.3 主要元器件选择主要用到的硬件有:AT89C52单片机,88点阵屏,74HC245总线收发器,DS1302实时时钟电路 , 74HC154译码器,12MHz晶振。2.3

6、.1 88点阵显示屏图2.2为88点阵LED外观及引脚图,其等效电路如图2.3所示,只要其对应的DC、DR轴顺向偏压,即可使LED发亮。例如如果想使图2.3左上角LED点亮,则DC8=1,DR1=0即可。应用时限流电阻可以放在DC轴或DR轴。88点阵LED外观及引脚如图2.24。DC3 DC6 DR4 DC8 DR6 DR7 DC7 DC5DC1 DR5 DR3 DC4 DR8 DC2 DR2 DR188点阵焊接面引脚 图2.2图2.3为88点阵LED等效电路,由此可以看出点阵是用64个LED组成的。点阵LED扫描法介绍:从图2.3中可以看出,88点阵共需要64个发光二极管组成,且每个发光二极

7、管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮。频率必须大于128赫兹,周期小于7.8毫秒即可符合视觉暂留要求。此外一次驱动一列或一行(8盏LED)时需外加驱动电路提高电流,否则LED亮度会不足。 图2.32.3.2 74HC245总线收发器 总线收发器(bus transceiver),典型的CMOS型三态缓冲门电路。由于单片机或CPU的数据/地址/控制总线端口都有一定的负载能力,如果负载超过其负载能力,一般应加驱动器。 第1脚DIR,为输入输出端口转换用,DIR=“1”高电平时信号由“A”端输入“B”端输出,DIR=“0”低电平时信号由“B”端输

8、入“A”端输出。第29脚“A”信号输入输出端,A0=B0、A7=B7,A0与B0是一组,如果DIR=“1”OE=“0”则A1输入B1输出,其它类同。如果DIR=“0”OE=“0”则B1输入A1输出,其它类同。第1118脚“B”信号输入输出端,功能与“A”端一样,不再描述。第19脚OE,使能端,若该脚为“1”A/B端的信号将不导通,只有为“0”时A/B端才被启用,该脚也就是起到开关的作用。第10脚GND,电源地。第20脚VCC,电源正极。2.3.3 DS1302实时时钟电路 DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS130

9、2由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据传送的方法。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.0V之前,RS

10、T必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK为时钟输入端。 下图为DS1302的引脚功能 : 小时寄存器D7位为12小时/24小时制的选择位,当为1时选12小时制,当为0时选24小时制。当为1时钟暂停,为0时钟开启。写保护寄存器的WP为写保护位,当WP=1,写保护,当WP=0未写保护,当对日历、时钟寄存器或片内RAM进行写时WP应清零,当对日历、时钟寄存器或片内RAM进行读时WP一般置1. 2.3.4 74HC154译码器74HC154是一款高速CMOS器件,74HC154引脚兼容低功耗肖特基TTL(LSTTL

11、)系列。74HC154译码器可接受4位高有效二进制地址输入,并提供16个互斥的低有效输出。74HC154的两个输入使能门电路可用于译码器选通,以消除输出端上的通常译码“假信号”,也可用于译码器扩展。该使能门电路包含两个“逻辑与”输入,必须置为低以便使能输出端。任选一个使能输入端作为数据输入,74HC154可充当一个1-16的多路分配器。当其余的使能输入端置低时,地址输出将会跟随应用的状态。引脚说明1-11 13-17 :输出端。(outputs (active LOW))12:Gnd电源地 (ground (0 V))18-19:使能输入端、低电平有效 (enable inputs (acti

12、ve LOW)20-23:地址输入端 (address inputs)24:VCC电源正 (positive supply voltage)2.3.5 AT89C52单片机微处理器采用AT89C52系列单片机,AT89C52单片机是这几年在我国非常流行的单片机,是一种带8K字节闪存器的高性能单片机,可擦除存储器可以反复擦除100次,具有低功耗,高性能的特点,并且可与工业标准的MSC-51指令集和输出管脚相兼容,对于本设计需要实现的功能,完全可胜任73 硬件电路设计 元器件表 元件名称 型号 个数 用途 单片机 AT89C52 1 控制核心LED点阵 88 16 显示电路总线收发器 74HC24

13、5 4 信号功率放大实时时钟电路 DS1302 1 记时集成块 74HC154 4 行扫描 排阻 10K*8 1 上拉电阻 4 软件部分设计#include#define uchar unsigned char#define uint unsigned int#define set_out(X) X = 1#define clr_out(X) X = 0sbit e0=P30;sbit e1=P31;sbit e2=P32;sbit e3=P33;sbit ds1302_RST=P35;sbit ds1302_IO=P37; /定义DS1302引脚sbit ds1302_SCLK=P36;sb

14、it ACC0=ACC0;sbit ACC7=ACC7;char done,count,temp,flag,up_flag,down_flag,count;idata uint m,z,l,d;idata uint c0,c1,c2,c3,c4,c5,c6,c7;uchar read_Byte();uchar read_data_ds1302(uchar taddr);void write_Byte(uchar tdata);void write_data_ds1302(uchar taddr,uchar tdata);void set_ds1302(uchar *P1302);void ge

15、t_ds1302() ;void init_ds1302();uchar initial_time=0x30,0x57,0x17,0x18,0x05,0x01,0x11 / 秒 分 时 日 月 周 年uchar data now_time7;/*字模0-9*/uchar code led1116= /*0 CHAR_30 */0x00,0x00,0xE0,0x0F,0xF0,0x1F,0x18,0x30,0x08,0x20,0x18,0x30,0xF0,0x1F,0xE0,0x0F,/*1 CHAR_31 */0x00,0x00,0x10,0x20,0x10,0x20,0xF8,0x3F,0x

16、F8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,/*2 CHAR_32 */0x00,0x00,0x70,0x30,0x78,0x38,0x08,0x2C,0x08,0x26,0x88,0x23,0xF8,0x31,0x70,0x30,/*3 CHAR_33 */0x00,0x00,0x30,0x18,0x38,0x38,0x88,0x20,0x88,0x20,0xC8,0x31,0x78,0x1F,0x30,0x0E,/*4 CHAR_34 */0x00,0x00,0x00,0x07,0xC0,0x07,0xE0,0x24,0x30,0x24,0xF8,0x3F,

17、0xF8,0x3F,0x00,0x24,/*5 CHAR_35 */0x00,0x00,0xF8,0x19,0xF8,0x39,0x88,0x21,0x88,0x20,0x88,0x31,0x08,0x1F,0x08,0x0E,/*6 CHAR_36 */0x00,0x00,0xE0,0x0F,0xF0,0x1F,0x98,0x31,0x88,0x20,0x98,0x31,0x18,0x1F,0x00,0x0E,/*7 CHAR_37 */0x00,0x00,0x38,0x00,0x38,0x00,0x08,0x3F,0xC8,0x3F,0xF8,0x00,0x38,0x00,0x08,0x0

18、0,/*8 CHAR_38 */0x00,0x00,0x70,0x1C,0xF8,0x3E,0x88,0x23,0x08,0x21,0x88,0x23,0xF8,0x3E,0x70,0x1C,/*9 CHAR_39 */0x00,0x00,0xE0,0x00,0xF0,0x31,0x18,0x33,0x08,0x22,0x18,0x33,0xF0,0x1F,0xE0,0x0F,/*: CHAR_3A */0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0xC0,0x30,0xC0,0x30,0x00,0x00,0x00,0x00;/*ds1302模块部分*/uc

19、har read_Byte()/从1302中读出一字节数据 uchar i; for(i=8;i0;i-) ACC=ACC1; ACC7=ds1302_IO;/由于ds1302读数据的时候,第一个数据读取在发一个Byte命令后,在第八位的下降沿 ds1302_SCLK=1; ds1302_SCLK=0;/产生下降沿输出一位数据 return(ACC);void write_Byte(uchar tdata)/向1302中写入一字节数据 uchar i; ACC=tdata; for(i=8;i0;i-) ds1302_IO=ACC0; ds1302_SCLK=1; ds1302_SCLK=0;

20、/产生上升沿输入数据 ACC=ACC1; void write_data_ds1302(uchar taddr,uchar tdata)/向1302中写入 地址为taddr的空间 写入数据tdata ds1302_RST=0; ds1302_SCLK=0; ds1302_RST=1; write_Byte(taddr); write_Byte(tdata); ds1302_RST=0; ds1302_SCLK=1;uchar read_data_ds1302(uchar taddr)/从1302中读出地址为taddr的空间数据 uchar tdata; ds1302_RST=0; ds1302

21、_SCLK=0; ds1302_RST=1; write_Byte(taddr); tdata=read_Byte(); ds1302_RST=0; ds1302_SCLK=1; return(tdata);void set_ds1302(uchar *P1302)/ uchar i; uchar taddr = 0x80; write_data_ds1302(0x8e,0x00); /* 控制命令,WP=0,写操作*/ for(i =7; i0; i-) write_data_ds1302(taddr,*P1302); /* 秒 分 时 日 月 星期 年 */ P1302+; taddr+=

22、2; write_data_ds1302(0x8e,0x80); /* 控制命令,WP=1,写保护*/void get_ds1302() uchar k; uchar taddr = 0x81; for (k=0; k0;z-)for(y=20;y0;y-); voiddisplay() c0=now_time2/16; /显示时十c1=now_time2%16;c2=10;c3=now_time1/16; /显示分十c4=now_time1%16; /显示分c5=10;c6=now_time0/16; /显示秒十c7=now_time0%16; /显示秒 e0=0;e1=1; e2=1;e3

23、=1;for(m=0;m8;m+) P0=P2=0x00;P1=0xff;P1=m; P0=ledc02*m;P2=ledc02*m+1;delay(1);for(m=8;m16;m+) P0=P2=0x00;P1=0xff;P1=m; P0=ledc12*(m-8);P2=ledc12*(m-8)+1;delay(1); e0=1; e1=0; e2=1; e3=1; for(z=0;z8;z+) P0=P2=0x00;P1=0xff;P1=z; P0=ledc22*z;P2=ledc22*z+1;delay(1); for(z=8;z16;z+) P0=P2=0x00;P1=0xff;P1

24、=z; P0=ledc32*(z-8);P2=ledc32*(z-8)+1;delay(1); e0=1; e1=1; e2=0; e3=1;for(l=0;l8;l+) P0=P2=0x00;P1=0xff;P1=l; P0=ledc42*l;P2=ledc42*l+1;delay(1); for(l=8;l16;l+) P0=P2=0x00;P1=0xff;P1=l; P0=ledc52*(l-8);P2=ledc52*(l-8)+1;delay(1); e0=1; e1=1; e2=1; e3=0;for(d=0;d8;d+) P0=P2=0x00;P1=0xff;P1=d; P0=le

25、dc62*d;P2=ledc62*d+1;delay(1); for(d=8;d16;d+) P0=P2=0x00;P1=0xff;P1=d; P0=ledc72*(d-8);P2=ledc72*(d-8)+1;delay(1);void main() set_ds1302(initial_time); while(1) get_ds1302(); display(); 5 系统仿真 根据设计要求时钟的显示由LED点阵构成,格式为XX:XX:XX(时:分:秒),点阵为88点阵显示屏能正确显示时间, 仿真电路开机画面如下图所示。从图中可以看出显示的时间为23点1分34秒。 结束语 本次课程设计到

26、现在已经有几个月,回顾其中学到了很多东西。本设计是一个基于AT89C52的LED点阵显示电子钟,是将电子钟的数字显示用LED点阵的方式来实现的。本系统硬件少,结构简单,容易实现,性能稳定,成本低。总结本文的研究工作,主要做了一下几点工作:通过阅读大量的相关资料,详细了解LED发光原理和LED点阵显示原理,了解LED现状,清楚的了解LED与其他显示器的区别。并且通过多单片机资料的查阅,更进一步增加了对单片机只是的理解和运用能力。 在本次设计中学会了PROTEUS和KEIL的基本使用,感到PROTUES在电子制图,仿真上的重要性和KEIL作为编程软件的实用性。 课 程 设 计 任 务 书专 业 电

27、子信息工程 姓 名 学 号 开题日期:2013 年3 月1 日 完成日期: 2012年6月15 日题 目 单片机LED点阵显示电子钟 一、设计的目的 设计一部基于AT89C52单片机的LED点阵显示电子钟,熟练的运用单片机知识 二、设计的内容及要求l 各部分硬件及其概念 l 对应的程序 l Protues 仿真 三、指导教师评语 四、成 绩 指导教师 (签章) 年 月 日目 录第一章 项目的意义和必要性11.1 项目名称及承办单位11.2 项目编制的依据11.3 肺宁系列产品的国内外现状21.4产业关联度分析31.5项目的市场分析4第二章 项目前期的技术基础82.1成果来源及知识产权情况,已完

28、成的研发工作82.3产品临床试验的安全性和有效性8第三章 建设方案233.1建设规模233.2 建设内容233.3产品工艺技术233.5产品质量标准293.6 土建工程373.7 主要技术经济指标39第四章 建设内容、地点414.1 建设内容及建设规模414.2 建设地点414.3外部配套情况44第五章 环境保护、消防、节能465.1 环境保护465.2消防495.3节能50第六章 原材料供应及外部配套条件落实情况526.1主要原辅材料、燃料、动力消耗指标526.2 公用工程54第七章 建设工期和进度安排567.1建设工期和进度安排567.2建设期管理56第八章 项目承担单位或项目法人所有制性质及概况578.1 项目承担单位概况578.2 企业财务经济状况588.3 项目负责人基本情况59第九章 投资估算与资金筹措629.1 项目计算期629.2 投资估算的编制依据及参数629.3 投资估算629.4 资金筹措649.5 贷款偿还64第十章 财务评价6510.1财务评价依据6510.2销售收入和销售税金及附加估算6510.3利润总额及分配6610.4盈利能力分析6610.5不确定分析6610.6财务评价结论68第十一章 项目风险分析,效益分析6911.1 风险分析6911.2 效益分析70

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服