收藏 分销(赏)

ds1302数字时钟芯片.doc

上传人:精**** 文档编号:2396356 上传时间:2024-05-29 格式:DOC 页数:35 大小:650.92KB
下载 相关 举报
ds1302数字时钟芯片.doc_第1页
第1页 / 共35页
ds1302数字时钟芯片.doc_第2页
第2页 / 共35页
ds1302数字时钟芯片.doc_第3页
第3页 / 共35页
ds1302数字时钟芯片.doc_第4页
第4页 / 共35页
ds1302数字时钟芯片.doc_第5页
第5页 / 共35页
点击查看更多>>
资源描述

1、中文摘要本文基于单片机,通过编程实现了数字钟,它不仅能够显示24小时制的时间,可以人为调整时间,并且可以显示具体的年、月、日,还带有闹钟的功能。本文实现的数字时钟由三个部分构成,提供振荡信号的DS1302芯片,转换振荡信号、实现多种功能的AT89S52单片机,以及可根据需要将结果表达的LCD1602显示器。本文设计的数字钟没有采用汇编语言,而是采用更为高级的C语言,与前者相比,后者语言更加凝练,程序结构更明了。本文最终完成的程序能完成对DS1320芯片进行操作,使其产生秒振荡信号,控制AT89S52单片机实现相应功能,当然,也包括控制LCD1602按照想要的形式输出统计出来的时间结果,比如以数

2、字形式显示当前时间,调整设定闹钟等。本文设计的数字钟与其他相比,具有许多优点,用户体验更好。对于使用者来说,操作非常简便,与时间相关的功能基本都具备,时间显示比较准确可靠。另外,基于各种芯片、集成电路,大大减少了体积空间以及耗电量。关键词:DS1302数字时钟芯片;AT89S52单片机;LCD1602液晶显示器;C语言编辑。ABSTRACTThis paper introduces a design of multi- function digital clock system. It can display the24- hour time, can adjust the time,huma

3、n and can display year, month, day, also with alarm clock function. The digital clock design system selection using single- chip microcomputer AT89 S52 single chip microcomputer,choice is used digital clock chip DS1302 and choice in the time display is LCD display LCD1602 display.The system software

4、 design using C language for programming. Mainly includes the main program of system software, DS1302 initialization program DS1302,read, write, DS1302 procedures, LCD1602 display, date/ time adjustment, timing alarm design.This system has a friendly user interface, simple operation, stable performa

5、nce. The digital clock system is a long- term, continuous,reliable, steady work, the system also has small volume, low power consumption, easy to carry, easy to use.Key words: DS1302 digital clock chip;AT89S52 Microcontroller; LCD1602 liquid crystal displayer;C language programming. 目 录1 前 言11.1 课题研

6、究的背景11.2 课题研究的意义11.3 数字时钟的应用及发展前景11.4课题的研究内容及技术要求 2 2. 核心芯片简介 32.1 DS1302简介 32.2 AT89S52简介62.3 LCD的结构及工作原理83 系统的硬件设计与实现103.1 电路设计框图103.2 系统硬件概述103.3 主要单元电路的设计 104 系统的软件设计124.1 系统软件设计概述 124.2 系统主程序设计 124.3 时钟芯片DS1302子程序设计134.4 时间调整子程序设计 164.5 定时报警子程序设计 175 测试与结果分析 195.1 硬件测试195.2 软件测试195.3 测试结果分析与结论1

7、9结论20参考文献21附 录 221 前 言1.1 课题研究的背景单片机的使用历史比较早,20多年前便被Intel设计,并将其应用到芯片中。于单片机具有高集成、功耗低、易于使用、低价格和一系列的优势,已经成为人们工作和生活中不可替代的一部分。作为微型集成电路,单片机在工业上的应用,电子设备的控制系统、智能系统中,包括卫星等都是基于单片机设计的,可以说它是现代信息技术的基础。经过20多年的发展,单片机衍生出了许多不同的类型,但是大家依然比较认同51系列,主要是由其优越特性决定的。与其他相比,它在满足使用者需求的同时,在体积、节能上更有优势,并且可开发性很强,许多新功能陆陆续续被开发出来,被许多领

