基于DS1302的三个定时器的智能时钟的设计.doc

基于DS1302的三个定时器的智能时钟的设计.doc

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于DS1302的三个定时器的智能时钟的设计

//**电信(1)班 吴锦生 日期:2012.12.18**// #includereg52.h #includeintrins.h #include absacc.h #define uint unsigned int #define uchar unsigned char #define lcd_date P0 #define data 1000 #define N 8 sbit LEDCLK=P3^4; sbit LEDDIN=P2^3; sbit Key_Input=P1^0; sbit lcd_en=P2^2; sbit lcd_rs=P2^4; sbit lcd_rw=P2^3; sbit ACC0=ACC^0; sbit ACC7=ACC^7; sbit DQ=P3^2; sbit SDA=P3^7;//串行数据/地址控制端 sbit SCL=P3^6;//串行时钟 sbit sound=P1^2; uchar idata disp[N]; uchar keytemp=0; uchar keyval=0; uchar keyback; uint keynum; bit add_dec_flag; uchar mod; uchar t_open; bit time_mod; uchar temper_mod; uchar set_mod; int time1_hour,time1_minute,time2_hour,time2_minute,time3_yue,time3_day; bit keyup; bit flag_num; uchar timebuf[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; uchar chu[8]={0x00,0x00,0x07,0x16,0x04,0x01,0x13,0x00}; #define NOP3() _nop_();_nop_();_nop_() /**DS1302与MCU连接的各端口定义*****************/ sbit DS_IO=P2^0;//DS1302数据口 sbit DS_SCLK=P2^7;//DS1302串行时钟 sbit DS_RST=P2^4; /**DS1302内部各个寄存器地址定义***********/ #define DS1302_SECOND 0X80 // 秒 #define DS1302_MINUTE 0X82 // 分 #define DS1302_HOUR 0X84 // 时 #define DS1302_DAY 0X86 // 日 #define DS1302_MONTH 0X88 // 月 #define DS1302_WEEK 0X8A // 星期 #define DS1302_YEAR 0X8C // 年 #define DS1302_CONTROL 0X8E //写保护控制位 #define DS1302_RAM(X) (0XC0+(X)*2)//用于计算DS1302静态RAM地址 void delayms(uint z) { uint x; uchar y; for(x=z;x0;x--) for(y=123;y0;y--); } /********************************************** 写入单个字节 **********************************************/ void DS1302WriteByte(uchar Wdate) { uchar i; for(i=0;i8;i++) { DS_IO=(bit)(Wdate0x01); DS_SCLK=1; DS_SCLK=0; NOP3(); Wdate=1; } } /*********************************************** 读取一个字节 *************************************************/ uchar DS1302ReadByte(void) { uchar i,temp; temp=0; for(i=0;i8;i++) { temp=1; if(DS_IO==1) { temp=temp|0x80; } DS_SCLK=1; NOP3(); DS_SCLK=0; } return(temp); } /********************************************** 对单个地址写相应的数据 **********

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档