芯片解密,芯片破解,IC解密,单片机解密,MCU解密,STM解密

飞芯科技提供芯片解密,芯片破解,IC解密,单片机解密,MCU解密,STM解密逆向服务

IC解密电子万年历全部单片机程序

  1. IC解密#define  _MAIN_C
  2. IC解密#include "config.h"
  3. IC解密#include "LCD1602.h"
  4. #include "DS1302.h"
  5. #include "DS18B20.h"
  6. #include "app.h"
  7. #include "Key_Buzzer.h"
  8. #include "main.h"

  9. bit flag1s = 0;    //1s定时标志位
  10. bit flag200ms = 0; //200ms定时标志
  11. enum eStaSystem staSystem = E_NORMAL;  //系统运行状态

  12. void main()
  13. {
  14.         EA = 1;                        //开总中断
  15.         Start18B20();   //启动温度转换
  16.         Init_Timer0();  //初始化定时器0
  17.         Init_LCD1602(); //LCD1602初始化
  18.         //Init_DS1302();        //初始化DS1302
  19.         while (!flag1s);//上电后延时1秒
  20.     flag1s = 0;
  21.         RefreshTime();        //刷新时间
  22.         RefreshDate(1);        //立即刷新日期
  23.         RefreshTemp(1); //立即刷新温度显示

  24.         while(1)
  25.         {
  26.             KeyDriver();        //按键检测
  27.                 if(flag200ms)        //200ms时间到
  28.                 {
  29.                         flag200ms = 0;        //清零标志位
  30.                         AlarmMonitor(); //监控闹钟
  31.                         if (staSystem == E_NORMAL)//如果系统正常运行
  32.                         {
  33.                                 RefreshTime(); //刷新时间
  34.                                 RefreshDate(0);//刷新日期
  35.                         }
  36.                         if (staSystem == Dis_Alarm)
  37.                         {
  38.                                 RefreshLunar(); //刷新阴历
  39.                         }
  40.                 }        
  41.                 if(flag1s && (staSystem == E_NORMAL))//1s时间到并且系统为正常运行
  42.                 {
  43.                         flag1s = 0;//清零标志位
  44.                         RefreshTemp(0);//刷新温度        
  45.                 }
  46.    }
  47. }

  48. /* 温度刷新函数,读取当前温度并根据需要刷新液晶显示,
  49. ** ops-刷新选项:为0时只当温度变化才刷新,非0则立即刷新 */
  50. void RefreshTemp(uint8 ops)
  51. {
  52.     int16 temp;
  53.     uint8 pdata str[8];
  54.     static int16 backup = 0;
  55.    
  56.     Get18B20Temp(&temp); //获取当前温度值
  57.     Start18B20();        //启动下一次转换
  58.     temp >>= 4;          //舍弃4bit小数位
  59.     if ((backup!=temp) || (ops!=0)) //按需要刷新液晶显示
  60.     {
  61.         str[0] = (temp / 10) + '0';  //十位转为ASCII码
  62.         str[1] = (temp % 10) + '0';  //个位转为ASCII码
  63.         str[2] = '\'';             //用'C代替℃
  64.         str[3] = 'C';
  65.         str[4] = '\0';             //字符串结束符
  66.         LCD1602_Dis_Str(12, 1, str);    //显示到液晶上
  67.         backup = temp;             //刷新上次温度值
  68.     }
  69. }


  70. /*初始化定时器0 定时5ms*/        
  71. void Init_Timer0()
  72. {
  73.         
  74.         TMOD = 0x01;  //定时器16为计数工作模式
  75.         TH0 =0xee;
  76.         TL0 =0x00; //5ms
  77.         ET0 = 1; //开定时器0中断
  78.         TR0 = 1;//启动定时器0
  79. }



联系方式

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

在线客服
热线电话

企业微信