91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 40.94 KB
    文件類(lèi)型: .rar
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2024-11-03
  • 語(yǔ)言: 其他
  • 標(biāo)簽: 24C02??24C04??24C08??

資源簡(jiǎn)介

proteus_24C08—有注釋?zhuān)╬roteus里面使用的是24c02)(注釋比較全面,適合初學(xué)者)

資源截圖

代碼片段和文件信息

/**************************************************************************************
*使用24C08的時(shí)候,只要使用下面這兩個(gè)函數(shù)即可
*uchar?read_e2p(uint?address):在24c02中的某地址讀取一個(gè)字節(jié)
*void?write_e2p(uchar?chuint?address):在24c02的某地址寫(xiě)入一字節(jié)ch
******************************************************************************************/
#include?
#include?
/***定義數(shù)據(jù)類(lèi)型*****/
#define?uchar?unsigned?char?
#define?uint??unsigned?int
#define?ulong?unsigned?long
#define?delay5NOP()?{_nop_();_nop_();_nop_();_nop_();_nop_();}
/*********由于使用的是24C08,所以有四個(gè)地址****/
#define WriteDeviceAddress?0xa0 //定義器件在IIC總線中的地址
#define WriteDeviceAddress1?0xa2
#define ReadDviceAddress?0xa1
#define ReadDviceAddress1?0xa3
/*******定義管腳******/
sbit?SCL=P2^0;//24C08的管腳6連接的連線
sbit?SDA=P2^1;//24C08的管腳5連接的連線
sbit?BUTTON=P1^0;
/***定時(shí)函數(shù)***/
void?DelayMs(uint?number)?
{
uchar?temp;
for(;number!=0;number--)?
{
for(temp=112;temp!=0;temp--);
}
}
/**************
*IIC總線的開(kāi)始位
*****************/
void?Start()?
{
SDA=1;
delay5NOP();
SCL=1;
delay5NOP();
SDA=0;//在SCL高電位的時(shí)候,數(shù)據(jù)線由高變低
delay5NOP();
SCL=0;
}
/*****************
*IIC總線的結(jié)束位
****************/
void?Stop()?
{
SCL=0;
delay5NOP();
SDA=0;
delay5NOP();
SCL=1;//在SCL高電位的時(shí)候,數(shù)據(jù)線由低變高
delay5NOP();
SDA=1;
}
/**************
*測(cè)試位:用于檢查24C08這個(gè)器件有沒(méi)有收到數(shù)據(jù)
**************/
bit?TestAck()?
{
bit?ErrorBit;
SDA=1;
delay5NOP();
SCL=1;//SDA和SCL同時(shí)拉高,看看SDA會(huì)不會(huì)被24C08給拉低了
delay5NOP();
ErrorBit=SDA;
SCL=0;
return(ErrorBit);//如果這時(shí)的ErrorBit是低電位的時(shí)候,說(shuō)明是正確的
}
/********************
*這個(gè)函數(shù)和TestAck()?是一樣的,只是TestAck()?有錯(cuò)誤返回
*********************/
void?NoAck()?
{
SDA=1;
delay5NOP();
SCL=1;
delay5NOP();
SCL=0;
}
/********************
*傳輸8個(gè)數(shù)據(jù)到24C08上面去
******************/
Write8Bit(uchar?input)?
{
uchar?temp;
for(temp=8;temp!=0;temp--)?
{
SDA=(?bit?)(?input&0x80?);//這里采用強(qiáng)制轉(zhuǎn)換的方式,數(shù)據(jù)被強(qiáng)制轉(zhuǎn)換成bit的形式
//8位數(shù)據(jù)被強(qiáng)制轉(zhuǎn)化成bit后,只保留最高位
SCL=1;
delay5NOP();
SCL=0;//數(shù)據(jù)準(zhǔn)備好后,在SCL的下降沿讀入數(shù)據(jù)
input=input<<1;//繼續(xù)分解這個(gè)8位數(shù)
}
}
/*********************
*指定一個(gè)地址,對(duì)這個(gè)地址寫(xiě)入一個(gè)數(shù)
**********************/
void?write_e2p(uchar?chuint?address)?
{
Start();
if(address<256)
{
Write8Bit(WriteDeviceAddress);//24C08器件的地址,可以理解為24C08的一個(gè)block
TestAck();
Write8Bit(address);//寫(xiě)入這個(gè)block具體的地址
TestAck();
}
else
{
Write8Bit(WriteDeviceAddress1);
TestAck();
Write8Bit(address-256);
TestAck();
}

Write8Bit(ch);//對(duì)這個(gè)地址寫(xiě)入一個(gè)數(shù)據(jù)
TestAck();

Stop();
DelayMs(10);//這個(gè)延時(shí)是為了防止兩次調(diào)用write_e2p的間隔太短,而導(dǎo)致數(shù)據(jù)重疊
}
/******************************
*從24C08讀出8個(gè)bit的數(shù)據(jù)
***************************/
uchar?Read8Bit()?
{
uchar?tempread_byte=0;
for(temp=8;temp!=0;temp--)?
{
SCL=1;
read_byte?<<=?1;
read_byte?|=?SDA;//對(duì)位進(jìn)行強(qiáng)制轉(zhuǎn)換成uchar后,高位全為零,只有最低位才是“這個(gè)bit”
SCL=0;
}
return(?read_byte?);
}
/**************************
*指定一個(gè)地址,并從這個(gè)地址里面讀出一個(gè)數(shù),返回這個(gè)數(shù)
************************/
uchar?read_e2p(uint?address)?
{
uchar?ch;

Start();

if(address<256)
{
Write8Bit(Write

?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----

?????文件????????517??2010-04-11?11:44??24C08\24c08.plg

?????文件???????4088??2010-04-11?11:43??24C08\main.c

?????文件?????????26??2010-04-11?11:43??24C08\24c08.lnp

?????文件??????10377??2010-04-11?11:43??24C08\24c08.M51

?????文件???????1035??2010-04-11?11:43??24C08\24c08.hex

????.......?????????0??2010-04-11?10:11??24C08\24c08_Uv2.Bak

?????文件???????2158??2010-04-11?11:43??24C08\24c08.Uv2

?????文件???????1261??2010-04-11?11:43??24C08\24c08.Opt

?????文件?????110390??2010-04-11?10:45??24C08\Last?Loaded?24C08.DBK

?????文件?????114420??2010-04-11?11:43??24C08\24C08.DSN

?????文件???????1507??2010-04-11?11:44??24C08\24C08.PWI

?????文件???????8823??2010-04-11?11:43??24C08\main.LST

?????文件???????9237??2010-04-11?11:43??24C08\main.OBJ

?????文件???????8413??2010-04-11?11:43??24C08\24c08

?????目錄??????????0??2010-04-10?21:31??24C08

-----------?---------??----------?-----??----

???????????????272252????????????????????15


評(píng)論

共有 條評(píng)論