-
大小: 70KB文件类型: .rar金币: 2下载: 1 次发布日期: 2021-05-28
- 语言: 其他
- 标签: STC15F2K60S2 CO2测量 库函数
资源简介
基于STC15F2K60S2单片机的DHT11+CO2测量系统,在LCD1602上显示。由于是基于库函数的,所以方便用户修改代码,达到自己想要的功能。STC15F2K60S2单片机也是51内核的,但是功能更加强大。
代码片段和文件信息
#include
#include “LCD1602.H“
#define dht11_io P20 //P2.0口作为数据读取接口
#define MAIN_Fosc 22118400L //主时钟
#define baud_rate 4800L //波特率
#define Timer1_Reload (65536UL -(MAIN_Fosc / 4 / baud_rate)) //Timer1重装值
#define uchar unsigned char
#define uint unsigned int
uchar code tab[9]={0xff0x010x860x000x000x000x000x000x79};//读CO2气体浓度值
uchar date[]={0x000x000x000x000x000x000x000x000x00};
uchar LCD1602_Table[]=“0123456789“;//LCD1602显示标尺
//变量定义
u16 U8FLAG;
u8 U8temp;
u8 U8T_data_HU8T_data_LU8RH_data_HU8RH_data_LU8checkdata;
u8 U8T_data_H_tempU8T_data_L_tempU8RH_data_H_tempU8RH_data_L_tempU8checkdata_temp;
u8 U8comdata;
u8 datas=0;
//函数声明
void Delay30us();
void Delay40us();
void Delay18ms();
void Delay1000ms();
void read_byte(); //读取一字节的数据并赋值给U8comdata
u8 read_temp(); //读取温度,返回温度值
u8 read_humi(); //读取湿度,返回湿度值
void serial_init(); //串口初始化
void serial_send_byte(u8 dat); //串口发送一个字节的数据
void serial_send_string(u8 *dat);//串口发送字符串
void UART_init(void)
{
S2_USE_P10P11(); //UART1 使用P30 P31口 默认
// 下面代码设置定时器2
T2H = 0xFD; // 波特率:9600 /22.1184MHZ1T
T2L = 0xC0; // 波特率:9600 /22.1184MHZ1T
AUXR = 0x14; // 0001 0100,T2R=1启动T2运行,T2x12=1,定时器2按1T计数
// 下面代码设置定串口2
S2CON = 0x10; // 0001 0000 S2M0=0(最普遍的8位通信)REN=1(允许接收)
// 下面代码设置中断
IE2 =0x01; // 开串口2中断
EA = 1; // 开总中断
}
void send(uchar dat) //发送一字节
{
S2BUF=dat;
while(!TI2);
CLR_TI2();
}
void UART2(void) interrupt 8 // 串行口2中断函数
{
static uchar j;
ES=0; //禁止中断
if(!RI2);
CLR_RI2(); //清楚接收完毕标志
date[j]=S2BUF;
if(date[0]==0xff) //判断接收到的第一位为传感器所发数据
j++;
else
j=0;
if(j==9) //接收传感器所发数据9字节
j=0;
ES=1; //允许串口中断
}
void main()
{
uint tmp;
uchar i;
Delay1000ms();
serial_init();
UART_init();
dht11_io = 1;
LCD1602_Init();
WriteString(00“TH: “);
WriteString(70“RH“);
WriteString(120“C“);
WriteString(01“CO2:“);
ES=1;
EA=1;
while(1)
{
for(i=0;i<9;i++) //向co2传感器发送数据
{
send(tab[i]);
}
Delay1000ms();
tmp=date[2]*256+date[3]; //计算出co2浓度值
if(tmp>9999)
tmp=0;
if((tmp/1000)>0)
WriteChar(61LCD1602_Table[tmp/1000]);
else WriteChar(61‘ ‘);
WriteChar(71LCD1602_Table[tmp%1000/100]);
WriteChar(81LCD1602_Table[tmp%100/10]);
WriteChar(91LCD1602_Table[tmp%10]);
SetCur(NoCur); // 有显示无光标
serial_send_string(“CO2:“);
if((tmp/1000)>0)
serial_send_byte(LCD1602_Table[tmp/1000]);
else serial_send_byte(‘ ‘);
serial_send_byte(LCD1602_Table[tmp%1000/100]);
serial_send_byte(LCD1602_Table[tmp%100/10]);
serial_send_byte(LCD1602_Table[tmp%10]);
serial_send_byte(‘ ‘);
datas=read_temp();
WriteChar(100datas%100/10+‘0‘);
WriteChar(110datas%10+‘0‘);
SetCur(NoCur); // 有显示无光标
serial_send_st
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 63118 2018-05-31 01:11 DHT11\dht11
文件 1016 2018-05-31 01:11 DHT11\dht11.build_log.htm
文件 5221 2018-05-31 01:11 DHT11\dht11.hex
文件 57 2018-05-31 01:11 DHT11\dht11.lnp
文件 28680 2018-05-31 01:11 DHT11\dht11.M51
文件 2264 2017-06-17 15:41 DHT11\dht11.plg
文件 71319 2017-06-17 15:47 DHT11\dht11.uvgui.Administrator
....... 71636 2018-05-31 01:17 DHT11\dht11.uvgui.WK
....... 5345 2018-05-29 17:08 DHT11\dht11.uvopt
....... 13939 2018-05-29 17:08 DHT11\dht11.uvproj
文件 3406 2018-05-28 15:29 DHT11\LCD1602.C
文件 705 2018-05-28 15:31 DHT11\LCD1602.h
文件 7607 2018-05-29 17:05 DHT11\LCD1602.LST
文件 27195 2018-05-29 17:05 DHT11\LCD1602.OBJ
文件 7109 2018-05-31 01:11 DHT11\main.c
文件 15979 2018-05-31 01:11 DHT11\main.LST
文件 40371 2018-05-31 01:11 DHT11\main.OBJ
文件 32846 2017-06-17 14:59 DHT11\STC15Fxxxx.H
目录 0 2018-05-31 01:17 DHT11
----------- --------- ---------- ----- ----
397813 19
相关资源
- arduino中的can库函数
- HAL库函数说明
- 3_STC15F2K60S2仿真操作
- STM32f334的库函数模板
- 张正友相机标定自己编写calibratie函数
- 电子-库函数版本适合战舰V3和精英S
- Fortran标准库函数参考
- STM8L051 低功耗运行模式 库函数例程
- HAL库函数手册
- STM32+RTCDS1302实时时钟设计,整个工程
- stm32 led程序
- stm32库函数中文使用手册
- STM32F030C8T6库函数模版
- TI C5000 DSP库函数 完整源代码
- MPU6050_DMP模式STM32(库函数版本)--串
- STM32F103C8T6核心板测试代码点灯库函数
- stm32-cryp-lib(STM32 芯片加密库)
- STM32驱动DS18B20库函数驱动
- TI C5500 DSP库函数 完整源代码
- LabVIEW modbus 库 lib
- 51单片机库函数大全
- 最全的C库函数源代码
- stm32 adc多通道采集 库函数版本
- stm32步进电机驱动,包括库函数和寄存
- ISML库函数.pdf
- LM3S库函数文档中文
- glibc-2.9绿色压缩版
- 基于STM32F407ZGT6库函数写的Modbus协议
- stm8l使用AD测量内部温度 库函数版本工
- STM8L标准库函数库c
评论
共有 条评论