<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于24C08帶掉電記憶功能的兩路電子跑表

基于24C08帶掉電記憶功能的兩路電子跑表

作者: 時(shí)間:2016-12-02 來(lái)源:網(wǎng)絡(luò ) 收藏
#include

#include
#define uchar unsigned char
#define uint unsigned int
uchar tent,tent1,secbf,secbf1;sec,min,sec1,min1;

bit write_secbf=0,write_secbf1=0;

本文引用地址:http://dyxdggzs.com/article/201612/324662.htm

sbit scl_24=P2^6;
sbit sda_24=P2^7;
sbit en=P1^2;
sbit rs=P1^0;
sbit rw=P1^1;
sbit gnd=P2^5;
sbit puss=P2^3;
sbit clear=P2^2;
sbit puss1=P2^1;
sbitstart=P2^0;
void delay(int i)
{uchar x,y;
for (x=i;x>0;x--)
for(y=110;y>0;y--);
}

/**********1602子程序****************************/

void write_com(uchar com)
{
rs=0;
P0=com;
delay(5);
en=1;
delay(5);
en=0;
}

void write_dat(uchar dat)
{
rs=1;
P0=dat;
delay(5);
en=1;
delay(5);
en=0;

}


void init_1602()
{
en=0;
rw=0;
write_com(0x38);
write_com(0x0c);//如果輸入0X0F會(huì )是什么效果
write_com(0x06);
write_com(0x01);
write_com(0x80);
}


/**************************延時(shí)子程序***********************/


void usdelay()
{
_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();
}

/***************以下開(kāi)始為24CXX用子程序**********************/


void star24()//開(kāi)始信號
{//時(shí)鐘線(xiàn)在高電平時(shí),數據線(xiàn)由高變低即為開(kāi)始信號由高變低即為開(kāi)始信號
sda_24=1;
usdelay();
scl_24=1;
usdelay();
sda_24=0;//數據線(xiàn)由高變低即為開(kāi)始信號
usdelay();
scl_24=0;
}

void stop24()//結束信號
{//時(shí)鐘線(xiàn)在高電平時(shí),數據線(xiàn)由低變高即為結束信號
sda_24=0;
usdelay();
scl_24=1;
usdelay();
sda_24=1;
usdelay();
sda_24=0;//這句可有可無(wú)
scl_24=0;//這句可有可無(wú)
}

void Ack24()
{uchar i;
scl_24=1;
usdelay();
while((sda_24==1)&&(i<200))i++;
scl_24=0;
usdelay();
}
/*
void NoAck24() //不應答
{
sda_24=1;//時(shí)鐘線(xiàn)高電平時(shí),數據線(xiàn)高,即為不應答
usdelay();
scl_24=1;
usdelay();
scl_24=0;
usdelay();
} */

void init_24()
{
sda_24=1;
usdelay();
scl_24=1;
usdelay();
}


void write_byte(uchar dat)
{
uchar i,temp;
temp=dat;
//scl_24=0;//低電平可以變數據,為高時(shí)是讀,且不能變
for(i=0;i<8;i++)
{
temp=temp<<1;
scl_24=0;
usdelay();
sda_24=CY;//CY是PSW寄存器中的CY位,再把CY賦給SDA,再由SCL控制發(fā)出去
//sda_24=(bit)(temp&0x80);//用這句也可以換掉上一句(bit)是強制轉換命令,把數據轉成非0即1
usdelay();
scl_24=1;
usdelay();
}
scl_24=0;
usdelay();
sda_24=1;//釋放總線(xiàn)
usdelay();
}

uchar read_byte()
{

uchar i,k;
scl_24=0; //這句可有可無(wú)
usdelay(); //這句可有可無(wú)
sda_24=1; //釋放總線(xiàn)
usdelay();
for(i=0;i<8;i++)
{
scl_24=1;
usdelay();
k=(k<<1)|sda_24;//判斷8次,移位7次
scl_24=0;
usdelay();

}
return k;
}

void write_add(uchar add,uchar dat)
{
star24();
write_byte(0xa0);//呼叫器件,高四位為定了的1010,即A,低四位三個(gè)接了地,所以為000,最后一個(gè)0是寫(xiě)標志
Ack24();//寫(xiě)了后要馬上應答
write_byte(add);//寫(xiě)要往哪個(gè)地址寫(xiě)數據00-1023
Ack24();//每寫(xiě)一次要給一個(gè)應答位
write_byte(dat);//把數據寫(xiě)入
Ack24();
stop24();//給一個(gè)停止位,結束寫(xiě)數據
}


uchar read_add(uchar add)
{
uchar dat;
star24();
write_byte(0xa0);//呼叫器件,高四位為定了的1010,即A,低四位三個(gè)接了地,所以為000,最后一個(gè)0是寫(xiě)標志
Ack24();//寫(xiě)了后要馬上應答
write_byte(add);//寫(xiě)入要往哪個(gè)地址讀數據00-1023
Ack24();//每寫(xiě)一次要給一個(gè)應答位
star24();
write_byte(0xa1);//呼叫器件,高四位為定了的1010,即A,低四位三個(gè)接了地,所以為000,最后一個(gè)1是讀標志
Ack24();//寫(xiě)了后要馬上應答
dat=read_byte();
stop24();//給一個(gè)停止位,結束讀數據
return dat;
}

void display_secbf(uchar dat)
{

write_com(0x80+13);
write_dat(0x30+dat);

}

void display_secbf1(uchar dat)
{

write_com(0x80+0x40+13);
write_dat(0x30+dat);

}


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 24C08帶掉電記憶電子跑

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>