《匠人手记》推荐网上购书渠道: 互动出版网(china-pub) >>> 当当网(dangdang) >>> 卓越亚马逊网 >>> 淘宝网(taobao) >>> 更多购书渠道…… >>>
设为首页|加入收藏|联系匠人|管理入口|21IC首页|21IC博客|21IC社区|侃单片机|回复的贴|参与的贴
百宝专栏
百宝信息
(2006-07-01开始)
匠人手记
DS1302读写一体化C51源程序 (由hotpower撰写) 程序匠人 发表于 2006-8-1 14:38:00 阅读全文 | 回复(0) | 引用通告 | 编辑
DS1302读写一体化C51源程序 (hotpower) /*----------------------------------------------DS1302读写一体化C51源程序 HotPower@126.com------------------------------------------------*///打开DS1302void TimeSpiOpen(void){ TIMECLK = 0; TIMERST = 0;//禁止DS1302 TIMEIO = 1;//释放数据总线 TIMERST = 1;//使能DS1302}//关闭DS1302void TimeSpiClose(void){ TIMERST = 0;//禁止DS1302 TIMEIO = 1;//释放数据总线 TIMECLK = 1;}//读写DS1302unsigned char TimeSpiReadWrite(unsigned char val){unsigned char i; ACC = val;//取8位数据 for (i = 8;i > 0; i--) { TIMECLK = 0;//时钟下降沿输入数据(DS1302读) _nop_();//延时 CY = TIMEIO;//接收串行数据到CY _rrca_();//右移一位数据到CY(先存后取) TIMEIO = CY;//发送串行数据 TIMECLK = 1;//时钟上升沿打入数据(DS1302写) TIMEIO = 1;//释放数据总线 } val = ACC; return val;}//读DS1302字节unsigned char TimeByteRead(unsigned char address){ TimeSpiOpen();//打开DS1302 TimeSpiReadWrite(address);//写入DS1302命令 address = TimeSpiReadWrite(0xff);//读入DS1302数据 TimeSpiClose();//关闭DS1302 return address;//返回数据}//读DS1302RAM字节unsigned char TimeRamByteRead(unsigned char address){ TimeSpiOpen();//打开DS1302 TimeSpiReadWrite((address << 1) | 0xc1);//写入DS1302命令 address = TimeSpiReadWrite(0xff);//读入DS1302数据 TimeSpiClose();//关闭DS1302 return address;//返回数据}//写DS1302字节void TimeByteWrite(unsigned char address, unsigned char val){ TimeSpiOpen();//打开DS1302 TimeSpiReadWrite(address);//写地址 TimeSpiReadWrite(val);//写数据 TimeSpiClose();//关闭DS1302}//写DS1302字节void TimeRamByteWrite(unsigned char address, unsigned char val){ TimeSpiOpen();//打开DS1302 TimeSpiReadWrite((address << 1) | 0xc0);//写地址 TimeSpiReadWrite(val);//写数据 TimeSpiClose();//关闭DS1302}//使能DS1302写保护void TimeWriteEnable(void){ TimeByteWrite(timewriteregall, timewriteseg);//使能DS1302写保护}//开放DS1302写保护void TimeWrieDisbale(void){ TimeByteWrite(timewriteregall, 0);//开放DS1302写保护}//DS1302工作开始void TimeWorkStart(void){unsigned char val; val = TimeByteRead(timereadseg);//读秒数据 val &= 0x7f;//打开晶振 TimeWrieDisbale();//开放DS1302写保护 TimeByteWrite(timewriteseg, val);//打开晶振 TimeByteWrite(tricklewrite, 0xa5);//打开充电二极管 TimeWriteEnable();//使能DS1302写保护}
看《匠人手记》,与匠人同行!北航出版,正在热卖!
芯片专题
器件专题
软件专题
硬件专题
综合专题
项目专题
原创专题
器件检测LCD LED按键 触摸键E2PROM电池 电机电阻 电容 电感
指令系统软件算法编程规范滤波算法串行通讯
PCB设计I2C PWM红外遥控充电技术中断 ADC
匠人手记匠人夜话网络心路一周热点串烧从零开始玩PICDIY旋转时钟
广告5号位 [投放]
学习板、开发板、编程器、下载器、仿真器(查看详情……)
广告3号位 [投放]
百度 google mp3 歌词 图片 FLASH 知道 文档 新闻 词典 地图 mp3 软件 天网 雅虎 爱问 搜狗 讯雷 网讯 华军 天空
广告4号位 [投放]
匠人原创
推荐阅读
往日酷贴
友情连接
[更多酷站连接]
[欢迎交换连接]
[百宝箱之与非门分舵]
[电脑圈圈的家当]
[IC921的博客]
[hotpower 的水潭]
[八楼的呼吸]
[柔月阁]
[PIC论坛]
[SMARTCODE电子书斋]
[阿摆手记]
[电子伙伴]
[xwj的文君阁]
[所长的BLOG]
[海边淘沙]
[单片机开发联盟]
[数字电视之家]
[软件开发之窗]
[unaided的笔记]
[小飞的笔记]
[ICC AVR开发网]
[我爱研发网]
[infernal的笔记]
[网址之家]
[好东西网址大全]
[美萍中文精选]
[水牛的仓库]
[逍遥电子]
[ningpanda的博客]
[雄鹰的空中加油站]
[一网见天下]
[Armoric的笔记]
[股剩是怎样炼成的]
[嵌入式365]
[C-Design]
[AVR猎手的地盘]
[中国高校自动化网]
[SunK]