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

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

单片机解密STC15F2K60S2单片机LCD12864数字时钟温度制作

  1. 单片机解密 电子数字时钟程序
  2.         单 片 机:单片机解密STC15F2K60S2
  3.         晶    振:12MHz
  4.         液 晶 屏:LCM-12864-ST7920
  5.         时    间:2026年02月25日修改完成
  6.         LCM12864使用并口连接方式,PSB、RST接高电平
  7. **********************************************/
  8. //头文件
  9. #include "stc15f.h"
  10. #include <intrins.h>
  11. #include "LCD12864.h"
  12. #include "DS1302.h"
  13. #include "DS18B20.h"
  14. #include "NongLi.h"
  15. #include "Display_Time.h"
  16. #include "ZiKu.h"
  17. #include <math.h>

  18. #define uint unsigned int
  19. #define uchar unsigned char

  20. //定义按键
  21. sbit K1 =P2^3;        //K1-设置
  22. sbit K2 =P2^4;         //K2-确认、返回
  23. sbit K3 =P2^6;         //K3-加
  24. sbit K4 =P2^7;         //K4-减
  25. sbit BLK=P2^0;        
  26. sbit wei=P3^6;
  27. sbit duan=P3^7;
  28. //函数声明
  29. void Add_Sub();
  30. void Delayms(uint);

  31. //定义全局变量
  32. bit W=0;       
  33. uchar Miao,Fen,Shi,Ri,Yue,Zhou,Nian,Moontemp1,Moontemp2;
  34. signed char Address,Item,Max,Min;

  35. //延时函数1ms/次
  36. void Delayms(uint ms)              
  37. {
  38.         uchar i;
  39.         while(--ms!=0)
  40.                 for(i=0;i<125;i++);                                     
  41. }
  42. //日期、时间设置函数
  43. void Set_Time()
  44. {
  45.         Nian=Read_DS1302(0x8D);       
  46.         Yue=Read_DS1302(0x89);       
  47.         Ri=Read_DS1302(0x87);       
  48.         Week=Read_DS1302(0x8B);       
  49.         Write_LCD(0,0x80);

  50.         Write_String("20");                       
  51.         Write_LCD(1,(Nian/16)+0x30);       
  52.         Write_LCD(1,Nian%16+0x30);       
  53.         Write_String("年");

  54.         Write_LCD(1,(Yue/16)+0x30);
  55.         Write_LCD(1,Yue%16+0x30);       
  56.         Write_String("月");                       
  57. /*
  58.         Write_LCD(0,0x88);
  59.         Write_String("星期");
  60.         Write_LCD(1,Yue%16+0x30);       
  61. */
  62.         Write_LCD(1,(Ri/16)+0x30);
  63.         Write_LCD(1,Ri%16+0x30);       
  64.         Write_String("日");                       

  65.         if(Read_DS1302(0x85)!=Shi)       
  66.                 Shi=Read_DS1302(0x85);       
  67.        
  68.         Write_LCD(0,0x91);
  69.         Write_LCD(1,(Shi/16)+0x30);       
  70.         Write_LCD(1,Shi%16+0x30);       
  71.         Write_String("时");

  72.         if(Read_DS1302(0x83)!=Fen)                       
  73.                 Fen=Read_DS1302(0x83);       
  74.         Write_LCD(1,(Fen/16)+0x30);       
  75.         Write_LCD(1,Fen%16+0x30);       
  76.         Write_String("分");

  77.         if(Read_DS1302(0x81)!=Miao)                       
  78.                 Miao=Read_DS1302(0x81);       
  79.         Write_LCD(1,(Miao/16)+0x30);
  80.         Write_LCD(1,Miao%16+0x30);       
  81.         Write_String("秒");
  82. }
  83. //调整时间子函数
  84. void Set_time(uchar Set)
  85. {  
  86.         Write_Com(0x30);
  87.         Write_Com(0x06);

  88.         Write_LCD(0,0x98);               
  89.         Write_String("★调整");       
  90.   
  91. /*        if(Set==6)
  92.         {
  93.                 Write_String("星期");
  94.                 Address=0x8A;
  95.                 Max=7;
  96.                 Min=1;          
  97.              Set_Time();
  98.              ds_w();
  99.              Set_Time();
  100.           }
  101. */
  102.         if(Set==5)
  103.         {
  104.                 Write_String("秒钟");
  105.                 Address=0x80;
  106.                 Max=59;
  107.                 Min=0;          
  108.                 Set_Time();               
  109.                    Add_Sub();               
  110.                    Set_Time();
  111.           }  

  112.         if(Set==4)
  113.         {
  114.                 Write_String("分钟");
  115.                 Address=0x82;
  116.                 Max=59;
  117.                 Min=0;
  118.                    Set_Time();
  119.                    Add_Sub();
  120.                    Set_Time();
  121.         }

  122.         if(Set==3)
  123.         {
  124.                 Write_String("小时");
  125.                 Address=0x84;
  126.                 Max=23;
  127.                 Min=0;
  128.             Set_Time();
  129.                    Add_Sub();
  130.                    Set_Time();
  131.           }  



联系方式

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

在线客服
热线电话

企业微信