芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

飞芯科技-芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

STC15单片机DHT11温湿度检测芯片解密

  1. 芯片解密#include<STC15.H>
  2. 芯片解密#include "intrins.h"//用于提供_nop_();函数
  3. 芯片解密#include "OLED_Contrul_Hygrothermograph.c"//OLED控制函数

  4. sbit YLED=P3^1;
  5. sbit RLED=P3^0;
  6. sbit DHT=P3^5;//DHT11模块

  7. unsigned int Temperature[3]={1,1,1};//前两位为整数部分,后一位为小数部分
  8. unsigned int Humidity[2]={1,1};//传回的湿度数据只有整数部分

  9. unsigned char Data_Receive[5];
  10. /*##############################################################################################
  11. 芯片解密

  12. 平台:STC15F104W
  13. 硬件部分
  14. 显示:采用OLED12864显示温度和湿度
  15. 测量,采用DHT11模块,模块信息如下:
  16. ASATR
  17. -----
  18. NA:DHT11
  19. OC:3.3-5.5V
  20. U1:5-95%RH
  21. U2:-20-60℃
  22. U3:±5%RH±2℃
  23. SN:A1712882A

  24. 为保证延时准确,晶振设置为12MHz

  25. 借用了http://www.51hei.com/bbs/dpj-38067-1.html上的部分程序,在此表示感谢
  26. ##############################################################################################*/

  27. void Delay30us()//@12.000MHz
  28. {
  29.         unsigned char i;
  30.         i=87;
  31.         while(--i);
  32. }

  33. void Delay20ms()//@12.000MHz
  34. {
  35.         unsigned char i,j,k;
  36.         i=1;
  37.         j=234;
  38.         k=113;
  39.         do
  40.         {
  41.                 do
  42.                 {
  43.                         while(--k);
  44.                 }while(--j);
  45.         }while(--i);
  46. }

  47. void Delay1s()//@12.000MHz
  48. {
  49.         unsigned char i,j,k;
  50.         i=46;
  51.         j=153;
  52.         k=245;
  53.         do
  54.         {
  55.                 do
  56.                 {
  57.                         while(--k);
  58.                 }while(--j);
  59.         }while(--i);
  60. }

  61. void OLED_Display()//OLED显示驱动函数
  62. {
  63.         OLED_DataDisplay_T(56,4,Temperature);//在指定位置显示温度
  64.         OLED_DataDisplay_H(56,6,Humidity);//在指定位置显示湿度
  65. }

  66. void DHT_Collect()//温度采集函数
  67. {
  68.         unsigned char i,j;//for循环变量
  69.         unsigned char t;//超时判断
  70.         unsigned char dat8=0;//一次读取的8位数据,需要读5次
  71.         unsigned int CheckValue=0;//校验和
  72.         
  73.         DHT=0;//主机发起始信号
  74.         Delay20ms();//主机拉低总线至少18ms
  75.         DHT=1;//主机拉高总线20~40us
  76.         Delay30us();
  77.         
  78.         t=80;//设置超时等待时间
  79.         while(DHT&&t--);//等待DHT11拉低总线
  80.         if(t==0)//超时
  81.         {
  82.                 DHT=1;
  83.         }
  84.         t=250;//设置超时等待时间
  85.         while(!DHT&&t--);//等待DHT11拉高总线
  86.         if(t==0)//超时
  87.         {
  88.                 DHT=1;
  89.         }
  90.         t=250;//设置超时等待时间
  91.         while(DHT&&t--);//等待DHT11拉低总线
  92.         if(t==0)//超时
  93.         {
  94.                 DHT=1;
  95.         }



联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.feixindz.com
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信