老古开发网首页
导航:老古开发网首页文章索引索引第2534页文章分类单片机第49页→[DS1302时钟芯片驱动程序]
| -文章搜索 - 最新文章 - |

第2931篇:DS1302时钟芯片驱动程序

发布时间:2006年10月15日 点击次数:2138
来源:   作者:
 
#include 
 
//下面是引脚连接关系
sbit clock_dat=P1^0;
sbit clock_clk=P1^1;
sbit clock_clk=P1^2;
 
sbit a0=ACC^0;
sbit a1=ACC^1;
sbit a2=ACC^2;
sbit a3=ACC^3;
sbit a4=ACC^4;
sbit a5=ACC^5;
sbit a6=ACC^6;
sbit a7=ACC^7;
 
void clock_out(unsigned char dd) {
         ACC=dd;
         clock_dat=a0;clock_clk=1;clock_clk=0;
         clock_dat=a1;clock_clk=1;clock_clk=0;
         clock_dat=a2;clock_clk=1;clock_clk=0;
         clock_dat=a3;clock_clk=1;clock_clk=0;
         clock_dat=a4;clock_clk=1;clock_clk=0;
         clock_dat=a5;clock_clk=1;clock_clk=0;
         clock_dat=a6;clock_clk=1;clock_clk=0;
         clock_dat=a7;clock_clk=1;clock_clk=0;
}
unsigned char clock_in(void) {
         clock_dat=1;
         a0=clock_dat;
         clock_clk=1;clock_clk=0;a1=clock_dat;
         clock_clk=1;clock_clk=0;a2=clock_dat;
         clock_clk=1;clock_clk=0;a3=clock_dat;
         clock_clk=1;clock_clk=0;a4=clock_dat;
         clock_clk=1;clock_clk=0;a5=clock_dat;
         clock_clk=1;clock_clk=0;a6=clock_dat;
         clock_clk=1;clock_clk=0;a7=clock_dat;
         return(ACC);
}
unsigned char read_clock(unsigned char ord) {
         unsigned char dd=0;
         clock_clk=0;
         clock_rst=0;
         clock_rst=1;
         clock_out(ord);
         dd=clock_in();
         clock_rst=0;
         clock_clk=1;
         return(dd);
}
void write_clock(unsigned char ord,unsigned char dd) {
         clock_clk=0;
         clock_rst=0;
         clock_rst=1;
         clock_out(ord);
         clock_out(dd);
         clock_rst=0;
         clock_clk=1;
}
/*注意事项:
1.每次上电,必须把秒寄存器高位(第7位)设置为0,时钟才能走时。
2.如果需要写入数据和时钟日历信息,必须把写保护寄存器设置成为0,方法入下:
         write_clock(0xc1 0x7,0);
3.使能慢速充电,方法如下:
         write_clock(0xc1 0x8,0xaa);
*/
 
void main(void) {
         unsigned char address,d;
//调用方法:
//DS1302内部分为32字节RAM8字节时钟日历数据
//读内部RAM 0:
         address=0;
         d=read_clock(0xc0 address);
//读内部RAM 1:
         address=1;
         d=read_clock(0xc0 address);
 
//写内部RAM 0,写入5:
         address=0;d=5;
         write_clock(0xc1 address,d);
//读内部RAM 1,写入123:
         address=1;d=123;
         d=read_clock(0xc1 address,d);
 
//=================================         
//读内部时钟日历数据0:秒:
         address=0;
         d=read_clock(0x80 address);
//读内部时钟日历数据1:分:
         address=1;
         d=read_clock(0x80 address);
 
//写内部时钟日历数据0:秒,写入03
         address=0;d=3;
         write_clock(0x80 address,d);
} 
/*
         内部时钟日历地址图,始终日历用BCD码储存
         0:秒
         1:分
         2:小时
         3:日期
         4:月份
         5:星期
         6:年
         7:写保护寄存器
         8:慢速充电寄存器
*/

欢迎进入老古论坛进行讨论
[单片机] 相关文章:
[转载]语音录放芯片ISD5116特点及应用
简介:
语音录放芯片ISD5116特点及应用 作者:衣军 ISD5116是ISD公司最新推出的语音录放芯片。它除了具有该公司以往4000和5000系列语音芯片的特点(音质好、语音录放时间长、低功耗、信息保持时间长等)以外,更是采用了增强型的5000系列结构;它采用I2C串行总线接口,与采用MWI(微总线)接口相比,与CPU的接口减少到2条线;它增加了对数字量的存储功能,可以将诸如电话号码、系统设置、语音地址指针等参数与语音信息一起存储在芯片内部;根据应用......

[转载]ISD2560芯片在汽车报站器的应用
[转载]基于单片机的电动自行车速度与里程表设计
DS18B20温度传感器
430控制6963c驱动液晶
 
下一个:[单片机]时钟芯片ds1302程序,调试通过(转载)
简介:
#ifndef _DS1302_H #define _DS1302_H #ifndef __C 8051F 020_H__ #include <c 8051f 020.h> #endif #ifndef _MACRO_H #include "macro.h" #endif sbit ACC0 = ACC ^ 0; sbit ACC7 = ACC ^ 7; sbit DSRST = P2 ^ 7; &......

上一个:[单片机]可控硅元件的工作原理及基本特性电路

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:30分钟 执行时间:47毫秒