毕业设计(论文)基于AT89C51单片机万历的设计.doc

上传人:仙人指路1688 文档编号:4149680 上传时间:2023-04-07 格式:DOC 页数:26 大小:795.50KB
返回 下载 相关 举报
毕业设计(论文)基于AT89C51单片机万历的设计.doc_第1页
第1页 / 共26页
毕业设计(论文)基于AT89C51单片机万历的设计.doc_第2页
第2页 / 共26页
毕业设计(论文)基于AT89C51单片机万历的设计.doc_第3页
第3页 / 共26页
毕业设计(论文)基于AT89C51单片机万历的设计.doc_第4页
第4页 / 共26页
毕业设计(论文)基于AT89C51单片机万历的设计.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《毕业设计(论文)基于AT89C51单片机万历的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于AT89C51单片机万历的设计.doc(26页珍藏版)》请在三一办公上搜索。

1、四川省高等教育自学考试电子工程专业 论文题目_基于AT89C51单片机万年历的设计指导老师_学生姓名_专 业_准考证号_ 2011年 08 月 23 日基于AT89C51单片机万年历的设计电子工程学生 xxx 指导老师 xxx摘要 :本文介绍了基于AT89C52单片机的多功能电子万年历的硬件结构和软硬件设计方法。系统以AT89C52单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。运用单片机实现公历农历之间的转换,电子闹钟,计时器和对指定日期的查询等功能。万年历采用液晶显示LCD-12864显示,可以同时显示年、月、

2、日、周几、时、分、秒,农历。综上所述此电子晚年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景关键字:AT89C51;电子万年历;公农历转换;电子闹钟Based on AT89C51 calendar designelectronic engineeringStudents xxx teacher xxxAbstract: this paper introduces the AT89C52 single chip based on the multi-function electronic calendar the hardwar

3、e structure and software and hardware design method. System to the microcontroller of AT89C52 controller, in a serial clock calendar chip DS1302 record calendar and time, it can be to date and time, minutes and seconds a clock, but also has a leap year compensation, etc DuoZhong function. Using sing

4、le chip microcomputer, the lunar calendar conversion between electronic alarm clock, timer and to date specified query etc. Function. Calendar liquid crystal display LCD 12864, can also shows that year, month, day, week, when a few, minutes and seconds, the lunar calendar.To sum up the electronic la

5、te calendar has read convenient, direct display, functional diversity, simple circuit, low cost, and many other advantages, conform to the trend of the development of electronic instruments, and has a broad market prospectKey word: AT89C51; Electronic calendar; And the lunar transformation; Electron

6、ic alarm clock一 、绪论1.1 课题研究的背景随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用AT89C51单片机作为核心,功耗小,能在3V的低压工作,电压可选用35V电压供电。此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。1.2课题的研究目的与意义二十一世纪是数字化技术高速发展的时代,而单片机在数字化高速发展的时代扮演着极为重要的角色。电子万年历的开

7、发与研究在信息化时代的今天亦是当务之急,因为它应用在学校、机关、企业、部队等单位礼堂、训练场地、教学室、公共场地等场合,可以说遍及人们生活的每一个角落。所以说电子万年历的开发是国家之所需,社会之所需,人民之所需。1.3课题解决的主要内容本课题所研究的电子万年历是单片机控制技术的一个具体应用,主要研究内容包括以下几个方面:(1)选用电子万年历芯片时,应重点考虑功能实在、使用方便、单片存储、低功耗、抗断电的器件。(2)根据选用的电子万年历芯片设计外围电路和单片机的接口电路。(3)在硬件设计时,结构要尽量简单实用易于实现,使系统电路尽量简单。(4)根据硬件电路图,在电路板上完成器件的焊接。(5)根据

8、设计的硬件电路,编写控制AT89C51芯片的单片机程序。(6)通过编程、编译、调试,把程序下载到单片机上运行,并实现本设计的功能。(7)在硬件电路和软件程序设计时,主要考虑提高人机界面的友好性,方便用户操作等因素。(8)软件设计时必须要有完善的思路,要做到程序简单,调试方便。二、系统的总体设计单片机电子万年历的制作有多种方法,可供选择的器件和运用的技术也有很多种。所以,系统的总体设计方案应在满足系统功能的前提下,充分考虑系统使用的环境,所选的结构要简单实用、易于实现,器件的选用着眼于合适的参数、稳定的性能、较低的功耗以及低廉的成本。2.1系统方案的构想与确定系统的功能往往决定了系统采用的结构,

9、经过成本,性能,功耗等多方面的考虑决定用液晶显示12864显示器显示,5V直流电源对单片机AT89C51进行供电,时间芯片DS1302连接单片机AT89C51。从而实现电子万年历的功能。2.2 器件的选用1、AT89C51单片机本系统采用的是美国ATMEL公司生产的AT89C51单片机,首先我们来熟悉一下AT89C51单片机的外部引脚和内部结构。1).单片机的引脚功能AT89C51单片机有40个引脚。Vcc:电源电压+5VGND:接地P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访

10、问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线服用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时要求外接上拉电阻。P1口:P1口是一个带内部上拉电阻的8位双向I/O,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。Flash 编程和程序校验期间,P1接收低8位地址。P2口:P2口是一个带内部上拉电阻的8位双向I/O,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,

11、此时可作输入口。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVXDPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(MOVX Ri指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。Flash 编程和程序校验期间,P2亦接收低高位地址和其他控制信号。P3口:P3口是一组带内部上拉电阻的8位双向I/O,P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部的上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流。P3口除了作为一般的I/O口

12、线外,更重要的用途是它的第二功能,见表2-1所示:表2-1 P3口的第二功能图端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外中断0)P3.3INT1(外中断1)P3.4T0(定时/计时器0外部输入)P3.5T1(定时/计时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT溢出将使引脚输出高电平,设置SFR AUXR的DISRT0(地址8EH)可打开或关闭该功

13、能。DISRT0位缺省为RESET输出高电平打开状态。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存器允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过多特殊功能寄存器(SFR)区中的8EH单元的D0位置,可禁止ALE操作。PSEN:程序存储允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数

14、据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的PSEN信号。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000HFFFFH),EA端必须保持低电平(接地)。Flash存储器编程时,该引脚加上+12V的变成电压Vpp.XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。2、 实时时钟芯片 DS1302 DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口

15、与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。 1)、DS1302有下列几组寄存器:DS1302有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81h8Dh,写时80h8Ch),存放的数据格式为 BCD 码形式,如表2-2所示。表2-2 DS1302有关日历、时间的寄存器读寄存器写寄存器BIT7BIT6BIT5BIT4BIT3BIT2BIT 1BIT 0范

16、围81h80hCH10秒秒00-5983h82h10分分00-5985h84h12/24010时1-12/0-23AM/PM87h86h0010日日1-3189h88h00010月月0-128Bh8Ah00000周日1-78Dh8Ch10年年00-998Fh8EhWP0000000-2)、DS1302有关日历、时间的寄存器小时寄存器(85h、84h)的位7用于定义 DS1302是运行于12小时模式还是24小时模式。当为高时,选择12小时模式。在12小时模式时,位5是 ,当为1时,表示 PM。在24小时模式时,位5是第二个10小时位。秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。当

17、该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位置为0时,时钟开始运行。控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。在任何的对时钟和 RAM 的写操作之前,WP 位必须为0。当WP 位为1时,写保护位防止对任一寄存器的写操作。3)读写时序说明DS1302是 SPI 总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。要想与 DS1302通信,首先要先了解 DS1302的控制字。DS1302的控制字如表2-3:表 2-3 DS1302的控制字1RAMA4A3A2A1A0RDCKWR控制字(即地址及命令字节)控制字的最高有效位(位7)必

18、须是逻辑1,如果它为0,则不能把数据写入到 DS1302中。位6:如果为0,则表示存取日历时钟数据,为1表示存取 RAM 数据;位5至位1(A4A0):指示操作单元的地址;位0(最低有效位):如为0,表示要进行写操作,为1表示进行读操作。控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK 时钟的上升沿时,数据被写入 DS1302,数据输入从最低位(0位)开始。同样,在紧跟8位的控制字指令后的下一个 SCLK 脉冲的下降沿读出 DS1302的数据,读出的数据也是从最低位到最高位。2.2.2 LCD 液晶显示器12864 选用及工作原。FYD12864-0402B 是一种具有 4 位/

19、8 位并行、2 线或 3 线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为 12864, 内置 8192 个 16*16 点汉字,和 128 个 16*8 点 ASCII 字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示 84 行 1616 点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。1、模块主要硬件构成说明控制器接口信号说明:1)、RS,R

20、/W 的配合选择决定控制界面的 4 种模式表2-4:表 2-4 12864 控制界面的 4 种模式RSR/W功能说明LLMPU 写指令到指令暂存器(IR)LH读出忙标志(BF)及地址记数器(AC)的状态HLMPU 写入数据到数据暂存器(DR)HHMPU 从数据暂存器(DR)中读出数据2)、功能说明:忙标志:BFBF 标志提供内部工作情况.BF=1 表示模块在进行内部操作,此时模块不接受外部指令和数据.BF=0 时,模块为准备状态,随时可接受外部指令和数据.利用 STATUS RD 指令,可以将 BF 读到 DB7 总线,从而检验模块之工作状态.字型产生 ROM(CGROM)字型产生RO(MCG

21、ROM)提供8192个此触发器是用于模块屏幕显示开和关的控制。DFF=1为开显示(DISPLAY ON),DDRAM的内容就显示在屏幕上,DFF=0 为关显示(DISPLAY OFF)。DFF 的状态是指令 DISPLAY ON/OFF 和 RS信号控制的。显示数据 RAM(DDRAM)模块内部显示数据 RAM 提供 642 个位元组的空间,最多可控制 4 行 16 字(64 个字)的中文字型显示,当写入显示数据 RAM 时,可分别显示 CGROM 与 CGRAM 的字型;此模块可显示三种字型,分别是半角英数字型(16*8)、CGRAM字型及 CGROM 的中文字型,三种字型的选择,由在 DD

22、RAM 中写入的编码选择,在 0000H0006H 的编码中(其代码分别是 0000、0002、0004、0006 共 4 个)将选择 CGRAM 的自定义字型,02H7FH 的编码中将选择半角英数字的字型,至于A1 以上的编码将自动的结合下一个位元组,组成两个位元组的编码形成中文字型的编码 BIG5(A140D75F),GB(A1A0-F7FFH)。字型产生 RAM(CGRAM)字型产生 RAM 提供图象定义(造字)功能, 可以提供四组 1616 点的自定义图象空间,使用者可以将内部字型没有提供的图象字型自行定义到 CGRAM 中,便可和 CGROM 中的定义一样地通过 DDRAM 显示在屏

23、幕中。地址计数器 AC地址计数器是用来贮存 DDRAM/CGRAM 之一的地址,它可由设定指令暂存器来改变,之后只要读取或是写入DDRAM/CGRAM 的值时,地址计数器的值就会自动加一,当 RS 为“0”时而 R/W 为“1”时,地址计数器的值会被读取到DB6DB0 中。光标/闪烁控制电路此模块提供硬体光标及闪烁控制电路,由地址计数器的值来指定 DDRAM 中的光标或闪烁位置。2.2.3公农历转换实现公历与农历的转换一般采用查表法,按日查表是速度最快的方法,但51 单片机寻址能力有限不可能采用按日查表的方法,除按日查外我们可以通过按月查表和按年查表的方法,再通过适当的计算来确定公历日所对应的

24、农历日期,本文采用的是按年查表法最大限度地减少表格所占的程序空间。 对于农历月来说大月为30 天小月为29 天,这是固定不变的,这样我们就可用1 个BIT 位来表示大小月信息,农历一年如有闰月为13 个月,否则是12 个月,所以一年需要用13 个BIT 。闰月在农历年中所在的月份并不固定大部分闰月分布在农历2 8 月但也有少量年份在9 月以后,所以要表示闰月的信息至少要4 个BIT。计算公历日对应的农历日期的方法,先计算出公历日离当年元旦的天数,然后查表取得当年的春节日期,计算出春节离元旦的天数,二者相减即可算出公历日离春节的天数以后只要根据大小月和闰月信息减一月天数,调整一月农历月份即可推算

25、出公历日所对应的农历日期,如公历日不到春节日期农历年要比公历年小一年,农历大小月取前一年的信息,农历月从12 月向前推算。三、系统硬件的设计3.1系统硬件电路设计1)、系统硬件框图如图3-1:时钟芯片DS1302串口AT89C51P2口LED显示器键盘输入蜂鸣器输出图3-1系统硬件框图AT89C51单片机内部结构2)Ds1302电路原理图:电路原理图如图3-2,DS1302与单片机的连接也仅需要3条线:CE 引脚、SCLK 串行时钟引脚、I/O 串数据引脚,Vcc2为备用电源,外接32.768kHz 晶振,为芯片提供计时脉冲。图 3-2 Ds1302电路原理图3)、FYD12864-0402B