8、域所使用。Intel设计出首个单片之后,为了进一步推广其应用,让更多的公司能够参与研发,于是将8051的计数专利授权给其他半导体芯片制造商共同使用。这些制造商随后推出各自的单片机系列,种类繁多,为单片增加了许多非常实用的功能,收获了许多忠实的使用者,使得单片机进入了高速发展的时期。但是无论这些单片机都有一个共同的特点,那就是采用MSC-51指令系统,它的结构与8051相似,相当于单片机统一交流的语言,这也是51系列名称的来源。MCS-51系列及80C51单片机种类繁多。这些不同的单片机都有相同的引脚,还有“交流语言”,他们的区别在于内部程序和硬件设计。1.2 课题研究的意义在平日,我们常常会用

9、到定时这个功能,如每日早睡午睡起床的闹钟,定时煮饭,定时自动照相,定时的整点报时等等,这都需要用到单片机。信息时代对单片机的依赖越来越大,各行各业都有相应的需求,这使得单片机的“身价”水涨船高,尤其是硬件上的进步,使得单片能承担更大的重任,其应用上也由简单系统到更大规模、更为复杂的系统中。也可以用到家里一部分家电的时间控制方面,甚至还可以用到一部分电子玩具上边。单片机凭借它强大的功能、小巧的体积、轻巧的质量、良好的灵活性等优点再配上工业工艺可以做成很多多功能的微电子产品。伴着人们的生活质量不断提高,家用电器和办公电子设备在人们的日常生活中也越来越多,人们对各种电子设备和家电的需求也越来越大。传

10、统时钟的定义仅仅是为使用者提供时间信息,但是信息化时代赋予了时钟的更多功能,这些不同的功能需要不同的电路才能实现,如何统筹规划各个分电路或者分系统的功能,使其成为一个整体高效运转,便要依赖单片机的功能了。在时钟应用中,它可以进行时间调整和设置闹钟,可以根据需求随时随地调整时间。通过单片机,将多种功能在同一设备中实现,使得设备变得更加轻巧,使得人民使用起来更加方便,这也是本文工作的现实意义所在。1.3 数字时钟的应用及发展前景数字时钟能准确的记录下我们随时随地的时间,并且还有多种功能,所以在平日里已经得到普遍的应用。虽然现在市面上普遍存在一些价格低廉、使用方便、容易买到的电子钟芯片,但是这并不能

11、满足人们对电子钟的要求。对于传统的时钟,如果能准确地显示时间即可,但是电子产品非常普遍的年代,人们对时钟赋予了新的定义,人们更希望它能是集万千功能于一身,仅仅显示时间显然远远不够。极大地方便了人们的日常生活。另外数字钟还附带随时提醒人的闹钟功能,防止人们因各种因素忘记时间更能提高人们办事的效率。无论什么时候,人们对于时间的“吝啬”都不会减,总是希望能将自己的时间最大化利用,在复杂的安排中挤出任何一丝可以利用的时间,对于一个繁忙的人,想要全部记住每一个时间点该干什么事情显然不可能,对于忘记应该做的事,如果这件事情不重要,那不会影响我们太多。但是,一旦这件事情很重要,耽误一点时间就会对我们有很大的

