版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、唐 山 学 院单片微机原理与应用课 程 设 计 题 目 数字电子钟 系 (部) 机电工程系 班 级 11测控2班 姓 名 孟凡涛 学 号 4110107216 指导教师 田红霞 王墨琦 2014 年 2 月 24 日至 3 月 7 日 共 2 周2014年 3 月 7 日目 录1 引 言12 核心芯片简介22.1 DS1302简介22.1.1 DS1302引脚功能与内部结构22.1.2 DS1302的控制字32.1.3 DS1302的复位引脚32.1.4 DS1302的数据输入输出42.1.5 DS1302的寄存器42.2 AT89C52简介42.2.1 AT89C52芯片的引脚及特点52.2
2、.2 AT89S51的主要性能参数:72.3 74LS245简介83 方案设计与论证94 软硬件设计104.1 硬件电路设计104.1.1 单片机AT89C52外围电路设计104.1.2 DS1302与单片机的接口设计114.1.3 显示设计114.2 软件实现124.2.1 程序流程124.2.2 DS1302流程125 结 论146 参 考 文 献157 附 录16附录一:设计电路仿真图:16附录二:源程序16附录三:DS1302.H25 课程设计说明书 1 引 言从古代的滴漏更鼓到近代的机械钟,从电子表到目前的数字时钟,为了准确的测量和记录时间,人们一直在努力改进着计时工具。钟表的数字化
3、,大力推动了计时的精确性和可靠性。在单片机构成的装置中,实时时钟是必不可少的部件。目前常用的实时时钟,很多采用单片机的中断服务来实现,这种方式一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且某些测控系统可能不允许;有的则使用并行接口的时钟芯片,如MC146818、DS12887等,它们虽然能满足单片机系统对实时时钟的要求,但是这些芯片与单片机接口复杂,占用地址、数据总线多,芯片体积大,占用空间多,给其它设计带来诸多不便。本设计选取串行接口时钟芯片DS1302与单片机同步通信构成数字时钟电路。其简单的三线接口能为单片机节省大量资源,DS1302的后背电
4、源及对后背电源进行涓细电流充电的能力保证电路断电后仍能保存时间和数据信息等。这些优点解决了目前常用的实时时钟所无法解决的问题。该时钟电路强大的功能和优越的性能,在很多领域的应用中,尤其是某些自动化控制、长时间无人看守的测控系统等对时钟精确性和可靠性有较高要求的场合,具有很高的使用价值。2 核心芯片简介2.1 DS1302简介DS13021是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.55.5V。时钟可工作在24小时格式或12小时(AM/PM)格式。 DS1302与单片机的接口使用同步串行
5、通信,仅用3条线与之相连接。可采用一次传送一个字节或突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。2.1.1 DS1302引脚功能与内部结构 DS1302的引脚功能如表1所示,外形及内部结构如图1所示:表1 DS1302引脚功能表引脚号引脚名称功能1VCC2主电源2、3X1、X2振荡源,外接32768Hz晶振4GND地线5RST复位/片选线6I/O串行数据输入/输出端(双向)7SCL
6、K串行时钟输入端8VCC1后备电源 图1 DS1302管脚图及内部结构图2.1.2 DS1302的控制字DS1302的控制字节如图2所示: 7 6 5 4 3 2 1 01RAMA4A3A2A1A0RD W图2 DS1302控制字节的含义控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。2.1.3 DS1302的复位引脚通过把RST从低电平变成高电平启动一次数据传输过程。 输
7、入有两种功能:首先, 接通控制逻辑,允许地址命令序列送入移位寄存器;其次, 提供了终止单字节或多字节数据的传送手段。当 为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中置 为低电平,则会终止此次数据传送,并且I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前, 必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。2.1.4 DS1302的数据输入输出在控制指令字输入后的下一个SCLK时钟的上升沿时数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0
8、位至高位7,数据读写时序如图3所示:图3 数据读写时序2.1.5 DS1302的寄存器DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。其日历、时间寄存器及其控制字见表2。此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器的内容。 DS1302与RAM相关的寄存器分为两类,一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H-FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,此方式下可一次性读写所
9、有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。表2 DS1302的日历、时钟寄存器及其控制字寄存器名命令字取值范围各位内容写操作读操作76543210秒寄存器 80H81H00-59CH10SECSEC3时寄存器84H85H01-12或00-2312/24010HRHR日寄存器86H87H01-28,29,30,310010DATEDATE月寄存器88H89H01-1200010MMONTH27周寄存器8AH8BH01-0700000DAY年寄存器8CH8DH00-9910YEARYEAR2.2 AT89C52简介AT89C52是美国Atmel公司生产的低电压、高性能CMOS
10、 8位单片机,片内含8KB的可反复檫写的程序存储器和12B的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内配置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89C52单片机可灵活应用于各种控制领域。AT89C52单片机属于AT89C51单片机的增强型,与Intel公司的80C52在引脚排列、硬件组成、工作特点和指令系统等方面兼容。2.2.1 AT89C52芯片的引脚及特点 图4 AT89S51引脚图(1)功能特性概括:AT89S51提供以下标准功能:40个引脚、4K Bytes Flash片内程序存储器、
11、128 Bytes的随机存取数据存储器(RAM)、32个外部双向输入/输出(I/O)口、5个中断优先级2层中断嵌套中断、2个数据指针、2个16位可编程定时/计数器、2个全双工串行通信口、看门狗(WDT)电路、片内振荡器及时钟电路。此外,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲模式下,CPU暂停工作,而RAM、定时/计数器、串行通信口、外中断系统可继续工作。掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。(2)管脚说明:VCC:供电电压。GND
12、:接地。P0口:P0口为一个8位漏级开路双向I/O口,也即地址/数据总线复用口。作为输出口用时,能驱动8个TTL逻辑门电路。对端口写“1”时,被定义为高阻输入。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。P1口:P1口是一个带内部上拉电阻的8位双向I/O口,P1口的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(I )。P2 口:P2 是一个带有内部上拉电阻的8 位双向I/O
13、口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16 位地址的外部数据存储器(例如执行MOVX DPTR 指令)时,P2 口送出高8 位地址数据。在访问8 位地址的外部数据存储器(如执行MOVX RI 指令)时,P2 口输出P2 锁存器的内容。P3口: P3口是一个带有内部上拉电阻的双向8位I/O口, P3口的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写“1”时,它们
14、被内部的上拉电阻拉高并可作为输入端口。作输入口使用时,被外部信号拉低的P3口将用上拉电阻输出电流(I )。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表3所示:P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。表3 P3口引脚第二功能端口引脚第二功能P3.0RXD (串行输入口)P3.1TXD (串行输出口)P3.2 (外中断0)P3.3 (外中断1)P3.4 T0 (定时/计数器0)P3.5 T1 (定时/计数器1)P3.6 (外部数据存储器写选通)P3.7 (外部数据存储器读选通)RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上的高电平时
15、间将使单片机复位。WDT溢出将使该引脚输出高电平,设置SFR AUXR的DISRTO位(地址8EH)可打开或关闭该功能。 DISRTO位缺省为RESET输出高电平打开状态。ALE/ :当访问外部存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部寄存器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。值得注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲( )。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位
16、后,只要一条MOVX和MOVC指令才会激活ALE。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效:程序存储允许( )输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次 有效,即输出两个脉冲。当访问外部数据存储器时,没有两次有效的 信号。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需要注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端保持高电平(接VCC端),CPU则执行内部程序存储器中的指令。Flash存储器编程期间,该引脚用于
17、施加+12V编程电压(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入端。XTAL2:反向振荡放大器器的输出端。(3)晶体振荡器特性: AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别为该反向放大器的输入端和输出端。这个反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。 外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性。如果使用石英晶体,电容应该使用
18、30pF10pF。 还可以使用外部时钟。这种情况下,外部时钟脉冲接XTAL1端,即内部时钟发生器的输入端, XTAL2应悬空。 由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大低电平持续时间应符合产品技术条件的要求。2.2.2 AT89S51的主要性能参数:1) 与Mcs-51产品指令和引脚完全兼容。2) 8字节可重擦写FLASH闪速存储器3) 1000 次擦写周期4) 全静态操作:0HZ-24MHZ5) 三级加密程序存储器6) 256X8字节内部RAM7) 32个可编程I/0口线8) 3个16 位定时计数器9) 8个
19、中断源10) 可编程串行UART通道11) 低功耗空闲和掉电模式2.3 74LS245简介74LS245是我们常用的芯片,用来驱动LED或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。74LS245还具有双向三态功能,既可以输出,也可以输入数据。当89C52单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。当片选端/CE低电平有效时,DIR=“0”,信号由 B 向 A 传输;(接收)DIR=“1”,信号由 A 向 B 传输;(发送)当/CE为高电平时,A、B均为高阻态。由于P2口始终输出地址的高8位,接口时74LS245的三态控制端/1G和
20、/2G接地,P2口与驱动器输入线对应相连。P0口与74LS245输入端相连,/E端接地,保证数据现畅通。8051的/RD和/PSEN相与后接DIR,使得/RD或/PSEN有效时,74LS245输入(P0.iDi),其它时间处于输出(P0.iDi)。图5 74LS245引脚图3 方案设计与论证该设计虽然能完成所要求的任务,综合性能也较好,但其并行接口方式占用大量接口资源,给其它设计带来诸多不便。使用串行接口时钟芯片DS1302设计时钟电路。该设计方案以单片机AT89S51为主控芯片,以串行时钟芯片DS1302为核心计时芯片,组成数字时钟电路。该电路不但能准确地计时、附加其它功能,而且,其三线接口
21、可以节省接口资源,在断电后不丢失时间和数据信息。该设计方案的接口电路如图6所示: 图6 DS1302与CPU接口通过以上两种设计方案的比较,我们可以看到,设计方案二接口简单,计时可靠,综合性能良好。4 软硬件设计4.1 硬件电路设计该设计的硬件电路由主控部分(单片机AT89C52)、计时部分(实时时钟芯片DS1302)、显示部分(七段数码管)3个部分组成。各部分之间相互协作,构成一个统一的有机整体,实现数字时钟的功能。各部分的硬件电路设计如下。设计总电路图见附录一。4.1.1 单片机AT89C52外围电路设计单片机AT89C52作为主控芯片,控制整个电路的运行。单片机外围需要一个复位电路,复位
22、电路的功能是:系统上电时提供复位信号,直至系统电源稳定后,撤消复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。该设计采用含有二极管的复位电路,复位电路可以有效的解决电源毛刺和电源缓慢下降(电池电压不足)等引起的问题,在电源电压瞬间下降时可以使电容迅速放电,一定宽度的电源毛刺也可令系统可靠复位。复位电路的设计图如图7示: 图7 单片机复位电路图AT89S51具有在系统可编程功能,可以很方便的改写单片机存储器内的程序不需要把芯片中从工作环境中剥离,把AT89S ISP下载口接入电路,可使电路实现该功能。AT89S51需要接入一
23、个普通12MHz晶振,为其提供稳定的时钟脉冲。该设计中有6个八段数码显示管LED,所以,在单片机AT89S51外围需要接入6个三极管来驱动数码显示管。此外,单片机外围需要接入3个开关,用来调整时钟。单片机外围电路的设计图如图8示:图8 AT89S52外围电路图4.1.2 DS1302与单片机的接口设计时钟芯片DS1302与单片机AT89S51的接口是由3条线来完成的,单片机AT89S51的P1.0与时钟芯片的数据传输端相连,P1.1用来作为DS1302输入时钟SCLK控制端,P1.2控制DS1302的复位输入端。DS1302接标准32.768KHz石英晶振。DS1302与单片机的接口电路如图9
24、所示:图9 DS1302与AT89c52连接图4.1.3 显示设计八段数码显示管有两种,一种是共阳数码管,其内部是由八个阳极相连接的发光二极管组成;另一种是共阴数码管,其内部是由八个阴极相连接的发光二极管组成。二者原理不同但功能相同。本设计的时间显示选用6个共阴八段数码管LED,其外形和内部结构如图10所示: 图10 八段共阴数码管LED4.2 软件实现4.2.1 程序流程图11 主程序流程图4.2.2 DS1302流程单片机AT89C52对时钟芯片DS1302的控制需要通过程序驱动来实现,程序主要完成两个方面的任务:利用单片机实现对DS1302寄存器的地址定义和控制字的写入,实现对DS130
25、2的数据读取。初始化DS1302要求 为低电平,SCLK为低电平。 被设置为高电平就启动了一个数据传送的过程。SCLK的16个方波完成一次数据传送,前8个方波用于输入命令字节,后8个方波用于数据的输出(读DS1302)或数据的输入(写DS1302)。在SCLK的上升沿,I/O线上的数据被送入DS1302;在SCLK的下降沿,DS1302输出数据在I/O线上。写和读各需要一个程序,写DS1302程序流程图如图12所示,读DS1302程序流程图如图12所示。总程序见附录二启动读数据字节一位复位端变高启动一次数据传送工作结束SCLK发脉冲复位端变低SCLK发脉冲写命令字节一位够8次吗?够8次吗?NY
26、YN启动写数据字节一位复位端变高启动一次数据传送工作结束SCLK发脉冲复位端变低SCLK发脉冲写命令字节一位够8次吗?够8次吗?NYYN 写DS1302流程图 读DS1302流程图图12 DS1302时间流程图5 结 论通过本次设计,使我们对单片机的了解有了更加深一步,我发现只有动手做才会孰能技巧,还有对材料的整理和理解。这次设计运用到的知识很多方面,尤其是单片机,像AT89C52,引脚多,硬件内部线路接通,所以用起来很方便,还有ds1302芯片与单片机之间的连接,以及如入使用ds1302芯片。当然也要对这些元器件作相应调查。主要就是电路原理图,还有对引脚的作用熟悉。对于软件方面则是灵活运用单
27、片机有关的程序语言,还有很多扩展功能,由于知识匮乏,但是理论知识还是比较详细的。我们最大的成功之处是在这整个过程,动脑寻求解决一个一个问题的办法,对程序是不断思索,务必写出很简单的程序来,使得电子时钟能做成功。本设计是在指导老师田红霞的悉心指导下完成的。从设计的选题,相关资料的查寻,到论文的撰写这一整个过程中,田老师以其广博的知识、丰富的经验 、清晰的思路,自始至终给我以指导,使我能够顺利完成设计,他严谨的治学态度,精益求精的工作作风和孜孜不倦的求学精神令我受益匪浅。在此设计完成之际,对田老师表示衷心的感谢!6 参 考 文 献1.李群芳,肖看.单片机原理、接口及应用.清华大学出版社,2005.
28、32.丁元杰.单片微机原理及应用(第二版).机械工业出版社,2005.3.张有德,赵志英.单片微型机原理、应用于实验.复旦大学出版社,2000.7 附 录附录一:设计电路仿真图:图13 总电路图附录二:源程序 #include<reg52.h>#include<intrins.h>unsigned char a,miao,shi,shi1,shi2,fen,fen1,fen2,x,key1n,temp,j=0,mmiao=0,mfen=0;#include<DS1302.h>unsigned char code dispcode=0xc0,0xf9,0xa4
29、,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff;unsigned char code point=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10; /带小数点数的代码sbit qiehuan=P30;sbit key1=P31;sbit key2=P32;sbit key3=P33;sbit SD=P34;sbit LED1=P20;sbit LED2=P21;sbit LED3=P22;sbit LED4=P23;sbit LED5=P24;sbit LED6=P25;sbit POT =P07;void
30、display(uchar x);void miaobiaoxianshi();void shengdian();uchar m=0,m1=0,m2=0,m3=0,m4=0;void delayms(uint x) uchar j;while(x-) for(j=0;j<123;j+);void ReadTime() miao = BCD_Decimal(read_1302(0x81); fen = BCD_Decimal(read_1302(0x83); shi = BCD_Decimal(read_1302(0x85); / ri = BCD_Decimal(read_1302(0x
31、87);/ yue = BCD_Decimal(read_1302(0x89);/ nian=BCD_Decimal(read_1302(0x8d); / week=BCD_Decimal(read_1302(0x8b)-1;uchar key1scan()if(key1=0)/-key1为功能键(设置键)- delayms(10);/延时,用于消抖动 if(key1=0)/延时后再次确认按键按下 m+; if(m=5)m=0; while(1) display(m);if(key1=1)break; return m;void key2scan(uchar n)if(n!=0)/当key1按
32、下以下。再按以下键才有效(按键次数不等于零) if(key2=0) /上调键 delayms(10); if(key2=0) while(1)display(m);if(key2=1)break; switch(n) case 1:shi1=shi/10; shi1+; if(shi1=3)shi1=0; temp=shi1*16+(shi)%10;/十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);/允许写,禁止写保护 write_1302(0x84,temp);/向DS1302内写小时寄存器84H写入调整后的小时数据BCD码 write_1302(0x8e
33、,0x80);/打开写保护 break; case 2:shi2=shi%10; shi2+; if(shi/10=2) if(shi2=5)shi2=0; else if(shi2=10)shi2=0; temp=shi/10*16+shi2;/十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);/允许写,禁止写保护 write_1302(0x84,temp);/向DS1302内写小时寄存器84H写入调整后的小时数据BCD码 write_1302(0x8e,0x80);/打开写保护 break; case 3:fen1=fen/10; fen1+;if(fen
34、1=6)fen1=0; temp=fen1*16+(fen)%10;/十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);/允许写,禁止写保护 write_1302(0x82,temp);/向DS1302内写分寄存器82H写入调整后的分数据BCD码 write_1302(0x8e,0x80);/打开写保护 break; case 4:fen2=fen%10; fen2+; if(fen2=10) fen2=0; temp=fen/10*16+fen2;/十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);/允许写,禁止写保护 wr
35、ite_1302(0x82,temp);/向DS1302内写分寄存器82H写入调整后的分数据BCD码 write_1302(0x8e,0x80);/打开写保护 break; void key3scan(uchar n)if(n!=0)/当key1按下以下。再按以下键才有效(按键次数不等于零) if(key3=0) /上调键 delayms(10); if(key3=0) while(1)display(m);if(key3=1)break; switch(n) case 1:shi1=shi/10; shi1-; if(shi1=(0-1)shi1=2; temp=shi1*16+(shi)%
36、10;/十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);/允许写,禁止写保护 write_1302(0x84,temp);/向DS1302内写小时寄存器84H写入调整后的小时数据BCD码 write_1302(0x8e,0x80);/打开写保护 break; case 2:shi2=shi%10; shi2-; if(shi/10=2) if(shi2=(0-1)shi2=4; else if(shi2=(0-1)shi2=9; temp=shi/10*16+shi2;/十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);/允
37、许写,禁止写保护 write_1302(0x84,temp);/向DS1302内写小时寄存器84H写入调整后的小时数据BCD码 write_1302(0x8e,0x80);/打开写保护 break; case 3:fen1=fen/10; fen1-;if(fen1=(0-1)fen1=5; temp=fen1*16+(fen)%10;/十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);/允许写,禁止写保护 write_1302(0x82,temp);/向DS1302内写分寄存器82H写入调整后的分数据BCD码 write_1302(0x8e,0x80);/打
38、开写保护 break; case 4:fen2=fen%10; fen2-; if(fen2=(0-1) fen2=9; temp=fen/10*16+fen2;/十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);/允许写,禁止写保护 write_1302(0x82,temp);/向DS1302内写分寄存器82H写入调整后的分数据BCD码 write_1302(0x8e,0x80);/打开写保护 break; void display(uchar x) ReadTime(); P0=0xff; P0=dispcodeshi/10; if(x=1)m1+;if(
39、m1=200)m1=0;if(x!=1)m1=0;LED1=1;LED2=0;LED3=0;LED4=0;LED5=0;LED6=0;if(m1%40=0)delayms(1); P0=0xff; P0=dispcodeshi%10; if(x=2)m2+;if(m2=200)m2=0;if(x!=2)m2=0;LED1=0;LED2=1;LED3=0;LED4=0;LED5=0;LED6=0;POT=0;if(m2%40=0)delayms(1); P0=0xff; P0=dispcodefen/10; if(x=3)m3+;if(m3=200)m3=0;if(x!=3)m3=0;LED1=
40、0;LED2=0;LED3=1;LED4=0;LED5=0;LED6=0;if(m3%40=0)delayms(1); P0=0xff; P0=dispcodefen%10; if(x=4)m4+;if(m4=200)m4=0;if(x!=4)m4=0;LED1=0;LED2=0;LED3=0;LED4=1;LED5=0;LED6=0;POT=0;if(m4%40=0)delayms(1); P0=0xff; P0=dispcodemiao/10; LED1=0;LED2=0;LED3=0;LED4=0;LED5=1;LED6=0;delayms(1); P0=0xff; P0=dispcod
41、emiao%10; LED1=0;LED2=0;LED3=0;LED4=0;LED5=0;LED6=1;delayms(1); void miaobiao() if(qiehuan=0) delayms(10);if(qiehuan=0) while(!qiehuan);L02:while(1) P0=0xff; P0=dispcode0; LED1=1;LED2=0;LED3=0;LED4=0;LED5=0;LED6=0;delayms(1); P0=0xff; P0=dispcode0; LED1=0;LED2=1;LED3=0;LED4=0;LED5=0;LED6=0;POT=0;del
42、ayms(1); P0=0xff; P0=dispcode0; LED1=0;LED2=0;LED3=1;LED4=0;LED5=0;LED6=0;delayms(1); P0=0xff; P0=dispcode0; LED1=0;LED2=0;LED3=0;LED4=1;LED5=0;LED6=0;POT=0;delayms(1); P0=0xff; P0=dispcode0; LED1=0;LED2=0;LED3=0;LED4=0;LED5=1;LED6=0;delayms(1); P0=0xff; P0=dispcode0; LED1=0;LED2=0;LED3=0;LED4=0;LED
43、5=0;LED6=1;delayms(1); shengdian(); if(qiehuan=0) delayms(10); if(qiehuan=0)while(!qiehuan);goto L01; if(key2=0) delayms(10); if(key2=0) break; L00: while(1) delayms(10); j+; if(j=100)j=0;mmiao+;if(mmiao=60)mmiao=0;mfen+;miaobiaoxianshi();if(key3=0) delayms(10);if(key3=0) while(1) miaobiaoxianshi();
44、if(key2=0) delayms(10); if(key2=0)goto L00; if(qiehuan=0) delayms(10); if(qiehuan=0) while(!qiehuan); goto L01; if(key1=0) delayms(10); if(key1=0) j=0;mfen=0;mmiao=0; goto L02;if(qiehuan=0) delayms(10); if(qiehuan=0) while(!qiehuan); goto L01; L01: _nop_(); void miaobiaoxianshi() P0=0xff; P0=dispcod
45、emfen/10; if(x=1)m1+;if(m1=200)m1=0;if(x!=1)m1=0;LED1=1;LED2=0;LED3=0;LED4=0;LED5=0;LED6=0;if(m1%40=0)delayms(1);P0=0xff; P0=dispcodemfen%10; if(x=2)m2+;if(m2=200)m2=0;if(x!=2)m2=0;LED1=0;LED2=1;LED3=0;LED4=0;LED5=0;LED6=0;POT=0;if(m2%40=0)delayms(1);P0=0xff; P0=dispcodemmiao/10; if(x=3)m3+;if(m3=200)m3=0;if(x!=3)m3=0;LED1=0;LED2=0;LED3=1;LED4=0;LED5=0;LED6=0;if(m3%40=0)delayms(1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026西安新城区图书馆就业见习人员招聘备考题库(3人)附答案详解
- 2026广东省第二人民医院阳江医院工作人员招聘20人备考题库含答案详解
- 2026内蒙古聚英人力资源服务有限责任公司定向招聘劳务派遣人员7人备考题库及参考答案详解1套
- 2026浙江丽水缙云县五云生态强村集体经济发展有限公司招聘1人备考题库及答案详解一套
- 2026江苏盐城市海兴控股集团有限公司社会招聘20人备考题库及答案详解参考
- 2026新华保险总部社会招聘备考题库带答案详解
- 2026湖南郴州市北湖区医疗卫生系统招聘25人备考题库及完整答案详解一套
- 2026广西贵港桂平市金田起义博物馆招聘编外工作人员的2名备考题库及一套答案详解
- 2026内蒙古通辽市事业单位招聘912人备考题库及参考答案详解
- 2026内蒙古鄂尔多斯东胜区征兵辅助人员招聘2人备考题库及1套完整答案详解
- 2026年高中学业水平考核美术复习试题及一套参考答案详解
- 国标图集22K311-5《防排烟系统设备及部件选用与安装》解读
- 2026年物流学概论第五版崔介何练习试题附答案详解(A卷)
- 2026年三年级道德与法治下册全册期末考试知识点材料
- 2026年民航地勤服务试卷及答案
- DB44∕T 2792-2025 城镇内涝风险评估与治理技术标准
- 2026年中考英语必背核心词汇1095词22天默写表【直接打印】
- 新生儿窒息救治课件
- 2026年高考物理真题试卷(+答案)
- 湖南省衡阳市2026年中考模拟考试化学试卷附答案
- 同济大学《AutoCAD》2023-2024学年第二学期期末试卷
评论
0/150
提交评论