资源描述:
《LM75温度传感器驱动.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、/***********************************************************/LM75温度传感器,使用IIC接口,读写及转换时间短,温度检测灵敏度要比传统的DS18B20高,适合做温控管理,热操作等热力系统本设计使用AVR单片机,驱动温度传感器DS75及LM75系列源代码,时钟7M,32倍频,温度传感器在F端口,9位温度转换精度。BYJohnny,2011.3.23**************************************************
2、**********/#defineLM75_SDA3#defineLM75_SDL2/***********************************************************函数名:delayus调用:无参数:无返回值:无结果:延时备注:/***********************************************************/voiddelayus(unsignedchardel){while(del--);}/****************
3、*******************************************函数名:init_lm75调用:无参数:无返回值:无结果:初始化备注:/***********************************************************/voidinit_lm75(void){SETBIT(DDRF,LM75_SDA);UnRegistered//onlyoutputSETBIE(DDRF,LM75_SDL);SETBIT(PORTF,LM75_SDA);delayu
4、s(10);SETBIT(PORTF,LM75_SDL);delayus(10);CLEARBIT(PORTF,LM75_SDA);delayus(20);CLEARBIT(PORTF,LM75_SDL);delayus(20);}/***********************************************************函数名:sendbyte_lm75调用:无参数:buf返回值:字节长度结果:发送一个字节,成功返回0x91,否则返回0备注:/*****************
5、******************************************/unsignedcharsendbyte_lm75(unsignedcharbuf){unsignedchari=0;SETBIT(DDRF,LM75_SDA);//onlyoutputSETBIE(DDRF,LM75_SDL);for(i=8;i>0;i--){CLEARBIT(PORTF,LM75_SDL);//sdllowdelayus(20);if(buf&0x80)//bit7==1SETBIT(PORTF,LM
6、75_SDA);elseCLEARBIT(PORTF,LM75_SDA);//bit7==0buf<<=1;SETBIT(PORTF,LM75_SDL);delayus(20);}CLEARBIT(PORTF,LM75_SDL);//putsdllowdelayus(20);//waitforackSETBIT(PORTF,LM75_SDA);delayus(5);CLEARBIT(DDRF,LM75_SDA);//sdlinputSETBIT(PORTF,LM75_SDL);delayus(20);if(
7、GETBIT(PINF,LM75_SDA))UnRegistered//fail{SETBIT(DDRF,LM75_SDL);CLEARBIT(PORTF,LM75_SDL);return0;}else{SETBIT(DDRF,LM75_SDL);CLEARBIT(PORTF,LM75_SDL);return0x91;}}/***********************************************************函数名:getbyte_lm75调用:无参数:无返回值:接收字节结果
8、:接收一个字节备注:/***********************************************************/unsignedchargetbyte_lm75(void){unsignedchari=0,buf=0;CLEARBIT(DDRF,LM75_SDA);SETBIE(DDRF,LM75_SDL);for(i=0;i<8;i++){CLEARBIT(PORTF,LM75_S