LM75温度传感器数据采集实验

一、实验步骤

1

2

然后就会接收到数据。将数据复制出来粘贴到

就可以看到温度数据。

PS:可以通过串口猎手工具将温度数据通过画图展示出来。

工程源文件代码:

1 /******************************************************************** 2 * 温度传感器LM75试验 3 * 功能:用串口打印当前温度的值,香港虚拟主机,通过串口调试助手显示 4 * 目标器件:ATmega162v 5 * 晶振:RC 8MHZ 6 * 熔丝位设置:EE 99 FF 7 * 编译环境:ICCAVR 7 8 * 版本: V1.0 (2012/08/09)F_CPU 8000000 11 #define UBRR 9600 12 #define MYUBRR F_CPU / (16 *( UBRR + 1)) 13 14 #include <iom162v.h> 15 #include <macros.h>typedef signed typedef unsigned typedef signed typedef unsigned typedef signed typedef typedef SETBIT(val, bitn)(val |= (1<<(bitn))) 27 #define CLRBIT(val, bitn)(val &=~(1<<(bitn))) 28 #define GETBIT(val, bitn)(val &= (1<<(bitn))) LM75_SDA 0LM75_SCL 1 33 #define LM75_OS 2 34 //LM75A has a 7-bit slave addressLM75_WR_ADDRESS 0x94LM75_RD_ADDRESS 0x95LM75_POINT0x00 43 U8 temp[2]; delayus(U8 del) 46 { 47while(del–); 48 } 49 /******************************************************************** 50 * 函数功能:初始化温度传感器LM75 51 * 注意事项: 52 * 提示说明: 53 * 输 入: 54 * 返 回:init_lm75(void) 57 {SETBIT(DDRC,LM75_SCL);delayus(5); 63 SETBIT(PORTC,LM75_SCL); 64delayus(5);delayus(5); 68 CLRBIT(PORTC,LM75_SCL); 69delayus(5); 70 } 71 /******************************************************************** 72 * 函数功能:发送一字节数据给LM75函数 73 * 注意事项: 74 * 提示说明: 75 * 输 入: 76 * 返 回:U8 sendbyte_lm75(U8 buf) 79 { 80U8 i = 0;SETBIT(DDRC,LM75_SCL);(i = 8;i > 0;i–){ 85 CLRBIT(PORTC,LM75_SCL); 86delayus(5);SETBIT(PORTC,LM75_SDA);CLRBIT(PORTC,LM75_SDA); 91buf <<= 1; 92 SETBIT(PORTC,LM75_SCL); 93delayus(5); 94 } 95 96 CLRBIT(PORTC,LM75_SCL);SETBIT(PORTC,LM75_SDA); 99delayus(5);SETBIT(PORTC,LM75_SCL);102delayus(20);(GETBIT(PINC,LM75_SDA)){SETBIT(DDRC,LM75_SCL);106 CLRBIT(PORTC,LM75_SCL);;SETBIT(DDRC,LM75_SCL);110 CLRBIT(PORTC,LM75_SCL);111return LM75_RD_ADDRESS;112 }113 114 }115 /********************************************************************116 * 函数功能:从LM75获取一字节数据函数117 * 注意事项:118 * 提示说明:119 * 输 入:120 * 返 回:U8 getbyte_lm75(void)123 {124U8 i = 0,buf = 0;SETBIT(DDRC,LM75_SCL);(i = 0;i < 8;i++){delayus(20);delayus(10);132buf <<= 1;buf += 1;135delayus(10);136 }137 CLRBIT(PORTC,LM75_SCL);138 }139return buf;140 }*******************************************************************143 * 函数功能:144 * 注意事项:145 * 提示说明:146 * 输 入:147 * 返 回:stop_lm75(void)150 {151 SETBIT(DDRC,LM75_SDA);152 SETBIT(DDRC,LM75_SCL);153154 CLRBIT(PORTC,LM75_SDA);155delayus(20);156 SETBIT(PORTC,LM75_SCL);157delayus(20);158 SETBIT(PORTC,LM75_SDA);159delayus(20);160 }161 /********************************************************************162 * 函数功能:主控器进行应答信号,(可以是应答或非应答信号)163 * 注意事项:164 * 提示说明:165 * 输 入:166 * 返 回: ack_lm75(U8 ack)169 {170 SETBIT(DDRC,LM75_SDA);171 SETBIT(DDRC,LM75_SCL);(ack)174 CLRBIT(PORTC,LM75_SDA);SETBIT(PORTC,LM75_SDA);177 178delayus(3);179 SETBIT(PORTC,LM75_SCL);180delayus(5);181 CLRBIT(PORTC,LM75_SCL);182delayus(2);183 }184 /********************************************************************185 * 函数功能:获取温度值186 * 注意事项:187 * 提示说明:188 * 输 入:189 * 返 回:U8 temperature_lm75(void)192 {U8 i;195196 init_lm75();(sendbyte_lm75(LM75_RD_ADDRESS) == ;temp[1] = getbyte_lm75();202ack_lm75(1);203temp[0] = getbyte_lm75();204ack_lm75(0);205 206 stop_lm75();(temp[temp[1] = ~temp[1]+0x80;;}214 /********************************************************************215 * 函数功能:串口初始化216 * 注意事项:217 * 提示说明:218 * 输 入:219 * 返 回:USART_Init( unsigned int ubrr )222 {UCSR0A = UCSR0C = (UBRR0L = ubrr%256;227UBRR0H = ubrr/256;228UCSR0B = (1<<RXEN0)|(1<<TXEN0);}231 /********************************************************************232 * 函数功能:打印一个字节233 * 注意事项:234 * 提示说明:235 * 输 入:236 * 返 回:putch(unsigned char data)239 {UDR0 = data;242 }243 /********************************************************************244 * 函数功能:延时ms函数245 * 注意事项:246 * 提示说明:247 * 输 入:248 * 返 回:delay_ms(long int s)251 {252int t;253while(s–)254 {255for(t=1000;t>0;t–)256 ;257 }258 }*******************************************************************261 * 函数功能:主函数262 * 注意事项:263 * 提示说明:264 * 输 入:265 * 返 回:main(void)268 {269CLKPR = (1<<CLKPCE);270CLKPR = 0x00;271 USART_Init(MYUBRR);(1){temperature_lm75(););277putch(temp[1]););279putch(temp[0]););281delay_ms(1000);282 }283 },网站空间,网站空间“但行好事,莫问前程”,往往成功的几率反而更大些;

LM75温度传感器数据采集实验

相关文章:

你感兴趣的文章:

标签云: