IC解密STC15F2K60S2单片机和DS1302+DS18B20制作的万年历
| IC解密/* 液晶演示程序DV12864G-COG,串行接口! 驱动IC是:UC1701X或兼容的IC,比如ST7565R */ #include <stc15f2k60s2.H> #include "common.h" #include "JLX12864.h" //液晶显示 #include "delay.h" //延时函数 #include <intrins.h> #include <Ctype.h> #include "nongli.h" //农历转换 #include "zk.c" //字库文件 #include "zk1.c" //字库文件 #include "xianshi.h" //显示处理 #include "ds18B20.h" //温度读取 #include "key.h" //按键处理 #include "ds1302.h" //时钟芯片 sbit cs1=P2^0; sbit reset=P2^1; sbit rs=P2^2; sbit sclk=P2^4; sbit sid=P2^3; extern char sec,min,hour,day,month,year,week; //定义全局变量,秒,分,时,日,月,年和星期 extern bit century; //定义世纪位:0为20世纪,1为19世纪。 extern uchar setflag; //时钟设置状态 bit timeset=0; //1302时间设置标志 uint tvalue; //温度值 bit tflag; //负温度标志 void waitkey() { repeat: if(key==1) goto repeat; else delay(1000); } void main(void) { initial_lcd(); //初始化JLX2864 if (timeset) init1302(); //时间初始化 clear_screen(); //清屏 century=0; while(1) { tvalue=Ds18b20_Temp(); //读取温度 sec=read1302(0x81); //读秒 min=read1302(0x83); //读分 hour=read1302(0x85); //读时 day=read1302(0x87); //读日期 month=read1302(0x89); //读月 week=read1302(0x8b); //读星期 year=read1302(0x8d); //读年 //需把以上数据转换为十进制存储 sec=(sec>>4)*10+sec%16; min=(min>>4)*10+min%16; hour=(hour>>4)*10+hour%16; day=(day>>4)*10+day%16; month=(month>>4)*10+month%16; year=(year>>4)*10+year%16; Conversion(century,year,month,day); //转换为阴历数据 // read_temp(); //读出温度值 ds1820disp(); //温度值显示 key(); //扫描按键 if(setflag==0) disp_time(); //调用显示时间程序 } } |

芯片解密