欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:11035124       资源大小:361.40KB        全文页数:25页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

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

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

    3、场所使用LED数字电子钟已经成为一种时尚2。 1.2 设计任务及要求任务:利用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总线收发器,DS130

    6、2实时时钟电路 , 74HC154译码器,12MHz晶振。2.3.1 88点阵显示屏图2.2为88点阵LED外观及引脚图,其等效电路如图2.3所示,只要其对应的DC、DR轴顺向偏压,即可使LED发亮。例如如果想使图2.3左上角LED点亮,则DC8=1,DR1=0即可。应用时限流电阻可以放在DC轴或DR轴。88点阵LED外观及引脚如图2.24。 图2.2图2.3为88点阵LED等效电路,由此可以看出点阵是用64个LED组成的。点阵LED扫描法介绍:从图2.3中可以看出,88点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应

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

    8、0是一组,如果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为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,

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

    10、行数据输入输出端(双向),后面有详细说明。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)系列。74HC154译码器可接受4位高有效二进制地址输入,并提供16个互斥的

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

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

    13、 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;sbit ACC0=ACC0;sbit ACC7=ACC7;char done,co

    14、unt,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 get_ds1302() ;void init_ds1302(); uchar in

    15、itial_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,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,/

    16、*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,0xF8,0x3F,0x00,0x24, /*5 CHAR_35 */0x00

    17、,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,0x00,/*8 CHAR_38 */0x00,0x00,0x70,0x1C,0x

    18、F8,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模块部分*/uchar read_Byte()/从1302中读出一字节数据 uchar i;

    19、 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;/产生上升沿输入数据 ACC=ACC1; void write_data_d

    20、s1302(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_SCLK=0; ds1302_RST=1; write_Byte(tadd

    21、r); 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+=2; write_data_ds1302(0x8e,0x80); /* 控制

    22、命令,WP=1,写保护*/void get_ds1302() uchar k; uchar taddr = 0x81; for (k=0; k0;z-) for(y=20;y0;y-); void display() 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=1; for(m=0;m8;m+) P0=P2=0x

    23、00; 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=z; P0=ledc

    24、32*(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

    25、=ledc62*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点阵显示电子钟,熟练的运用单片机知识 二、设计的内容及要求 各部分硬件及其概念 对应的程序 Protues 仿真 三、指导教师评语 四、成 绩 指导教师 (签章) 年 月 日目 录1 总 论 11.1 项目概况 11.2 建设单位概况 31.3 项目提出的理由与过程 31.4 可行性研究报告编制依据 41.5 可行性研究报告编制原则 41.6 可行性研究范围 51.7 结论与建议 62

    28、项目建设背景和必要性 92.1 项目区基本状况 92.2 项目背景 112.3 项目建设的必要性 113 市场分析 143.1 物流园区的发展概况 143.2 市场供求现状 163.3 目标市场定位 173.4 市场竞争力分析 174 项目选址和建设条件 194.1 选址原则 194.2 项目选址 194.3 场址所在位置现状 194.4 建设条件 205 主要功能和建设规模 225.1 主要功能 225.2 建设规模及内容 266 工程建设方案 276.1 设计依据 276.2 物流空间布局的要求 276.3 空间布局原则 286.4 总体布局 296.5 工程建设方案 306.6 给水工程 336.7 排水工程 356.8 电力工程 386.9 供热工程 466.10 电讯工程 477 工艺技术和设备方案 517.1 物流技术方案 517.2 制冷工艺技术方案 678 节能方案分析 738.1 节能依据 738.2 能耗指标分析 738.3 主要耗能指标计算 748.4 节能措施和节能效果分析 769环境影响评价 839.1 设计依据 839.2 环


    注意事项

    本文(单片机课程设计基于AT89C52单片机的LED点阵显示电子钟设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开