温度检测系统的设计.doc_第1页
温度检测系统的设计.doc_第2页
温度检测系统的设计.doc_第3页
温度检测系统的设计.doc_第4页
温度检测系统的设计.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

专业课程实践报告 温度检测系统的设计 姓 名: 专 业: 电 子 信 息 工 程 班 级: 11 电 信 指导老师: 成 绩: 日 期: 2013年10月16日 温度检测系统的设计(安阳师范学院 物电学院, 河南 安阳 455000)摘要:本设计以AT89C51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。该控制系统的硬件部分,包括:温度检测电路、温度控制电路、备用电源电路、时钟电路、报警电路。单片机通过对信号进行相应处理,从而实现温度控制的目的。软件设计部分,在这里采用模块化结构,主要模块有:12864液晶显示程序、DS18B20温度信号处理程序、DS1302时钟程序 超温报警程序。 关键词:AT89S51单片机 DS18B20温度芯片 温度控制 串口通讯 12864液晶显示 DS1302芯片 超温报警一、总体设计利用单片机接收温度传感器传过来的温度值并经过数值处理以动态方式显示于12864液晶显示器上,时间和日期通过DS1302芯片也显示在液晶显示器上,并且可以通过按键对时间、日期进行调整。当温度值高于设定值30摄氏度时启动报警电路,报警电路主要由蜂鸣器实现。本次设计用了四块温度传感器 DS18B20 从设备环境的不同位置采集温度,单片机 AT89C51 获取采集的温度值,经处理后得到当前环境中一个比较稳定的温度值,再根据当前设定的温度上下限值,通过加热和降温对当前温度进行调整。当采集的温度经处理后超过设定温度的上限时,蜂鸣器会发出报警声 。1、系统软件流程图当温度大于30摄氏度 DS18B20初始化程序开始进入循环采集当前温度值启动报警电路液晶显示 NO YES显示模块流程图 2、系统总的硬件原理图二、使用主要电子元件1单片机AT89C51 2. 温度传感器DS18B203. 显示器128644. 排阻5、时钟芯片DS13026.电容若干7.电阻若干8.按钮开关3个9.导线若干10. 12MHZ、32.768KHZ晶振各1个三、 硬件模块设计温度传感器18B201、概述温度传感器采用的是由美国Dallas 半导体公司生产的数字化温度传感器DS1820 。它是是世界上第一片支持 一线总线接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路内。2、特点(1) 适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电; (2) 独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20 的双向通讯; (3) DS18B20 支持多点组网功能,多个DS18B20 可以并联在唯一的三线上,实现组网多点测温; (4) DS18B20 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内; (5) 温范围55125,在-10+85时精度为0.5; (6) 可编程的分辨率为912 位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温; (7) 在9 位分辨率时最多在93.75ms 内把温度转换为数字,12 位分辨率时最多在750ms 内把温度值转换为数字,速度更快; (8) 测量结果直接输出数字温度信号,以一线总线串行传送给CPU,同时可传送CRC 校验码,具有极强的抗干扰纠错能力; (9) 负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 3、结构组成DS18B20 内部结构主要由四部分组成:64 位光刻ROM、温度传感器、非挥发的温度报警触发器TH 和TL、配置寄存器。DS18B20 的管脚排列如右图所示:DS18B20 引脚定义:(1) GND为电源地;(2) DQ为数字信号输入/输出端;(3)VDD 为外接供电电源输入端(在寄生电源接线方式时接地)。4、工作原理DS18B20 测温原理如图20所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2 的脉冲输入。计数器1 和温度寄存器被预置在55所对应的一个基数值。计数器1 对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1 的预置值减到0 时,温度寄存器的值将加1,计数器1 的预置将重新被装入,计数器1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2 计数到0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。低温度系数晶振高温度系数晶振计数器2斜率累加器计数器1预置比较预置=0=0温度寄存器加1停止LSB置位/清除12864液晶显示1、 概述 带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式;其显示分辨率为12864, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.可以显示84行1616点阵的汉字。显示颜色:黄绿。也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。2、基本特性(1)低电源电压(VDD:+3.0-+5.5V)(2)显示分辨率:12864点 (3)内置汉字字库,提供8192个1616点阵汉字(简繁体可选) (4)内置 128个168点阵字符 (5)2MHZ时钟频率 (6)显示方式:STN、半透、正显 (7)驱动方式:1/32DUTY,1/5BIAS (8)视角方向:6点(9)背光方式:侧部高亮白色LED,功耗仅为普通LED的1/51/10 (10)通讯方式:串行、并口可选 (11)内置DC-DC转换电路,无需外加负压 (12)无需片选信号,简化软件设计(13)逻辑工作电压(VDD):4.55.5V(14)电源地(GND):0V(15)工作温度(Ta):060(常温) / -2075(宽温)3、模块引脚说明128X64 引脚说明引脚号引脚名称方向功能说明1VSS-模块的电源地2VDD-模块的电源正端3V0-LCD驱动电压输入端4RS(CS)H/L并行的指令/数据选择信号;串行的片选信号5R/W(SID)H/L并行的读写选择信号;串行的数据口6E(CLK)H/L并行的使能信号;串行的同步时钟7DB0H/L数据08DB1H/L数据19DB2H/L数据210DB3H/L数据311DB4H/L数据412DB5H/L数据513DB6H/L数据614DB7H/L数据715PSBH/L并/串行接口选择:H-并行;L-串行16NC空脚17/RETH/L复位 低电平有效18NC空脚19LED_A-背光源正极(LED+5V)20LED_K-背光源负极(LED-OV)4、用户指令集1、指令表1:(RE=0:基本指令集)指令指令码说明执行时间(540KHZ)RSRWDB7DB6DB5DB4DB3DB2DB1DB0清除显示0000000001将DDRAM填满“20H”,并且设定DDRAM的地址计数器(AC)到“00H”4.6ms地址归位000000001X设定DDRAM的地址计数器(AC)到“00H”,并且将游标移到开头原点位置;这个指令并不改变DDRAM的内容4.6ms进入点设定00000001I/DS指定在资料的读取与写入时,设定游标移动方向及指定显示的移位72us显示状态开/关0000001DCBD=1:整体显示ONC=1:游标ONB=1:游标位置ON72us游标或显示移位控制000001S/CR/LXX设定游标的移动与显示的移位控制位元;这个指令并不改变DDRAM的内容72us功能设定00001DLX0REXXDL=1 (必须设为1)RE=1: 扩充指令集动作RE=0: 基本指令集动作72us设定CGRAM地址0001AC5AC4AC3AC2AC1AC0设定CGRAM地址到地址计数器(AC)72us设定DDRAM地址001AC6AC5AC4AC3AC2AC1AC0设定DDRAM地址到地址计数器(AC)72us读取忙碌标志(BF)和地址01BFAC6AC5AC4AC3AC2AC1AC0读取忙碌标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值0us写资料到RAM10D7D6D5D4D3D2D1D0写入资料到内部的RAM(DDRAM/CGRAM/IRAM/GDRAM)72us读出RAM的值11D7D6D5D4D3D2D1D0从内部RAM读取资料(DDRAM/CGRAM/IRAM/GDRAM)72us指令表2:(RE=1:扩充指令集)指令指令码说明执行时间(540KHZ)RSRWDB7DB6DB5DB4DB3DB2DB1DB0待命模式0000000001将DDRAM填满“20H”,并且设定DDRAM的地址计数器(AC)到“00H”72us卷动地址或IRAM地址选择000000001SRSR=1:允许输入垂直卷动地址SR=0:允许输入IRAM地址72us反白选择00000001R1R0选择4行中的任一行作反白显示,并可决定反白与否72us睡眠模式0000001SLXXSL=1:脱离睡眠模式SL=0:进入睡眠模式72us扩充功能设定000011X1REG0RE=1: 扩充指令集动作RE=0: 基本指令集动作G=1 :绘图显示ONG=0 :绘图显示OFF72us设定IRAM地址或卷动地址0001AC5AC4AC3AC2AC1AC0SR=1:AC5AC0为垂直卷动地址SR=0:AC3AC0为ICON IRAM地址72us设定绘图RAM地址001AC6AC5AC4AC3AC2AC1AC0设定CGRAM地址到地址计数器(AC)72usDS1302时钟芯片1、概述DS1302是DALLAS公司推出的涓流充电时钟芯片,内含一个实时时钟/日历和31字节静态RAM,可以通过串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、星期、月、年的信息,每个月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM标志位决定采用24或12小时时间格式。DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需三根I/O线:复位(RST)、I/O数据线、串行时钟(SCLK)。时钟/RAM的读/写数据以一字节或多达31字节的字符组方式通信。DS1302工作时功耗很低,保持数据和时钟信息时,功耗小于1mW。DS1302引脚排列:如下图引脚说明:1)Vcc1:后备电源,VCC2:主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。2)X1、X2:振荡源,外接32.768kHz晶振。3)RST:复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。4)I/O为串行数据输入输出端(双向)。5)SCLK为时钟输入端。2、DS1302的内部结构如图所示,主要组成部分为:移位寄存器、控制逻辑、振荡器、实时时钟以及RAM。虽然数据分成两种,但是对单片机的程序而言,其实是一样的,就是对特定的地址进行读写操作。图4 DS1302的内部结构图 3、DS1302的工作原理DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且将8位地址和命令信息装入移位寄存器。数据在时钟(SCLK)的上升沿串行输入,前8位指定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时输出数据。时钟脉冲的个数在单字节方式下为8+8(8位地址+8位数据),在多字节方式下为8加最多可达248的数据。程序流程图图10-47 软件流程图 电路原理图:电路原理图如图8,DS1302与单片机的连接也仅需要3条线:CE引脚、SCLK串行时钟引脚、I/O串行数据引脚,Vcc2为备用电源,外接32.768kHz晶振,为芯片提供计时脉冲。 4、DS1302的寄存器和控制命令 对DS1302的操作就是对其内部寄存器的操作,DS1302内部共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器以外的寄存器。日历、时间寄存器及控制字如表1所示:寄存器名称765432101RAM/CKA4A3A2A1A0RD/W秒寄存器1000000分寄存器1000001小时寄存器1000010日寄存器1000011月寄存器1000100星期寄存器1000101年寄存器1000110写保护寄存器1000111慢充电寄存器1001000时钟突发寄存器1011111DS1302内部寄存器列表:寄存器名称命令字取值范围各位内容写读76543210秒寄存器80H81H00-59CH10SECSEC分寄存器82H83H00-59010MINMIN小时寄存器84H85H01-12或00-2312/240AHRHR日期寄存器86H87H01-28,29,30,310010DATEDATE月份寄存器88H89H01-1200010MMONTH周寄存器8AH8BH01-0700000DAY年份寄存器8CH8DH00-9910YEARYEARDS1302内部的RAM分为两类,一类是单个RAM单元,共31个,每个单元为一个8位的字节,其命令控制字为COHFDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。四、电路实现功能1、报警电路报警电路则采用蜂鸣器电路负责报警。如右图所示,当外界温度高于设定值30摄氏度时或低于10度是,FM置于高电平,蜂鸣器工作产生报警声音。2、 校时功能通过外部中断0、1可分别对年月日时分秒星期分别校时,外部中断0是用来切换校时项,外部中断1实现在原时间的基础上加1。3、 显示各点温度 主屏显示的是时间和平均温度,当第七次按下外部中断0按键时会显示各点温度值。参见附录1四、心得体会通过本次实验,我们学习了单片机和温度传感器的工作原理、时钟芯片DS1302和液晶显示芯片12864的工作原理;本电路对电路时序要求较为严格,因此当用手或其他导电物体触碰到电路时会出现乱码现象,此时只要对电路复位即可,不会丢失当前数据。在此次设计中我们学会了电路组合设计的方法,掌握了单片机的中断系统与时序程序的编写方法及程序调试方法能够利用单片机完成温度显示报警系统的设计,在以后的学习与探索中我们会更加努力,超越自我!参考文献何力民编. 单片机高级教程. 北京:北京航空大学出版社,2000曹巧媛主编. 单片机原理及应用(第二版). 北京:电子工业出版社,2002全国大学生电子设计竞赛 北京:北京理工大学出版社,2003附录1、实物图附录2、PCB图附录3、源程序#include#include#define uchar unsigned char#define uint unsigned intsbit d=P37;sbit CLK_18B20=P24; /18B20 sbit RS=P20;/12864sbit RW=P21;sbit E=P22;sbit clk=P10; /1302sbit Data=P11;sbit rest=P12;sbit fmq=P27;float tem;/平均温度值float temsin;/单个温度值uchar a;/中断0次数记录uchar F;/选择数组dd1或dd2标志位uchar b=0;/判断主函数是否为前5次进入循环,若为前5次蜂鸣器禁止响uchar code dd120=年月日星期温度地;uchar code dd314=查看各点温度;uchar code dd214=0xd2,0xbb,0xb6,0xfe,0xc8,0xfd,0xcb,0xc4,0xce,0xe5,0xc1,0xf9,0xc8,0xd5;uchar view7;/暂存从1302读出的时间数据数组uchar asc14;/读出view中6个数据转换为12个ASC码数组uchar Data_tem5;/暂存温度值uchar code str148=0x28,0x5b,0x09,0xd1,0x04,0x00,0x00,0x2b, 0x28,0x00,0xb1,0xd0,0x04,0x00,0x00,0x03, 0x28,0x93,0x30,0xd0,0x04,0x00,0x00,0xed, 0x28,0x05,0xa5,0xd0,0x04,0x00,0x00,0x8b;/储存4个温度传感器64位rom代码码组 uint code view31024= 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00, 0x20,0x48,0x01,0x04,0x00,0x80,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00, 0x18,0x8F,0x02,0x04,0x00,0xFF,0xC0,0x00, 0x00,0x00,0x00,0x00,0x00,0x07,0xEF,0xE0, 0x08,0x89,0x04,0x7E,0x00,0x84,0x40,0x00, 0x00,0x00,0x00,0x00,0x00,0x04,0x30,0x20, 0x7D,0x09,0x08,0x08,0x00,0x84,0x40,0x00, 0x00,0x00,0x00,0x00,0x00,0x04,0x21,0x20, 0x0D,0x29,0x12,0xFF,0x00,0xBE,0x40,0x00, 0x00,0x01,0x00,0x00,0x00,0x02,0x41,0x00, 0x09,0x2B,0x02,0x91,0x01,0x08,0x40,0x00, 0x10,0x06,0x00,0x00,0x00,0x01,0x81,0x00, 0x31,0x68,0x02,0x7E,0x01,0x08,0x40,0x00, 0x08,0x0E,0x00,0x00,0x00,0x01,0x80,0x80, 0x41,0xA8,0x02,0x10,0x01,0x7F,0x40,0x00, 0x04,0x1C,0x00,0x00,0x00,0x02,0xC1,0x40, 0x38,0x28,0x02,0xE0,0x01,0x08,0x40,0x00, 0x06,0x18,0x00,0x00,0x00,0x04,0x22,0x40, 0x08,0x28,0x02,0x38,0x01,0x10,0x40,0x00, 0x03,0x3E,0x00,0x00,0x00,0x08,0x22,0x40, 0x3E,0x01,0x82,0x46,0x02,0x11,0x40,0x00, 0x81,0x7C,0x00,0x00,0x00,0x08,0x14,0x30, 0x61,0xFE,0x02,0x81,0xE2,0x20,0xC0,0x00, 0xC1,0xFC,0x80,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x50,0xFC,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x92,0xFD,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xCD,0xFA,0x10,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x67,0xFE,0x20,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x3B,0xFC,0xE0,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x1F,0xFD,0xC0,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x8F,0xFB,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x57,0xEF,0x20,0x00,0x00,0x00,0x00,0x80, 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x6F,0xDE,0x40,0x00,0x00,0x00,0x00,0x00, 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x8F,0xDC,0xC0,0x80,0x00,0x00,0x00,0x00, 0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x1F,0xB8,0x81,0x00,0x00,0x00,0x00,0x00, 0x02,0x00,0x40,0x20,0x00,0x00,0x00,0x00, 0x1F,0xB0,0x81,0x00,0x00,0x00,0x00,0x00, 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x3F,0xB1,0x93,0x04,0x00,0x00,0x00,0x00, 0x02,0x04,0x41,0x00,0x00,0x00,0x00,0x00, 0x3B,0x61,0x93,0x04,0x00,0x00,0x00,0x00, 0x04,0x02,0x01,0x00,0x00,0x00,0x00,0x00, 0x36,0x41,0x22,0x04,0x00,0x00,0x04,0x00, 0x03,0x06,0x41,0x10,0x00,0x00,0x00,0x00, 0xB6,0x01,0x66,0x04,0x00,0x00,0x20,0x00, 0x05,0x82,0x01,0x10,0x00,0x00,0x00,0x00, 0x94,0x02,0x67,0x04,0x02,0x00,0x04,0x00, 0x05,0x86,0x01,0x10,0x00,0x00,0x00,0x00, 0x04,0x02,0xC7,0x0C,0x00,0x00,0x40,0x00, 0x07,0xC2,0x01,0x10,0x00,0x00,0x00,0x00, 0xE4,0x12,0xCE,0x48,0x82,0x00,0x44,0x10, 0x07,0x86,0x01,0x10,0x00,0x00,0x00,0x00, 0xB8,0x07,0xCF,0x48,0x00,0x00,0x40,0x20, 0x85,0xC6,0x01,0x10,0x00,0x00,0x00,0x00, 0x40,0x06,0x0E,0xC9,0x02,0x00,0x44,0x20, 0x8D,0x86,0x01,0x98,0x00,0x00,0x00,0x00, 0x08,0x06,0x0D,0x88,0x06,0x00,0xC8,0x00, 0x8F,0xC5,0x00,0x18,0x00,0x00,0x00,0x00, 0x80,0x0C,0x08,0x8A,0x04,0x00,0xC8,0x00, 0x8B,0xC0,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x8C,0x19,0x00,0x00,0x00,0xC0,0x01, 0x8F,0x80,0x01,0x00,0x00,0x00,0x00,0x01, 0x28,0x88,0x10,0x0C,0x03,0x21,0xC0,0x01, 0x0E,0x01,0x01,0x08,0x00,0x00,0x00,0x07, 0x08,0x08,0x10,0x08,0x01,0x01,0xC0,0x01, 0x18,0x01,0x00,0x88,0x00,0x00,0x00,0x07, 0x08,0x08,0x02,0x08,0x00,0x03,0xC0,0x01, 0x1D,0x81,0x01,0x00,0x00,0x00,0x00,0x0F, 0x08,0x0A,0x00,0x00,0x03,0x81,0xC0,0x03, 0x1E,0x41,0x21,0x98,0x00,0x00,0x00,0x0F, 0x00,0x10,0x00,0x08,0x03,0x07,0xC0,0x03, 0x1A,0x8B,0x23,0x00,0x00,0x00,0x00,0x0F, 0x08,0x12,0x00,0x00,0x01,0x00,0x00,0x02, 0x3A,0x89,0x23,0x98,0x00,0x00,0x00,0x0F, 0x09,0x10,0x2C,0x00,0x03,0x00,0x00,0x06, 0x3E,0x83,0x00,0x10,0x00,0x00,0x00,0x1F, 0x0A,0x14,0xC6,0x00,0x02,0x01,0x40,0x06, 0x2E,0x8A,0x00,0x18,0x00,0x00,0x00,0x1F, 0x08,0x14,0xA0,0x80,0x00,0x06,0xC0,0x06, 0x7B,0x8C,0x00,0x08,0x00,0x00,0x00,0x1F, 0x00,0x08,0x3E,0x80,0x00,0x05,0x40,0x0E, 0x7F,0x98,0x00,0x00,0x00,0x00,0x00,0x1F, 0x00,0x91,0xB8,0xA0,0x00,0x03,0x48,0x0C, 0x5F,0x90,0x00,0x00,0x00,0x00,0x00,0x1C, 0x08,0x10,0x1E,0x10,0x02,0x0F,0xE8,0x0C, 0x7F,0x80,0x00,0x00,0x80,0x00,0x00,0x1A, 0x08,0x90,0x98,0x40,0x00,0x0F,0xC8,0x1C, 0xFF,0x90,0x00,0x00,0x00,0x00,0x00,0x3B, 0x00,0x00,0x00,0x00,0x20,0x0D,0x68,0x1C, 0xFF,0xB8,0x00,0x00,0x00,0x00,0x00,0x36, 0x09,0x00,0x00,0x00,0x06,0x15,0xE8,0x19, 0xFF,0x90,0x00,0x00,0x00,0x00,0x00,0x3C, 0x0A,0x00,0x00,0x00,0x22,0x00,0x24,0x39, 0xFF,0x29,0x00,0x00,0x00,0x00,0x00,0x3C, 0x02,0x20,0x00,0x00,0x22,0x00,0x04,0x39, 0xFF,0xB3,0x00,0x00,0x00,0x00,0x00,0x78, 0x0C,0x00,0x00,0x00,0x22,0x00,0x04,0x13, 0xFF,0x69,0x00,0x00,0x00,0x00,0x00,0x70, 0x08,0x20,0x00,0x00,0x22,0x00,0x04,0x73, 0xFF,0xFC,0x00,0x00,0x00,0x00,0x01,0xF6, 0x00,0x00,0x00,0x00,0x30,0x00,0x04,0x67, 0xFF,0xFC,0x00,0x00,0x00,0x00,0x01,0xEC, 0x04,0x20,0x00,0x00,0x30,0x00,0x06,0x67, 0xFF,0xFC,0x00,0x00,0x00,0x00,0x01,0xD8, 0x00,0x20,0x00,0x00,0x30,0x00,0x06,0x67, 0xFF,0xFC,0x00,0xE4,0x00,0x00,0x03,0xF0, 0x04,0x00,0x00,0x00,0x30,0x00,0x06,0x6F, 0xFF,0xFE,0x00,0xE0,0x00,0x00,0x03,0xB0, 0x00,0x20,0x00,0x00,0x10,0x00,0x06,0x5F, 0xFF,0xFE,0x00,0xC0,0x00,0x00,0x03,0xC0, 0x00,0x00,0x00,0x00,0x10,0x00,0x07,0xFF, 0xFF,0xFF,0x00,0x08,0x00,0x00,0x03,0x40, 0x00,0x00,0x00,0x00,0x10,0x20,0x03,0xFF, 0xFF,0xFF,0x00,0x00,0x00,0x00,0x03,0x80, 0x00,0x00,0x00,0x00,0x10,0x20,0x03,0xFF, 0xFF,0xFF,0x00,0x00,0x00,0x00,0x02,0x80;/*/延时子程序1void delay(uint ms)uchar i; while(ms-) for(i=0;i120;i+);/延时子程序2void delaynop(uchar us)while(us-) _nop_(); _nop_(); _nop_(); _nop_();_nop_(); /*/void alarm()uint i; for(i=0;i100;i+) fmq=1; delaynop(100); fmq=0; delaynop(100);/*/* 1302程序*/*/ds1302写一个字节子程序 void write_1302(uchar dat)uchar i; if(dat&0x80)=0x80) rest=0;clk=0;rest=1; /写命令字的时候要重新复位rest,以及把clk拉低,否则不能写 /时间及日期,但此时能写保护位以及外部电源位。 clk=0; delaynop(2); for(i=0;i=1; /*/ ds1302读一个字节子程序 uchar read_1302() uchar i,k=0; delaynop(2); for(i=0;i=1; if(Data=1) k=k|0x80; clk=1; delaynop(2); clk=0; delaynop(2); rest=0;/ 每次写操作之后都要关闭并重启使能位,这是这次写 rest=1;/ 程序最后才发现的此元件的特点,很重要! return(k); /DS1302初始化 void init_ds1302() write_1302(0x8e); write_1302(0x00);/关闭写保护 write_1302(0x80); write_1302(0x56);/50秒 write_1302(0x82); write_1302(0x59);/59分 write_1302(0x84); write_1302(0x23);/24时制 23时 write_1302(0x86); write_1302(0x31);/31日 write_1302(0x88); write_1302(0x07);/7月 write_1302(0x8a); write_1302(0x07);/星期ri write_1302(0x8c); write_1302(0x13);/2013年 write_1302(0x90); write_1302(0xa5);/打开充电模式 write_1302(0x8e); write_1302(0x80);/打开写保护 rest=0; /结束写操作 /读ds1302数据子程序void readstring_1302() rest=1; /打开读写使能 write_1302(0x8d); view0=read_13

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论