资源简介
一个关于51单片机课程的只能盆栽设计题目,可自动检测盆栽的温度湿度和光照数据,并进行了上位机显示

代码片段和文件信息
#include
#include
#include
#define uint unsigned int
#define uchar unsigned char
#define SlaveAddress 0x46 //定义器件在IIC总线中的从地址
typedef unsigned char BYTE;
BYTE BUF[8]; //光照接收数据缓存区
sbit lcdrs=P1^0;
sbit RW=P1^1;
sbit lcden=P1^2;
sbit SCL=P2^5; //IIC时钟引脚定义
sbit SDA=P2^6; //IIC数据引脚定义
sbit DQ=P2^7; //DS18B20温度传感器的信号线
sbit zhuan=P3^2; //继电器控制
uint data_GZdata_SDdata_WDSDHSDLGZWDSD; //全局变量
uchar wanGZqianGZbaiGZshiGZgeGZshiSDgeSDbaiWDshiWDgeWD;
uchar code num[]={“0123456879“};
uchar code type[]={“WDSDGZ:%‘C“};
//液晶延时及判断模式的函数的声明
void write_com(uchar com); //液晶写命令
void write_data(uchar date); //液晶写数据
void InitYJ();
void deal(); //判断温度。湿度,光照
void delay_us(uint); //延时一微妙
void delay_ms(uint); //延时一毫秒
//光照部分有关函数的声明
void BH1750_Start(); //起始信号
void BH1750_Stop(); //停止信号
void BH1750_SendACK(bit ack); //应答ACK
bit BH1750_RecvACK(); //读ACK
void BH1750_SendByte(BYTE dat); //IIC单个字节写
BYTE BH1750_RecvByte(); //IIC单个字节读
void Single_Write_BH1750(uchar REG_Address);//单个写入数据
void Multiple_read_BH1750(void) ; //连续的读取内部寄存
uint getdata_GZ(); //读取光照的数据
void show_GZ(); //在液晶上显示光照
//湿度部分有关函数的声明
void initADC(); //初始化AD转换
uint getdata_SD(); //读取湿度的数据
void show_SD(); //在液晶上显示湿度
//温度部分有关函数的声明
void Init_DS18B20(); //初始化DS18B20
uchar ReadOneChar(); //读一位数据
void WriteOneChar(uchar dat); //写入数据
void show_WD(); //在液晶上显示温度
uint ReadTemp(void); //读取温度数据
void UartInit(void); //9600bps@11.0592MHz
void main() //主函数
{
UartInit();
InitYJ(); //初始化液晶
while(1)
{
SBUF = ‘#‘;
while(!TI);
TI = 0;
show_GZ(); //光照显示
SBUF = ‘:‘;
while(!TI);
TI = 0;
show_WD(); //温度显示
SBUF = ‘:‘;
while(!TI);
TI = 0;
show_SD(); //湿度显示
SBUF = ‘!‘;
while(!TI);
TI = 0;
SBUF = ‘\0‘;
while(!TI);
TI = 0;
}
}
void UartInit(void) //9600bps@11.0592MHz
{
PCON &= 0x7F; //波特率不倍速
SCON = 0x50; //8位数据可变波特率
AUXR |= 0x40; //定时器1时钟为Fosc即1T
AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
TMOD &= 0x0F; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0xDC; //设定定时初值
TH1 = 0xDC; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
TI = 1;
}
//液晶的部分
void write_com(uchar com)//写命令的状态
{
lcdrs=0;//选择写命令模式
P0=com; // 将要写入的命令送到数据总线上
delay_ms(5);// 稍作延时以待数据稳定
lcden=1; //
delay_ms(5);//
lcden=0; //
}
void write_data(uchar date)//写数据的状态
{
lcdrs=1; // 写数据
P0=date; // p0使显示数据总线
delay_ms(5); //
lcden=1; //
delay_ms(5); //
lcden=0; //
}
void InitYJ() //初始化的状态
{ RW=0;
lcden=0;//
write_com(0x38); //设置16*2显示,5*7点阵,8位数据接口
write_com(0x0c); //设置开显示,不显示光标
write_com(0x06); //写一个字符后地址自动加1
write_com(0x01);//清除所有
write_com(0x80);
}
//光照的部分
void BH1750_Star
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 19275 2018-12-22 22:05 设计题_智能盆栽\Listings\znpz.lst
文件 30748 2018-12-22 22:05 设计题_智能盆栽\Listings\盆栽.m51
文件 27591 2018-12-22 22:05 设计题_智能盆栽\ob
文件 23843 2018-12-22 22:05 设计题_智能盆栽\ob
文件 1103 2018-12-22 22:05 设计题_智能盆栽\ob
文件 6582 2018-12-22 22:05 设计题_智能盆栽\ob
文件 89 2018-12-22 22:05 设计题_智能盆栽\ob
文件 10728 2018-12-22 22:05 设计题_智能盆栽\znpz.c
....... 85652 2019-01-06 16:11 设计题_智能盆栽\盆栽.uvgui.Betty
....... 4743 2018-12-23 15:23 设计题_智能盆栽\盆栽.uvopt
....... 13891 2018-12-20 23:24 设计题_智能盆栽\盆栽.uvproj
目录 0 2018-12-22 22:05 设计题_智能盆栽\Listings
目录 0 2018-12-22 22:05 设计题_智能盆栽\ob
目录 0 2019-01-06 16:11 设计题_智能盆栽
----------- --------- ---------- ----- ----
224245 14
相关资源
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 激光位移传感器的特点及应用解析
- 位移传感器应用全面解析
- 51单片机PWM程序,占空比、周期可调整
- 51单片机多功能自行车测速仪
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 毕业论文之温度传感器DS18B20(源码
- 51单片机基于protues的几个仿真实例
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- stm32 ds18b20 温度传感器 测试通过
- 51单片机控制舵机程序
- HX711 称重传感器 C程序
- 51单片机读取温度数据存储到SD卡中并
- ADNS-3080光流传感器测试程序Arduino
- 【单片机】51单片机数码管显示万年历
- MP3文件ID3v2ID3v2APEv2标签读取
- 课程作业:模拟仓库管理系统
- 28335写的用spi读取传感器数据并用CA
- SCA60角度检测传感器模块程序
- 一个简单实用个人日记管理系统
- 带时间温度显示的室内灯光控制系统
- C51单片机汇编指令查询、学习工具集
- 基于8051单片机的红外接收程序
- 成绩管理系统(数据结构)
- FIR低通滤波器 ccs运行环境
评论
共有 条评论