已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕毕业业论论文文 题 目LED 显示电子钟 二一年七月 目 录 摘要摘要 随着半导体技术的飞速发展,以及移动通信、网络技术、多媒体技术在嵌 入式系统设计中的应用,单片机从 4 位、8 位、16 位到 32 位,其发展历程一直 受到广大电子爱好者的极大关注。单片机功能越来越强大,价格却不断下降的 优势无疑成为嵌入式系统方案设计的首选,同时单片机应用领域的扩大也使得 更多人加入到基于单片机系统的开发行列中,推动着单片机技术的创新进步。 然而传统的单片机系统开发除了需要购置诸如仿真器、编程器、示波器等 价格不菲的电子设备外,开发过程也较繁琐。来自英国 Labcenter Electronics 公司的 Proteus 软件很好地诠释了利用现代 EDA 工具方便快捷开发单片机系统 的优势。它包括 PROTEUS VSM(Virtual System Modelling)、PROTEUS PCB DESIGN 两大组成部分,在 PC 机上就能实现原理图电路设计、电路分析与仿真、 单片机代码级调试与仿真、系统测试与功能验证以及形成 PCB 文件的完整嵌入 式系统设计与研发过程。 单片机系统作为一种典型的嵌入式系统,其系统设计包括硬件电路设计和 软件编程设计两个方面, 其调试过程一般分为软件调试、硬件测试、系统调试 3 个过程。如果采用单片机系统的虚拟仿真软件Proteus,则不用制作具体 的电路板也能够完成以上工作。 关键词:关键词: 数字电子钟;数字电子钟; AT89C2051AT89C2051 ;LED;LED; 电子钟;电子钟; 摘要 III 目目 录录 第第一章一章 前言前言 1 1 1.2 基本参数 1 1.3 注意事项 1 第二章第二章 模块特性简介模块特性简介 2 2 2.1 AT89C2051 单片机 2 2.2 LED 简介 3 2.2.1 LED 概述 3 2.2.2 LED 优势 3 2.2.3 LED 显示屏 3 2.3 系统总体方案介绍 3 第第三三章章 系统系统硬硬件设计件设计 5 5 3.1 Proteus 电路图设计 5 第第四章四章 系统软件设计系统软件设计 6 6 4.1 软件的结构 6 4.2 概述 6 4.2.1 主程序 6 4.2.2 中断服务程序 6 4.2.3 调时程序 7 第五章第五章 程序设计程序设计 11 5.1 部分程序一览 11 目 录 第六章第六章 结论结论 1313 参考文献参考文献 1414 致致 谢谢 1515 附录一附录一 软件编写程序软件编写程序 1616 附录二附录二 主要元器件清单主要元器件清单 1717 前言 1 第一章第一章 前言前言 1.1 系系统统功能功能 此课程设计要求用单片机 AT89C2051 定时功能,中断系统,按键及 LED 数码管显示, 设计一个能显示时、分、秒的数字时钟。数字时钟通过数码管显示,使用按键开关来实现 调时功能。 1.2 基本参数基本参数 1.工作电压:4.5V(3节干电池); 2.日期显示范围:2001-2100年; 3.时间采用24小时制。 1.3 注意事注意事项项 2. 在安装电池时注意正负极,否则容易烧坏芯片; 3在印制电路板上的焊接元器件前要认真对照原理图,仔细查看印制电路 板,找到对应的元器件功能区; 4在电源测试期间请勿将单片机芯片插入座中,以免电源部分有问题造成 芯片烧坏。 模块特性简介 第二章第二章 模块特性简介模块特性简介 2.1 AT89C2051 单单片机片机 AT89C2051 单片机是 51 系列单片机的一个成员,是 8051 单片机的简化版。 内部自带 2K 字节可编程 FLASH 存储器的低电压、高性能 COMS 八位微处理器, 与 Intel MCS-51 系列单片机的指令和输出管脚相兼容。由于将多功能八位 CPU 和闪速存储器结合在单个芯片中,因此,AT89C2051 构成的单片机系统是具有结 构最简单、造价最低廉、效率最高的微控制系统,省去了外部的 RAM、ROM 和接 口器件,减少了硬件开销,节省了成本,提高了系统的性价比。 AT89C2051 是一个有 20 个引脚的芯片,引脚配置如图 2-1 所示。与 8051 相 比,AT89C2051 减少了两个对外端口(即 P0、P2 口) ,使它最大可能地减少了对 外引脚下,因而芯片尺寸有所减小。 图 2-1 AT89C2051 引脚配置 AT89C2051 芯片的 20 个引脚功能为: VCC 电源电压。 GND 接地。 RST 复位输入。当 RST 变为高电平并保持 2 个机器周期时,所有 I/O 引 脚复位至“1” 。 XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2 来自反向振荡放大器的输出。 P1 口 8 位双向 I/O 口。引脚 P1.2P1.7 提供内部上拉,当作为输入并被 外部下拉为低电平时,它们将输出电流,这是因内部上拉的缘故。P1.0 和 P1.1 需要外部上拉,可用作片内精确模拟比较器的正向输入(AIN0)和反向输入 (AIN1) ,P1 口输出缓冲器能接收 20mA 电流,并能直接驱动 LED 显示器;P1 口 引脚写入“1” 后,可用作输入。在闪速编程与编程校验期间,P1 口也可接收 编码数据。 P3 口 引脚 P3.0P3.5 与 P3.7 为 7 个带内部上拉的双向 I/0 引脚。P3.6 在内部已与片内比较器输出相连,不能作为通用 I/O 引脚访问。P3 口的输出缓 冲器能接收 20mA 的灌电流;P3 口写入“1”后,内部上拉,可用输入。P3 口也 可用作特殊功能口,其功能见表 1。P3 口同时也可为闪速存储器编程和编程校 验接收控制信号。 模块特性简介 3 2.2 LED 简简介介 在某些半导体材料的 PN 结中,注入的少数载流子与多数载流子复合时会把 多余的能量以光的形式释放出来,从而把电能直接转换为光能。PN 结加反向电 压,少数载流子难以注入,故不发光。这种利用注入式电致发光原理制作的二 极管叫发光二极管,通称 LED。 2.2.1 LED 优势优势 资料显示,LED 光源比白炽灯节电 87%、比荧光灯节电 50%,而寿命比白炽 灯长 2030 倍、比荧光灯长 10 倍。LED 光源因具有节能、环保、长寿命、安全、响应快、体积小、色彩丰富、 可控等系列独特优点, 被认为是节电降能耗的最佳实现途径。 2.2.2 LED 显显示屏示屏 LED 显示屏(LED panel):LED 就是 light emitting diode ,发光二极管 的英文缩写,简称 LED。它是一种通过控制半导体发光二极管的显示方式,用来 显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。 2.3 系系统总统总体方案介体方案介绍绍 电脑钟的原理框图如图 1 所示。它由以下几个部件组成:单片机 89C2051、 电源、时分显示部件。 时分显示采用动态扫描,以降低对单片机端口数的要求,同时也降低系统 的功耗。时分显示模块以及显示驱动都通过 89C2051 的 I/O 口控制。 电源部分:电源部分有二部分组成。一部分是由 220V 的市电通过变压、整 流稳压来得到+5V 电压,维持系统的正常工作。 模块特性简介 图 2 电子钟系统原理框图 P10P10 P17 P10 PP16 PP15 PP14 PP13 PP12 PP11 PP10 P16 P15 P14 P13 P12 P11 P16 P15 P14 P13 P12 P11 P16 P15 P14 P13 P12 P11 PP10 PP11 PP12 PP13 PP14 PP15 PP16 P10 P11 P12 P13 P14 P15 P16 PP10 PP11 PP12 PP13 PP14 PP15 PP16 PP17 HSHI HGE MSHI MGE HSHI HGE MGE P17 P16 P12 P11 P10 P15 P14 P13 MSHI PP17 PP17P17 XTAL2 4 RST 1 P1.0 12 P1.1 13 P1.2 14 P1.3 15 P1.4 16 P1.5 17 P1.6 18 P1.7 19 P3.2/INT0 6 P3.3/INT1 7 P3.4/T0 8 P3.5/T1 9 P3.0/RXD 2 P3.1/TXD 3 P3.7 11 XTAL1 5 U1 AT89C2051 A B C D E F G H COM S1 S1 A B C D E F G H COM 7S2 7S2 A B C D E F G H COM 7S4 7S4 +5V R1 1k R2 1K R3 1K R4 1K R5 1K R6 1K R7 1K X1 CRYSTAL C1 22p C2 22p R8 200 R9 200 R10 200 R11 200 R12 200 R13 200 R14 200 R16 11k C3 22u +5V BUZ1 BUZZER Q1 2N5401 R17 200 A B C D E F G H COM 7S3 7S3 R78 1K R15 200 图 3 电子钟基本部分参考电路原理图 硬件电路设计 5 第三章第三章 硬件电路设计硬件电路设计 3.2 Proteus 电路图设计电路图设计 运行 Proteus 的 ISIS 后出现程序主窗口界面,鼠标左键单击窗口左侧的元器 件工具栏的 component.按钮, 接着再点击窗口左侧的元器件选择区的 Pick Divices.按钮,弹出如图 1 所示的 Pick Devices 窗口,再在 Categ 栏里点击 MicroprocessorICs 项后,在 Results 栏里会出现各种类型的 CPU 器件,找到 AT89C51 后双击,AT89C51 就被添加到当前窗口左侧的元器件列表区了。 用同样的方法依次把 DS130、MAX7219、数码管、晶振以及多个电阻、电容也 添加到器件列表区里。 然后再依次点击列表区里的器件,单击左键把他们放到绘图区,右键选中元 件,并编辑其属性,合理布局后,进行连线。连线时当鼠标的指针靠近一个对 象的引脚时,跟着鼠标的指针 r ICs 就会出现一个“”提示符号,点击鼠标 左键即可画线了,需要拐弯时点击一下即可,在终点再点击确认一下就画出了 一段导线,所有导线画完后,点击工具栏的 Inter-sheeTerminal.按钮,添加 上电源和接地符号,原理图的绘制就完成了。 图 4 Proteus 中设计的电子时钟系统原理图 模块特性简介 第四章第四章 系统软件设计系统软件设计 4.1 软软件的件的结结构构 4.2 概述概述 本系统的软件系统主要可分为主程序和定时器中断程序两大模块。在程序 过程中,加入了抗干扰措施。下面对部分模块作介绍。 4.2.1 主程序主程序 主程序的功能是完成系统的初始化,程序流程如图 4 所示。 4.2.2 中断服中断服务务程序程序 中断程序(如图 6 所示)完成时间计数,时间调整,误差消除等功能。 中断采用 AT89C2051 内部 T0 中断实现,定时时间为 125ms,当时间到达 125ms8,即 1 分钟时,分计数缓冲器 MINBUFFER 增加 1,到达 1 小时,则时计 数缓冲器 HOURBUFFER 增加 1,并将分、时的个位、十位放入显示缓冲器。当分 计数缓冲器和时计数缓冲器分别到达 60min、24h 时,则对它们清零,以便从新 计数。在中断设计中,还通过软件实现了累计误差消除功能,使整个系统时间 的精确度得到保证。 图 5 系统主程序流程图 系统软件设计 7 图 6 定时中断程序 4.2.34.2.3调时程序调时程序 给三个按键,当 P2.0 口的按键 K0 按下,则进入调时状态,按 K1,K2 加 1 减 1 操作,再 按 K0,调分,再按 K0,调秒,再按 K0,则退出调时功能,进行正常计数运行。 4.2.5 LED 显显示模示模组显组显示数字示数字 由于系统要显示的内容较简单,显示量不多,所以选用数码管既方便又经 济。LED 有共阴极和共阳极两种。如图 7 所示。 二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极 管的阳极连接在一起,接入+5V 的电压。一位显示器由 8 个发光二极管组成,其 中 7 个发光二极管构成字型“8”的各个笔划(段)ag,另一个小数点为 dp 发光二极管。当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不 加电压则暗。为了保护各段 LED 不被损坏,需外加限流电阻。 模块特性简介 图 7 LED 数码管结构原理图 众所周知,LED 显示数码管通常由硬件 7 段译码集成电路,完成从数字到显 示码的译码驱动。本系统采用软件译码,以减小体积,降低成本和功耗,软件 译码的另一优势还在于比硬件译码有更大的灵活性。所谓软件译码,即由单片 机软件完成从数字到显示码的转换。从 LED 数码管结构原理可知,为了显示字 符,要为 LED 显示数码管提供显示段码,组成一个“8”字形字符的 7 段,再加 上 1 个小数点位,共计 8 段,因此提供给 LED 数码管的显示段码为 1 个字节。 各段码位与显示段的对应关系如表 1。 表 1 各段码位的对应关系 段码位 D7D6D5D4D3D2D1D0 显示段 dpgfedcba 需说明的是当用数据口连接 LED 数码管 adp 引脚时,不同的连接方法, 各段码位与显示段有不同的对应关系。通常数据口的 D0 位与 a 段连接,D1 位与 b 段连接,D7 位与 dp 段连接,如表 1 所示,表 2 为用于 LED 数码管显示的 十六进制数和空白字符与 P 的显示段码。 表 2 LED 显示段码 字型共阳极段码共阴极段码字型共阳极段码共阴极段码 0C0H3FH990H6FH 1F9H06HA88H77H 2A4H5BHB83H7CH 3BOH4FHCC6H39H 499H66HDA1H5EH 592H6DHE86H79H 682H7DHF84H71H 7F8H07H 空白 FFH00H 880H7FHP8CH73H 注:(1)本表所列各字符的显示段码均为小数点不亮的情况。 系统软件设计 9 (2) “空白”字符即没有任何显示。 根据 AT89C2051 单片机灌电流能力强,拉电流能力弱的特点,我们选用共 阳数码管。将 AT89C2051 的 P1.0P1.7 分别与共阳数码管的 ag 及 dp 相连, 高电平的位对应的 LED 数码管的段暗,低电平的位对应的 LED 数码管的段亮, 这样,当 P0 口输出不同的段码,就可以控制数码管显示不同的字符。例如:当 P0 口输出的段码为 1100 0000,数码管显示的字符为 0。 数码管显示器有二种工作方式,即静态显示方式和动态扫描显示方式。 为节省端口及降低功耗,本系统采用动态扫描显示方式。动态扫描显示方式需 解决多位 LED 数码管的“段控”和“位控”问题,本电路的“段控” (即要显示 的段码的控制)通过 P0 口实现;而每一位的公共端,即 LED 数码管的“位控” , 则由 P3 口控制。这种连接方式由于多位字段线连在一起,因此,要想显示不同 的内容,必然要采取轮流显示的方式,即在某一瞬间,只让其中的某一位的字 位线处于选通状态,其它各位的字位线处于断开状态,同时字段线上输出这一 位相应要显示字符的字段码。在这一瞬时,只有这一位在显示,其他几位则暗。 在本系统中,字位线的选通与否是通过 PNP 三极管的导通与截止来控制,即三极 管处于“开关”状态。 系统的时分显示部件由 4 只 7 段共阳 LED 数码管构成,前两只用于时的显 示,后两只用于分的显示。值得一提的是,在设计中需要实现时与分之间的两 个闪烁点,为此,将第三只 LED 数码管倒置摆放,这样就形成了两个很自然的 闪烁点。与此同时,为了能使两点显示能够形象的表示时钟“秒”的变化,设 计时,将两个点由 P1.7 单独控制,每隔一秒使 P1.7 发送一个正脉冲,从而实 现了两个点的闪烁显示,闪烁周期为一秒。 模块特性简介 第五章第五章 程序设计程序设计 5.1 部分程序部分程序预览预览 以下为部分源程序: #include “AT89X51.H“ #include “delay.h“ #include “max7219.c“ #include “music.c“ #define uchar unsigned char #define uint unsigned int idata sbit ADD=P11; sbit SUB=P10; sbit ACC0 = ACC0; sbit ACC7 = ACC7; void showDay(void);/显示时间 void showData(void);/显示日期 void showDishi(void);/显示定时 void int_0(void);/中断 0 void int_1(void);/中断 1 void flash_max7219(unsigned char n);/闪一个位 max7219 /* */ /* 实时时钟模块 时钟芯片型号:DS1302 */ /*/ /* */ sbit T_CLK = P23; /*实时时钟时钟线引脚 */ sbit T_IO = P24; /*实时时钟数据线引脚 */ sbit T_RST = P25; /*实时时钟复位线引脚 */ /* */ void v_RTInputByte(uchar ucDa); /往 DS1302 写入 1Byte 数据 uchar uc_RTOutputByte(void);/ 从 DS1302 读取 1Byte 数据 void v_W1302(uchar ucAddr, uchar ucDa);/往 DS1302 写入数据 uchar uc_R1302(uchar ucAddr);/读取 DS1302 某地址的数据 /void v_BurstW1302T(uchar *pSecDa);/往 DS1302 写入时钟数据(多字节 方式) /void v_BurstR1302T(uchar *pSecDa);/读取 DS1302 时钟数据 /void v_BurstW1302R(uchar *pReDa);/往 DS1302 寄存器数写入数据(多字 节方式) /void v_BurstR1302R(uchar *pReDa);/读取 DS1302 寄存器数据 11 void v_Set1302(uchar *pSecDa) ;/设置初始时间,输入: pSecDa: 初始时 间地址。初始时间格式为: 秒 分 时 日 月 星期 年 void v_Get1302(uchar ucCurtime) ;/读取 DS1302 当前时间 uchar showTime8=0,0,10,0,0,10,0,0;/显示的时间 *全局变量 uchar setTime2=0,0;/定时的设定 uchar time7=0,0x59,0x19,0x24,0x7,0x01,0x08;/秒 分 时 日 月 星 期 年 uchar Tmod=7;/此时的调节模式 void main() delay_ms(200); /sound(); initMAX7219();/初始化 max7219 cls();/清屏 max7219 /v_Get1302( /v_Set1302( EX0=1; EX1=1; IT1=1;/下降沿触发 IT0=1; EA=1;/开中断 v_Get1302( showDay(); /int_1(); /int_0(); while(1) v_Get1302( showDay(); if (setTime0=time2) /*显示时间 void showDay(void) /将数据转化为显示格式 showTime7=time0 /个位 模块特性简介 showTime6=time04;/十位 showTime4=time1 showTime3=time14; showTime1=time2 showTime0=time24; showTime2=showTime5=10; disp_88( /*显示日期 void showData(void) showTime7=time3 showTime6=time34; showTime4=time4 showTime3=time44; showTime1=time6 showTime0=time64; showTime2=showTime5=10; disp_88( /*显示定时 void showDishi(void) showTime1=setTime0 showTime0=setTime04; showTime4=setTime1 showTime3=setTime14; showTime6=12; showTime7=13; showTime2=showTime5=10; disp_88( 13 模块特性简介 结论结论 此实验利用 protues 仿真软件实现,基本实现了要求的功能。为了校准时 钟增加了按键,便于调节。在本次实验中对单片机内部结构有一定了解,熟悉 了各个引脚的功能,同时熟知了 LED 数码管的使用及各种电路的功能。 通过此次课程设计,无论是从软件方面还是硬件方面,都进一步学习和巩 固了程序的总体设计。在软件方面,进一步熟悉了各条指令的功能及用法,定 时、中断的用法,更深一步学习了用汇编语言编写实现数字时钟功能。在硬件 方面,了解并学习使用 keil 软件和 proteus 软件,在 keil 中编程,调试,运 行,在 Proteus 中进行硬件设计、仿真。在整一个设计过程中,从设计到实现, 从编程到调试,每一步都是自己亲力亲为,虽然从中遇到各种问题,有时叫人 很烦,但在发现问题后去解决,并成功了,此时会有一种快乐和成就感。只有 自己亲自去操作,才能将学习的知识变成自己的。 程序不要光看不写,一定要自己写一次。最开始的时候,啥都不懂,可以 抄人家的程序过来,看看每一句是干什么用的,达到什么目的,运行后有什么 后果,看明白了之后,就要自己写一次,你会发现,原来看明白别人的程序很 容易,但到自己写的时候却一句也写不出来,这就是差距。 单片机提高重在实践,想要学好单片机,软件编程必不可少。但是熟悉硬 件对于学好单片机的也是非常重要的。如何学习好硬件,动手实践是必不可少 的。我们可以通过自己动手做一个自己的电子制作,通过完成它,以提高我的 对一些芯片的了解和熟练
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临时电力设施租赁合同
- 医疗行业二手房合同样本
- 专利审查员聘用合同
- 地下石灰石矿钻探施工合同范本
- 保健品店店员聘用合同模板
- 广州市咖啡厅租房协议书
- 铝塑窗施工合同科技馆装修
- 设备租赁合同:舞台音响
- 商务区车位购买协议范文
- 知识产权保护保函协议书
- 氯乙烯本体聚合制备聚氯乙烯的合成标准工艺
- 重庆市普通中小学课程计划
- 初中语文人教九年级上册《水浒传》武松形象探析教学设计
- 青岛版三年级上册数学 分数的初步认识 课件(共16张ppt)
- 五年级语文上册第七单元【集体备课】
- 一、二星级绿色建筑评价标识申报书
- “生活化”课程的构建与实施策略
- 高压线下管道吊装专项施工方案(1)
- 水质样品管理记录表
- 输煤系统危险源辨识及控制措施
- 钻孔桩施工组织设计
评论
0/150
提交评论