12、影响。数字时钟已经成了个人平时僧火种缺一不可的东西,普遍用在我们的家里以及火车、汽车、轮船、戏院、办公室、KTV等人们经常去的场所,给我们平日的活动与出行带来了非常大的方便。不同场合对于时钟的精度要求不一样,日常生活中我们可能要求它给我们准确到分钟就可以,但是对于火箭发射时间,我们就要求它能精确到秒,甚至更高。传统的机械时钟无法做到,但是对于数字钟来说却很容易,这要得益于石英技术的进步。数字时钟是采用单片机原理实现对时间的显示从年一直到秒以及整点提醒的计时器,广泛用在我们的家庭。1.4课题的研究内容及技术要求 本文研究内容是基于单片机,编程设计出功能齐全的数字时钟,它不仅能为使用者提供完整、准

13、确的时间信息年月日时分秒,具备调整的功能,还要求能实现闹钟功能。技术要求:首先需要掌握单片的相关理论知识、电路设计知识,查阅资料,了解数字时钟的设计要求,以及实现过程,具有一定的编程能力,能熟练掌握C语言的使用,具备一定的动手实验能力。312 系统的硬件设计2.1 数字时钟的硬件设计及电路设计框图本文数字时钟是在单片机的基础上实现的,这也是众多硬件中最重要的部分。单片机作为微型CPU,在数学运算方面具有很强的处理能力,并且对于其他设备的控制很容易实现,对它的使用通过编程对输入、输出进行控制便能实现控制其他设备的目的,在本文设计中,我们选择AT89S52。对于数字时钟的结果输出,我们选择液晶显示

14、屏,这是因为液晶显示技术使用比较普遍,集成程度比较高,用起来方便,并且具有很好显示效果,被广泛使用,设计时,只需要为其提供信号输入电路即可。对于时钟校时和定时功能的实现,需要一个专门的时钟芯片,将时间信息传送到单片机中,单片机能对其进行处理,并将其传送至液晶屏上,最终完成该项功能。一个完善的电路还应包括复位、供电电路等,以上介绍的这些电路构成了完整的数字时钟。需求决定设计,根据预先设定好的功能,本文初步确定了以下五个模块: 电源模块DS1302 AT89S52主控制模块键扫描电路 显示电路 DS18B20电路设计框图2.2 主控制模块上图所示主动控制模块便是数字时钟的“大脑”单片机,它起到指挥

15、调度处理的功能,协调各个电路为同一个目的而工作。它首先需要对振荡信号进行读取,然后将其处理,统计出当前时间,并将其输送到显示器中显示。与此同时,它还要读取按键信息,将其转化为控制指令,实现对时钟的控制,比如复位等功能。在本文设计中选用了AT89S52,它所具备的功能完全能满足本次设计的要求,而且它的价格不高,节省数字时钟的制作成本。2.2.1 AT89S52单片机的简介AT89S52生产商位于美国,它的功能非常齐全,并且价格低廉,节能效果好,因此市场上对其比较认同,被广泛应用于单片机的初学者,可认为它是51系列的一个增强版,它的改进之处在于读取内存,比51系列增加了一倍,这是非常了不起的改进。

16、另外,它兼容性好,具备一千次摩擦周期,以及八个中断源,支持ISP下载,看门狗定时器等。2.2.2 AT89S52管脚说明 VCC:供电电压。 GND:接地。 P0口:8位漏级开路双向I/O口,8TTL门电流能被接收。P0能作为外部程序数据存储器使用,被认为是数据/地址的第八位。该管教有两种不同的模式,输入模式和输出模式,当对其进行FIASH编程,它的作用是前者,而对其校验,它的作用是后者,这个时候外部一定要上拉。P1口:P1口同P0一样也是8位双向I/O口,不同的是它的上拉电阻由内部产生,P1口缓冲器能输出的电流门数仅为P0的一半。P1口写入1,先在内部电路中,上拉为高电平,此时为输入端,P1

