基于单片机AT89C52的多功能液晶电子日历的毕业设计.doc
《基于单片机AT89C52的多功能液晶电子日历的毕业设计.doc》由会员分享,可在线阅读,更多相关《基于单片机AT89C52的多功能液晶电子日历的毕业设计.doc(58页珍藏版)》请在咨信网上搜索。
<p>基于单片机AT89C52的多功能液晶电子日历的毕业设计 目录 目录3 第一章绪论5 1.1课题设计的背景5 1.2选题的目的与意义5 第二章系统的总体设计6 2.1系统功能概述6 2.2系统功能实现6 2.3功能模块选择7 2.3.1核心控制模块7 2.3.2时钟模块8 2.3.3温度采集模块11 2.3.4液晶显示模块14 2.3.5时间调整与闹钟设置按键模块17 2.3.6闹钟发声模块18 第三章硬件电路与Proteus仿真设计19 3.1仿真总体电路图19 3.2功能模块外围电路20 3.2.1核心控制模块电路20 3.2.2时钟模块电路20 3.2.3温度采集模块电路21 3.2.4液晶显示模块电路22 3.3仿真显示效果23 第四章原理图和PCB设计25 4.1原理图26 4.2 PCB设计图27 4.3产品图28 第五章C程序设计32 5.1程序设计32 5.2程序流程图33 5.3 C语言程序34 完毕语35 参考文献36 附件37 附件(一)37 附件(二)57 附件(三)59 附件(四)61 第一章 绪论 1.1课题设计的背景 随着科技、社会的发展,人们得知时间的方法,从观土圭(日影)火钟(燃香)摆钟到现在的机械表、电子钟,不断研究、改革、创新。在日常生活、工作和学习中,人们会遇到很多很多需要准时去做的事情,时间观念变得尤其重要。 由于单片机的可再编程性能,以与在控制领域的普遍使用和应用技术不断的提高,单片机越来越受到电子设计者的青睐和追捧。 1.2选题的目的与意义 科技是推动社会发展的动力,而二十一世纪又是数字化信息技术高速发展的时代,所以单片机在数字化高速发展的旅程中扮演着尤为重要的角色。单片机的学习与应用在数字化时代的今天亦是电子科学学习者所必须掌握的基本课程。本设计是采用单片机为核心设计的多功能液晶日历,普遍应用在家庭,事业单位和公共场合,应该可以说遍与人们生活的每一个角落。所以说电子日历的设计是生活所需。 功能化模块的使用对电子设计开发提供了很多的便利,时钟芯片DS1302可对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命较长,误差小,有利于提高设计产品的使用寿命和质量。DS18B20是全世界上第一片支持 "一线总线"接口、部使用了ON-BOARD专利技术的数字化温度传感器。它的转换电路和传感元件集成在一只形如三极管的集成电路元件。简洁的一线总线结构使得数字化温度传感器DS18B20具有经济且独特的特点。多功能液晶电子日历采用阿拉伯数字显示,同时显示年、月、日、星期、时、分、秒和温度等信息,具有直观的特点,还可根据需要设置定时闹钟功能。该电路采用单片机AT89C52作为核心,功率消耗小,能在3V的低电压工作,电压一般选用3~5V电压供电。 基于上述原因,我设计了这款基于DS1302、DS18B20和LCD12864的多功能液晶电子日历,方便日常生活的使用。 第二章 系统的总体设计 2.1系统功能概述 我们有多种制作多功能液晶电子日历的方法,也有很多种可供选择的器件和运用的技术。所以,我们应在满足系统的功能的必要条件下,系统的整体设计方案能够充分考虑了系统的环境中,所选择的结构应该是容易实现、使用简单的。器件方面选择稳定性能、参数适宜、低功耗和低成本的。 本设计需要能够显示日期、时间和温度,并能实现时间调整和闹钟功能设定等功能。为实现这些基本功能,保证产品功能稳定,能直观看出这些数据,选定了AT89C52单片机,时钟芯片DS1302,温度传感器DS18B20,液晶显示器AMPIRE128X64,这四种已经非常成熟的功能模块化产品作为本设计的核心组成部分。 2.2系统功能实现 所有功能的实现都通过单片机AT89C52来控制,从DS1302读取日期时间,从DS18B20采集温度,通过一系列按键调整时间和闹钟,显示在AMPIRE128X64上。只要根据各模块的时序,编写各模块的读写操作程序,下载到AT89C52中就能实现所需的功能。 系统功能框图如下: 图1系统功能框图 2.3功能模块选择 本设计共分为6个模块,即核心控制模块,时钟模块,温度采集模块,液晶显示模块,时间调整与闹钟设置按键模块,闹钟发声模块。基于设计的可行性和经济实用性,分别选择如下器材。 2.3.1核心控制模块 该设计中,核心控制模块选用单片机AT89C52。 AT89C52是由全球半导体领先企业美国ATMEL公司生产的高性能,低电压CMOS 8位单片机,片含256 bytes的随机存取数据储存器(RAM)和8K的可反复擦写的只读程序储存器(PEROM),是采用ATMEL公司的高密度、非易失性存储技术生产的器件,与8052产品引脚与标准MCS-51指令系统相兼容,片采用通用8位中央处理器(CPU)和Flash存储单元。许多较为复杂控制应用场合都可使用功能强大AT89C52单片机。 主要性能参数: 1、兼容MCS51指令系统; 2、8kB可反复擦写(大于1000次)Flash ROM; 3、32个双向I/O口; 4、256x8bit部RAM; 5、3个16位可编程定时/计数器中断; 6、时钟频率0-24MHz; 7、2个串行中断,可编程UART串行通道; 8、2个外部中断源,共8个中断源; 9、2个读写中断口线,3级加密位; 10、软件设置的睡眠和唤醒功能,低功耗空闲模式,低功耗掉电模式; 11、有塑料方块平面封装(PQFP)、塑料双列直插式封装(PDIP)、特殊引脚芯片封装(PLCC)与薄塑封四角扁平封装(TQFP)等多种封装形式,可适应不同产品的需求。 功能特性: AT89C52是由全球半导体领先企业美国ATMEL公司生产的。有丰富功能,除具有上述主要性能参数列出的功能外,AT89C52还可降至0Hz的静态逻辑操作,支持两种软件可选的节电工作模式。在空闲方式下,AT89C52停止CPU的工作,但允许RAM, 串行通信口与中断系统,定时/计数器继续工作。在掉电方式下,RAM中的容得以保存,振荡器停止工作,其他所有部件停止工作,直到下一个硬件复位开始。 AT89C52的功能强大,完全能够担任本次设计核心控制模块。 AT89C52实物图与引脚图如下: 图2 AT89C52实物图 图3AT89C52引脚图 2.3.2时钟模块 本设计中,时钟模块选择DS1302芯片。 美国DALLAS公司推出的有涓细电流充电能力的低功耗实时时钟芯片DS1302。它可对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能。 实时时钟芯片DS1302利用简单的串行接口与微处理器进行通讯。有一个AM/PM 指示器,时钟可以工作在12 小时制或者24小时制。 DS1302 与微处理器联系使用同步串行通讯简化了接口。人性化和简洁的设计使得与时钟/RAM 通讯只采用三根线: CE,I/O (数据线),和 SCLK (串行时钟)。低功耗的设计使得DS1302在非常低的电能下,还能保持数据和时钟信息。DS1302 是DS1202 的后继者。除了拥有DS1202 的基本计时功能以外, DS1302 有其他特点比如,可编程涓流充电器VCC1,双管脚主电源和备用电源,附加7 字节的暂存器。 主要特性: 1、实时时钟计算年、月、日、时、分、秒、星期,直到2100 年,并有闰年调节功能; 2、31*8位通用暂存RAM; 3、通讯接口的同步串行使管脚数降到最少; 4、2.0V至5.5V宽电压围操作; 5、在工作电压为2.0V时工作电流小于300nA; 6、读写时钟或RAM数据时有单字节或多字节(脉冲串模式)数据传送方式; 7、8管脚DIP封装或可选的8管脚表面安装SO封装; 8、简单的3线接口; 9、与TTL兼容(VCC=5V); 10、在工业应用中的温度围从-40摄氏度到+85摄氏度; 11、与DS1202兼容; 12、经美国最具权威的保险机构美国保险商试验室(UL)的认证。 图4 DS1302实物图 图5 DS1302引脚图 表1 管脚描述 管脚 名称 功能 1 Vcc2 双供电配置中的主电源连接收脚,VCC1 连接到芯片备用电源,在主电源失效或电压过低时保持时间和日期数据。DS1302 工作于VCC1 和VCC2 中较大者。 2 X1 与标准的32.768kHz 石英晶体相连。部振荡器设计成与指定的6pF装载电容的晶体共同工作。 3 X2 4 GND 电源地 5 RST 输入RST信号在读写时必须保持高电平。 6 I/O 三线接口的双向数据管脚。 7 SCLK 输入SCLK 用来同步串行接口上的数据动作。 8 Vcc1 工作在单电源和电池工作系统的低功率备用电池。这个管脚在使用涓流充电的系统中,连接到可再充能量源。 时序分析 图6 DS1302写字节时序图 DS1302写字节时,传输第一个字节是地址,第二个字节是数据。RST信号需拉高,否则输入的数据是无效的。在上升沿时由LSB开始读入,地址字节和数据字节的读取才有效。 图7 DS1302读字节时序图 读一个字节和写一个字节有着明显的区别,先写入地址字节,然后读数据字节,上升沿时写地址字节有效,而下降沿时读数据字节有效,前提是RST信号必须拉高。写地址字节和读数据字节同样都是由LSB开始。 表2 寄存器地址 读操作 写操作 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 取值围 81h 80h CH 10 Seconds Seconds 00-59 83h 82h 10 Minutes Minutes 00-59 85h 84h 12/ 0 10 Hour Hour 1-12/0-23 /PM 87h 86h 0 0 10 Date Date 1-31 89h 88h 0 0 0 10 Month Month 1-12 8Bh 8Ah 0 0 0 0 0 Day 1-7 8Dh 8Ch 10 Year Year 00-99 8Fh 8Eh WP 0 0 0 0 0 0 0 - 91h 90h TCS TCS TCS TCS DS DS RS RS - 2.3.3温度采集模块 本设计中,温度采集模块选择DS18B20芯片。 美国Dallas半导体公司生产的数字化温度传感器DS18B20,是全世界上第一片支持 "一线总线"接口、部使用了ON-BOARD专利技术的数字化温度传感器。 主要特征: 1、 一个端口引脚进行通讯的独特的单线接口; 2、 器件部存储器中储存着唯一地址编码(64位序列号); 3、 应用在对温度精度要求相对较低的多点分布式测温; 4、 无需外部器件; 5、 供电稳定可通过数据线供电,电压在3.0V到5.5V之间。 6、 测温围为-55~+125℃; 7、 在-10~+85℃围精确度为±5℃; 8、 9至12位的温度计分辨率可供使用者选择; 9、 温度转换时间较迅速,转换12位数字最多在0.75s完成; 10、与DS1822兼容的软件; 11、应用于包括温度控制、消费品、工业系统、温度计或任何热感测系统。 图8 DS18B20实物图 图9 DS18B20引脚图 表3 引脚说明 T0-9封装 符号 说明 1 GND 接地 2 DQ 数据输入/输出的引脚。在单线操作:漏极开路。 3 VDD VDD引脚。 时序图 与DS18B20之间的通讯都需以初始化序列开始,初始化时序见图10。DS18B20在一个复位脉冲跟着一个存在脉冲中说明已经做好发送和接收数据的准备。 图10 DS18B20初始化时序图 在总线控制器读时序时,DS18B20仅可用于将数据传输到控制器。所有读时序必须最少持续60us才可完成写时序,括至少两个读周期为1us在恢复时间。读时序在总线控制器把数据线从逻辑高电平拉到低电平的时候开始,读时序见图11。 图11 DS18B20读时序图 写时序有写1时序和写0时序。总线控制器通过写1时序将逻辑1写到DS18B20,写0时序将逻辑0写到DS18B20。最少持续60us才可完成写时序,括至少两个读周期为1us在恢复时间。写时序在总线控制器把数据线从逻辑高电平拉到低电平的时候开始,见图12 DS18B20写时序图。 图12 DS18B20写时序图 2.3.4液晶显示模块 单片机系统中广泛的应用液晶显示器件(LCD),是因为LCD独具的低压、微功耗特性。 本设计中,由于Proteus仿真只能采用无字库的12864的显示器,应选用AMPIRE128X64作为液晶显示模块。 图13 AMPIRE128X64引脚图 表4AMPIRE128X64接口说明表 管脚号 管脚 电平 说明 1 CS1 H/L 低电平有效,选择前64 列的片选择信号 2 CS2 H/L 低电平有效,选择后64 列的片选择信号 3 GND 0V 逻辑电源地 4 VCC 5.0V 逻辑电源正 5 V0 LCD 的驱动电压输入端,可悬空,视具体情况而定 6 RS H/L 数据\指令选择端:高电平时,D0-D7送入显示RAM;低电平时,D0-D7送入指令寄存器执行 7 R/W H/L 读\写选择端:高电平:读数据;低电平:写数据 8 E H/L 读写使能端 9 DB0 H/L 数据引脚 10 DB1 H/L 数据引脚 11 DB2 H/L 数据引脚 12 DB3 H/L 数据引脚 13 DB4 H/L 数据引脚 14 DB5 H/L 数据引脚 15 DB6 H/L 数据引脚 16 DB7 H/L 数据引脚 17 RST L LCD复位信号,低电平有效 18 VOUT -10V LCD 驱动电源 表5指令描述表 指令名称 控制信号 控制代码 R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 显示开关 0 0 0 0 1 1 1 1 1 1/0(1) 显示起始行设置 0 0 1 1 X X X X X X(2) 页设置 0 0 1 0 1 1 1 X X X(3) 列地址设置 0 0 0 1 X X X X X X(4) 读状态 1 0 BUSY 0 ON/OFF RST 0 0 0 0 写数据 0 1 写数据 读数据 1 1 读数据 (1)显示开关功能:设置屏幕显示开/关。 DB0=1,开显示;DB0=0,关显示。 (2)显示起始行设置功能:执行该命令后,屏幕的第一行将显示所设置的行。 (3)页设置功能:执行本指令后,之后的读写操作将在指定页执行,直到重新设置为止。 (4)列地址设置功能:Y地址计数器存储DDRAM 的列地址。 状态检测 CODE: R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 1 0 BUSY 0 ON/OFF RST 0 0 0 0 功能:读忙信号标志位(BUSY)、复位标志位(RST)以与显示状态位(ON/OFF)。 BUSY =1:LCD部正在执行其他操作;BUSY =0:LCD处于空闲状态。 RST=1:LCD正处于复位初始化状态; RST=0:LCD处于正常状态。 ON/OFF=1:表示显示关闭; ON/OFF=0:表示显示开。 写显示数据 CODE: R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 1 D7 D6 D5 D4 D3 D2 D1 D0 功能:DDRAM是存储图形显示数据的,写数据到DDRAM,写指令执行后Y地址计数器自动加1。数据位为1表示显示,数据位为0表示不显示。 读显示数据 CODE: R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 1 1 D7 D6 D5 D4 D3 D2 D1 D0 基本操作时序: 读状态 作输入时:RS=0, E=1, R/W=1,CS1 或CS2=1 作输出时:D0~D7=状态字 写指令 作输入时:RS=0,R/W=0,D0~D7=指令码,CS1或CS2=1,E=高脉冲 作输出时:无 读数据 作输入时:RS=1, E=1,R/W=1,CS1 或CS2=1 作输出时:D0~D7=数据 写数据 作输入时:RS=1,R/W=0,D0~D7=数据,CS1 或CS2=1,E=高脉冲 作输出时:无 2.3.5时间调整与闹钟设置按键模块 在本设计中,为实现时间调整与闹钟设置,选用五个按键,分别是时间设置选择按键Key1,闹钟设置选择按键Key5,时间加按键Key2,时间减按键Key3,设置确认键Key4。 图14 按键组合图图15 按键实物图 如上按键组合图所示,在Key5没有按下的情况下,用Key1选择需要调整的项目,按第一次选择调整秒,按第二次调整分,按第三次调整时,按第四次调整日期,按第五次调整月份,按第六次调整年份,按第七次又跳回调整秒,其中星期与月份和日期相关,不需要手动调整。按Key2、Key3则相应加减调整项目。调整好再按Key4退出调整。按Key5选择是否要设置闹钟,每按一次相应改变闹钟的状态,调整闹钟时间步骤同调整时间。 2.3.6闹钟发声模块 基于操作简便、经济原则,本次设计采用一般蜂鸣器作为闹钟的发声模块,一般单片机输出端口是无法直接驱动蜂鸣器发出声音的,故设计如下驱动电路。 图16 蜂鸣器驱动电路图 上图中R2起到限流作用,NPN三极管作为放大器,sounder为高电平,Q1导通即蜂鸣器发声,sounder为低电平,Q1截止即蜂鸣器关闭。 第三章 硬件电路与Proteus仿真设计 本次设计,我选用Proteus软件进行仿真。 英国Lab Center Electronics公司出版的Proteus软件是由风标电子技术代理的EDA工具软件。出色的EDA工具软件仿真功能和单片机与外围器件的仿真使它深受单片机相关课程学生、从事单片机教学的教师、单片机爱好者、致力于单片机开发应用的科技科研工作者的喜爱。 Proteus是目前世界上唯一一个将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持多种类型编译,支持IAR、Keil和MPLAB等多种不同编译器。 3.1仿真总体电路图 总体仿真电路图如下: 图17 总体仿真电路图 3.2功能模块外围电路 3.2.1核心控制模块电路 单片机最小系统由AT89C52单片机外时钟电路和复位电路组成。 图18 AT89C52单片机最小系统 AT89C52时钟可以由部方式产生或外部方式产生。本设计中AT89C52采用部方式,在XTAL1和XTAL2引脚上外接石英晶体和电容组成的并联谐振回路,部振荡器就产生自激振荡。晶体振荡频率可以选择在0~12MHz之间,电容值选择在5~30pF之间,电容可对频率起微调的作用,本设计中使用12MHz作为晶振振荡频率。 3.2.2时钟模块电路 外接晶振(32.768KHz)作为DS1302时钟芯片的计时振荡源。为保证掉电时,时钟芯片还能正常工作,在VCC1端接3V备用电源。DS1302 工作于VCC1 和VCC2 中较大者。当VCC1 比VCC2高时, VCC1 给DS1302供电。 图19 时钟模块电路 3.2.3温度采集模块电路 DS18B20测温系统具有测温系统简单、测温精度高、连接方便、占用口线少等优点。一般测温电路有寄生电源供电方式电路、寄生电源强上拉供电方式电路、外部电源供电方式电路。 寄生电源供电方式电路虽电路非常简洁但有可能在DS18B20转换温度期间无法提供足够的能量,造成温度误差相对较大。寄生电源强上拉供电方式电路解决寄生电源供电方式电路的缺点,但是多占用了一个I/O口。外部电源供电方式电路不存在电源电流不足的问题,只占用一个I/O口,所以我选用外部电源供电方式电路。 图20 温度采集模块电路 3.2.4液晶显示模块电路 AMPIRE128X64与单片机的连接电路如以下图: 图21 液晶显示模块电路 3.3仿真显示效果 开机后10s显示如以下图,同时蜂鸣器开启。 图22 开机画面 正常运行后,液晶显示屏如以下图所示得到想要的结果,第一行显示当前年、月、日,第二行显示当前星期和闹钟状态,第三行显示当前时、分、秒,第四行显示当前温度与温度围。 图23 正常运行仿真效果 第四章 原理图和PCB设计 电路设计自动化 EDA(Electronic Design Automation)指的就是将电路设计中各种工作交由计算机来协助完成。如电路原理图(Schematic)的绘制、印刷电路板(PCB)文件的制作、执行电路仿真(Simulation)等设计工作。 Altium公司推出一体化的电子产品开发系统Altium Designer把原理图设计、电路仿真、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合是这套软件的画龙点睛之处,为设计者提供了全新的设计解决平台,使设计者可以轻松进行设计。电子电路的设计将随着软件熟练使用必将提高其质量和效率。 本设计中我选用Altium Designer Summer09进行PCB的设计。 我在购买元件的时候,没有买到蜂鸣器,所以原理图与PCB图上并没有设计闹钟的功能,按键中同仿真图相比少了一个Key5按键(轻触开关),液晶显示是采用带字库的YAOXY12864B液晶显示屏,其控制器为ST7920。备用电源选择一枚带焊脚3V的纽扣电池,电源输入采用USB母座端口,总开关采用六脚自锁开关。由于其他原因单片机选用STC89C52RC,时钟芯片选用DS1302,温度传感器选用DDS18B20。其他一些常用的元件就不一一详细说明列举。 4.1原理图 图24 电路原理图 4.2 PCB设计图 图25 PCB图 4.3产品图 图26电路板背面 图27 YAOXY12864B正面 图28电路板背面 图29 YAOXY12864B反面 图30 产品图1 图31 产品图2 第五章 C程序设计 5.1程序设计 德国著名的软件公司Keil公司使用接近传统C语言的语法开发的51系列兼容单片机C语言软件开发的Keil uVision2的系统。与汇编相比,C语言在可读性、结构性上、可维护性、功能性有显著优点。易学易用的C语言有效的提高了工作效率和项目开发周期,并且还能嵌入汇编,使程序达到接近于汇编的工作效率。 类似Windows的操作界面,是我们能很快承受keil c51,并使用它来开发单片机应用程序,所以本次C语言程序设计选用Keil uVision2作为编辑和编译的环境。 5.2程序流程图 图32 程序流程图 5.3 C语言程序 程序见附件(一)时钟日历.c 程序见附件(二)ds18b20.c 程序见附件(三)ds1302.c 程序见附件(四)lcd12864.c 参考文献 【1】郭天祥.51单片机C语言教程.:电子工业,2009.1 【2】谭浩强.C程序设计(第二版)[M].:清华大学,2003 【3】中文字库液晶显示模块使用手册.bbs.elecfans. 电子技术论坛 【4】阎石.数字电子技术基础(第五版).:高等教育,2006.05 【5】华成英. 模拟电子技术基础.:高等教育,2006 【6】AT89C52中文手册(译文). Atmel公司 【7】DS1302中文手册(译文). DALLAS公司 【8】DS18B20中文手册(译文). DALLAS公司 【9】学平. Altium Designer Summer 09电路设计与制作.:电子工业,2012.4 【10】彭伟.单片机C语言程序设计实训100例——基于8051+Proteus仿真(第2版).:电子工业,2012.10 【11】徐爱钧.Keil C51单片机高级语言应用编程与实践.:电子工业,2013.12 【12】杜树春,体才.单片机与外围器件接口实例详解.:中国电力,2009.1 附件 附件(一) 《时钟日历.c》 #include</p><reg52.h>#include<intrins.h>#include<stdio.h>#define uchar unsigned char #define uint unsigned int #define write_week 0x8a #define write_second 0x80 #define write_minute 0x82 #define write_hour 0x84 #define write_day 0x86 #define write_mouth 0x88 #define write_year 0x8c #define write_week 0x8a #define write_protect 0x8e #define read_second 0x81 #define read_minute 0x83 #define read_hour 0x85 #define read_day 0x87 #define read_mouth 0x89 #define read_week 0x8b #define read_year 0x8d uchar read_temperature(); extern uchar init_ds18b20(); extern writeonebyte(uchar dat); extern uchar readonebyte(); extern void delayms(uint xms); extern void write1302(uchar addr,date); extern uchar read1302(uchar addr); extern void init1302(); extern void lcd_init(); extern void display(uchar screen, uchar page,uchar column,uchar *p,uchar j); extern void displaynumber(uchar screen, uchar page,uchar column,uchar *p,uchar j); extern void scankey(); sbit key1=P3^3; sbit key2=P3^4; sbit key3=P3^5; sbit key4=P3^6; sbit key5=P3^2; sbit sounder=P3^7; uchar code number[]={ 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,//0 0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//1 0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,//2 0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,//3 0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,//4 0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,//5 0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,//6 0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,//7 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,//8 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00, //9 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00, //小数点 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //空格 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00, // - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //空白 0x00,0xE0,0xF0,0xF8,0xF8,0xF0,0xE0,0x00,0x04,0x07,0x07,0x0F,0x0F,0x07,0x07,0x04 //闹钟显示 }; uchar code day[]={ 29,31,28,31,30,31,30,31,31,30,31,30,31 }; uchar code hanzi[]={ 0x00,0x20,0x18,0xC7,0x44,0x44,0x44,0x44,0xFC,0x44,0x44,0x44,0x44,0x04,0x00,0x00, 0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x00,//年 0x00,0x00,0x00,0xFE,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0xFE,0x00,0x00,0x00, 0x80,0x40,0x30,0x0F,0x02,0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x00,0x00,0x00,//月 0x00,0x00,0x00,0xFE,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0xFE,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0xFF,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xFF,0x00,0x00,0x00,0x00,//日 0x00,0x00,0x00,0xBE,0x2A,0x2A,0x2A,0xEA,0x2A,0x2A,0x2A,0x3E,0x00,0x00,0x00,0x00, 0x00,0x44,0x42,0x49,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x49,0x41,0x40,0x00,0x00,//星 0x00,0x04,0xFF,0x24,0x24,0x24,0xFF,0x04,0x00,0xFE,0x22,0x22,0x22,0xFE,0x00,0x00, 0x88,0x48,0x2F,0x09,0x09,0x19,0xAF,0x48,0x30,0x0F,0x02,0x42,0x82,0x7F,0x00,0x00,//期 0x00,0xFC,0x84,0x84,0x84,0xFC,0x00,0x10,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x00, 0x00,0x3F,0x10,0x10,0x10,0x3F,0x00,0x00,0x01,0x06,0x40,0x80,0x7F,0x00,0x00,0x00,//时 0x80,0x40,0x20,0x90,0x88,0x86,0x80,0x80,0x80,0x83,0x8C,0x10,0x20,0x40,0x80,0x00, 0x00,0x80,0x40,0x20,0x18,0x07,0x00,0x40,0x80,0x40,0x3F,0x00,0x00,0x00,0x00,0x00,//分 0x24,0x24,0xA4,0xFE,0x23,0x22,0x00,0xC0,0x38,0x00,0xFF,0x00,0x08,0x10,0x60,0x00, 0x08,0x06,0x01,0xFF,0x01,0x06,0x81,0x80,0x40,0x40,0x27,0x10,0x0C,0x03,0x00,0x00 //秒 }; uchar code start[]={ 0xFF,0xFF,0x93,0x03,0x07,0x03,0x03,0x87,0x87,0x03,0x03,0x07,0x03,0x8B,0xFF,0xFF, 0xFF,0xFF,0xC9,0xC0,0xC8,0xE4,0xC2,0xE1,0xE1,0xC2,0xC4,0xE0,0xC0,0xC9,0xFF,0xFF,//钟表图 0x00,0x00,0x00,0x60,0x20,0xF8,0xF8,0x38,0xFE,0xFE,0xFC,0x30,0x30,0x00,0x00,0x00, 0x00,0x02,0x42,0x62,0x3A,0x1F,0x0F,0x01,0x7F,0xFF,0x7F,0x01,0x01,0x01,0x01,0x00,//井 0x00,0x00,0x08,0xF8,0xF8,0x48,0xC8,0xC8,0xFC,0x7C,0x24,0xFC,0xFC,0x00,0x00,0x00, 0x00,0x00,0x3E,0x3F,0x0F,0x0E,0x07,0x03,0x07,0x27,0x</stdio.h></intrins.h></reg52.h>- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 100917024 基于 单片机 AT89C52 多功能 液晶 电子 日历 毕业设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文