版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、鹤壁职业技术学院毕业设计论文论文题目:电子时钟学 院:机电工程学院专业:电气自动化班级:2009级01班学生姓名:贾贯可学号:0902511005指导教师:司新生2011年10月18 日摘要绪论 5第1章设计要求与方案论证 71.1 引言 71.2功能要求 71.3方案论证 7第2章系统硬件电路设计 112.1电路设计 112.2 系统硬件概述 152.3主要单元电路的设计 15第3章系统的软件设计 223.1程序设计 223.2程序设计流程图 22第4章 结束语 24附录一(电路原理图) 附录二(程序清单) 27订阅方法:1 长披右侧擋级2 一在菜单中选择识別二维码单片机,趣味电子 DIY,
2、机器人,技术创从理单片机”进入智能世界摘要随着社会、科技的发展,人类得知时间,从观太阳、摆钟到现在电子 钟,不断研究、创新。为了在观测时间,能够了解与人类密切相关的信息, 比如星期、日期等,电子时钟诞生了,它集时间、日期、星期等功能于一 身,具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电 子仪器仪表的发展趋势,具有广阔的市场前景。该电子时钟主要采用 STC89C52RC单片机作为主控核心,由 DS1302 时钟芯片提供时钟、LED动态扫描显示屏显示。STC89C52RC单片机是由Atmel公司推出的,功耗小,电压可选用46V电压供电;DS1302时钟芯 片是美国DALLAS公司推
3、出的具有涓细电流充电功能的低功耗实时时钟 芯片,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补 偿等多种功能,而且 DS1302的使用寿命长,误差小;数字显示是采用的 LED显示屏来显示,可以同时显示年、月、日、星期、时、分、秒和温度 等信息。此外,该电子时钟还具有时间校准等功能。关键词:时钟电路; 时钟芯片DS1302; LED动态扫描; 单片机STC89C52RC;绪论随着人们生活水平的提高和生活节奏的加快, 对时间的要求越来越高, 精准数字计时的消费需求也是越来越多。二十一世纪的今天,最具代表性的计时产品就是电子时钟,它是近代 世界钟表业界的第三次革命。第一次是摆和摆轮游丝的
4、发明,相对稳定的 机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带 有摆或摆轮游丝的机械钟或表。第二次革命是石英晶体振荡器的应用,发 明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。 第三次革命就是单片机数码计时技术的应用,使计时产品的走时日差从分 级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟 悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期的显示功 能,它更符合消费者的生活需求!因此,电子时钟的出现带来了钟表计时 业界跨跃性的进步我国生产的电子时钟有很多种,总体上来说以研究多功能电子时钟为 主,使万年历除了原有的显示时间,日期
5、等基本功能外,还具有闹铃,报 警等功能。商家生产的电子万年历更从质量,价格,实用上考虑,不断的 改进电子时钟的设计,使其更加的具有市场。本设计为软件,硬件相结合的一组设计。在软件设计过程中,应对硬 件部分有相关了解,这样有助于对设计题目的更深了解, 有助于软件设计。 基本的要了解一些主要器件的基本功能和作用。除了采用集成化的时钟芯片外,还有采用 MCU的方案,利用STC89 系列单片微机制成电子电路,采用软件和硬件结合的方法,控制LED数码 管输出,分别用来显示年、月、日、时、分、秒,其最大特点是 :硬件电路 简单,安装方便易于实现,软件设计独特,可靠。STC89C52RC是由ATMEL 公司
6、推出的一种小型单片机。95年出现在中国市场。其主要特点为采用Flash存贮器技术,降低了制造成本,其软件、硬件与 MCS-51完全兼容, 可以很快被中国广大用户接受。本文介绍了基于STC89C52RC单片机设计的电子时钟。首先我们在绪论中简单介绍了单片机的发展与其在中低端领域中的优 势以及课题的开发意义;接着介绍了 STC89C52RC单片机的硬件结构和本 毕业设计所要外扩的LED显示及其驱动方法,并在此基础上实现了时钟基 本电路的设计;然后使用单片机 C语言进行时钟程序的设计,程序采用模 块化结构,使得逻辑关系简单明了,维护方便。第1章设计要求与方案论证1.1引言本文提出了一种基于STC89
7、C52RC单片机的时钟设计方案,本方 案以STC89C52RC单片机作为主控核心,与时钟芯片DS1302、按键、LED 显示等模块组成硬件系统。在硬件系统中设有独立按键和 LED显示器,能 显示丰富的信息,根据使用者的需要可以随时对时间进行校准、选择时间 等,综上所述此电子时钟具有读取方便、显示直观、功能多样、电路简洁、 成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前 景。1.2功能要求本电子时钟能动态显示年、月、日、星期、小时、分钟、秒1.3方案论证1.3.1技术可行性随着国内超大规模集成电路的出现,微处理器及其外围芯片有了迅速 的发展。集成技术的最新发展之一是将 CPU和
8、外围芯片,如程序存储器、 数据存储器、并行I/O 口、串行I/O 口、定时/计数器、中断控制器及其他 控制部件集成在一个芯片之中,制成单片计算机(Si ngle-Chip Microcomputer)。而近年来推出的一些高档单片机还包括有许多特殊功能 单元,如A/D、D/A转换器、调制解调器、通信控制器、锁相环、DMA、浮点运算单元、PWM控制输出单元、PWM输出时的死区可编程控制功能 等。因此,只要外加一些扩展电路及必要的通道接口就可以构成各种计算 机应用系统,如工业流水线控制系统、作为家用电器的主控制器、分布式 控制系统的终端节点或作为其主控制节点起中继的作用、数据采集系统、 自动测试系统
9、等。单片机的出现,并在各技术领域中得到如此迅猛的发展,与单片机构 成计算机应用系统所形成的下述特点有关:1、单片机构成的应用系统有较大的可靠性。这些可靠性的获得除了依 靠单片机芯片本身的高可靠性以及应用有最少的联接外,还可以方便地采 用软、硬件技术。2、系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统, 应用系统有较高的软、硬件利用系数。3、由于构成的应用系统是一个计算机系统, 相当多的测、控功能由软 件实现,故具有柔性特征,不须改变硬件系统就能适当地改变系统功能。4、有优异的性能、价格比。1.3.2单片机的选择方案一:采用传统的 STC89C52RC作为电机的控制核心。单片机算 术
10、运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和 逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其 在各个领域应用广泛。方案二:采用FTC10F04单片机,还带有非易失性Flash程序存储器。 它是一种高性能、低功耗的8位CMOS微处理芯片,市场应用最多。其主 要特点如下:8KB Flash ROM,可以擦除1000次以上,数据保存10年。由于本系统对CPU运算速度要求很高,需要执行很复杂的运算,方 案一成本比较低,适合做设计,方案二运算速度高,性能好,所以两种方 案都有可取之处。选用方案一作为主方案,方案二作为备用方案。1.3.3显示模块的选择方案一:使用液晶显
11、示屏显示时间数字。液晶显示屏(LCD )具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影象稳定不闪烁等 优势,可视面积大,画面效果好,分辨率高,抗干扰能力强等特点。但由 于液晶是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编 程工作量大,控制器的资源占用较多,其成本也偏高。在使用时,不能有 静电干扰,否则易烧坏液晶的显示芯片,不易维护。方案二:使用传统的LED数码管显示。数码管具有:低能耗、低损 耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界 环境要求低,易于维护,同时其精度比较高,称重轻,精确可靠,操作简 单。数码管采用BCD编码显示数字,程序编译容易,资源
12、占用较少。根据以上的论述,采用方案二。在本系统中,我们采用了八段四位 一体数码管串口的动态显示。134键盘模块的选择在对日期和时间进行切换,对日期和时间进行调节校准过程中,系 统需要产生激励电流,因此需要用按键。方案一:使用独立式键盘。独立式键盘是指直接用I/O 口线构成的单 个按键电路。独立式按键电路配置灵活,软件结构简单。方案二:使用矩阵式键盘。矩阵式键盘是由行线和列线组成,按键 位于行、列的交叉点上,行线、列线分别连接到按键开关的两端。其特点 是简单且不增加成本,这种键盘适合按键数量较多的场合。根据以上的论述,因本系统需要的按键不多,日期加 1键,月数加1 键,年数加1键,分数加1键,时
13、数加1键,时间/日期切换键,要求简 单。所以采用方案一独立式键盘。135总体方案论证与选择按照系统设计功能的要求,初步确定系统由主控模块、时控模块、及 显示模块和键盘接口模块共4个模块组成。主控芯片使用51系列STC89C52RC单片机,时钟芯片使用美国 DALLAS公司推出的一种高性 能、低功耗、带RAM的实时时钟DS1302。采用DS1302作为计时芯片, 可以做到计时准确。更重要的是,DS1302可以在很小电流的后备电源(2.55.5V电源,再2.5V时耗电小于300nA),而且桂1302可以编程 选择多种充电电流来为后备电源进行慢速充电,可以保证后备电源基本不耗电。显示模块采用普通的共
14、阳极四位一体八段LED数码管。第二章系统硬件电路设计2.2系统硬件概述2.2.1 主控制器 STC89C52RCSTC89C52RC单片机是宏晶科技推出的新一代高速、 低功耗、超强抗 干扰的单片机,指令代码完全兼容传统 8051单片机,12时钟、机器周期 和6时钟、机器周期可以任意选择。主要特性如下:增强型8051单片机,6时钟、机器周期和12时钟、机器周期可 以任意选择,指令代码完全兼容传统 8051单片机。 工作电压:5.5V3.3V 工作频率范围:044MHz。用户应用程序空间为8K字节片上集成512字节RAM通用I/O 口 32个,复位后为:P1/P2/P3/P4是准双向口 /弱上位,
15、 P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作 为I/O 口用时,需加上拉电阻。 ISP(在系统可编程)/IAP (再应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RXD/P3.0,TXD/P3.1 )直接下载用户程序,数秒即可完成一片。 具有EEPROM功能具有看门狗功能共3个16位定时器/计数器。及定时器TO、T1、T2外部中断4路,下降沿中断或低电平触发电路,Power Down模式 可由外部中断低电平触发中断方式唤醒通用异步串行口( UART),还可用定时器实现多个 UART工作温度范围:-40+85度(工业级)/075度(商业级) PDIP封装 2.2.2
16、时钟电路DS1302DS1302的性能特性:实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行比较;用于高速数据暂存的31*8位RAM ;最少引脚的串行I/O; 2.55.5V电压工作范围; 2.5V时耗小于300nA;用于时钟或RAM数据读/写的单字节或多字节(脉冲方式)数据 传送方式;简单的三线接口;可选的慢速充电(至 Vcc1 )的能力。DS1302在任何数据传送时必须先初始化,把 RST脚置为高电平,然 后把8位地址和命令字装入移位寄存器,数据在SCLK的上升沿被访问到。 在开始8个时钟周期,把命令字节装入移位寄存器后,另外的时钟周期在 读操作时输出数据,在写操作时写入数据。时
17、钟脉冲的个数在单字节方式 下为8+8,在多字节方式下为8+字节数,最大可达248字节数。如果在传 送过程中置RST脚为低电平,则会终止本次数据传送,并且 I/O引脚变为 高阻态。上电运行时,在 Vcc2.5V之前,RST脚必须保持低电平。只有 在SCLK为低电平时,才能将RST置为高电平。DS1302的控制字如表所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,贝U不能把数据写入到DS1302中。位6如果为0,则表 示存取日历时钟数据;为1则表示存取RAM数据。位51 (A4A0)指 示操作单元的地址。最低有效位(位 0)如果为0,则表示药进行写操作; 为1表示进行读操作。控制字节总
18、是从最低位开始输入/输出。为了提高对32个地址寻址能力(地址/命令位15=逻辑1),可以把时 钟/日历或RAM寄存器规定为多字节(burst)方式。位6规定时钟或RAM, 而位0规定读或写。在时钟/日历寄存器中的地址931或RAM寄存器中 的地址31不能存储数据。在多字节方式下,读或写从地址 0的位0开始。 必须按数据传送的次序写最先的 8个寄存器。但是,当以多字节方式写RAM时,为了传送数据不必写所有的31字节,不管是否谢了全部31字节, 所写的每一字节都将传送至RAM 。表2.1DS1302控制字76彳1 *21| OKIHCH1爲BC切fQlOMlhTMTNm行列结构可构成mn个按键,
19、组成一个键盘。与独立式按键相比, mn个按键只占用m+n根I/O 口线, 因此适用于按键较多的场合。当无键闭合时,相应的I/O之间开路。当有键闭合时,与闭合键相连 接的两条I/O 口线之间短路。判断有无键按下的方法是:第一步,置列线 相关I/O 口为输入态,从行线相对应的I/O 口输出低电平,读入列线数据, 若某一列线为低电平,则该列线上有键闭合。第二步,置行线相关I/O 口输出低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合。 综合一二两步的结果,可确定按键编号。但是键闭合一次只能进行一次键 功能操作,因此须等待近按键释放后,再进行键功能操作,否则按一次键, 有可能会连续多次进行
20、同样的键操作。2.3.2.4键盘扫描控制方式在单片机应用系统中,对键盘的处理工作仅是CPU工作内容的一部分,CPU还要进行数据处理、显示和其他输入输出操作,因此键盘处理工 作既不能占用CPU太多时间,又需要CPU对键盘操作及时作出响应。CPU 对键盘处理控制的工作方式有以下几种:1. 程序控制扫描方式程序控制扫描方式是在CPU工作空余,调用键盘扫描子程序,响应键 输入信号要求。2. 定时控制扫描方式定时控制扫描方式是利用定时/计数器每隔一段时间产生定时中断, CPU响应中断后对键盘进行扫描,并在有键闭合时转入该键的功能子程序。3. 中断控制扫描方式中断控制扫描方式是利用外部中断源,响应输入信号
21、。当无按键按下 时,CPU执行正常工作程序。当有按键按下时,CPU立即产生中断。在中 断服务子程序中扫描键盘,判断是哪一个键被按下,然后执行该键的功能 子程序。这种控制方式克服了前两种控制方式可能产生的空扫描和不能及 时响应键输入的缺点,既能及时处理键输入,又能提高CPU运行效率,但要占用一个宝贵的中断资源。图即工作于中断方式的矩阵式键盘接口电路。在初始化时P1.4P1.7置输出0, P1.0P1.3置为输入态,P1.0P1.3分别接 至与门各输入端。当有键闭合时INTO=0,CPU中断后,在中断服务子程 序中,再完成键识别和键功能处理。INTOSKIn.fiFl.lPl ,2FibKI.5n
22、.fiPl于图2.4工作于中断方式的矩阵式键盘接口电路2.3.3时钟电路233.1 DS1302工作方式简介及数据操作原理DS1302可以对年、月、日、星期、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.55.5V。采用三线接口与CPU进行同步通信,并 可采用突发方式一次传送多个字节的时钟信号或 RAM数据。DS1302内部有 一个33x8的用于临时性存放数据的RAM寄存器。DS1302是的DS1202升级 产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了 对后背电源进行涓细电流充电的能力。DS1302时钟芯片包括实时时钟/日历和31字节的静态RAM。它经过
23、一个简单的串行接口与微处理器通信。 实时时钟/日历提供秒、分、时、日、 周、月和年等信息。对于小于31天的月和月末的日期自动进行调整,还包括闰年校正的功能。时钟的运行可以采用 24小时或带AM/PM的12小 时格式。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送 多字节的时钟信号或RAM数据。DS1302有主电源/后备电源双电源引脚:Vcc1在单电源与电池供电的 系统中提供低电源,并提供低功率的电磁备份;Vcc1在双电池系统中提供 主电源。在这种运行方式中,Vcc1里连接到后备电源,以便在没有主电源 的情况下能保存时间信息以及数据。DS1302由Vcc1或Vcc2中较打大者供电。当
24、 Vcc2(Vcc1+0.2V)时,Vcc2 给 DS1302供电;当 Vcc2vVcc1 时,DS1302由Vcc1供电。1診ZJVCC2阳匚27ZISCLK 6二 I/OGM?匚45图 2.5DS1302DS1302在任何数据传送时必须先初始化,把 RST脚置为高电平,然 后把8位地址和命令字装入移位寄存器,数据在SCLK的上升沿被访问到。 在开始8个时钟周期,把命令字节装入移位寄存器后,另外的时钟周期在 读操作时输出数据,在写操作时写入数据。时钟脉冲的个数在单字节方式 下为8+8,在多字节方式下为8+字节数,最大可达248字节数。如果在传 送过程中置RST脚为低电平,则会终止本次数据传送
25、,并且 I/O引脚变为 高阻态。上电运行时,在 Vcc2.5V之前,RST脚必须保持低电平。只有 在SCLK为低电平时,才能将RST置为高电平。DS1302的控制字如图所示。控制字节的最高有效位(位 7)必须是逻 辑1,如果它为0,贝U不能把数据写入到DS1302中。位6如果为0,则表 示存取日历时钟数据;为1则表示存取RAM数据。位51 (A4A0)指 示操作单元的地址。最低有效位(位 0)如果为0,则表示药进行写操作; 为1表示进行读操作。控制字节总是从最低位开始输入 /输出。为了提高对32个地址寻址能力(地址/命令位15=逻辑1),可以把时 钟/日历或RAM寄存器规定为多字节(burst
26、)方式。位6规定时钟或RAM, 而位0规定读或写。在时钟/日历寄存器中的地址931或RAM寄存器中 的地址31不能存储数据。在多字节方式下,读或写从地址0的位0开始。必须按数据传送的次序写最先的8个寄存器。但是,当以多字节方式写RAM时,为了传送数据不必写所有的31字节,不管是否谢了全部31字节, 所写的每一字节都将传送至RAM。DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存 放的数据位为BCD码形式。其日历、时间寄存器及其控制字如下表所示, 其中奇数为读操作,偶数为写操作。表2.3DS1302控制字許令字各扯内弄驟ft7fi542inm冊CHiOSECSLjCB3HOJ-
27、5D10MINMINK4HASHW23D10HR朋r恥H加OJ斜,30, 311)d!0bArELlAlt月富养富01-12n0I0MMONTH問霧?7聘MHtBH01-0?00000DAV10 YbAR时钟暂停:秒寄存器的位7定义位时钟暂停位。当它为1时,DS1302 停止振荡,进入低功耗的备份方式,通常在对DS1302进行写操作时(如进入时钟调整程序),停止振荡。当它为0时,时钟将开始启动。AM-PM/12-24小时方式:小时寄存器的位7定义为12或24小时方式 选择位。它为高电平时,选择 12小时方式。在此方式下,位 5为第二个 10小时位(2023h)。DS1302的晶振选用32768
28、Hz,电容推荐值为6pF。因为振荡频率较低, 也可以不接电容,对计时精度影响不大。第3章 系统的软件设计(3.1程序设计)电子时钟的程序主要包括3个方面的内容:一是DS1302从单片机中读取数据进行计数,二是利用按键进行时间的调整,三是单片机中读取DS1302中的数据驱动 LED数码管显示时间。STC89C52R单片机主要I/O 口的分配:P10、P11、P12分别接时钟芯片的 SCLK I/O、RST引脚,P13、 P14 P15 P16接四个独立按键。幵始K加1程序K等于0显示时间K等于1显示日期K等于2显示报警时间报警程序 按键程序返回主程序流程图时间调整程序流程图第4章结束语2010年
29、3月,我开始了我的毕业论文工作,时至今日,论文基本完成。 从最初的茫然,到慢慢的进入状态,再到对思路逐渐的清晰,整个写作过 程难以用语言来表达。历经了一个多月的奋战,紧张而又充实的毕业设计 终于落下了帷幕。回想这段日子的经历和感受,我感慨万千,在这次毕业 设计的过程中,我拥有了无数难忘的回忆和收获。当我终于完成了所有打 字、绘图、排版、校对的任务后整个人都很累,但同时看着电脑荧屏上的 毕业设计稿件我的心里是甜的,我觉得这一切都值了。这次毕业论文的制 作过程是我的一次再学习,再提高的过程。在论文中我充分地运用了大学 期间所学到的知识。我不会忘记这难忘的几个月的时间。毕业论文的制作给了我难忘的回
30、忆。在我徜徉书海查找资料的日子里,面对无数书本的罗列,最难忘的是 每次找到资料时的激动和兴奋;亲手用 protel 99设计电路图的时间里,记 忆最深的是每一步小小思路实现时那幸福的心情;为了论文我曾赶稿到深 夜,但看着亲手打出的一字一句,心里满满的只有喜悦毫无疲惫。这段旅 程看似荆棘密布,实则蕴藏着无尽的宝藏。我从资料的收集中,掌握了很 多单片机及其接口应用的知识,让我对我所学过的知识有所巩固和提高, 并且让我对当今单片机的最新发展技术有所了解。在整个过程中,我学到 了新知识,增长了见识。在今后的日子里,我仍然要不断地充实自己,争 取在所学领域有所作为。脚踏实地,认真严谨,实事求是的学习态度
31、,不怕困难、坚持不懈、吃 苦耐劳的精神是我在这次设计中最大的收益。我想这是一次意志的磨练, 是对我实际能力的一次提升,也会对我未来的学习和工作有很大的帮助。 在这次毕业设计中也使我们的同学关系更进一步了,同学之间互相帮助, 有什么不懂的大家在一起商量,听听不同的看法对我们更好的理解知识, 所以在这里非常感谢帮助我的同学。在此更要感谢我的指导老师和专业老师, 是你们的细心指导和关怀,使 我能够顺利的完成毕业论文。在此我要向司老师致以最衷心的感谢和敬意。程序/main.c/#include#define uint unsigned int#includeds1302.h#includekey.h#
32、includebell.hsbit k4=P1A3;char k=0;char shi,fen,miao,nian,yue,ri;charbaojingshi=0x00,baojingfen=0x06,baojingmiao=0x00Jvoid sjdisplay();void rqdisplay();void baojingdisplay();void delay(uint ms);void display(char shu,char wei);char table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0x
33、c6,0xa1,0x86,0x8e;void main()ds1302_write(0x80,0x55);ds1302_write(0x82,0x45);ds1302_write(0x84,0x00);ds1302_write(0x8c,0x11);ds1302_write(0x88,0x10);ds1302_write(0x86,0x07);while(1)if(k4=0)delay(5);if(k4=0)while(k4=0);k+;if(k=3)k=0;if(k=0)sjdisplay();if(k=1)rqdisplay();if(k=2)baojingdisplay();if(shi
34、=baojingshi)&( fen=baojingfen)&( miao=b aojingmiao)didi(1O);key();void sjdisplay()shi=ds1302_read(0x85);/hour fen=ds1302_read(0x83);/minites miao=ds1302_read(0x81);/second display(shi4)&0x07,0);display(shi&0x0f,1);display(fen4)&0x07,3);display(fe n& 0x0f,4);display(miao4)&0x07,6);display(miao&0x0f,7
35、);void rqdisplay()nian=ds1302_read(0x8d);/nianyue=ds1302_read(0x89);/yueri=ds1302_read(0x87);/ridisplay(nian4)&0x07,0);display(nian&0x0f,1);display(yue4)&0x07,3);display(yue&0x0f,4);display(ri4)&0x07,6);/0000 0111display(ri&0x0f,7);void baojingdisplay()display(baojingshi4)&0x07,0);display(baojingshi
36、&0x0f,1);display(baojingfen4)&0x07,3);display(baojingfe n&0x0f,4);display(baojingmiao4)&0x07,6);display(baojingmiao&0 x0f,7);void delay(uint ms)uint i,j;for(i=ms;i0;i-)for(j=124;j0;j-);void display(char shu,char wei)PO=tableshu;P2=(1wei);delay(3);P2=0xff;/main.c/ Ds1302.c#include#define uchar unsign
37、ed char#define uint unsigned int sbit rst=P1A2;sbit dat=P1Al;sbit clk=P1A0;void ds1302_write(char comm,char datl) char temp,t;rst=0;clk=0;rst=1;temp=comm;for(t=0;t1);clk=0;temp=dat1;for(t=0;t1;clk=0;rst=0;uchar ds1302_read(char comm) char temp,t;rst=0;rst=1;temp=comm;for(t=0;t1; clk=O; temp=O;/OOOOO
38、OOO for(t=0;t1;if(dat=1) temp=temp|0x80;else temp=temp&0 x7f;clk=1;clk=0;rst=O;return temp;Ds1302.c/Key.c/#include#define char signed char#define uint unsigned intsbit mode=P1A4;sbit add=P1A5;sbit sub=P1A6;char mod=0;extern void delay(uint ms);extern char shi,fen,nian,yue,ri;extern char baojingshi,b
39、aojingfen;extern char ds1302_read(char);extern void ds1302_write(char,char);void key()shi=ds1302_read(0x85);fen=ds1302_read(0x83);if(mode=0)delay(5);if(mode=0)while(mode=0);mod+;if(mod=8)mod=0;if(add=0)delay(5);if(add=O)while(add=0);if(mod=1)shi=(shi4)&0x03)*10+(shi&0x0f)+1;if(shi=24)shi=0;ds1302_wr
40、ite(0x84,(shi/10)4)+(shi%10)&OxOf);/hourelse if(mod=2)fen=(fen4)&0x07)*10+(fe n&0x0f)+1;if(fen=60)fen=O;ds1302_write(0x82,(fen/10)4)+(fen%10)&0x0f);else if(mod=3)nian=(nian4)&0x0f)*10+(nian&0x0f)+1;if(nian=99)nian=1;ds1302_write(0x8c,(nian/10)4)+(nian%10)&0x0f);else if(mod=4)yue=(yue4)&OxO1)*1O+(yue
41、&0x0f)+1;yue=1;if(yue=13)ds1302_write(0x88,(yue/10)4)+(yue%10)&OxOf);else if(mod=5)if(yue=1)|(yue=3)|(yue=5)|(yue=7)|(yue=8)|(yue=10)|(yue=12) ri=(ri4)&0x03)*10+(ri&0x0f)+1;if(ri=32)ri=1;if(yue=4)|(yue=6)|(yue=9)|(yue=11)ri=(ri4)&0x03)*10+(ri&0x0f)+1;if(ri=31) ri=1; if(yue=2)ri=(ri4)&0x03)*10+(ri&0x
42、0f)+1;if(ri=29) ri=1; Of);ds1302_write(0x86,(ri/10)4)+(ri%10)&Oxelse if(mod=6)baojingshi=(baojingshi4)&0x01)*10+(baojingshi&0x0f)+1;if(baojingshi=24)baojingshi=0;ds1302_write(0x88,(baojingshi/10)4)+(b aojingshi%10)&0x0f);else if(mod=7)baojingfen=(baojingfen4)&0x01)*10+(baojingfen&0x0f)+1;if(baojingfen=60)baojingfen=0;ds1302_write(0x88,(baojingfen/10)4)+(baojingfen%10)&0x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 品牌推广与市场策略规划模板
- 2026年招聘岗位更新确认函5篇范文
- 企业财务管理核算与分析工具包
- 导游讲解“触觉疗愈”材质温度试题库及答案
- 2026年药包材变更研究与相容性试验设计
- 2026年锂电池负极材料一体化项目方案
- 2026年检验科主任年度工作述职与质量改进报告
- 华为5g合同协议书
- 体育训练基地训练协议书
- 学校物资管理制度之供应科采购员岗位责任制度模板
- 血液净化护理教学查房
- 中山网约车考试题目含答案
- 盾构施工安全培训课件
- 公共符号设计过程
- 旅行社线路产品设计
- 车间级油脂管理制度
- 2025年高考数学全国二卷试题真题及答案详解(精校打印)
- JG/T 5072.2-1996电梯T型导轨检验规则
- 2025至2030年中国护眼眼罩行业发展研究报告
- 2025浙江旅游职业学院辅导员考试试题及答案
- DB63T 1936-2021 1:25000地球化学测量规范
评论
0/150
提交评论