17、口在外部下拉为低电平时,则为输出端,也是因为内部电路上拉的原因。同P0口,也是被看做第八位地址。 P2口:同P1口,8位双向I/O口,上拉电阻由内部产生,输出电流门数相同。P2口写入1,先在内部电路中,上拉为高电平,此时为输入端,P2口在外部下拉为低电平时,则为输出端,也是因为内部电路上拉的原因。把P2口用在外部程序存储器或16位地址外部数据存储器,P2口输出地址的高八位。当输入为“1”时,内部电路将其上拉,这时读写外部八位地址数据存储器,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接受高八位地址信号和控制信号。 P3口:通P2口,8个带内部上拉电阻的双向I/O口与4个TT

18、L门电流。P2口写入1,先在内部电路中,上拉为高电平,此时为输入端,P2口在外部下拉为低电平时,则为输出端,也是因为内部电路上拉的原因。 除此之外,P3口也有一些特许的备选功能,下面列举一些: 管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) RST:复位输入。如要要复位,该脚需要保持高电平,大概持续2个机器周期。 ALE/PROG:对外部存储器进行查看,地址锁存所允许的输出电平用作它的地位字节。FLASH编程时,ALE/

19、PROG将编程脉冲传输进来。一般时候,ALE输出的输出正脉冲信号是不动的频率周期,大约是振荡器频率的六分之一,所以,ALE能对外部输出脉冲,也可以将其运用在定时功能。然而要注意的是:每次作为外部数据存储器,都会跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。当微处理器在外部执行状态ALE禁止,则置位无效。 /PSEN:外部程序存储器的选通信号。在外部程序的存储器取指期间,每个机器周期的两次/PSEN是有效的。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:

20、如果EA维持低电平,为外部程序存储器(0000H-FFFFH),此时内部程序存储器不影响。需要注意的是,当加密方式为1,/EA将内部锁定为RESET;如果EA端维持高电平,为内部程序存储器。对于FLASH编程时,EA/VPP用于施加12V编程电源(VPP)。 XTAL1:作为输入端,接受的信号来自反向振荡放大器,或者单片的内部时钟。 XTAL2:来自反向振荡器的输出。2.3显示模块对于数字时钟的结果输出,我们选择液晶显示屏,这是因为液晶显示技术使用比较普遍,集成程度比较高,用起来方便,并且具有很好显示效果,被广泛使用。我们平时用到的笔记本电脑、电视,以及数码产品等,选择的显示方式都是通过液晶技

21、术实现的。设计时,只需要为其提供信号输入电路即可,液晶显示是由电压实现的,如果要实现数字信息的显示,只需要将数字信息转化为电压信号,再将其输入到液晶显示屏中。在本文研究中,根据设计要求以及成本考虑,我们采用的液晶显示屏型号是1602LCD。2.3.1 1602LCD显示器的结构1 1602LCD主要技术参数显示容量为162个字符;芯片工作电压为4.55.5V;工作电流为2.0mA(5.0V);字符尺寸为2.954.35(WH)mm。2 接口,信号说明1602LCD采用标准的16引脚(带背光)接口 1602液晶接口引脚定义下面是对其中的引脚功能进行介绍:1、该显示器包括两组电源,分别为模块和背光

22、板提供稳定的电量,它们的供电电压都是5V。2、VL:控制对比度3、RS:命令/数据选择。高电平为数据操作,低电平为命令操作。4、RW:读写选择端。高电平为读操作,低电平为写操作。5、E:必须要保证总线上信号平稳后,给一个正脉冲信号将数据读取,高电平不允许总线发生变化。6、D0D7:8位双向并行总线,用来传送命令和数据。7、BLA是背光源正极,BLK是背光源负极。2.3.2 1602LCD数据原理 1602LCD基本操作时序1602LCD的指令码(命令码)这里要特别介绍液晶显示初始化时,它用到的指令代码为38H,一般指令代码不能直接被识别,一般要通过调用其它函数对其进行读取,这里所用的读取函数为

23、void write cmd(0x38)。通过执行该函数,可以实现对液晶显示的初始化。对于实现其它功能的指令代码,用法与初始化的代码相同,都是先通过调用函数对其进行识别,然后才能对液晶显示进行相应操作。此液晶支持的指令码有第一行指令主要能完成的功能是 控制液晶显示否,光标显示否,光标闪烁否。共有以下8 种指令第二行指令主要能完成的功能是写完字符 光标或屏幕移动方向2.4时钟模块数字时钟最重要的功能是时间功能,用户需要用它实时显示时间,不仅要求要稳定,还要可靠。如果对时间的准确度要求不高,我们可以采用更为简化的办法实现计时功能,主要是通过编程实现,给单片机写一个计时器即可,缺点是精度较差。如果对

24、时间的准确度要求比较高,比如作为比赛用的秒表,那就不能通过单片机的计时器,我们需要给单片机额外提供一个时钟芯片,由时钟芯片内部产生的稳定振荡信号计时,该信号比较稳定,转化成秒信号时非常准确,能满足要求。比较常见的芯片有:DS1302,DS12887,X1203等都可以满足高精度的要求。本次设计采用DS1302芯片。2.4.1 DS1302的简介及性能特性DS1302简介DS1302芯片能够实现利用微小电流为芯片充电非常节能的设计,对于数字时钟的续航有很大帮助,这也是本文设计选用它的原因之一。DS1302精度不是很高,偶尔会出现较小的误差,适应于我们日常生活中对时间的一个大体的记录,使用DS13

25、02作为时钟芯片的时候,要想时间比较精准,就需要我们勤快一点一两个月和电视上的北京时间进行一次校准,只有这样我们平时用DS1302来进行计时时才会得到一个相对而言精准点的时间。 特性1时间信息能够实时显示,小到秒,大到年;2 318位RAM:暂时存储高速数据3最少引脚的串行I/O;42.55.5V电压工作范围;5数据传送方式:单字节、多字节,实现时钟或RAM数据的读与写;6简单的3线接口7可选的慢速充电(至Vcc1)的能力我们知道,完整的时间信息包括哪一年,哪一月,哪一天,以及每天中的小时,分钟,秒。该功能实现起来不是那么容易,因为时间统计过程中,需要考虑到每年不都是365天,每月不都是31天

26、,它需要自动识别闰年以及30和31的月份,还有比较特殊的2月份。DS1302时钟的功能比较完整,小到秒,大到年,都能非常准确地统计出来,芯片内部具有静态RAM,具有非常快的数据传输能力,能对数据进行缓存,与外界CPU能够实时进行通讯。说到DS1302不得不提的功能就是它的双电源设计,当主电源消耗完时,备份电源也能为系统提供电量,保证数据能够正常缓冲和输出。DS1302由主电源Vcc1或备用 电源Vcc2中较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电;当Vcc2小于Vcc1时,DS1302由Vcc1供电。2.4.2 DS1302数据操作原理我们在传输数据时,为了避免前

27、后之间相互干扰,我们需要把前面的痕迹清楚。前面提到了RST脚,能对DS1302进行初始化设置,因此我们要将RST拨到高电平上,再将8位地址,指令字写入移位寄存器,最终准确的数据被传输到单片机中。最初的8个时钟内,将指令字节写入移位寄存器后,对于其他的始终周期,在进行“读”操作时,输出数据,在“写”操作时写入数据。时钟脉冲的个数在单字节传输为“8+8”,而多字节传输为8+字节数,最多可至248字节。 传输数据过程中,将RST拨至低电平,传输数据会被终止,I/O转至高阻态状态。上电运行时,在Vcc 2.5V之前,RST脚必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。DS1302

