教室LED日光灯节能控制设计 - 图文(10)

2019-08-30 15:56

河南科技大学毕业论文

/*向ds1302写入一字节数?/

void ds1302_write_byte(uchar addr,uchar dat) { }

/*从ds1302读出一字节数据*/ uchar ds1302_read_byte(uchar addr) {

42

uchar i; DS1302_RST=1; addr=addr&0xfe; for(i=0;i<8;i++) {

if(addr&0x01)

DS1302_IO=1;

//写目标地址addr并最低位置零

else

DS1302_IO=0;

DS1302_CLK=1; DS1302_CLK=0; addr=_cror_(addr,1); }

//写入数据dat

for(i=0;i<8;i++) {

if(dat&0x01)

DS1302_IO=1;

else

DS1302_IO=0;

DS1302_CLK=1; DS1302_CLK=0; dat=_cror_(dat,1); ; }

//停止DS1302总线

DS1302_RST=0;

河南科技大学毕业论文

}

uchar i,temp; DS1302_RST=1; addr=addr|0x01; for(i=0;i<8;i++) {

if(addr&0x01)

DS1302_IO=1;

//写入目标地址addr并最低位置高

else

DS1302_IO=0;

DS1302_CLK=1; DS1302_CLK=0; addr=_cror_(addr,1); }

//输出数据:temp

for(i=0;i<8;i++) {

temp=_cror_(temp,1); if(DS1302_IO==1)

temp|=0x80;

else

temp&=0x7F;

DS1302_CLK=1; DS1302_CLK=0; }

//停止DS1302总线

DS1302_RST=0; return temp;

/*向ds1302写入时钟数*/ void ds1302_write_time() {

uchar i,temp;

for(i=0;i<8;i++) //BCD处理

43

河南科技大学毕业论文

}

{

temp=time_buf1[i]/10; time_buf[i]=time_buf1[i]; time_buf[i]=time_buf[i]+temp*16;

}

ds1302_write_byte(ds1302_control_addr,0x00); ds1302_write_byte(ds1302_sec_addr,0x80);

//关闭写保护 //暂停 //涓流充电

//ds1302_write_byte(ds1302_charger_addr,0xa9); ds1302_write_byte(ds1302_year_addr,time_buf[1]);

//年

//月 //日 //周 //时 //分 //秒 //周

//打开写保护

ds1302_write_byte(ds1302_month_addr,time_buf[2]); ds1302_write_byte(ds1302_day_addr,time_buf[3]); ds1302_write_byte(ds1302_week_addr,time_buf[7]); ds1302_write_byte(ds1302_hour_addr,time_buf[4]); ds1302_write_byte(ds1302_min_addr,time_buf[5]); ds1302_write_byte(ds1302_sec_addr,time_buf[6]); ds1302_write_byte(ds1302_week_addr,time_buf[7]); ds1302_write_byte(ds1302_control_addr,0x80);

/*从ds1302读出时钟数据*/ void ds1302_read_time() {

uchar i,temp;

time_buf[1]=ds1302_read_byte(ds1302_year_addr); //年

time_buf[2]=ds1302_read_byte(ds1302_month_addr); time_buf[3]=ds1302_read_byte(ds1302_day_addr); time_buf[4]=ds1302_read_byte(ds1302_hour_addr); time_buf[5]=ds1302_read_byte(ds1302_min_addr);

//月 //日

//时

//分

time_buf[6]=(ds1302_read_byte(ds1302_sec_addr))&0x7F; //秒 time_buf[7]=ds1302_read_byte(ds1302_week_addr);

//周

for(i=0;i<8;i++) //BCD处理

44

河南科技大学毕业论文

}

{

temp=time_buf[i]/16; time_buf1[i]=time_buf[i]; time_buf1[i]=time_buf1[i]+temp*10;

}

/*ds1302初始化*/ void ds1302_init() { }

DS1302_RST=0; DS1302_CLK=0;

ds1302_write_byte(ds1302_sec_addr,0x00);

45

河南科技大学毕业论文

附录三

单片机STC89C52-2 C程序如下:

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

#define uchar unsigned char #define uint unsigned int

#define AddWr 0x90 //写数据地址 #define AddRd 0x91 //读数据地址

sbit LEDON=P1^2; uint num; int pwm; uint cycle=500;

void delay(uint k) { uint i,j;

for(i=110;i>0;i--) { for(j=k;j>0;j--);

}

}

uchar ReadADC(unsigned char Chl) {

46

10010000


教室LED日光灯节能控制设计 - 图文(10).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:数字图像处理第三版中文答案 - - 冈萨雷斯

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

马上注册会员

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