26、 内部提供 1282 字节的字符显示 RAM 缓冲区(DDRAM)。字符显示是通过将字符显示编码写入该字符显示 RAM 实现的。根据写入内容的不同,可分别在液晶屏上显示 CGROM(中文字库)、HCGROM(ASCII 码字库)及 CGRAM(自定义字形)的内容。FYD12864-0402B 每屏可显示 4 行 8 列共 32 个 1616 点阵的汉字,每个显示 RAM 可显示 1 个中文字符或 2 个 168 点阵全高 ASCII 码字符,即每屏最多可实现 32 个中文字符或 64 个 ASCII 码字符的显示。YD12864-0402B 与单片机 80C51 的一种接口如图3-3:图3-3

27、 12864与单片机80C51接口四、系统的软件设计电子万年历的功能是在程序控制下实现的。该系统的软件设计方法与硬件设计相对应,按整体功能分成多个不同的程序模块,分别进行设计、编程和调试,最后通过主程序将各程序模块连接起来。这样有利于程序修改和调试,增强了程序的可移植性。4.1 主程序1).主程序流程图如图4-1所示:12864初始化1302初始化闹钟计数器开始从1302读取数据键盘扫描图 4-1主程序流程图2).从1302中取数据如图4-2:读取1302时间、日期开始系统初始化是否时间调整调整时间、日期图4-2 1302中取数据3)、按键扫描如图4-3:功能判断开始系统初始化是否按键调整时间

28、、日期时间设置闹钟设置计数器设置图 4-3按键扫描五、仿真图 将在kill中写好的程序编译成.hex格式,再由stc-isp将程序烧入到单片机里面去,烧程序时先打开烧录器,选择你所烧单片机的对应型号,打开程序编译好的hex格式的文件,调整好烧录时的波特率,本单片机设定的是2400hz15000hz的波特率;点击下载,等待窗口提示上电,程序烧好后单片机正常运行如图5-1:图5-1 调试图片结论: 通过这次的设计,让我知道了很多有用的东西,首先是人机界面的运用,按键的输入,对参数的设定,再由液晶显示出来,很方便,也很直观,对调试的实现很有用。还有就是让我首次接触了时钟芯片DS1302 也是很方便实

29、用,只需要在初始化后,再不停的取数据就可以用了,而且误差很小,有闰年的补偿,对每月的自动调整,耗电量也很小,相当经济实惠。在软件设计的过程中,利用了Keil这个软件在程序录入和调试的时候的优越性,让我能够在编写软件的时候很方便的发现软件中的错误,现在已经能够使用Keil对所设计的程序进行调试。对于PROTEUS这款软件,也能熟练掌握电路设计仿真。致谢:经过这几个月的时间,毕业设计都按照预期完成,由于本人的知识水平有限,论文和设计中有遗漏和缺陷的地方恳请指正。感谢我的导老师给了我很大的帮助,在他悉心的指导和严格的要求下,作品和论文顺利完成。论文从选题和最终完成,凝结着导师的辛勤的汗水,他不辞劳苦

30、的教导、严谨的作风使我终生受益。在此毕业设计完成之际,谨向导师和所有帮助过我的老师致以崇高的敬意和衷心的感谢。还有感谢家人、朋友还有宿舍里所有的室友,是他们给我创造了良好的学习氛围,在学习和生活中给了我支持和帮助。在以后的学习生活中我会时时敦促自己更加努力,不辜负师长、亲人、朋友对我的期望。参考文献1 赵长德.微型计算机原理与接口技术M.北京:机械工业出版社,1999:98-350.2 苏平.单片机的原理与接口技术M.北京:电子工业出版社,2006:1-113. 3 王忠民.微型计算机原理M.西安:西安科技大学出版社,2003:15-55.4 胡戴明.计算机组成原理M.北京:经济科学出版社,2

31、005:43-56.5 纪宗南.单片机外围器件使用手册M.北京:北京航空航天大学出版社,622-655.6 周雪.模拟电子技术M西安: 西安电子科技大学出版社,2005:81-95.7 左金生.电子与模拟电子技术M.北京:电子工业出版社,2004:105-131.8 尹勇.单片机开发环境Vision2的开发指南M. 北京:北京航空航天大学出版社,2004:173-199.9 张斌武.单片机系统Proteus设计与仿真M. 北京:电子工业出版社,2005:52-89.附件:本人公农历转换知识有限,未完成其转换,但要你做出了实物(因为好像protuse里的液晶显示器12864无法仿真)演示出了大多

