-
大小: 114KB文件类型: .zip金币: 2下载: 2 次发布日期: 2021-10-24
- 语言: 其他
- 标签: MSP430F5529 DHT11 DS18B20 0.96寸OLED
资源简介
MSP430课程设计内容,利用单片机通过DS18B20测量水温,通过DHT11测量室内的温度和湿度,并且显示在OLED显示屏上。测到的水温超过临界值会驱动风扇转动和蜂鸣器报警,并且有指示灯来只是温度的大致范围。风扇转动有两种模式:人工控制和水温控制,通过按键切换,在人工控制下还能通过按键来改变速度。水温的临界值也可以通过按键来改变。本人已试验过,无问题。
代码片段和文件信息
#include“I2C_OLED.h“
#include“codetab.h“
unsigned char OLED_GRAM[128][8]; //显存
void show_Num(unsigned char xunsigned char yunsigned int Numunsigned char Lenunsigned char Size)
{
unsigned char Str_tmp[20];
Num_To_Str(Str_tmpNumLen);
Str_tmp[Len] = ‘\0‘;
if(Size>7)
OLED_P8x16Str(xyStr_tmp);
else
OLED_P6x8Str(xyStr_tmp);
}
void Num_To_Str(unsigned char Str[]unsigned int numunsigned char len)
{
unsigned char i;
unsigned int Num_tmp;
Num_tmp = num;
for(i=0;i {
Str[len-i-1] = ‘0‘ + Num_tmp%10;
Num_tmp /= 10;
}
}
void I2C_start_OLED()
{
SDA_DIR_OUT_OLED;
SCK_I2C_OUT_OLED;
SDA_I2C_H_OLED;
SCK_I2C_H_OLED;
delay_us(1); //延时
SDA_I2C_L_OLED;
delay_us(1); //延时
SCK_I2C_L_OLED;
}
/**************************************
停止信号
**************************************/
void I2C_Stop_OLED()
{
SCK_I2C_OUT_OLED;
SDA_DIR_OUT_OLED;
SDA_I2C_L_OLED;
SCK_I2C_H_OLED;
delay_us(1); //延时
SDA_I2C_H_OLED;
delay_us(1); //延时
SCK_I2C_H_OLED;
delay_us(5);
}
/**************************************
发送应答信号
入口参数:ack (0:ACK 1:NAK)
**************************************/
void I2C_SendACK_OLED(unsigned char ack)
{
SDA_DIR_OUT_OLED;
SCK_I2C_OUT_OLED;
if(ack==1) SDA_I2C_H_OLED;
else SDA_I2C_L_OLED;
SCK_I2C_H_OLED;
delay_us(1); //延时
SCK_I2C_L_OLED;
delay_us(1); //延时
}
/**************************************
接收应答信号
**************************************/
unsigned char I2C_RecvACK_OLED()
{
unsigned char temp;
SDA_DIR_IN_OLED;
SCK_I2C_H_OLED; //拉高时钟线
delay_us(1); //延时
_NOP();
if(SDA_Value_OLED) temp=1;
else temp=0;
SCK_I2C_L_OLED; //拉低时钟线
delay_us(1); //延时
SDA_DIR_OUT_OLED;
return temp;
}
/**************************************
向IIC总线发送一个字节数据
**************************************/
void I2C_SendByte_OLED(unsigned char dat)
{
unsigned char i;
SDA_DIR_OUT_OLED;
SCK_I2C_OUT_OLED;
for (i=0; i<8; i++) //8位计数器
{
if(dat&0x80) SDA_I2C_H_OLED;
else SDA_I2C_L_OLED;
dat <<= 1; //移出数据的最高位
SCK_I2C_H_OLED;
delay_us(1); //延时
SCK_I2C_L_OLED;
delay_us(1); //延时
}
I2C_RecvACK_OLED();
}
/**************************************
从IIC总线接收一个字节数据
**************************************/
unsigned char I2C_RecvByte_OLED()
{
unsigned char i;
SDA_DIR_IN_OLED;
unsigned char dat = 0;
SDA_I2C_H_OLED;
for (i=0; i<8; i++) //8位计数器
{
dat <<= 1; //拉高时钟线
SCK_I2C_H_OLED;
delay_us(1); //延时
if(SDA_Value_OLED) dat |= 1; //
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-07-17 12:12 源程序\
文件 614 2019-07-09 23:29 源程序\.ccsproject
文件 28665 2019-07-09 23:29 源程序\.cproject
目录 0 2019-07-17 12:12 源程序\.launches\
文件 4909 2019-07-09 23:30 源程序\.launches\liang.launch
文件 835 2019-07-09 23:29 源程序\.project
目录 0 2019-07-17 12:12 源程序\.settings\
文件 62 2019-07-09 23:29 源程序\.settings\org.eclipse.cdt.codan.core.prefs
文件 123 2019-07-09 23:29 源程序\.settings\org.eclipse.cdt.debug.core.prefs
文件 208 2019-07-09 23:29 源程序\.settings\org.eclipse.core.resources.prefs
文件 19902 2019-07-16 15:06 源程序\codetab.h
目录 0 2019-07-17 12:12 源程序\Debug\
文件 76 2019-07-16 17:06 源程序\Debug\ccsObjs.opt
文件 847 2019-07-16 16:13 源程序\Debug\I2C_OLED.d
文件 48808 2019-07-16 16:13 源程序\Debug\I2C_OLED.obj
文件 104906 2019-07-16 16:13 源程序\Debug\liang.map
文件 96980 2019-07-16 16:13 源程序\Debug\liang.out
文件 314773 2019-07-16 16:13 源程序\Debug\liang_li
文件 797 2019-07-16 16:13 源程序\Debug\main.d
文件 40156 2019-07-16 16:13 源程序\Debug\main.obj
文件 4391 2019-07-16 17:06 源程序\Debug\makefile
文件 260 2019-07-09 23:29 源程序\Debug\ob
文件 2073 2019-07-16 17:06 源程序\Debug\sources.mk
文件 1780 2019-07-16 17:06 源程序\Debug\subdir_rules.mk
文件 628 2019-07-16 17:06 源程序\Debug\subdir_vars.mk
文件 180 2019-07-16 14:22 源程序\delay.h
文件 8283 2019-07-16 14:22 源程序\I2C_OLED.c
文件 3510 2019-07-16 14:22 源程序\I2C_OLED.h
文件 14573 2019-07-09 23:29 源程序\lnk_msp430f5529.cmd
文件 9890 2019-07-16 15:47 源程序\main.c
目录 0 2019-07-17 12:12 源程序\targetConfigs\
............此处省略3个文件信息
相关资源
- ds18b20温度传感是什么传感器
- STM32+DHT11+OLED+RTC+MQ2+NRF24L01+串口12
- proteus仿真、keil4、DHT11、LCD1602
- DS18B20_Serial_println.ino
- DHT11 21 22库文件
- 基于zigbee温湿度传输及控制带wifiAPP查
- ds18b20测温例程tm4c123x
- stm32之传感器DHT11.zip
- STM32F103C8T6读取DS18B20串口显示程序.r
- DS18B20温度+DHT11湿度+LCD1602
- TM4C系列ds18b20温度传感器例程
- 读写ds18b20内部eeprom
- MSP430F5529移植modbus
- 基于FPGA的DS18B20单总线控制+数码管显
- STM32F103C8T6读取DS18B20串口显示程序
- DHT11温湿度传感器项目代码.rar
- MSP430F5529 例程源码
- STM32F103读取ds18b20温度传感器
- STM32F103C8T6+DHT11+SGP30+CH340+ADC
- STM32F103C8T6+DHT11+OLED
- 基于STM32的DHT11的温湿度采集GSM报警系
- DS18B20-液晶1602显示温度和控制(代码
- cc2530-contiki读取DHT11并发送数据例程
- 基于MSP430F5529的智能无线遥控小车设计
- STM32温湿度传感器DHT11代码,通过串口
- 基于proteus 的 STM32 采集DHT11 仿真 +
- 基于FPGA的LCD1602实时显示DS18b20温度
- DTH11温湿度显示在IIC_OLED上,好用,自
- STM32F103C8T6-DHT11温湿度传感器.rar
- 通过DS18B20检测环境温度,并在LCD128
评论
共有 条评论