28、的引脚和控制字如图。 DS1302的控制字DS1302的控制字如图2.6所示,它的控制字节最大有效位要求为逻辑1,见图中位7,如果它为0,则不能把数据写入到DS1302中。位6如果为0。则表示存取日历时钟数据;为1表示存取RAM数据。位51(A4A0)指示操作单元的地址。最低有效位为0时对应于写操作,为1表示进行读操作。寻址能力与数据传输的方式有关,把单字节改为多字节,处于多字节模式时,第一个读写地址0的位0,能有效增强该功能。其中,位6的作用是是作为时钟,还是作为RAM,位0的作用的读写。时钟或日历寄存器中的地址9到31,不可以存储数据,RAM寄存器中的地址31也不可以。对于单字节读写时,一

29、定是根据数据传输的顺序写入前面八个寄存器,而对多字节读写RAM,要让传输数据不一定写入全部31字节,所以读写过程中,无论写到任何一个字节,以及写入的任何一个字节都会被输送到RAM。DS1302的引脚功能图 DS1302引脚功能 DS1302这个芯片总共包含了12个寄存器。7个是与时钟、时间等有关联的。其数据位主要是以BCD模式储存的。图2.8具体展示了时钟以及时间寄存器的控制字。奇数和偶数分别代表的读、写操作。时钟暂停:秒寄存器中的位7代表的是时钟暂停。假如这个位是1的时候,就不再振荡,开始进入备份模式工作。一般情况下并不是所有的操作需要振荡存在,在执行写操作的过程中是要振荡停止才可以的。假如

30、这个位是0的时候,时钟又工作了起来。AM-PM/12-24小时方式:小时寄存器的位7代表的是选用哪种小时制进行工作。 假如这个位是1(高电平)的时候,选用12小时工作模式。这种小时制模式下,位5代表的是AM/PM选择位,置1时代表的是PM,置0时代表的是AM。假如这个位是0(低电平)的时候,选用24小时工作模式。这种小时制模式下,位5代表的是20-23时选择位。 内部寄存器地址和内容 DS1302是需要晶振作为依托来进行工作的。晶振的实际振荡频率是32.768kHz,频率不高,接不接电容都是可以的,对时间没有很大的干扰。2.5温度模块多功能的数字时钟能够对温度进行实时精确测量和显示。温度传感器

31、的数据经过单片机进行输出来,在液晶上显示出来。这些设计中选择的是DS18B20型号温度传感器。2.5.1 DS18B20的性能特性1.1 特殊的接口形式,是需要单线进行连接的。DS18B20与其他微处理器相连的时候只依靠一条口线就能够完成。靠这一条接口线能够实现两者的双向通信。1.2 测温范围 55125,固有测温分辨率0.5。1.3 可以进行多点组网,多点测温。诸多DS18B20能够同时并在三线上,但是通常情况下至多也只能并八个而已。假如并联的数目太对,整体的电压就会变低,信号就会变得相当不稳定,测温就受到了影响。1.4 工作电源: 35V/DC1.5 在具体使用的时候不用其他外围器件1.6

32、 在进行测试结果传输的时候是以9到12位数字量串行模式进行的1.7 不锈钢保护管直径 6 1.8 使用范围较广,在DN1525以及 DN40250多种管道和狭窄空间机器中都可以运用。1.9 标准安装螺纹 M10X1, M12X1.5, G1/2”任选1.10 在进行出线选取的时候选用的是PVC电缆或德国球型接线盒,能够实现与其他设备的直接连接。2:应用范围2.1 这个产品能够用在冰冻库,粮食仓库,罐头储存地,电力机房、电缆线安装地等需要测温的领域2.2 轴体、缸体、空调、纺布机等各种狭窄空间设备的温度测量和控制。2.3 车载空调、家用冰消、家用冷藏柜和多种型号干燥设备中等。2.5 各种冷热管道

33、的热量计量、各分户空调热量计算、工业测温等。3:产品型号与规格型 号 测温范围 安装螺纹 电缆长度 适用管道TS-18B20 -55125 无 1.5 m TS-18B20A -55125 M10X1 1.5m DN1525TS-18B20B -55125 1/2”G 接线盒 DN40 602.5.2 DS18B20数据操作原理在进行接口的时候只需要单线就能够完成。也就是说,利用一条接口线就能够实现多点通讯。同时在使用的时候也不用外接其他器件,数据总线就能够进行供电。电压在3以及5.5伏特之间,也不用其他电源。可测的温度范围也很大, -55到+125都在可测范围之内。这个传感器是能够进行编程的

