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

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

单片机智能温控风扇Proteus仿真图芯片解密

单片机源程序如下:

  1. 芯片解密#include <reg52.h>
  2. 芯片解密#include <intrins.h>                         //包含头文件
  3. 芯片解密#define uchar unsigned char
  4. 芯片解密#define uint unsigned int                 //宏定义
  5. ////////////////////
  6. sbit dj=P2^3;//电机控制端接口
  7. sbit DQ=P2^1;//温度传感器接口
  8. //////////按键接口/////////////////////////////////
  9. sbit key1=P3^5;//设置温度
  10. sbit key2=P3^6;//温度加
  11. sbit key3=P3^7;//温度减
  12. sbit key4=P2^5;//自动模式
  13. sbit key5=P2^7;//手动模式

  14. sbit dp=P1^5; //蜂鸣器
  15. //////////////////////////////////////////////////////
  16. sbit w1=P2^6;
  17. sbit w2=P2^4;
  18. sbit w3=P2^2;
  19. sbit w4=P2^0;                          //数码管的四个位
  20. /////共阴数码管段选//////////////////////////////////////////////
  21. uchar table[22]=
  22. {0x3F,0x06,0x5B,0x4F,0x66,
  23. 0x6D,0x7D,0x07,0x7F,0x6F,
  24. 0x77,0x7C,0x39,0x5E,0x79,0x71,
  25. 0x40,0x38,0x76,0x00,0xff,0x37};//'-',L,H,灭,全亮,n         16-21
  26. uint wen_du;                                                //温度变量  
  27. uint shang,xia; //对比温度暂存变量
  28. uchar dang;//档位显示
  29. uchar flag,flag1,flag2;
  30. uchar d1,d2,d3;//显示数据暂存变量
  31. void delay(uint ms)                //延时函数,大约延时25us
  32. {
  33.         uchar x;
  34.         for(ms;ms>0;ms--)
  35.                 for(x=10;x>0;x--);
  36. }
  37. /***********ds18b20延迟子函数(晶振12MHz )*******/
  38. void delay_18B20(uint i)
  39. {
  40.         while(i--);
  41. }
  42. /**********ds18b20初始化函数**********************/
  43. void Init_DS18B20()
  44. {
  45.          uchar x=0;
  46.          DQ=1;          //DQ复位
  47.          delay_18B20(8);  //稍做延时
  48.          DQ=0;          //单片机将DQ拉低
  49.          delay_18B20(80); //精确延时 大于 480us
  50.          DQ=1;          //拉高总线
  51.          delay_18B20(14);
  52.          x=DQ;            //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
  53.          delay_18B20(20);
  54. }
  55. /***********ds18b20读一个字节**************/  
  56. uchar ReadOneChar()
  57. {
  58.         uchar i=0;
  59.         uchar dat=0;
  60.         for (i=8;i>0;i--)
  61.          {
  62.                   DQ=0; // 给脉冲信号
  63.                   dat>>=1;
  64.                   DQ=1; // 给脉冲信号
  65.                   if(DQ)
  66.                   dat|=0x80;
  67.                   delay_18B20(4);
  68.          }
  69.         return(dat);
  70. }
  71. /*************ds18b20写一个字节****************/  
  72. void WriteOneChar(uchar dat)
  73. {
  74.         uchar i=0;
  75.         for (i=8;i>0;i--)
  76.         {
  77.                   DQ=0;
  78.                 DQ=dat&0x01;
  79.             delay_18B20(5);
  80.                 DQ=1;
  81.             dat>>=1;
  82.         }
  83. }
  84. /**************读取ds18b20当前温度************/
  85. void ReadTemperature()
  86. {
  87.         uchar a=0;
  88.         uchar b=0;
  89.         uchar t=0;
  90.         Init_DS18B20();
  91.         WriteOneChar(0xCC);            // 跳过读序号列号的操作
  92.         WriteOneChar(0x44);         // 启动温度转换
  93.         delay_18B20(100);       // this message is wery important
  94.         Init_DS18B20();
  95.         WriteOneChar(0xCC);         //跳过读序号列号的操作
  96.         WriteOneChar(0xBE);         //读取温度寄存器等(共可读9个寄存器) 前两个就是温度
  97.         delay_18B20(100);
  98.         a=ReadOneChar();            //读取温度值低位
  99.         b=ReadOneChar();                   //读取温度值高位
  100.         wen_du=((b*256+a)>>4);    //当前采集温度值除16得实际温度值
  101. }

  102. void display()//显示温度
  103. {
  104.         w1=0;P0=~table[d1];delay(10); //第1位
  105.         P0=~0x00;w1=1;delay(1);
  106.          
  107.         w2=0;P0=~table[16];delay(10);//第2位
  108.         P0=~0x00;w2=1;delay(1);

  109.         w3=0;P0=~table[d2]; delay(10);//第3位
  110.         P0=~0x00;w3=1;delay(1);

  111.         w4=0;P0=~table[d3];delay(10);//第4位
  112.         P0=~0x00;w4=1;delay(1);
  113. }



联系方式

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

在线客服
热线电话

企业微信