日历时钟芯片控制实验
6、用DS1302与LCD1602可调数字万年历实验设计报告
利用时钟芯片DS1302实现万年历系别电子通信工程系组别第十组专业名称电子信息工程指导教师组内成员2013年8月19日用DS1302与LCD1602设计的可调式电子日历时钟一、总体设计1.1、设计目的为巩固所学的单片机知识,把所学理论运用到实践中,用LCD1602与DS1302 设计可调式电子日历时钟。
1.2、设计要求(1)显示:年、月、日、时、分、秒和星期;(2)设置年、月、日、时、分、秒和星期的初始状态;(3)能够用4个按键调整日历时钟的年、月、日、时、分、秒和星期;完成可调式电子日历时钟的硬件和软件的设计,包括单片机的相关内容;日历时钟模块的设计,液晶显示模块的设计,按键模块的设计。
控制程序的编写等。
备注:本程序另外添加了每到上午8:10和下午2:10的闹钟提醒功能。
1.3、系统基本方案选择和论证1.3.1、单片机芯片的选择方案方案一:采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容。
方案二:采用STC12C5A60S2系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。
内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。
但造价较高。
1.3.2 、显示模块选择方案和论证:方案一:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用显示数字显得太浪费,且价格也相对较高。
所以不用此种作为显示。
方案二:采用LED数码管动态扫描,虽然LED数码管价格适中,但要显示多个数字所需要的个数偏多,功耗较大,显示出来的只是拼音,而不是汉字。
所以也不用此种作为显示。
方案三:采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量字符,且视觉效果较好,外形美观。
万年历时钟实训报告
一、实训目的本次万年历时钟实训的主要目的是通过实际操作,学习万年历时钟的设计与制作,掌握万年历时钟的原理和制作方法,提高动手实践能力和创新思维。
实训过程中,我们学习了万年历时钟的硬件组成、软件编程、电路设计等知识,并对万年历时钟进行了实际制作。
二、实训内容1. 万年历时钟硬件组成万年历时钟主要由以下几部分组成:(1)单片机:作为万年历时钟的核心控制器,负责处理时间、日期、温度等数据,并控制整个时钟的运行。
(2)DS1302实时时钟模块:用于存储和提供当前时间、日期等信息。
(3)DS18B20温度传感器:用于检测环境温度。
(4)LCD12864液晶显示屏:用于显示时间、日期、温度等信息。
(5)按键:用于设置和调整时间、日期、温度等信息。
2. 万年历时钟软件编程万年历时钟的软件编程主要包括以下几部分:(1)主程序:负责初始化硬件设备,处理时间、日期、温度等数据,控制LCD显示。
(2)时钟模块:负责读取DS1302模块中的时间、日期信息,并实现时钟功能。
(3)温度模块:负责读取DS18B20传感器中的温度信息,并实现温度显示功能。
(4)按键处理模块:负责处理按键输入,实现时间、日期、温度的设置和调整。
3. 万年历时钟电路设计万年历时钟的电路设计主要包括以下几部分:(1)单片机与DS1302模块的连接:通过I2C接口连接单片机与DS1302模块,实现时间、日期信息的读取和写入。
(2)单片机与DS18B20传感器的连接:通过1-Wire接口连接单片机与DS18B20传感器,实现温度信息的读取。
(3)单片机与LCD12864显示屏的连接:通过SPI接口连接单片机与LCD12864显示屏,实现显示信息的输出。
(4)按键与单片机的连接:通过GPIO接口连接按键与单片机,实现按键输入的处理。
三、实训过程1. 硬件准备首先,准备好万年历时钟所需的硬件设备,包括单片机、DS1302模块、DS18B20传感器、LCD12864显示屏、按键等。
PCF8563日历时钟芯片原理及应用设计
PCF8563日历时钟芯片原理及应用设计PCF8563是一款实时时钟芯片,用于保存日期、时间和闹钟功能,并在需要时提供准确的时间。
它集成有时钟芯片、电历寄存器和电压降器,可以通过I2C总线进行控制和通信。
下面将详细介绍PCF8563的原理以及应用设计。
一、PCF8563的工作原理二、PCF8563的应用设计1.实时时钟系统:PCF8563广泛应用于各种实时时钟系统,例如电子钟、温度计、保险柜等。
它可以提供准确的时间,并可以进行一定的时钟校准,以确保时间的准确性。
2.日历显示:PCF8563可以与液晶显示器或LED显示器等进行连接,实现日期和时间的显示。
通过读取芯片中的日期和时间寄存器,可以将日期和时间信息显示在屏幕上。
3.闹钟功能:PCF8563内置有闹钟功能,可以设置闹钟时间和日期,并在闹钟触发时发出中断信号。
通过与外部蜂鸣器或报警器等连接,可以实现闹铃功能。
4.计时器功能:PCF8563可以用作计时器,例如测量一些过程的时间。
通过读取和记录时钟寄存器中的时间值,可以实现计时功能,并根据需要进行时钟校准。
5.电池电量监测:PCF8563可以监测电池电量,并在电池电量低于一定阈值时发出警告信号。
这对于需要长时间运行的系统非常有用,可以在电池电量低时及时更换电池。
三、总结PCF8563是一款功能强大的实时时钟芯片,可以提供准确的日期和时间,并具有闹钟和计时功能等。
它可以与各种外部设备进行通信,实现多种应用设计。
无论是日历显示系统还是闹钟功能系统,PCF8563都能够提供稳定和准确的时间支持。
基于51系列单片机和时钟芯片的日历时钟实验报告
单片机的数字时钟设计与制作目录一、任务及要求 ------------------------------------- 3二、原理设计--------------------------------------- 4三、系统调试以及程序仿真 --------------------- 13四、实验心得与总结----------------------------- 21一、任务及要求设计命题:基于单片机设计LCD显示电子时钟,该LCD液晶可以显示电子时钟的年、月、日、星期、时、分、秒,调节功能键可以调节时间,并且显示时间按秒实时更新,每次按键伴随“滴”的响声。
要求:使用STC89C21单片机完成设计,以及EEPROM,并利用中断子程序的定时器精确地对单片机控制,然后在1602液晶上显示。
具体要求如下:最终作品的完全效果如上图所示:DT: DATE的缩写2013-5-19代表当前日期日期可按键设置05代表当前星期五星期可按键设置TM:TIME的缩写00:00:40 代表当前时间时间可按键设置二、原理设计1.1 系统的功能实训要求设计的单片机的时钟设计系统,需要具备以下的功能:1.时钟功能:能够作为时钟使用,显示当前时间;2.时钟设置功能:能够设定时钟,修改当前时间;3.电池或者直流稳压电源5V供电;1.2 总体方案设计本节介绍的基于单片机的多功能时钟电路设计具备温度测量和时钟等功能,该系统由以下几个部分组成:单片机最小系统、显示设备、时钟电路等几部分组成。
系统的基本的方框图如图示:然后利用生成的pcb文件,打开三维模式,观察封装是否对齐。
接下来进行自动布线,在调整后得到线路图。
1.3 单元硬件电路设计1、AT89S52单片机最小系统电路在该设计中采用了AT89S52单片机作为核心处理器,因此在电路中首先需要设计的是AT89S52的最小系统。
AT89S52单片机的最小系统如图3-3。
AT89S52单片机的最小系统电路包含以下几个部分:单片机供电电路:AT89S52需要具有可靠的5V供电,在电路图中的VCC和GND为供电网络标识符;振荡电路:AT89S52需要一个稳定的振荡电路才能够正常工作,在该电路采用了12Mhz 的晶振作为AT89S52的时钟源;复位电路:复位电路是单片机正常运行的一个必要部分,复位电路应该保证单片机在上电的瞬间进行一次有效的复位,在单片机正常工作时将RST引脚置低。
51单片机万年历实验原理
51单片机万年历实验原理1. 概述51单片机万年历实验是一项基于51单片机的实验项目,用于模拟和显示日期和时间信息,使其具备一定的时钟和日历功能。
本文将详细介绍该实验的原理和实现方法。
2. 实验所需材料完成51单片机万年历实验需要以下材料: - 51单片机开发板 - LCD显示屏 - 时钟芯片(如DS1302) - 电容 - 电阻 - 键盘模块 - 连接线等3. 实验原理本实验的原理主要包括三个方面:51单片机的控制逻辑、时钟芯片的数据存储和显示屏的信息展示。
3.1 51单片机的控制逻辑在51单片机中,首先需要定义和初始化各个引脚和功能模块。
通过引脚的输入输出控制、时钟和定时器的设置,实现对时钟芯片和LCD显示屏的控制和数据传输。
3.2 时钟芯片的数据存储时钟芯片一般具有独立的电源供应和存储空间,用于储存日期和时间等信息。
通过与51单片机的通讯接口,读取和写入时钟芯片中的数据,实现对日期和时间信息的读取和更新。
3.3 显示屏的信息展示LCD显示屏作为用户界面,用于展示日期和时间等信息。
通过51单片机的输出控制,将读取到的日期和时间信息通过LCD显示屏进行展示。
具体的显示方式可以根据需求设计,如以年、月、日的格式显示,或者以星期和时间的格式显示等。
4. 实验步骤基于以上原理,可以按照以下步骤进行51单片机万年历实验:4.1 硬件连接按照实验所需材料,将51单片机开发板、LCD显示屏和时钟芯片等进行正确的连接。
根据引脚功能和电平要求,通过连接线将它们连接在一起。
4.2 编写程序使用合适的集成开发环境(如Keil)编写51单片机的程序。
程序主要包括引脚和功能模块的初始化设置、时钟芯片数据的读写和LCD显示屏信息的输出等。
4.3 载入程序将编写好的程序通过USB下载线或其他方式,将程序载入到开发板中。
确保程序可以正确地运行在51单片机上。
4.4 测试实验接通电源,观察LCD显示屏是否正常显示日期和时间信息。
单片机课程设计实验报告(时钟、日历)..
基于单片机的电子钟设计目录第一章电子时钟设计--—--—----————-—-—-—----—-—-——-——21.1 设计原理简介--————-—----—---——---———-----——-—-—-—21.2 设计功能-——--—-—————-———-—----————---——--——-——---—3第二章主要电路元器件介绍-—-———-———-—------———---32。
1 STC89C52 单片机简介—--—--—-—-—-—-—-—---—-——-———32。
1.1 单片机简介--——--——--——---—-—--————----—————--——-—-32。
1.2 主要特性---——-------—---—-—---————-—--—--———-—-—-—32.1.3 管脚功能说明—---———-———-———-——---—-————-—-—-—-————42.1。
4 LCD1602-—------——---—--—-——--———--——------——-—-—5第三章单元电路的硬件设计—-----————————————————--63.1 硬件原理框图—-———--—--——---—--—-—---------—--———-—-63。
2 单片机 STC89C52 系统的设计-—-—-—-—-————-—————-—----63。
3 时钟电路—————-----———-—---—-——---—--—-—-—-—--————--73.4 复位电路-----——-——--———-————-———-—----———---—--—-—-------—-—--—-——---—-—————-—---——--73。
5 键盘接口电路--—---—-———--—--——--——--——----———---——-83.6 LCD1602显示——---——————--—-—-——--——----—----———-————8第四章设计总原理图—-—-—---——-----—-———-9 第五章心得体会---—-------—————--——-—-——9第六章源程序---—-—-——-—-------———---—-——————-——----10前言:摘要数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便.由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。
日历时钟设计报告-基于单片机C语言
实验报告适时时钟电路DS1302引脚功能及结构DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由Vcc1或Vcc2两者中的较大者供电。
当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。
当Vcc2小于Vcc1时,DS1302由Vcc1供电。
X1和X2是振荡源,外接32.768kHz晶振。
RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。
上电运行时,在Vcc>2.0V之前,RST必须保持低电平。
只有在SCLK 为低电平时,才能将RST置为高电平。
I/O为串行数据输入输出端(双向),后面有详细说明。
SCLK为时钟输入端。
下图为DS1302的引脚功能图:DS1302封装图DS1302的控制字节DS1302 的控制字如图2所示。
控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
数据输入输出(I/O)在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。
DS1302的寄存器DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表1。
I2C类 DS1307芯片做时钟实验程序
实时时钟实验系列:I2C类DS1307芯片做时钟实验程序实验目的DS1307是DALLAS公司的一款时钟/日历芯片,采用I2C协议与单片机通讯,是单片机制作时钟/日历的常用芯片。
DS1307为8脚封装的芯片,只需外接一个32.768KHz的晶振即可工作。
本实验将时间信息通过串口显示在PC机上。
关键词:DS1307芯片,时钟程序,实时时钟程序,RTC难度等级:高级DS1307简介DS1307串行实时时钟(RTC)是一款低功耗,全BCD码,带56字节非易失SRAM 的时钟/日历芯片。
地址与数据经I2C双向总线串行传输。
该时钟/日历芯片提供秒、分、时、星期、日、月和年等信息,并能自动调整少于31天包括闰年月份的最后一天。
时钟可以工作在24小时模式或是12小时带AM/PM模式。
DS1307内部嵌入电源传感电路,可探测电源故障并自动转用备用电池供电。
在备用电池供电情况下计时功能继续工作。
DS1307与单片机接线图DS1307内部寄存器地址分频图DS1307时间/日历数据寄存器位图硬件搭建本实验硬件非常简单,DS1307外接一个32.768KHz的晶振即可。
相应SDA管脚SCL管脚用条线连Atmega48单片机的端口PORTD.7和PORTD.6。
通过串口将单片机与PC机连接,用BASCOM自带模拟终端显示时间。
程序代码Dim I As Byte Weekday = 6 Time$ = "23:59:50" Date$ = "09-02-28" DoI = Weekday - 1Strweekday = Lookupstr(i , Weekdays) Print "日期:" ; Date$ ; " " ; Strweekday ; " 时间:" ; Time$ Wait 1 Loop EndGetdatetime: I2cstartI2cwbyte Ds1307w I2cwbyte 0 I2cstartI2cwbyte Ds1307r I2crbyte _sec , Ack I2crbyte _min , Ack I2crbyte _hour , Ack I2crbyte Weekday , Ack I2crbyte _day , Ack I2crbyte _month , Ack I2crbyte _year , Nack I2cstop_sec = Makedec(_sec) _min = Makedec(_min) _hour = Makedec(_hour) _day = Makedec(_day) _month = Makedec(_month) _year = Makedec(_year) Return Setdate:_day = Makebcd(_day) _month = Makebcd(_month) _year = Makebcd(_year) I2cstartI2cwbyte Ds1307w I2cwbyte 3 I2cwbyte Weekday I2cwbyte _day I2cwbyte _month I2cwbyte _year I2cstop'' 初始化星期变量' 初始化Time$变量将调用SetTime 子程 ' 初始化Date$变量将调用SetDate 子程 ' ' ' '' ' ' '' 启动开始 ' 发写地址 ' 1307地址0 ' 启动开始 ' 发送读地址 ' 秒 ' 分 ' 时 ' 星期 ' 日期 ' 月份 ' 年 '' BCD 转十进制 ' ' ' ' ' ' '' 十进制转BCD ' '' 启动开始 ' 发送写地址' 从DS1307地址4开始写 ' 星期 ' 日期 ' 月份 ' 年 'Return Settime:_sec = Makebcd(_sec) _min = Makebcd(_min) _hour = Makebcd(_hour) I2cstartI2cwbyte Ds1307w I2cwbyte 0 I2cwbyte _sec I2cwbyte _min I2cwbyte _hour I2cstop Return Weekdays:Data "星期一" , "星期二" , "星期三" , "星期四" Data "星期五" , "星期六" , "星期日"' '' 十进制转BCD ' '' 启动开始 ' 发送写地址' 从DS1307地址0开始写 ' 秒 ' 分 ' 时 ' ' ' ' '程序讲解程序通过I2C 协议与时钟芯片DS1307通讯获取时间数据。
2日历时钟的设计
日历时钟一、实验目的以DS1302 实时时钟芯片和液晶显示屏LCD1602为基础设计一个日历时钟二、实验要求用PROTEUS画出原理图和PCB图,并完成下列任务:⑴时间和日期可调整,按键采用3个按键⑵实验流程图⑶在Proteus上调试通过三、流程图12四、 .Proteus ISIS 的使用1、进入Proteus ISIS双击桌面上的ISIS 7 Professional图标或者单击屏幕左下方的“开始”→“程序”→“Proteus 7 Professional?→“ISIS 7 Professional”,出现如图1-1所示界面,随后就进入了Proteus ISIS集成环境五、图1-1 启动时的屏幕2、工作界面Proteus ISIS的工作界面是一种标准的Windows界面,如图1-2所示。
包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。
3图1-2 Proteus ISIS的工作界面3.Keil C与Proteus连接调试1、假若KeilC与Proteus均已正确安装在C:\Program Files的目录里;2、安装Keil C与Proteus的连接插件vdmagdi.exe;3、进入KeilC μVision2开发集成环境,创建一个新项目(Project),并为该项目选定合适的单片机CPU器件(如:Atmel公司的AT89C51)。
并为该项目加入KeilC源程序。
4、需要设置KeilC的选项4单击“Project菜单/Options for Target”选项或者点击工具栏的“optionfor ta rget”按扭,弹出窗口,点击“Debug”按钮,出现如图3-1所示页面出现的对话框里在右栏上部的下拉菜单里选中“Proteus VSM Monitor一51 Driver”。
并且还要点击一下“Use”前面表明选中的小圆点,再点击“Setting”按钮,设置通信接口,在“Host”后面添上?27.0.0.1”,如果使用的不是同一台电脑,则需要在这里添上另一台电脑的IP地址(另一台电脑也应安装Proteus)。
数字万年历实验报告
一、实验目的1. 掌握数字万年历的基本原理和设计方法。
2. 熟悉单片机编程和硬件电路设计。
3. 提高动手能力和问题解决能力。
二、实验原理数字万年历是一种能够显示年、月、日、星期、时、分、秒等信息的电子设备。
它主要由单片机、时钟芯片、显示模块、按键模块等组成。
本实验采用MSP430F149单片机作为核心控制单元,通过编程实现对万年历功能的实现。
三、实验设备1. MSP430F149单片机实验板2. 1602液晶显示屏3. DS1302时钟芯片4. 按键模块5. 电源模块6. 连接线四、实验步骤1. 设计硬件电路根据实验要求,设计万年历的硬件电路。
主要包括以下部分:(1)单片机模块:使用MSP430F149单片机作为核心控制单元。
(2)时钟芯片模块:使用DS1302时钟芯片提供时间基准。
(3)显示模块:使用1602液晶显示屏显示年、月、日、星期、时、分、秒等信息。
(4)按键模块:使用按键模块实现时间调整、功能选择等操作。
2. 编写程序根据硬件电路设计,编写万年历的程序。
主要步骤如下:(1)初始化硬件设备,包括单片机、液晶显示屏、时钟芯片等。
(2)从时钟芯片读取当前时间,并显示在液晶显示屏上。
(3)编写按键处理程序,实现时间调整、功能选择等功能。
(4)编写显示程序,实现年、月、日、星期、时、分、秒等信息的显示。
(5)编写时钟芯片校准程序,实现时间的精确控制。
3. 调试程序将编写好的程序烧录到MSP430F149单片机中,通过调试工具进行调试。
主要调试内容包括:(1)检查液晶显示屏显示是否正常。
(2)检查按键功能是否正常。
(3)检查时间调整、功能选择等功能是否正常。
(4)检查时钟芯片校准是否准确。
五、实验结果与分析1. 实验结果经过调试,万年历实验板能够正常显示年、月、日、星期、时、分、秒等信息,并且可以通过按键进行时间调整、功能选择等操作。
2. 实验分析(1)万年历的硬件电路设计较为简单,主要涉及单片机、时钟芯片、液晶显示屏、按键模块等。
基于单片机的电子日历时钟系统
目录一、设计任务二、设计方案三、硬件及电路设计四、程序设计及流程图五、设计体会一、设计任务利用单片机及外围接口电路(键盘接口和显示接口电路)设计制作一个电子日历时钟系统。
使用液晶显示器将日期,时间实时显示出来,并且能够通过按钮修改日期,完成实时操作并具有闹铃功能。
二、设计方案硬件选择:单片机AT89C51,DS1302时钟芯片,SED1520液晶控制器接口芯片:74LS138,74LS373,片选CS0三、硬件及电路设计(一)实验所用芯片简要介绍1、主控芯片采用单片机AT89C51AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机,与AT80C51引脚和指令系统完全兼容,可擦除只读存储器可以反复擦除1000次。
AT89C51共有128×8位内部RAM ,32可编程I/O线,两个16位定时器/计数器,5个中断源,采用全静态工作,三级程序存储器锁定和可编程串行通道,工作频率为0Hz-24MHz。
另外片内内置振荡器和时钟电路,低功耗的闲置和掉电模式。
2、实时时钟部分采用DS1302DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM 的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为 2.5V~5.5V。
采用三线接口与CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。
DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。
3、SED1520液晶控制器SED1520液晶显示驱动器是一种点阵图形式液晶显示驱动器,它可直接与8位微处理器相连,集行、列驱动器于一体,因此使用起来十分方便,作为内藏式控制器被广泛应用于点阵数较少的液晶显示模块,内置显示RAM区RAM容量为2560位,RAM中的1位数据控制液晶屏上一个点的亮灭状态:“1”表示亮,“0”表示暗,具有16个行驱动口和16个列驱动口,可直接与80系列微处理器相连,亦可直接与68系列微处理器相连。
时钟芯片应用实验报告
单片机课程设计报告题目时钟芯片应用班级 07通信3班姓名赵汀(07512336)组员赵汀杨剑2010 年 07 月 30 日目录1设计任务 (2)1.1实时时钟芯片应用 (2)1.2设计要求 (2)2整体设计方案及框图 (3)3硬件设计 (3)3.1主要工具及元器件 (3)3.2 DS1302时钟芯片简介 (4)3.3 DS1302的内部结构 (4)3.4各引脚的功能 (5)3.5读写时序说明 (6)3.6电路原理图 (7)3.7 DS1302的工作原理 (8)3.8 DS1302的寄存器和控制命令 (8)3.9单片机最小系统显示电路 (10)3.9.1最小系统原理 (10)3.9.2显示电路原理 (11)3.9.3 P0口及P1口说明 (11)3.9.4 LED数码管结构 (12)3.9.5 SST89E516RD介绍 (13)3.9.6 MAX232介绍 (14)3.9.7 RS232引脚定义 (15)4软件设计 (16)4.1时钟芯片程序流程 (16)4.2 控制时钟显示主要代码 (17)5实现过程中遇到的问题及解决方法 (24)5.1硬件实现问题 (24)5.2软件实现问题 (25)6效果图 (25)7总结及建议 (27)8参考文献 (27)1设计任务1.1实时时钟芯片应用通过对DS1302芯片工作原理的了解和学习,设计出电路图,依照电路进行电路板的设计和制作,最后按照设计要求编写程序代码实现时钟显示以及闹钟设定等功能。
1.2设计要求1.可以显示时间,日期及闹钟并可通过按键进行调整。
2.可同时设置多个闹钟时间(不少于3个)。
2整体设计方案及框图图1 时钟芯片的硬件设计以及软件设计3硬件设计3.1主要工具及元器件电烙铁、松香、焊锡、海绵、导线若干、电路板(一个)、B 型USB 接口(一个)、9针串口(一个)、按钮(5个)、LED 灯(一个)、LED 数码管(两个)、晶振(两个)、电容(47μf 、0.1μf 、30μf )、电阻(10K Ω、500Ω、4.7K Ω)、三极管(一个)、蜂鸣器、排阻。
万年历单片机综合实验
综合实验报告实验题目:万年历学生班级:学生姓名:学生学号:指导教师:实验时间:摘要本设计是电子万年历。
具备三个功能:能显示:年、月、日、时、分、秒及星期信息,并具有可调整日期和时间功能。
我选用的是单片机STC89C52来实现电子万年历的功能。
该电子万年历能够成功实现时钟运行,调整,显示年月日时分秒等信息。
该电子万年历使用12MHZ晶振与单片机STC89C52相连接,通过软件编程的方法实现了以24小时为一个周期,同时显示小时、分钟和秒的要求。
利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据。
同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。
电子万年历设计与制作可采用数字电路实现,也可以采用单片机来完成。
若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。
若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,这样一来就降低了硬件电路的复杂性,从而使得其成本降低,更适合我们大学生自主研发。
所以在该设计与制作中我选用了单片机STC89C52,它是低功耗、高性能的CMOS型8位单片机。
片内带有4KB的Flash存储器,且允许在系统内改写或用编程器编程。
另外, 单片机STC89C52的指令系统和引脚与8051完全兼容,片内有128B 的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等。
因此,采用单片机STC89C52原理制作的电子万年历,不仅仅在原理上能够成功实现计时等功能,也更经济,更适用,更符合我们实际生活的需要,对我们大学生来说也更加有用。
关键词:STC89S52 ,DS1302,LCD,PROTEUS目录一、实验要求: (3)1.1基本要求: (3)1.2拓展要求: (3)二、方案论证: (3)2.1.显示部分: (3)2.2.数字时钟: (3)三、总体方案: (4)四、系统硬件设计: (4)4.1. 时间设置模块: (4)4.2.时钟模块: (4)4.3.整点报时电路 (5)4.4. LCD液晶显示模块: (5)五、整体电路: (6)5.1.电路 (6)六、数字时钟使用说明: (7)七、心得体会: (7)八、程序代码: (7)一、实验要求:1.1基本要求:1、能动态显示年、月、日、星期、小时、分钟、秒。
时间日历显示单片机实验
机电0902 李刚学号38时间日程显示设计程序实验一设计目标:万年历实现以下三个功能:(1)具有年、月、日、星期、时、分、秒等功能;(2)具备年、月、日、星期、时、分、秒校准功能,具备自动调节闰年的功能;(3)具有与即时时间同步的功能。
本电路是以STC89C51单片机为控制核心,时钟芯片采用DS1302,具有掉电自动保存功能。
可自动对秒、分、时、日、周、月、年进行计数,显示模块采用1602显示屏,它内置192种字符,可显示32个符号或数字,清晰可见,而且功率消耗小寿命长抗干扰能力强。
其工作电压为5v。
一个典型的单片机最小系统一般由时钟电路、复位电路、电源指示灯和外部扩展接口等部分组成。
1时钟电路模块的设计DS1302内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。
图中VCC1为后备电源,VCC2为主电源。
DS1302由VCC1或VCC2两者中的较大者供电。
所以在主电源关闭的情况下,也能保持时钟的连续运行。
X1和X2是振荡源,外接32.768KHz晶振用来为芯片提供计时脉冲。
RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
DS1302的硬件接线图如图2所示:C2C1图2时钟芯片DS1302的工作原理:(1) DS1302的控制字节:DS1302控制字节的高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出(2) 数据输入输出(I/O):在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。
基于ds1302的万年历
单片机课程设计报告——基于DS1302模块单片机控制的可调电子日历、电子时钟系统的实现目录一、实验目的二、实验要求三、实验内容四、实验原理1、微控制器AT89C512、时钟电路模块DS13023、时钟控制4、数码管显示五、实验步骤1、Proteus 7.12仿真原理图2、程序流程图3、系统程序六、实验结果Proteus 7.12仿真结果图七、实验总结八、程序清单九、参考文献一、实验目的1.进一步熟悉和掌握单片机的结构及工作原理;2.通过课程设计,掌握以单片机核心的电路设计的基本方法和技术;3.了解有关电路参数的计算方法培养综合运用单片机课程课题及有关选修课程的基本知识去解决实际问题的基本训练;4.掌握单片机的接口技术及相关外围芯片的外特性,控制方,从而加深对该课程知识的理解;5.熟悉Ptoteus及Keil软件的调试和仿真,通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
二、实验要求1、实时显示年、月、日等(可自动或手动设置显示)2、实时显示秒、分、时等3、能调整时间、日期4、时钟走时误差一天少于1分钟三、实验内容此次实验设计主要利用软件Keil uVision3进行程序调试,利用Proteus 7.12进行硬件仿真。
1、选择合适器件,微控制器AT89C51,时钟电路模块DS1302、数码管等,画出原理图,利用Proteus 7.12仿真连接。
2、画出程序流程图,用汇编语言写出程序,利用Keil uVision3进行程序编译、调试。
3、利用Keil uVision3生成hex文件,用Proteus 7.12进行硬件仿真。
实现电子日历、电子时钟的显示。
四、实验原理1、微控制器AT89C51AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压、高性能CMOS 8位微处理器。
各管脚功能如下:VCC:供电电压;GND:接地;P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
电子日历实训报告
一、实训时间:2023年10月15日至2023年10月22日二、实训地点:XX职业学院电子实验室三、指导老师:张老师、刘老师四、实训目的:通过本次电子日历实训,旨在提升我的电子设计能力,加深对电子电路原理的理解,并锻炼实际操作技能。
通过设计并制作一个功能完整的电子日历,我期望能够掌握以下技能和知识:1. 掌握电子日历的基本设计原理。
2. 熟悉电子时钟电路的设计与搭建。
3. 学会使用LCD显示屏显示日期和时间。
4. 提高编程能力,使用单片机实现日历功能的控制。
5. 增强故障排除和调试能力。
五、实训内容:1. 电路设计:- 设计了基于单片机的电子日历电路,主要包括单片机核心模块、时钟模块、显示模块和电源模块。
- 选择合适的电子元件,如单片机、晶体振荡器、LCD显示屏、按键等。
- 设计电路图,确保电路连接正确,元件布局合理。
2. 程序编写:- 使用C语言编写单片机程序,实现日历的基本功能,包括时间的读取、显示、调整以及日期的更新。
- 编写按键扫描程序,以便用户可以调整时间。
- 编写LCD显示程序,将日期和时间信息清晰显示在LCD屏幕上。
3. 电路搭建:- 按照电路图进行元件焊接,确保焊接质量。
- 连接LCD显示屏,调试显示效果。
- 连接按键,测试按键响应功能。
4. 测试与调试:- 对电子日历进行功能测试,确保所有功能正常运行。
- 调试程序,解决显示错误、按键响应不及时等问题。
- 优化电路设计,提高电子日历的稳定性和可靠性。
六、实训过程及心得:在实训过程中,我遇到了不少挑战,以下是我的一些心得体会:- 理论学习与实践操作的结合:在设计电路和编写程序的过程中,我深刻体会到理论知识与实践操作的结合的重要性。
只有将所学知识应用到实际操作中,才能真正掌握电子设计技能。
- 耐心与细致:在电路搭建和调试过程中,我学会了耐心和细致。
每一个细节的疏忽都可能导致整个电路无法正常工作。
- 团队合作:在实训过程中,我与同学们相互学习、相互帮助,共同完成了电子日历的设计与制作。
单片机万年历的实训报告
一、实训背景随着科技的不断发展,单片机技术在各个领域得到了广泛的应用。
单片机具有体积小、功耗低、成本低、可靠性高等优点,因此在智能仪表、工业控制、家用电器等领域具有很高的应用价值。
万年历作为一种时间记录工具,在日常生活中有着广泛的应用。
本实训旨在通过单片机万年历的设计与实现,提高学生对单片机编程和硬件应用能力的培养。
二、实训目的1. 熟悉单片机的基本原理和编程方法;2. 掌握万年历的设计与实现方法;3. 提高学生的动手能力和实践能力;4. 培养学生的创新意识和团队协作精神。
三、实训内容1. 单片机万年历硬件设计(1)单片机核心:选用AT89C51单片机作为核心控制器,其具有丰富的I/O接口,便于与其他外围电路连接。
(2)时钟芯片:选用DS1302时钟芯片,用于存储和提供系统时间,具有年、月、日、时、分、秒等信息。
(3)显示模块:选用LCD1602液晶显示屏,用于显示年、月、日、时、分、秒、星期等信息。
(4)按键模块:选用独立按键,用于设置和调整时间、日期、星期等信息。
(5)温度传感器:选用DS18B20数字温度传感器,用于检测环境温度。
2. 单片机万年历软件设计(1)系统初始化:对单片机进行初始化,设置时钟频率、I/O端口等。
(2)时钟读取与显示:从DS1302时钟芯片读取时间,并在LCD1602显示屏上显示。
(3)按键处理:对按键进行扫描和处理,实现时间、日期、星期等信息的设置和调整。
(4)温度检测与显示:从DS18B20温度传感器读取温度,并在LCD1602显示屏上显示。
(5)温度报警:当温度超过设定值时,通过蜂鸣器发出报警信号。
3. 单片机万年历功能实现(1)显示年、月、日、时、分、秒、星期等信息。
(2)设置和调整时间、日期、星期等信息。
(3)显示环境温度。
(4)温度报警功能。
四、实训结果与分析1. 硬件电路搭建成功,实现了万年历的基本功能。
2. 软件编程完成,实现了万年历的时间显示、按键处理、温度检测与显示、温度报警等功能。
51单片机万年历实验原理解析
51单片机万年历实验原理解析51单片机万年历(Real-time Clock)是一种集成电路,可以提供精确的日期和时间信息。
它是基于包含计时器和日历的时钟电路设计的。
本文将深入解析51单片机万年历实验的原理和实现过程。
1. 引言在现代科技领域中,人们对时间的准确性和精确度要求越来越高。
而万年历是一种可靠的工具,能够提供准确的日期和时间信息,因此被广泛应用在各种领域,如电子设备、通信系统和科学研究等。
51单片机万年历作为一种常用的设计方案,本文将对其原理和实验进行解析。
2. 51单片机概述51单片机是一种基于哈佛架构的芯片,常应用于嵌入式系统开发。
它具有易于编程、高性能和低功耗的特点,因此在电子行业中得到广泛应用。
而51单片机万年历则是在该芯片上实现的一种功能,它通过连接外部时钟电路和定时器模块,实现了精确的时间显示和日期计算。
3. 51单片机万年历实验原理我们需要连接一个可靠的时钟电路到51单片机上,以提供准确的时间基准。
这个时钟电路可以是一个晶体振荡器,它会产生一个稳定的频率信号,用来驱动定时器模块。
我们需要配置定时器模块,以便实现时间的计算和显示功能。
定时器可以设置定时时间和工作模式,例如计时模式和计数模式。
通过定时器中断,我们可以精确地控制和记录时间的变化。
接下来,我们需要编写一段程序来读取定时器的计数值,并将其转换为具体的日期和时间。
这个过程涉及到将计数值分解为年、月、日、时、分、秒,然后进行相应的转换和计算。
我们将通过数码管、液晶显示屏或其他输出设备来显示转换后的日期和时间。
这些输出设备可以根据需要进行相应的驱动和控制,以实现清晰和直观的显示效果。
4. 实验结果和应用通过上述步骤,我们成功实现了51单片机万年历的原理和功能。
该实验可以应用于各种领域,如电子产品、智能家居和计时设备等。
在电子产品中,51单片机万年历可以作为一个重要的功能模块,为用户提供准确的日期和时间信息。
它还可以和其他模块进行联动,实现更复杂的功能,如定时开关、闹钟和事件提醒等。
1302 时钟芯片实验
实验九 DS1302+LM1602日历/时钟显示实验20122593 李九生实验目的:掌握单片机控制系统的实时时钟/日历电路的使用方法,由于DS1302与单片机连接时采用SPI接口,故该实验可以使我们了解和学习SPI的通讯协议和编程方法。
实验原理:DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且将8位地址和命令信息装入移位寄存器。
数据在时钟(SCLK)的上升沿串行输入,前8位指定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时输出数据。
时钟脉冲的个数在单字节方式下为8+8(8位地址+8位数据),在多字节方式下为8加最多可达248的数据。
实验内容:将DS1302和LM1602芯片,分别和单片机的并口连接。
在DS1302上设置初始时间为2014年5月29号星期4 /10点10分10秒,并能正确的在LM1602上显示出来。
#include<reg52.h>#include<intrins.h>#include<string.h>#define uint unsigned int#define uchar unsigned char//*******LCD*******sbit LCDRS=P2^0; //LCD数据/命令选择端sbit LCDRW=P2^1;sbit LCDEN=P2^2; //LCD使能新号端//******DS1302******sbit IO=P1^0; //1302数据线sbit SCLK=P1^1; //1302时钟线sbit RST=P1^2; //复位uint num=0;uchar table[]="2014-05-29 wen ";uchar table1[]="10:10:10";uchar Date[]={"Date: 2000-00-00 "};uchar Time[]={"Time: *00:00-00* "};uchar date_time[7]; //从ds1302读取的当前日期时间//=======延时=======void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}//********向1302写数据*********void write_ds1302(uchar dat){uchar i;for(i=0;i<8;i++){IO=dat & 0x01; //保持最后一位为1,读状态SCLK=1;delay(1);SCLK=0;dat >>= 1;}}//*********从1302读数据*********uchar read_ds1302(){uchar i,b=0x00;for(i=0;i<8;i++){b |= _crol_((uchar)IO,i);SCLK=1;delay(1);SCLK=0;}return b/16*10+b%16; //与BCD码转换}//*********从指定位置读数据********uchar read_data(uchar addr){uchar dat;RST=0;SCLK=0;RST=1;write_ds1302(addr);dat=read_ds1302();SCLK=1;RST=0;return dat;}//*********读取当前日期时间*********void read_date_time(){uchar i,addr=0x81;for(i=0;i<7;i++){date_time[i]=read_data(addr);addr+=2;}}//----------LCD写指令----------void lcd_write_com(uchar com){LCDRS=0; //RS为0时,写指令,RS为1时,写数据P0=com;delay(5);LCDEN=1;delay(5);LCDEN=0;}//----------LCD写数据----------void lcd_write_data(uchar dat){LCDRS=1;P0=dat;delay(5);LCDEN=1;delay(5);LCDEN=0;}//-------LCD初始化-------void lcd_init(){LCDEN=0;lcd_write_com(0x38); //LCD显示模式设置lcd_write_com(0x0c); //LCD显示开/关及光标设置lcd_write_com(0x06); //当写一个字符后地址指针加1,且光标加1 lcd_write_com(0x01); //显示清屏}//---------设置液晶显示位置-----------void set_lcd_pos(uchar p){lcd_write_com(p | 0x80);}//---------液晶显示程序----------void lcd_print(uchar p,uchar *s){set_lcd_pos(p);for(num=0;num<16;num++){lcd_write_data(s[num]);delay(10);}}//----------日期时间转换-----------void format_datetime(uchar d,uchar *p){p[0]=d/10+'0';p[1]=d%10+'0';}//---------主程序----------void main(){uint k;LCDRW=0;lcd_init();lcd_init();lcd_write_com(0x80);for(k=0;k<16;k++)lcd_write_data(table[k]);lcd_write_com(0xc0);for(k=0;k<16;k++)lcd_write_data(table1[k]);delay(500);while(1){read_date_time();format_datetime(date_time[6],Date+8); //年月日format_datetime(date_time[4],Date+11);format_datetime(date_time[3],Date+14);// strcpy(Date+13,week[date_time[5]]);format_datetime(date_time[2],Time+7); //时间转换format_datetime(date_time[1],Time+10);format_datetime(date_time[0],Time+13);lcd_print(0x00,Date);lcd_print(0x40,Time);}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
秒、分、时等可能不正确,这就出现了问题,读到不正确的时间和日历资料的几率很小,本文
的后续部分讲述了几种方法,可避免任何可能不正确时间和日历的读操作。三个报警字节可设
置成两种方式使用,第一种,当警报时间写入相应的时、分、秒警报单元,在警报允许置高的
条件下,警报中断每天准时启动一次。第二种使用方式是在三个警报字节中插入一个或多个不
复用总线减少管脚,因为地址信息与资料信息分时共享相同的信号通路,在总线周期的第 一段提供地址,第二段同一管脚与信号通用路于资料,地址/资料复用并不减慢 DS12887 的访问 时间,因为总线地址/资料切换发生在内部 RAM 访问时间,地址必须在 AS/ALE 在下降沿之前有 效,此时 DS12887 锁存 AD0-AD7 的地址,有效的写资料在 DS 或 WR 脉冲之后一段出现并保持稳 定,读周期中,DS12887 在 DS 或 RD 脉冲的后一段输出 8 位资料,读周期结束,在 MOTOROLA 时 序 DS 变低或 INTEL 时序 RD 脉冲的后一段输出 8 位资料,读周期结束。在 MOTOROLA 时序 DS 变 低或 INTEL 时序 RD 变高时,总线回到高阻态。
按实验内容编写一个程序,并在实验仪上调试和验证。 四、实验说明
DS12C887 实时时钟功能介绍: (一)、特点: 1.可代替 IBM AT 计算机的时钟/日历。 2.与 MC146818B 和 DS1287 管脚兼容。 3.断电情况下运行十年以上不丢失资料。 4.计秒、分、时、天、星期、日、月、年,并有润年补偿功能。 5.二进制数码或 BCD 码表示时间、日历和警报。 6.12 小时或 24 小时时钟,12 小时时钟模式带有 PM 和 AM 指示。 7.夏令时功能。 8.MOTOROLA 和 INTEL 总线时序选择。 9.总线复用以减少管脚。 10.有 128 个 RAM 单元与软件接口。 11.14 字节时钟和控制寄存器。 12.114 字节通用 RAM。 13.可编程方波信号输出。 14.总线兼容中断信号(IRQ)。 15.可分别软件屏闭及测试的三级中断。 16.时钟更新周期结束中断。 (二)、管脚说明:(见下图) AD0~AD7 :地址/资料复用总线 NC :不用 MOT :总线类型选择 CS :片选 AS :地址选通 R/W :读/写输入 DS :资料选通 RESET :复位输入 IRQ :中断请求输出 SQW :方波输出
如不重新初始化这 10 个字节,资料模式是不能修改的。表 1 表明了 10 字节的时间,日历和警
报单元的二进制和 BCD 格式,不重新初始化小时单元,24-12 位不能修改。当选择 12 小时格式
时,小时字节的高位为逻辑“1”代表 PM。由于时间,日历和警报字节是双缓冲的,总是可访
问的,每秒钟这 10 字节走时一秒,检查一次警报条件,如果在更新时发生读时间和日历操作,
AS(地址选通输入): 地址选通脉冲用于实现总线信号分离,AS/ALE 的下降沿使得地址锁入 DS12887。 DS(资料选通或读输入): DS/RD 管脚有两种操作模式,取决于 MOT 管脚的电平,当 MOT 管脚接 VCC,选用 MOTOROLA
69
时序,在这种模式下,DS 是一正脉冲,出现在总线周期的后段,称为资料选通,在读周期,DS 指示 DS12887 驱动双向总线的时刻。在写周期,DS 的后沿使得 DS12887 锁存写资料。当 MOT 管 脚接地,选择 INTEL 时序,在这种模式下,DS 称作读(RD)。RD 与 DS12887 用资料驱动总线的 时间同步,RD 信号与典型内存的输出允许(OE)信号的定义相同。R/W(读/写输入)RW 管脚也 有两种操作模式,当 MOT 管脚接 VCC 选 MOTOROLA 时序时,R/W 是一电平信号,指示当前周期是 否读或写周期。DS 为高电平时,R/W 高电平指示读周期,R/W 低电平指示写周期。当 MOT 管脚 接地选 INTEL 时序,R/W 信号是一低电平有效信号称为 WR。在此模式下,R/W 管脚与通用 RAM 的写允许信号(WE)含义相同。
报通过写相应的内存字节而设置或初始化,10 字节的时间,日历和警报的内容可能是二进制形
式,也可能是 BCD 形式。写内部时间,日历和警报寄存器之前,寄存器 B 的 SET 位应置逻辑“1”,
以防止在过程发生资料更新。写入资料模式位之后,寄存器 B 的 SET 位应预以清除,允许实时
时钟对时间和日历字节进行更新。一旦初始化,实时时钟以选定的模式进行所有的资料更新,
关心状态,不关心码是任何从 CO 到 FF 的 16 进制数,每字节的最高两位为 1 即置为不关心状态,
当小时字节的不关心位置位时,警报为每小时发生一次。同样,当小时和分钟警报节置不关心
时,每分钟警报一次,当三字节都置不关心时,每秒中断一次。
非易失 RAM:
ห้องสมุดไป่ตู้
在 DS12887 中,114 字节通用非易失 RAM 不专用于任何特殊功能,它们可被处理器程序用
71
位中断允许位,中断允许位写入 1,则中断事件发生时允许发和事断,中断允许设置 0,禁止根 据中断条件触发 IRQ 管脚。如果一个中断被允许时,其中断标志已经置位,则 IRQ 立即置有效 电平,尽管中断触发事件可能早发生了。因此,在允许新的中断发生以前,程序应清除以前独 发的中断,当一中断事件发生,寄存器 C 中相应的标志位就置 1,此标志的位置与寄存器 B 中 相应的允许位相互独立,标志位可用查询方式而不必使相应中断允许位置位。中断标志位是状 态位,软件在必要时查询它,当一标志位置位,就向软件指出自从上次标志位读后现在又发生 一中断事件。使用标志位时应注意,每对寄存器 C 进行一次读操作,标志位即被清除,寄存器 C 使用了双锁存,因此在整个读周期已置位的标志位保护稳定。所有置位的标志位读时全被清 除,读周期内新的悬而未决的中断被保护到此周期结束之后,读寄存器 C 时可能有一、二、三 个标志位被置位,读寄存器 C 后每个有用的标志位都应检测,以确保不丢失中断。标志位的第 二种用法是完全中断,当一中断标志位置位,相应的中断允许位也置位,则 IRQ 即输出低,当 IRQ 管脚为低时,寄存器 C 中的 IRQF 位为 1,通过读寄存器 C,可完成 RTC 中断状态的判断, BIT.7 IRQF 为 1 表明 DS12887 提出一个或多个中断。读寄存器 C 将清除所有有效的标志位和 IRQF 位。
CS(片选输入): 在访问 DS12887 的总线周期片选信号必须保持为低,在 MOTOROLA 时序的 DS 和 AS 期间或 INTEL 时序 RD 和 WR 期间,CS 必须保持有效状态。CS 不保持的总线周期将锁存地址,但不能实 现访问。当 VCC 低于 4.25V,DS12887 通过内部使 CS 无效禁止存取周期,这就在断电期间保护 了实时时钟资料和 RAM 资料。 IRQ(中断申请输出): IRQ 管脚是 DS12887 的低电平有效输出,可用作处理器的中断输入,只要引起中断的状态 位存在,相应的中断允许位置位,IRQ 输出保持为低,处理器程序通常读寄存器 C 以清除 IRQ 管脚信号。RESET 管脚也清除未响应的中断。当没有中断条件满足时,IRQ 处于高阻态,多个中 断设备可接到一个 IRQ 总线,IRQ 总线是漏极开路输出,要求外接上拉电阻。 RESET(复位输入): RESET 管脚对时钟、日历或 RAM 无效,上电时 RESET 可保持一段时间低电平以允许电源稳 定,RESET 保持低电平的时间取决于实际应用。然而,如果 RESET 用于上电复位,RESET 保持低 的时间应大于 200MS,以保证控制 DS12887 上电的内部定时器定时结束。当 RESET 为低而 Vcc 高于 4.25 时,发生以下情况: A:周期中断能使(DEI)位清零 B:报警中断能使(AIE)位清零 C:资料更新结束中断标志(UF)位清零 D:中断申请状态标志(IRQF)位清零 E:周期中断标志(PF)位清零 F:设备不可访问直至 RESET 恢复高电平 G:报警中断标志(AF)位清零 H:IRQ 管脚处于高阻态 I:方波输出能使(SQWE)位清零 J:资料更新结束中断能使(UIE)位清零 在典型的应用中,RESET 可接 5V,这种联接允许 DS12887 进入并退出电源失效状态,而不 影响任何控制寄存器。 地址分配 DS12887 的地址 114 字节的用户 RAM,10 字节的存放实时时钟时间,日历和警报 的 RAM 以及用于控制和状态的 4 字节组成,除以下情况下,所有的 128 字节可直接读写:
小时闹钟寄存器(24 小时模式) 0-23
00-17
00-23
6 周寄存器
1-7
01-07
01-07
7 日寄存器
1-31
01-1F
01-31
8 月寄存器
1-12
01-0C
01-12
9 年寄存器
0-99
00-63
00-99
50 世纪寄存器
0-99
NA
19,20
时间,日历和警报单元:时间和日历信息通过读相应的内存字节来获取,时间,日历和警
1.寄存器 C 和 D 为只读 2.寄存器 A 的 Bit7 为只读 3.秒字节的高位为只读
70
(五)、操作说明: 表30-1 时间、日历和闹钟数据模式表:
地址
功能
数据范围
范围 二进制模式
BCD模式
O 秒寄存器
0-59
00-3B
00-59
1 秒闹钟寄存器
0-59
00-3B
00-59
2 分寄存器
0-59
作不丢失内存,在更新周期也完全可访问。
中断:
RTC 实时时钟加 RAM 向处理器提供三个独立的,自动的中断源,警报中断的发生率可编程,
从每秒一次到每天一次,周期中断发生率可从 500MS 以 122uS 选择,更新结束中断用于向程序
指示一个更新周期完成。若有中断的话,处理器程序可选择哪个中断被选用,寄存器 B 中有三