没有合适的资源?快使用搜索试试~ 我知道了~
lM75 温度传感器
5星 · 超过95%的资源 需积分: 9 13 下载量 2 浏览量
2012-03-20
16:46:22
上传
评论 1
收藏 5KB TXT 举报
温馨提示
试读
8页
c语言的LM75温度传感器 程序代码 可以直接使用
资源推荐
资源详情
资源评论
//使用AVR内部硬件iic
//引脚定义: PC0->SCL ; PC1->SDA
//I2C 状态定义
//MT 主方式传输 MR 主方式接受 W:写一个比特(SDA 为低电平) R:读一个比特(SDA 为高电平) SLA:从机地址 ACK:第九//个SCL
#include <avr/io.h>
#include<avr/pgmspace.h>
#include<util/delay.h>
#define START 0x08 //START已发送
#define RE_START 0x10 //重复START已发
#define MT_SLA_ACK 0x18 //主机发送模式SLA+W已发送;接收到ACK
#define MT_SLA_NOACK 0x20 //主机发送模式SLA+W已发送;接收到NOT ACK
#define MT_DATA_ACK 0x28 //主机发送模式数据已发送;接收到ACK
#define MT_DATA_NOACK 0x30 //主机发送模式数据已发送;接收到NOT ACK
#define MR_SLA_ACK 0x40 //主机接收模式SLA+R已发送接收到ACK
#define MR_SLA_NOACK 0x48 //主机接收模式SLA+R已发送接收到NOT ACK
#define MR_DATA_ACK 0x50 //主机接收模式接收到数据ACK已返回
#define MR_DATA_NOACK 0x58 //主机接收模式接收到数据NOT ACK已返回
#define max 3
//常用TWI操作(主模式写和读)
#define Start() (TWCR=(1<<TWINT)|(1<<TWSTA)|(1<<TWEN)) //启动I2C
#define Stop() (TWCR=(1<<TWINT)|(1<<TWSTO)|(1<<TWEN)) //停止I2C
#define Wait() {while(!(TWCR&(1<<TWINT)));} //等待中断发生
#define TestAck() (TWSR&0xf8) //观察返回状态
#define SetAck (TWCR|=(1<<TWEA)) //做出ACK应答
#define SetNoAck (TWCR&=~(1<<TWEA)) //做出Not Ack应答
#define Twi() (TWCR=(1<<TWINT)|(1<<TWEN)) //启动I2C
#define Write8Bit(x) {TWDR=(x);TWCR=(1<<TWINT)|(1<<TWEN);} //写数据到TWDR
#define E_set PORTC|=_BV(2) //液晶使能
//引脚定义: PC0->SCL ; PC1->SDA
//I2C 状态定义
//MT 主方式传输 MR 主方式接受 W:写一个比特(SDA 为低电平) R:读一个比特(SDA 为高电平) SLA:从机地址 ACK:第九//个SCL
#include <avr/io.h>
#include<avr/pgmspace.h>
#include<util/delay.h>
#define START 0x08 //START已发送
#define RE_START 0x10 //重复START已发
#define MT_SLA_ACK 0x18 //主机发送模式SLA+W已发送;接收到ACK
#define MT_SLA_NOACK 0x20 //主机发送模式SLA+W已发送;接收到NOT ACK
#define MT_DATA_ACK 0x28 //主机发送模式数据已发送;接收到ACK
#define MT_DATA_NOACK 0x30 //主机发送模式数据已发送;接收到NOT ACK
#define MR_SLA_ACK 0x40 //主机接收模式SLA+R已发送接收到ACK
#define MR_SLA_NOACK 0x48 //主机接收模式SLA+R已发送接收到NOT ACK
#define MR_DATA_ACK 0x50 //主机接收模式接收到数据ACK已返回
#define MR_DATA_NOACK 0x58 //主机接收模式接收到数据NOT ACK已返回
#define max 3
//常用TWI操作(主模式写和读)
#define Start() (TWCR=(1<<TWINT)|(1<<TWSTA)|(1<<TWEN)) //启动I2C
#define Stop() (TWCR=(1<<TWINT)|(1<<TWSTO)|(1<<TWEN)) //停止I2C
#define Wait() {while(!(TWCR&(1<<TWINT)));} //等待中断发生
#define TestAck() (TWSR&0xf8) //观察返回状态
#define SetAck (TWCR|=(1<<TWEA)) //做出ACK应答
#define SetNoAck (TWCR&=~(1<<TWEA)) //做出Not Ack应答
#define Twi() (TWCR=(1<<TWINT)|(1<<TWEN)) //启动I2C
#define Write8Bit(x) {TWDR=(x);TWCR=(1<<TWINT)|(1<<TWEN);} //写数据到TWDR
#define E_set PORTC|=_BV(2) //液晶使能
#define E_clear PORTC&=~_BV(2)
#define RW_set PORTC|=_BV(1) //液晶读写
#define RW_clear PORTC&=~_BV(1)
#define RS_set PORTC|=_BV(0) //液晶数据
#define RS_clear PORTC&=~_BV(0) //液晶指令
#define I2C_SCL P1^6;
#define I2C_SDA P1^7;
unsigned char displayt[]={'t','e','m','p',':',0,0,0,0};//显示数据
unsigned char I2C_Reads(unsigned char SlaveAddr,unsigned RegAddress,unsigned char *p);
void LCD_init(void);
void twi_init();
void conversiont(unsigned int i);
void wr_com(unsigned char);
void wr_data(unsigned char);
void outcharst( unsigned char);
void wr_com(unsigned char value)//写指令,写指令时必须为RS=0;RW=0;
{
E_clear;
RS_clear;
RW_clear;
_delay_ms(1);
PORTA=value;
E_set;
_delay_ms(2); //如果没有延时就必须要加查忙指令
E_clear;
}
#define RW_set PORTC|=_BV(1) //液晶读写
#define RW_clear PORTC&=~_BV(1)
#define RS_set PORTC|=_BV(0) //液晶数据
#define RS_clear PORTC&=~_BV(0) //液晶指令
#define I2C_SCL P1^6;
#define I2C_SDA P1^7;
unsigned char displayt[]={'t','e','m','p',':',0,0,0,0};//显示数据
unsigned char I2C_Reads(unsigned char SlaveAddr,unsigned RegAddress,unsigned char *p);
void LCD_init(void);
void twi_init();
void conversiont(unsigned int i);
void wr_com(unsigned char);
void wr_data(unsigned char);
void outcharst( unsigned char);
void wr_com(unsigned char value)//写指令,写指令时必须为RS=0;RW=0;
{
E_clear;
RS_clear;
RW_clear;
_delay_ms(1);
PORTA=value;
E_set;
_delay_ms(2); //如果没有延时就必须要加查忙指令
E_clear;
}
剩余7页未读,继续阅读
资源评论
- tonywgx2014-10-08谢谢,现在正在调这个sensor呢,正好参考,突然茅塞顿开啊
- HEHE87372012-07-31还不错,比较简单,写的。
- budizen2013-03-23不错,可惜在proteus上没有lm75的仿真模型
lixingxingabcd
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功