32、数功能,论文还是很容易过的,关键看他考呢的是什么无非就是单片机编程的运用,这些足够,所以不用担心你的农历没弄出来,文档仅供参考相互学习。想想当初自己做的时候真的是无从着手,yi下程序也是经过调试,管脚接线见下sbit 定义; /12864 +1302 +#include#define uchar unsigned char#define uint unsigned intsbit rs=P17; /12864sbit rw=P16;sbit e=P15;sbit ce=P35; /1302sbit sclk=P37;sbit io=P36;sbit bell=P10; /蜂鸣器sbit dow

33、n=P11; /键盘sbit set=P12;sbit sure=P13;sbit up=P14;uchar second,minute,hour,week,day,month,fkey,c_second,c_minute;uchar c_clock,m_clock,h_clock,dress,clock_k,dress2,data1,count_k,time_k;uint year,b;uint table1=0xc8d5,0xd2bb,0xb6fe,0xc8fd,0xcbc4,0xcee5,0xc1f9,0xc8d5; /日一二三四五六uchar table3=0,1,2,3,4,5,6,

34、7,8,9,; /* 星期的计算 */ uchar transform(uint year,uchar month,uchar date) uint Ryear,week;uint adddata;Ryear=(year-2000)%400;if(year%4=0 & year%100!=0 | year%400=0) adddata=(Ryear)/4+365*Ryear+date+5; switch(month) case 1:week=(adddata)%7;break; case 2:week=(31+adddata)%7;break; case 3:week=(60+adddata)

35、%7;break; case 4:week=(91+adddata)%7;break; case 5:week=(121+adddata)%7;break; case 6:week=(152+adddata)%7;break; case 7:week=(182+adddata)%7;break; case 8:week=(213+adddata)%7;break; case 9:week=(244+adddata)%7;break; case 10:week=(274+adddata)%7;break; case 11:week=(305+adddata)%7;break; case 12:w

36、eek=(335+adddata)%7;break; else adddata=1+Ryear/4+365*Ryear+date+5; switch(month) case 1:week=(adddata)%7;break; case 2:week=(31+adddata)%7;break; case 3:week=(59+adddata)%7;break; case 4:week=(90+adddata)%7;break; case 5:week=(120+adddata)%7;break; case 6:week=(151+adddata)%7;break; case 7:week=(18

37、1+adddata)%7;break; case 8:week=(212+adddata)%7;break; case 9:week=(243+adddata)%7;break; case 10:week=(273+adddata)%7;break; case 11:week=(304+adddata)%7;break; case 12:week=(334+adddata)%7;break; return week;/延时void delay(uint z)uchar x,y;for(x=30;x1;x-)for(y=z;y1;y-);/* 1302模块*/ /1302 写void write

38、1302(uchar dat) uchar j;sclk=0;io=0;delay(1);for(j=0;j=1; delay(2); /读11302uchar read1302(void) uchar i,dat;delay(1);for(i=0;i=1;if(io=1) dat|=0x80; sclk=1;delay(2);sclk=0;delay(2);return dat; /1302写双字节void writeset1302(uchar dat1,uchar dat2) ce=1; write1302(dat1);write1302(dat2); ce=0;/1302读双字节ucha

39、r readset1302(uchar dat1 ) ce=1;write1302(dat1);dat1=read1302();ce=0;return dat1; /1302初始化void init_1302(void) uchar flag; flag=readset1302(0x80);if(flag&0x80) writeset1302(0x8E,0x00); writeset1302(0x80,(second/10)4|(second%10); writeset1302(0x82,(minute/10)4|(minute%10); writeset1302(0x84,(hour/10)

40、4|(hour%10);if(year100)year=year+2000;delay(2); week=transform(year,month,day);delay(2); writeset1302(0x8a,week); writeset1302(0x86,(day/10)4|(day%10); writeset1302(0x88,(month/10)100)year=year-2000; writeset1302(0x8C,(year/10)4)*10+(read&0x0f); read=readset1302(0x83); delay(1); minute=(read&0x70)4)

41、*10+(read&0x0f); read=readset1302(0x85); delay(1); hour=(read&0x70)4)*10+(read&0x0f); read=readset1302(0x87); delay(1); day=(read&0x70)4)*10+(read&0x0f); week=readset1302(0x8b); delay(1); read=readset1302(0x89); delay(1); month=(read&0x70)4)*10+(read&0x0f); read=readset1302(0x8d); delay(1); year=(read&0xf0)4)*10+(read&0x0f); year=(2000+year); delay(1); /* 12864 模块*

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号