-
大小: 29KB文件类型: .rar金币: 2下载: 0 次发布日期: 2021-05-12
- 语言: 其他
- 标签: DHT11 驱动 STC12C5A STC12C5A60S2
资源简介
DHT11驱动,使用STC12C5A单片机测试

代码片段和文件信息
//****************************************************************//
//DHT11测试程序
//
//单片机:STC12C5A
//功能: 串口发送温湿度数据 晶振 11.0592M 波特率 9600 文本模式
// 直接显示十进制湿度整数、湿度小数、温度整数、温度小数、校检和,*作间隔
//硬件: P0.1口为通讯口连接DHT11DHT11的电源和地连接单片机的电源和地
//作者: 花生(参考雁凌电子基于STC89C52的驱动改编)
//****************************************************************//
#include
#include “STC12C5A.h“
typedef unsigned char U8; /* defined for unsigned 8-bits integer variable 无符号8位整型变量 */
typedef signed char S8; /* defined for signed 8-bits integer variable 有符号8位整型变量 */
typedef unsigned int U16; /* defined for unsigned 16-bits integer variable 无符号16位整型变量 */
typedef signed int S16; /* defined for signed 16-bits integer variable 有符号16位整型变量 */
typedef unsigned long U32; /* defined for unsigned 32-bits integer variable 无符号32位整型变量 */
typedef signed long S32; /* defined for signed 32-bits integer variable 有符号32位整型变量 */
typedef float F32; /* single precision floating point variable (32bits) 单精度浮点数(32位长度) */
typedef double F64; /* double precision floating point variable (64bits) 双精度浮点数(64位长度) */
sbit DHT11 = P0^1 ;
U8 U8FLAG;
U8 U8temp;
U8 U8comdata;
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 str[17]=“ * “;
void Delay_10us(void) //误差 -0.053530092593us
{
unsigned char a;
for(a=26;a>0;a--);
}
void delay100us(void) //误差 -0.083188657407us
{
unsigned char ab;
for(b=61;b>0;b--)
for(a=3;a>0;a--);
_nop_(); //if Keilrequire use intrins.h
}
void delay18ms(void) //误差 -0.054253472223us
{
unsigned char abc;
for(c=148;c>0;c--)
for(b=122;b>0;b--)
for(a=4;a>0;a--);
}
void COM(void)
{
U8 i;
for(i=0;i<8;i++)
{
U8FLAG=2;
while((!DHT11)&&U8FLAG++);
Delay_10us();
Delay_10us();
Delay_10us();
U8temp=0;
if(DHT11)
U8temp=1;
U8FLAG=2;
while((DHT11)&&U8FLAG++);
//超时则跳出for循环
if(U8FLAG==1)
break;
//判断数据位是0还是1
// 如果高电平高过预定0高电平值则数据位为 1
U8comdata<<=1;
U8comdata|=U8temp;
}
}
void RH(void)
{
//主机拉低18ms
DHT11=0;
delay18ms();
DHT11=1;
//总线由上拉电阻拉高 主机延时20us-40us
Delay_10us();
Delay_10us();
Delay_10us();
Delay_10us();
//主机设为输入 判断从机响应信号
DHT11=1;
//判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行
if(!DHT11) //T !
{
U8FLAG=2;
//判断从机是否发出 80us 的低电平响应信号是否结束
while((!DHT11)&&U8FLAG++);
U8FLAG=2;
//判断从机是否发出 80us 的高电平,如发出则进入数据接收状态
while((DHT11)&&U8FLAG++);
//数据接收状态
COM();
U8RH_data_H_temp=U8comdata;//温度高8位
COM();
U8RH_data_L_temp=U8comdata;//温度低8位
COM();
U8T_data_H_temp=U8comdata ;//湿度高8位
COM();
U8T_data_L_temp=U8comdata ;//湿度低8位
COM();
U8checkdata_temp=U8comdata;//校验和8位
DHT11=1;
//数据校验
U8temp=(U8T_da
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4396 2016-11-25 15:22 DHT11驱动(STC12C5A)\51_DHT21.c
文件 8891 2016-11-25 15:22 DHT11驱动(STC12C5A)\51_DHT21.LST
文件 8570 2016-11-25 15:22 DHT11驱动(STC12C5A)\51_DHT21.OBJ
文件 7374 2016-11-25 15:22 DHT11驱动(STC12C5A)\Proj
文件 1587 2016-11-25 15:22 DHT11驱动(STC12C5A)\Proj.hex
文件 29 2016-11-25 15:22 DHT11驱动(STC12C5A)\Proj.lnp
文件 9041 2016-11-25 15:22 DHT11驱动(STC12C5A)\Proj.M51
文件 6327 2016-11-25 15:23 DHT11驱动(STC12C5A)\Proj.plg
文件 55222 2016-11-25 15:23 DHT11驱动(STC12C5A)\Proj.uvopt
文件 13243 2016-11-24 20:38 DHT11驱动(STC12C5A)\Proj.uvproj
文件 55230 2016-11-24 20:38 DHT11驱动(STC12C5A)\Proj_uvopt.bak
文件 13239 2016-11-24 17:14 DHT11驱动(STC12C5A)\Proj_uvproj.bak
文件 18216 2016-11-23 14:03 DHT11驱动(STC12C5A)\STC12C5A.H
目录 0 2017-04-12 14:41 DHT11驱动(STC12C5A)
----------- --------- ---------- ----- ----
201365 14
- 上一篇:verilog语言实现电子琴
- 下一篇:三路舵机51程序按键控制角度
相关资源
- 直流无刷电机方波驱动 stm32 例程代码
- elantech触控板驱动程序 v13.6.11 官方最
- 联想y470无线网卡驱动 for 32位64位
- 松下plc FP-XH的驱动
- IMX385驱动代码.zip
- 组态王驱动开发包3.0.0.7(中文)
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- CASS9.1最新S4数据及驱动+ET199数据及驱
- 带有死区延时的H桥直流电机驱动电路
- USB转串口驱动,FT232R驱动程序,最新
- 德卡D3读卡器测试程序驱动文件
- WinCE下CP210x的驱动程序
- ubuntu9.10 可加载内核模块和字符设备驱
- MCGS触摸屏西门子s7_1200驱动
- FPGA在步进电机驱动上的应用实例及代
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- RA8806液晶驱动程序
- 内核驱动进程保护演示程序
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- 组态王中S7-300TCP驱动
- STC12C5A60S2 CH4521 驱动数码管 显示
- STM32F103 CC2500完整驱动(模拟SPI)
- 430系列单片机USBFET下载驱动
- dell阵列卡驱动s100 s300 2008 R2.rar
- keil vcom windows 7 64bit 驱动
- STC12C系列单片机函数库
- windows ce 系统的GPIO驱动程序
- 2440 cs8900a 网卡驱动程序
- USB 驱动 让电脑与arm进行通信
评论
共有 条评论