資源簡介
51單片機光敏電阻尋光程序,測試可用,可用數碼管顯示電阻值大小

代碼片段和文件信息
/*************************此部分為I2C總線的驅動程序*************************************/
#include
#include?
#include?
#define??NOP()???_nop_()???/*?定義空指令?*/
#define??_Nop()??_nop_()???/*定義空指令*/
?
sbit?????SCL=P2^1;???????//I2C??時鐘?
sbit?????SDA=P2^0;???????//I2C??數據?
bit?ack;?????????????????/*應答標志位*/
???
/*******************************************************************
?????????????????????起動總線函數???????????????
函數原型:?void??Start_I2c();??
功能:?????啟動I2C總線即發送I2C起始條件.??
********************************************************************/
void?Start_I2c()
{
??SDA=1;?????????/*發送起始條件的數據信號*/
??_Nop();
??SCL=1;
??_Nop();????????/*起始條件建立時間大于4.7us延時*/
??_Nop();
??_Nop();
??_Nop();
??_Nop();????
??SDA=0;?????????/*發送起始信號*/
??_Nop();????????/*?起始條件鎖定時間大于4μs*/
??_Nop();
??_Nop();
??_Nop();
??_Nop();???????
??SCL=0;???????/*鉗住I2C總線,準備發送或接收數據?*/
??_Nop();
??_Nop();
}
/*******************************************************************
??????????????????????結束總線函數???????????????
函數原型:?void??Stop_I2c();??
功能:?????結束I2C總線即發送I2C結束條件.??
********************************************************************/
void?Stop_I2c()
{
??SDA=0;??????/*發送結束條件的數據信號*/
??_Nop();???????/*發送結束條件的時鐘信號*/
??SCL=1;??????/*結束條件建立時間大于4μs*/
??_Nop();
??_Nop();
??_Nop();
??_Nop();
??_Nop();
??SDA=1;??????/*發送I2C總線結束信號*/
??_Nop();
??_Nop();
??_Nop();
??_Nop();
}
/*******************************************************************
?????????????????字節數據發送函數???????????????
函數原型:?void??SendByte(UCHAR?c);
功能:?????將數據c發送出去可以是地址也可以是數據發完后等待應答并對
??????????此狀態位進行操作.(不應答或非應答都使ack=0)?????
???????????發送數據正常,ack=1;?ack=0表示被控器無應答或損壞。
********************************************************************/
void??SendByte(unsigned?char??c)
{
?unsigned?char??BitCnt;
?
?for(BitCnt=0;BitCnt<8;BitCnt++)??/*要傳送的數據長度為8位*/
????{
?????if((c< ???????else??SDA=0;????????????????
?????_Nop();
?????SCL=1;???????????????/*置時鐘線為高,通知被控器開始接收數據位*/
??????_Nop();?
??????_Nop();?????????????/*保證時鐘高電平周期大于4μs*/
??????_Nop();
??????_Nop();
??????_Nop();?????????
?????SCL=0;?
????}
????
????_Nop();
????_Nop();
????SDA=1;????????????????/*8位發送完后釋放數據線,準備接收應答位*/
????_Nop();
????_Nop();???
????SCL=1;
????_Nop();
????_Nop();
????_Nop();
????if(SDA==1)ack=0;?????
???????else?ack=1;????????/*判斷是否接收到應答信號*/
????SCL=0;
????_Nop();
????_Nop();
}
/*******************************************************************
?????????????????字節數據接收函數???????????????
函數原型:?UCHAR??RcvByte();
功能:????????用來接收從器件傳來的數據并判斷總線錯誤(不發應答信號),
??????????發完后請用應答函數應答從機。??
********************************************************************/????
unsigned?char???RcvByte()
{
??unsigned?char??retc;
??unsigned?char??BitCnt;
??
??retc=0;?
??SDA=1;?????????????????????/*置數據線為輸入方式*/
??for(BitCnt=0;BitCnt<8;BitCnt++)
??????{
????????_Nop();???????????
????????SCL=0;??????????????????/*置時鐘線為低,準備接收數據
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????14702??2012-12-05?12:15??光敏(最終)\AD轉換
?????文件???????3052??2012-12-05?12:15??光敏(最終)\AD轉換.hex
?????文件?????????71??2012-12-05?12:15??光敏(最終)\AD轉換.lnp
?????文件??????16307??2012-12-05?12:15??光敏(最終)\AD轉換.M51
?????文件???????1106??2012-12-05?13:21??光敏(最終)\AD轉換.Opt
?????文件????????205??2012-12-06?12:54??光敏(最終)\AD轉換.plg
?????文件???????2198??2012-10-31?23:53??光敏(最終)\AD轉換.Uv2
?????文件???????1369??2012-12-05?12:55??光敏(最終)\AD轉換_Opt.Bak
?????文件???????2092??2009-06-05?00:01??光敏(最終)\AD轉換_Uv2.Bak
?????文件???????3878??2012-11-03?07:36??光敏(最終)\DA-AD.C
?????文件???????7240??2012-11-03?07:36??光敏(最終)\DA-AD.LST
?????文件???????8227??2012-11-03?07:36??光敏(最終)\DA-AD.OBJ
?????文件?????????35??2012-11-03?07:36??光敏(最終)\DA-AD.__i
?????文件???????4471??2011-03-28?15:40??光敏(最終)\I2C.c
?????文件????????548??2010-06-15?16:10??光敏(最終)\I2C.H
?????文件???????7920??2012-11-01?20:37??光敏(最終)\I2C.LST
?????文件???????7982??2012-11-01?20:37??光敏(最終)\I2C.OBJ
?????文件?????????33??2012-11-01?20:37??光敏(最終)\I2C.__i
?????文件????????907??2008-09-14?21:22??光敏(最終)\main.LST
?????文件????????563??2008-09-14?21:22??光敏(最終)\main.OBJ
?????文件???????5115??2002-04-16?14:32??光敏(最終)\STARTUP.A51
?????文件??????11665??2011-09-29?11:14??光敏(最終)\STARTUP.LST
?????文件????????749??2011-09-29?11:14??光敏(最終)\STARTUP.OBJ
?????文件??????15985??2012-12-07?16:21??尋光\AD轉換
?????文件???????2115??2012-12-07?16:21??尋光\AD轉換.hex
?????文件?????????71??2012-12-07?16:21??尋光\AD轉換.lnp
?????文件??????20130??2012-12-07?16:21??尋光\AD轉換.M51
?????文件???????1238??2012-12-07?17:18??尋光\AD轉換.Opt
?????文件????????199??2012-12-07?17:18??尋光\AD轉換.plg
?????文件???????2198??2012-10-31?23:53??尋光\AD轉換.Uv2
............此處省略21個文件信息
評論
共有 條評論