資源簡(jiǎn)介
PROTEUS仿真DS18B20(程序+仿真)1602顯示

代碼片段和文件信息
#include?
#include??
#include?
extern?void?delay(unsigned?int?x);
void?delay1()
{
char?i=20;
do?
{
_nop_();
}while(--i!=0);
?
}
void?i2c_init()
{
SDA=1;
delay1();
SCL=1;
delay1();
}
void??i2c_start()
{
SDA=1;
delay1();
SCL=1;
delay1();
SDA=0;
delay1();
SCL=0;
delay1();
?? ?
}
?
void?i2c_write(unsigned?char?temp)
{
unsigned?char?t;
????for(t=0;t<8;t++)
{
SDA=(bit)(temp&0x80);
temp<<=1;
SCL=1;
delay1();
SCL=0;
delay1();
?}
}
unsigned?char?i2c_read()
{
unsigned?char?datt;
SDA=1;????????//as?in?port
for(t=0;t<8;t++)
{
SCL=1;
delay1();
dat<<=1;
if(SDA)????
dat++;
SCL=0;
delay1();
?}
?return(dat);
}
bit??i2c_getack()
{ bit?ack;
unsigned?char?i=0;
SDA=1;
delay1();
SCL=1;
delay1();
while((i<100)&&(SDA==1))
{
i++;
}
ack?=?SDA;
SCL?=0;
delay1();
return(ack);
}
void?i2c_putack(bit?ack)
{
SDA?=?ack;
delay1();
SCL?=?1;
delay1();
SCL?=?0;
delay1();
}
void?i2c_stop()
{
SDA=0;
delay1();
SCL=1;
delay1();
SDA=1;
delay1();
delay(300);
}
bit?i2c_puts
( unsigned?char?SlaveAddr
unsigned?char?SubAddr
unsigned?char?*dat
unsigned?char?Size
)
{
i2c_start();
i2c_write(SlaveAddr);
if(i2c_getack())
{
? i2c_stop();
? return?1;
}
i2c_write(SubAddr);
if(i2c_getack())
{?
? i2c_stop();
? return?1;
}
do
{
? i2c_write(*dat++);
if(i2c_getack())
{
? i2c_stop();
? return?1;
}
}while(--Size!=0);
???i2c_stop();
???
???return?0;
??
}
/*
bit?I2C_Gets
(
unsigned?char?SlaveAddr
unsigned?char?SubAddr
unsigned?char?*dat
unsigned?char?Size
)
{
//定義臨時(shí)變量
unsigned?char?a;
// char?a[3];
//檢查長(zhǎng)度
if?(?Size?==?0?)?return?0;
i2c_start();
a=SlaveAddr&0xfe;
i2c_write(a);
if(i2c_getack())
{
? i2c_stop();
? return?1;
}
i2c_write(SubAddr);
if(i2c_getack())
{
? i2c_stop();
? return?1;
}
i2c_start();
i2c_write(a+1);
if(i2c_getack())
{
? i2c_stop();
? return?1;
}
//接收數(shù)據(jù)
for?(;;)
{
*dat++?=?i2c_read();
if?(?--Size?==?0?)
{
i2c_putack(1);
break;
}
i2c_putack(0);
}
//接收完畢,停止I2C總線,并返回結(jié)果
i2c_stop();
return?0;
} ?*/
bit?i2c_gets
( unsigned?char?SlaveAddr
unsigned?char?SubAddr
unsigned?char?*datt
unsigned?char?Size
)
{
unsigned?char?a;
i2c_start();
a=SlaveAddr&0xfe;
i2c_write(a);
if(i2c_getack())
{
? i2c_stop();
? return?1;
}
i2c_write(SubAddr);
if(i2c_getack())
{
? i2c_stop();
? return?1;
}
i2c_start();
i2c_write(a+1);
if(i2c_getack())
{
? i2c_stop();
? return?1;
}
do
{
?*datt++=i2c_read();
i2c_putack(0);
}while(--Size!=0);
???i2c_putack(1);
???i2c_stop();
???return?0;
} ??
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2009-07-21?23:09??1602lcd\程序\
?????文件?????????652??2009-07-20?16:13??1602lcd\程序\main
?????文件?????????942??2009-07-20?16:13??1602lcd\程序\main.asm
?????文件?????????304??2009-07-20?16:13??1602lcd\程序\main.hex
?????文件??????????25??2009-07-20?16:13??1602lcd\程序\main.lnp
?????文件????????5244??2009-07-20?16:13??1602lcd\程序\main.LST
?????文件????????3189??2009-07-20?16:13??1602lcd\程序\main.M51
?????文件?????????662??2009-07-20?16:13??1602lcd\程序\main.OBJ
?????文件????????1331??2009-07-21?23:09??1602lcd\程序\main.Opt
?????文件?????????164??2009-07-21?23:09??1602lcd\程序\main.plg
?????文件????????2119??2009-07-20?15:16??1602lcd\程序\main.Uv2
?????文件????????1325??2009-07-20?16:15??1602lcd\程序\main_Opt.Bak
?????目錄???????????0??2009-07-21?12:23??1602lcd\仿真\
?????文件?????????151??2009-07-21?09:17??1602lcd\仿真\1602lcd.DO
?????文件???????69986??2009-07-21?12:23??1602lcd\仿真\1602lcd.DSN
?????文件????????4668??2009-07-21?09:17??1602lcd\仿真\1602lcd.EDF
?????文件????????1054??2009-07-21?12:23??1602lcd\仿真\1602lcd.PWI
?????文件????????1054??2009-07-20?16:15??1602lcd\仿真\DS18B20.PWI
?????文件???????68104??2009-07-21?09:17??1602lcd\仿真\Last?Loaded?1602lcd.DBK
?????文件???????75515??2009-07-20?14:04??1602lcd\仿真\Last?Loaded?DS18B20.DBK
?????目錄???????????0??2009-07-20?13:00??proteus_2402\51仿真\
?????文件??????130594??2009-07-20?13:00??proteus_2402\51仿真\51.DSN
?????文件????????2291??2009-07-20?13:00??proteus_2402\51仿真\51.PWI
?????文件??????130886??2009-07-20?13:00??proteus_2402\51仿真\Last?Loaded?51.DBK
?????目錄???????????0??2009-07-20?12:09??proteus_2402\i2c\
?????文件???????17125??2009-07-20?11:53??proteus_2402\i2c\2402
?????文件????????3490??2009-07-20?11:53??proteus_2402\i2c\2402.hex
?????文件??????????66??2009-07-20?11:53??proteus_2402\i2c\2402.lnp
?????文件???????22869??2009-07-20?11:53??proteus_2402\i2c\2402.M51
?????文件????????2535??2009-07-20?12:09??proteus_2402\i2c\2402.Opt
?????文件????????1445??2009-07-20?12:09??proteus_2402\i2c\2402.plg
............此處省略17個(gè)文件信息
- 上一篇:12864DDRAM入門
- 下一篇:粗糙集屬性約簡(jiǎn)及代碼
評(píng)論
共有 條評(píng)論