34、,其分辨率能够达到9到12位,在进行转换的时候最大750ms。用户在使用的时候可以进行温度警示情况设置。这个传感器可以在恒温控制、工业领域、电子产品、多种热敏体系等。进行通讯传递的时候只需要1线接口。因此,微处理器与DS18B20互联的时候也只有一条接口线,数据线就能够为各种读、写以及转换操作提供能量,外部电源也不用接入进去。任何一个DS18B20都有属于自己的序号,诸多个芯片可以并联在同一数据线中。这种状况下,温度传感器能够在多个地方进行使用,其用处也非常多,空调、各种建筑内外的测温装置和设备都可以使用。DS18B20总共有四个部分构成:64位ROM、温度报警部分、温度传感部分、各种寄存器。

35、通过一条接口线就能够对芯片进行能量供应。在低电平的时候能够实现供电,转到高电平的时候能够实现充电。DS18B20的电源也可以从外部3V-5 .5V的电压得到。DS18B20采用一线通信接口。在使用的时候首先对ROM进行设置,要不然很多记忆以及控制作用无法实现。能够实现的主要命令有: 1 )读ROM, 2 )ROM匹配, 3 )搜索ROM, 4 )跳过ROM, 5 )报警检查。通过这些指令能够知道总线上总共并联哪几个设备。假如通过这些指令,DS18B20已经能够对温度测量,那么数据就储存在了相应的存储器中。也就是说,温度测量结果已经放在了该传感器内存当中,同时读取片上存储器的有关内容。温度报警触

36、发器中有EEPROM 信息。假如DS18B20中没有报警命令,寄存器只是作为记忆作用而存在。同时片上还设置了字节,能够实现温度转换。通过一个指令就能够进行写TH以及TL指令、设置字节。不管任何的读、写指令都从最低位执行。DS18B20有4个主要的数据部件: (1)光刻ROM拥有64位。这个序列号还生产的时候就完成光刻的,是该传感器的地址序列码。64位光刻ROM的排列是:一开始的8位(28H)代表的是商品种类标号,接着的48位是其自身存在的序列号,剩下的8位代表的是循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM使得多个DS18B20的功能都不一样,这种状况下,一条接口线上能够并联多个

37、传感器。(2) 内含的温度传感器能够进行测温。下面就以12位转化作为例子进行说明。通过16位符号位进行拓展,用0.0625/LSB等形式呈现,S代表符号。2.5.3温度模块的数据连接本次设计,数据从DS18B20的端口DQ进行输出,然后连接到89C51的P3.0端口。单片机能够将温度数据读取之后传递给温度显示模块,进而将温度呈现出来。2.6电源转换模块通常情况下,我们使用的都是220V交流电。因此,变压器需要用到。在进行设计的时候要通过变压器来将交流转变成直流电。经过转换之后直流电压变成了+12V。但是线路上诸多芯片的直流电压都是+5V。这个时候就需要通过一定的转换电路把12V的电压降为5V。

38、转换的时候7805(三端稳压器)相当必要。具体的转换电路图如下所示。 电压转换电路在Vin大于5V的时候,输出端Vout就能够获得5V稳压。3系统的软件设计3.1 系统软件设计概述在进行软件设计的时候,要从很多程序模块入手进行探索和分析。例如系统主程序模块、初始化模块、时钟模块、时间调整模块、定时模块等。通过编写一定的原代码就能够实现下列功能:a.能够对日常的时间、日历等进行显示。b.可以认为调整不准确的时间,实现闹钟定时c.闹钟每到设置好的时间时,蜂鸣器会连续响十秒进行提醒。3.2 系统主程序设计 在进行程序设计的时候,初始化是首先要考虑的。循环程序也必不可少。在进行循环程序的设计时,首先要

