智能仪表设计报告

2019-03-29 14:05

河 南 农 业 大 学

《智能仪器设计实习》

设 计 说 明 书

题 目: 实时日历时钟显示系统的制作

学 院: 理 学 院

专 业: 电子信息科学与技术 班 级: 06级电科一班

学 号: 0608101026 姓 名: 指导教师:

成 绩:

时 间: 2009年12月18 日至2010年 1月 18 日

实时日历时钟显示系统的制作

一、背景及意义

现在流行的串行时钟芯片很多,如DSl302、DSl307、PcF8485等。这些芯片接口简单、价格低廉、使用方便,被广泛地采用。本文介绍的实时时钟芯片为Dsl302,是Dallas公司的一种具有涓细电流充电能力的实时时钟芯片,采用普通32.768kHz晶振。主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。

二、系统分析

1、 DSl 302的结构及工作原理

Dsl302是美国Dallas公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.5~5.5V。采用三线接口与CPu进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。Dsl302内部有一个31×8的用于临时性存放数据的RAM寄存器。Dsl302是DSl202的升级产品,与DSl202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。 1.1引脚功能及结构图

vCCl为后备电源,vCc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DSl302由VCCl或VCC2两者中的较大者供电。当VCc2大于VCCl+0.2V时,VcC2给DSl302供电。当VCC2小于VCC时,DSl302由vccl供电。x1、x2为振荡源,外接32.768Hz晶振。RST是复位,片选线,通过把RST输入驱动置高电平

来启动所有的数据传送。RST输入有两种功能:(1),RsT接通控制逻辑,允许地址/命令序列送入移位寄存器:(2),RST提供了终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DSl302进行操作。如果在传送过程中置RsT为低电平,则会终止此次数据传送,并且狄)引脚变为高阻态。上电运行时,在vCc≥2.5v之前,RST必须保持低电平。只有在sCLK为低电平时,才能将RST置为高电平。P1.0为串行数据输入输出端(双向),下文有详细说明。SCLK为时钟输入端。

1

1.2 DSl302的控制字节说明

DSl302的控制字节的最高有效位(位7)必须是逻辑l,如果它为0,则不能把数据写入到DSl302中:位6如果为O,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 1.3数据输入输出I/O

在控制指令字输入后的下一个SCLK时钟的上升沿时数据被写入DSl302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个ScLK脉冲的下降沿读出Dsl302的数据,读出数据时从低位0位至高位7。 1.4 DSl302的寄存器

DSl302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字如表1所列。

DSl302的日历、时钟寄存器及其控制字

此外,Dsl302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。Dsl302

2

与RAM相关的寄存器分为两类,一类是单个RAM单元,共31个,每个单元组态为一个位的字节,其命令控制字为c0H~印H,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字FEH(写)、FFH(读)。

三、系统硬件设计

DSl 302实时显示时间的软硬件 2.1 DSl302与CPU的连接

DSl302与CPU的连接仅需要三条线,即SCLK、I/o、RST。DSl302与89C2051的连接如图2所示,其中时钟的显示用LCD显示。

图2 Dsl302与cPU的电路连接实际上在调试程序时可以不加电容,只加一个32.768Hz的晶振即可,在选择晶振时注意不同的晶振误差较大。另外还可以在上面的电路中加入DSl8820,同时显示实时温度,只要占用cPu一个口线即可。LcD还可以换成LED,也可以使用北京卫信杰科技发展有限公司生产的10位多功能8段液晶显示模块LcMl01,内含看门狗(wDT)/时钟发生器及两种频率的蜂鸣器驱动电路,并有内置显示RAM,可显示任意字段笔划,具有3~4线串行接口,可与任何单片机、IC接口,功耗低,显示状态时电流为2uA(典型值),省电模式时小于1“A,工作电压2.4~3.3v,显示清晰。

3

四、系统软件设计

1.实验程序:

#include #include

//#include

#define Uchar unsigned char

#define Uint unsigned int

extern void Delayus(Uchar j); //延时时间为 j*10+8 us (根据生成的汇编代码计算)

extern void Delayms(Uint n) ; //延时时间大约为n ms

extern void Dsenddata(Uchar dd); //8位数据从74HC164的串行输入端输入,从输出端并行输出

//数码管显示和按键扫描用到此函数 extern void Display(Uchar *p); //数码管显示子程序 extern void Lcdreset( void ); //液晶屏初始化

extern void Disponechar(Uchar x,Uchar y,Uchar Wdata); //液晶屏指定位置输出一个字符(Wdata代表欲显示字符的ASC码)

extern void Eputstr(Uchar x,Uchar y, Uchar code *ptr); //液晶屏指定位置输出字符串

extern void v_BurstW1302T(Uchar *pSecDa); //DS1302 的连续写子程序

extern void v_W1302(Uchar ucAddr, Uchar ucDa); //DS1302 的单字节写子程序 extern void v_BurstR1302T(Uchar *pSecDa); //DS1302 的连续读子程序

//注释: 以上外部函数的函数原型都在YB-51-B实验板配套演示程序的对应文件夹中 /****************************************************** *液晶屏显示模块

********************************************************/ //#include

#define RS1602 P1_0 //数据/命令选择 #define RW1602 P1_1 //读/写选择 #define EL1602 P1_2 //使能信号 #define DataPort P0 // 数据端口

#define Busy 0x80

/*=======================================================

正常读写操作之前必须检测LCD控制器状态: CS=1 RS1602=0 RW1602=1 DB7: 0 LCD控制器空闲; 1 LCD控制器忙

========================================================*/ void WaitForEnable( void ) { DataPort = 0xff; RS1602=0; RW1602=1; _nop_(); EL1602=1; _nop_();

4


智能仪表设计报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:10.创新工作室经费管理办法

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: