<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è) > 嵌入式系統 > 設計應用 > 淺談單片機c語(yǔ)言模塊化編程-附ds1302時(shí)鐘芯片驅動(dòng)程序

淺談單片機c語(yǔ)言模塊化編程-附ds1302時(shí)鐘芯片驅動(dòng)程序

作者: 時(shí)間:2016-11-20 來(lái)源:網(wǎng)絡(luò ) 收藏
單片機c語(yǔ)言編程中,模塊化編程顯得非常重要。我覺(jué)得,模塊化恰恰體現了c語(yǔ)言很好的可移植性。嵌入式編程中,硬件模塊區分非常明顯,所以驅動(dòng)程序用模塊化編程顯得十分方便簡(jiǎn)潔。
報錯原因,修改了不能修改的變量。

本文引用地址:http://dyxdggzs.com/article/201611/318723.htm

C51中為了節省ram資源,數組用code定義在rom中,這樣定義數組就不能重新賦值。

自己對著(zhù)例程一條一條的看。真心表示沒(méi)有發(fā)現錯誤。最后把函數一個(gè)一個(gè)替換成例程中的。最終確定在ds1302_write_byte中。發(fā)現了一個(gè)很奇特的事情。錯誤是因為fou循環(huán),我用for(i=0;i<8;i++)替換成為for(i=8;i>0;i--)解決了問(wèn)題。

extern可以置于變量或者函數前,以表示變量或者函數的定義在別的文件中,提示編譯器遇到此變量和函數時(shí)在其他模塊中尋找其定義。另外,extern也可用來(lái)進(jìn)行鏈接指定。

使用模塊化編程的時(shí)候,在.h里聲明了數組。.c文件直接使用數組,在連接時(shí)會(huì )出現錯誤multiple public definition。

在.h文件用extren聲明數組,在.c文件聲明賦值。錯誤解決。

附ds1302時(shí)鐘芯片驅動(dòng)程序

void ds1302_write_byte(unsigned char d)
{

unsigned char i;
ACC=d;
for(i=0;i<8;i++)//改成i=0;i<8;沒(méi)有現象。。為嘛呀。。。
{
io=ACC0;
//delayus(1);
sck=1;
//delayus(1);
sck=0;
ACC=ACC>>1;
}
}

void ds1302_write(uchar ad,uchar dat)
{
rst=0;
sck=0;
rst=1;
//delayus(1);
ds1302_write_byte(ad);
ds1302_write_byte(dat);
sck=1;
rst=0;
}
unsigned char ds1302_read_byte()
{

unsigned char i;
for(i=0;i<8;i++)
{
ACC=ACC>>1;
ACC7 =io;
sck=1;
//delayus(1);
sck=0;
//delayus(1);
}
return (ACC);

}
unsigned char ds1302_read(unsigned char add)
{
unsigned char ucdat;
rst=0;
sck=0;
rst=1;
//delayus(1);
ds1302_write_byte(add);
ucdat=ds1302_read_byte();
sck=1;
rst=0;
return ucdat;
}


void ds1302_init()
{

ds1302_write(0x8E,0x00);

}




關(guān)鍵詞: 單片機模塊化編程ds130

評論


技術(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>