39、进行数据的调用程序,然后在调用数据的显示程序,然后进行一定的判断来评估是不是要按键。假如按下了键,就照着相应的程序继续进行;假如按键没有被按下,就要调用相关的报警程序,看看是不是到了报警的时间。假如报警时间还没有达到就继续进行主程序的循环。计时中断程序能够实现秒、分、时、日、月、年的计量并进位。调时闪烁中断程序能够对数据进行闪烁显示。调时程序能够对分、时进行计量和调整;调日期程序能够对日、月、年进行计量和调整;闹钟程序要能够先评断是不是到了报警时间,假如到了报警时间就要进行报警循环程序,假如还没到报警时间就要进入主循环程序。开 始初始化DS1302子程序键盘扫描子程序延时子程序闹钟子程序结束图

40、8 主程序流程图3.3 时钟芯片DS1302子程序设计3.3.1 DS1302初始化程序设计单片机AT89S51对于时钟芯片DS1302的操控经过程序驱动得以实现,程序一般实现两个层面的任务: 运用单片机达到对于DS1302寄存器的地址加以定义以及操控字的输入,实现对DS1302的数据读取。将DS1302恢复成默认状态需要把RST设成低电平,SCLK也为低电平。将RST设立成高电平则开启了一个信息传输的流程。sbit DS1302_CLK=P22; /DS1302端口位地址sbit DS1302_IO=P14;sbit DS1302_RST=P15;*void DS1302_init() DS

41、1302_CLK=0; DS1302_RST=0; Write_B(0x8e,0x00);/关闭写保护Write_B(0x80,0x20);/写入秒 Write_B(0x82,0x59);/写入分 Write_B(0x84,0x15);/写入时 Write_B(0x86,0x26);/写入日 Write_B(0x8a,0x17);/写入星期Write_B(0x88,0x09);/写入月 Write_B(0x8c,0x10); /写入年 Write_B(0x8e,0x80);/打开写保护Write_B(0x90,0x00);3.3.2 CPU读DS1302程序设计SCLK的十六个方波实现一批信息

42、传输,前面八个方波是用来输进命令字节,后面八个方波用来传输出信息(读DS1302)。在SCLK的上升沿,I/O线上的数据被送入DS1302;于SCLK的下降沿,DS1302将信息传输出是在I/O线上,具体见下图。NYSCLK发脉冲读数据字节一位够8次吗?YSCLK发脉冲复位端变低够8次吗?N复位端变高启动一次数据传送工作写命令字节一位开始结束 图9 读DS1302流程图DS1302读取代码如下:unsigned char DS1302OutputByte(void) /实时时钟读取一字节 unsigned char i; for(i=8; i0; i-) ACC = ACC 1; ACC7 =

43、 DS1302_IO; DS1302_CLK = 1; DS1302_CLK = 0; return(ACC); 3.3.3 CPU写DS1302程序设计和读取DS1302相同,前面八个方波用来输进命令字节,有差异的是,后面八个方波是用来将数据输进去的(写DS1302)。在SCLK的上升沿,I/O线上的数据被送入DS1302;在SCLK的下降沿,DS1302输出数据在I/O线上。写与读各自要求独立的程序,写DS1302程序流程图具体参考下图。N够8次吗?复位端变低Y写数据字节一位SCLK发脉冲YSCLK发脉冲够8次吗?N复位端变高启动一次数据传送工作写命令字节一位开始结束 图10 写DS1302流程图 CPU向DS1302中写数据代码如下:void DS1302InputByte(unsigned char d) /实时时钟写入一字节 unsigned char i; ACC = d; for(i=8; i0; i-) DS1302_IO =

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 考试专区 > 中考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服