資源簡介
在這個實驗中,數(shù)碼管的讀數(shù)是經(jīng)過IIC總線,從型號為24C02C的EPROM中讀取出來的,該數(shù)字每累加一次,也會把累加后的數(shù)值保存到24C02C中,當(dāng)單片機(jī)復(fù)位或斷電時,該數(shù)值就不會丟失,當(dāng)復(fù)位后或再上電時,數(shù)碼管就能顯示剛才的讀數(shù)并在此基礎(chǔ)上繼續(xù)累加下去。
為了證明單片機(jī)的復(fù)位電路正常,該實驗中還設(shè)置了流水燈,這是一個8位LED燈輪流點(diǎn)亮的裝置,當(dāng)復(fù)位按鍵被按下后,流水燈就被復(fù)位,它會從第一盞燈亮起,但數(shù)碼管的讀數(shù)不受影響。

代碼片段和文件信息
#include
#include?
#define?uint?unsigned?int?
#define?uchar?unsigned?char
sbit?sda?=?P2^0;
sbit?scl?=?P2^1;
uchar?a;
void?start()??//開始信號
{
sda?=?1;
scl?=?1;
_nop_();
sda?=?0;//SCL線為高電平期間,SDA線由高電平向低電平的變化表示起始信號
}
void?stop()???//停止
{
sda?=?0;
scl?=?1;
_nop_();
sda?=?1;//SCL線為高電平期間,SDA線由低電平向高電平的變化表示終止信號
}
void?respons()??//應(yīng)答
{
uchar?i;
while((sda?==?1)?&&?(i?10))i?++;//10個機(jī)器周期后默認(rèn)為收到
scl?=?1;
_nop_();
scl?=?0;
}
void?write_byte(uchar?date)?//寫一個字節(jié)
{
uchar?itemp;
temp?=?date;
for(i?=?0;i?8;i?++)
{
temp?=?temp?<1;//左移一位,先把最高位移入CY
scl?=?0;
// _nop_();
sda?=?CY;//程序狀態(tài)寄存器PSW的第7位CY
// _nop_();
scl?=?1;
// _nop_();
}
scl?=?0;
}
uchar?read_byte()?//讀一個字節(jié)
{
uchar?ik;
scl?=?0;
_nop_();
sda?=?1;
_nop_();
for(i?=?0;i?8;i?++)
{
scl?=?1;
_nop_();
k=(k?<1)?|?sda;
scl?=?0;
_nop_();
}
return?k;
}
void?write_add(uchar?deviceuchar?addressuchar?date)?//寫數(shù)據(jù)(器件、地址、數(shù)據(jù))
{
start();
write_byte(device);//1010***0(連接:寫)
respons();
write_byte(address);
respons();
write_byte(date);
respons();
stop();
}
uchar?read_add(uchar?deviceuchar?address)?//讀數(shù)據(jù)(器件、地址)
{
uchar?date;
start();
write_byte(device);//1010***0(連接:寫)
respons();
write_byte(address);//偽寫(器件內(nèi)地址)
respons();
start();
write_byte(device?+?1);//1010***1(連接:讀)
respons();
date?=?read_byte();
stop();
return?date;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????19??2012-04-20?21:24??ReadNum\ExtDll.iex
?????文件?????466446??2012-05-10?23:35??ReadNum\Last?Loaded?ReadNum.DBK
?????文件?????410302??2012-05-11?17:31??ReadNum\ReadNum.DSN
?????文件????????885??2012-05-11?17:32??ReadNum\ReadNum.PWI
?????文件???????1628??2012-04-20?21:28??ReadNum\read_IIC.c
?????文件???????4402??2012-04-20?21:42??ReadNum\read_IIC.LST
?????文件???????5837??2012-04-20?21:42??ReadNum\read_IIC.OBJ
?????文件???????9930??2012-04-20?21:42??ReadNum\read_num
?????文件???????1516??2012-04-22?15:31??ReadNum\read_num.c
?????文件???????1672??2012-04-20?21:42??ReadNum\read_num.hex
?????文件?????????65??2012-04-20?21:42??ReadNum\read_num.lnp
?????文件???????4253??2012-04-20?21:42??ReadNum\read_num.LST
?????文件??????12830??2012-04-20?21:42??ReadNum\read_num.M51
?????文件???????5354??2012-04-20?21:42??ReadNum\read_num.OBJ
?????文件????????203??2012-05-11?17:30??ReadNum\read_num.plg
????.......????277213??2012-05-11?17:30??ReadNum\read_num.uvgui.Administrator
????.......????276348??2012-04-22?15:31??ReadNum\read_num.uvgui_Administrator.bak
????.......??????8320??2012-05-11?17:30??ReadNum\read_num.uvopt
?????文件??????13449??2012-04-20?17:00??ReadNum\read_num.uvproj
????.......??????8320??2012-04-22?15:31??ReadNum\read_num_uvopt.bak
?????文件??????13279??2012-04-20?16:02??ReadNum\read_num_uvproj.bak
?????文件?????103936??2012-05-11?17:33??ReadNum\操作說明.doc
?????目錄??????????0??2012-05-11?17:33??ReadNum
-----------?---------??----------?-----??----
??????????????1626207????????????????????23
評論
共有 條評論