#incl- #include "STC12C5A60S2.h"
- #include <intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar l_tmpDate[]={0,0,0,1,1,1,13};//秒分時(shí)日月周年08-05-15 12:00:00
- uchar l_tmpdisplay[15];
- code uchar Write_rtc_address[7]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c}; //秒分時(shí)日月周年 最低位讀寫位
- code uchar Read_RTC_address[7]={0x81,0x83,0x85,0x87,0x89,0x8b,0x8d};
- sbit SCK = P1^3; //DS1302時(shí)鐘;
- sbit SDA = P1^4; //DS1302數(shù)據(jù);
- sbit RST = P1^5;// DS1302復(fù)位;
- uchar set=0; //按鍵選擇標(biāo)志位;
- char key_flag=0;//按鍵加減標(biāo)志位;
- uchar menue=0; //菜單選擇標(biāo)志位;
- uchar ok=0; //確認(rèn)標(biāo)志位;
- char miao,fen,shi,ri,yue,zhou,nian;/*時(shí)間日期數(shù)值標(biāo)志位;*/
- /////////////DS1302寫一個(gè)字節(jié)/////
- void Write_Ds1302_Byte(uchar temp)
- {
- uchar i;
- for (i=0;i<8;i++) //循環(huán)8次 寫入數(shù)據(jù)
- {
- SCK=0;
- SDA=temp&0x01; //每次傳輸?shù)妥止?jié)
- temp>>=1; //右移一位
- SCK=1;
- }
- }
- /*****************/ /*
- 寫入DS1302
- */ /************************/
- void Write_Ds1302(uchar address,uchar dat )
- {
- RST=0; _nop_();
- SCK=0; _nop_();
- RST=1; _nop_(); //啟動(dòng)
- Write_Ds1302_Byte(address); //發(fā)送地址
- Write_Ds1302_Byte(dat); //發(fā)送數(shù)據(jù)
- RST=0; //恢復(fù)
- }
- /***************/ /*
- 讀出DS1302數(shù)據(jù)
- */ /*********************/
- uchar Read_Ds1302 ( uchar address )
- {
- uchar i,temp=0x00;
- RST=0; _nop_(); _nop_();
- SCK=0; _nop_(); _nop_();
- RST=1; _nop_();
- _nop_();
- Write_Ds1302_Byte(address);
- for (i=0;i<8;i++) //循環(huán)8次 讀取數(shù)據(jù)
- {
- if(SDA)
- {
- temp|=0x80;
- } //每次傳輸?shù)妥止?jié)
- temp>>=1; //右移一位
- SCK=1; _nop_(); _nop_();
- SCK=0;
- }
- RST=0; _nop_();
- //以下為DS1302復(fù)位的穩(wěn)定時(shí)間
- _nop_();
- RST=0;
- SCK=0; _nop_(); _nop_(); _nop_(); _nop_();
- SCK=1; _nop_(); _nop_();
- SDA=0; _nop_(); _nop_();
- SDA=1; _nop_(); _nop_();
- return (temp); //返回
- }
- /**************************/ /*
- 讀時(shí)鐘數(shù)據(jù)
- */ /***********************/
- void Read_RTC(void) //讀取 日歷
- {
- uchar i,*p;
- p=Read_RTC_address; //地址傳遞
- for(i=0;i<7;i++) //分7次讀取 秒分時(shí)日月周年
- {
- l_tmpDate[i]=Read_Ds1302(*p);
- p++;
- }
- }
- /***************************/ /*
- 設(shè)定時(shí)鐘數(shù)據(jù)
- */ /************************/
- void Set_RTC(void) //設(shè)定 日歷
- {
- uchar i,*p,tmp;
- for(i=0;i<7;i++)
- { //BCD處理
- tmp=l_tmpDate[i]/10;
- l_tmpDate[i]=l_tmpDate[i]%10;
- l_tmpDate[i]=l_tmpDate[i]+tmp*16;
- }
- Write_Ds1302(0x8E,0X00); //關(guān)閉寫保護(hù);
- p=Write_rtc_address; //傳地址
- for(i=0;i<7;i++) //7次寫入 秒分時(shí)日月周年
- {
- Write_Ds1302(*p,l_tmpDate[i]);
- p++;
- }
- Write_Ds1302(0x8E,0x80); //打開寫保護(hù);
- }
- /*********8x16字模 ****************************/
- //取模方式:逐行式 逆向 陰碼 寬x高=8x16
- uchar code table[]={
- /*-- 文字: 0 --*/ /*-- 宋體12;
- 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 --*/
- 0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,
- 0x24,0x18,0x00,0x00,
- /*-- 文字: 1 --*/ /*-- 宋體12;
- 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 --*/
- 0x00,0x00,0x00,0x08,0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
- 0x08,0x3E,0x00,0x00,
- /*-- 文字: 2 --*/ /*-- 宋體12;
- 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 --*/
- 0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x20,0x20,0x10,0x08,0x04,
- 0x42,0x7E,0x00,0x00,
- /*-- 文字: 3 --*/ /*-- 宋體12;
- 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 --*/
- 0x00,0x00,0x00,0x3C,0x42,0x42,0x20,0x18,0x20,0x40,0x40,0x42,
- 0x22,0x1C,0x00,0x00,
- /*-- 文字: 4 --*/ /*-- 宋體12;
- 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 --*/
- 0x00,0x00,0x00,0x20,0x30,0x28,0x24,0x24,0x22,0x22,0x7E,0x20,
- 0x20,0x78,0x00,0x00,
- /*-- 文字: 5 --*/ /*-- 宋體12;
- 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 --*/
- 0x00,0x00,0x00,0x7E,0x02,0x02,0x02,0x1A,0x26,0x40,0x40,0x42,
- 0x22,0x1C,0x00,0x00,
- /*-- 文字: 6 --*/ /*-- 宋體12;
- 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 --*/
- 0x00,0x00,0x00,0x38,0x24,0x02,0x02,0x1A,0x26,0x42,0x42,0x42,
- 0x24,0x18,0x00,0x00,
- /*-- 文字: 7 --*/ /*-- 宋體12;
- 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 --*/
- 0x00,0x00,0x00,0x7E,0x22,0x22,0x10,0x10,0x08,0x08,0x08,0x08,
- 0x08,0x08,0x00,0x00,
- /*-- 文字: 8 --*/ /*-- 宋體12;
- 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 --*/
- 0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x24,0x18,0x24,0x42,0x42,
- 0x42,0x3C,0x00,0x00,
- /*-- 文字: 9 --*/ /*-- 宋體12;
- 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 --*/
- 0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x64,0x58,0x40,0x40,
- 0x24,0x1C,0x00,0x00,
- /*-- 文字: - --*///10; /*-- 宋體12;
- //此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 --*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,
- /*-- 文字: : --*///11; /*-- 宋體12;
- //此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 --*/
- ////0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00,
- //0x18,0x18,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,
- 0x18,0x18,0x00,0x00,
- /*-- 文字: _ --*///12 /*-- 宋體12;
- //此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 --*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0xFF,
- /****************空格****13*****************/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,/*" ",0*/
- //////////////C//14//////////////
- //取模方式:逐行式 逆向 陰碼 寬x高=8x16
- 0x00,0x00,0x3C,0x3E,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
- 0x02,0x3E,0x3C,0x00,
- //14 'a'-83;
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C, 0x42,0x78,0x44,
- 0x42,0x42,0xFC,0x00,0x00,/*"a",0*/
- 0x00,0x00,0x00,0x03,0x02,0x02,0x02,0x1A,
- 0x26,0x42,0x42,0x42,0x26,0x1A,0x00,0x00,/*"b",1*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,
- 0x44,0x02,0x02,0x02,0x44,0x38,0x00,0x00,/*"c",2*/
- 0x00,0x00,0x00,0x60,0x40,0x40,0x40,0x78,
- 0x44,0x42,0x42,0x42,0x64,0xD8,0x00,0x00,/*"d",3*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,
- 0x42,0x7E,0x02,0x02,0x42,0x3C,0x00,0x00,/*"e",4*/
- 0x00,0x00,0x00,0xF0,0x88,0x08,0x08,0x7E,
- 0x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00,/*"f",5*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,
- 0x22,0x22,0x1C,0x02,0x3C,0x42,0x42,0x3C,/*"g",6*/
- 0x00,0x00,0x00,0x03,0x02,0x02,0x02,0x3A,
- 0x46,0x42,0x42,0x42,0x42,0xE7,0x00,0x00,/*"h",7*/
- 0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x0E,
- 0x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00,/*"i",8*/
- 0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x38,
- 0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x1E,/*"j",9*/
- 0x00,0x00,0x00,0x03,0x02,0x02,0x02,0x72,
- 0x12,0x0A,0x16,0x12,0x22,0x77,0x00,0x00,/*"k",10*/
- 0x00,0x00,0x00,0x0E,0x08,0x08,0x08,0x08,
- 0x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00,/*"l",11*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,
- 0x92,0x92,0x92,0x92,0x92,0xB7,0x00,0x00,/*"m",12*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3B,
- 0x46,0x42,0x42,0x42,0x42,0xE7,0x00,0x00,/*"n",13*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,
- 0x42,0x42,0x42,0x42,0x42,0x3C,0x00,0x00,/*"o",14*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1B,
- 0x26,0x42,0x42,0x42,0x22,0x1E,0x02,0x07,/*"p",15*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,
- 0x44,0x42,0x42,0x42,0x44,0x78,0x40,0xE0,/*"q",16*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,
- 0x4C,0x04,0x04,0x04,0x04,0x1F,0x00,0x00,/*"r",17*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,
- 0x42,0x02,0x3C,0x40,0x42,0x3E,0x00,0x00,/*"s",18*/
- 0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x3E,
- 0x08,0x08,0x08,0x08,0x08,0x30,0x00,0x00,/*"t",19*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,
- 0x42,0x42,0x42,0x42,0x62,0xDC,0x00,0x00,/*"u",20*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE7,
- 0x42,0x24,0x24,0x14,0x08,0x08,0x00,0x00,/*"v",21*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xEB,
- 0x49,0x49,0x55,0x55,0x22,0x22,0x00,0x00,/*"w",22*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x76,
- 0x24,0x18,0x18,0x18,0x24,0x6E,0x00,0x00,/*"x",23*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE7,
- 0x42,0x24,0x24,0x14,0x18,0x08,0x08,0x07,/*"y",24*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,
- 0x22,0x10,0x08,0x08,0x44,0x7E,0x00,0x00,/*"z",25*/
- };
- /************16x16 字模 ***************/
- //取模方式:逐行式 逆向 陰碼 寬x高=16x16
- uchar code table1[]={
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"一",0*/
- 0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x1F,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,/*"二",1*/
-
- 0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x1F,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,/*"三",2*/
-
- 0x00,0x00,0x00,0x00,0xFE,0x3F,0x22,0x22,
- 0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,
- 0x12,0x22,0x12,0x3C,0x0A,0x20,0x06,0x20,
- 0x02,0x20,0xFE,0x3F,0x02,0x20,0x00,0x00,/*"四",3*/
- 0x00,0x00,0xFE,0x3F,0x40,0x00,0x40,0x00,
- 0x40,0x00,0x40,0x00,0xFC,0x0F,0x20,0x08,
- 0x20,0x08,0x20,0x08,0x20,0x08,0x10,0x08,
- 0x10,0x08,0x10,0x08,0xFF,0x7F,0x00,0x00,/*"五",4*/
- 0x40,0x00,0x80,0x00,0x00,0x01,0x00,0x01,
- 0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,
- 0x20,0x02,0x20,0x04,0x10,0x08,0x10,0x10,
- 0x08,0x10,0x04,0x20,0x02,0x20,0x00,0x00,/*"六",5*/
- 0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,
- 0x08,0x08,0x08,0x08,0x08,0x08,0xF8,0x0F,
- 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
- 0x08,0x08,0x08,0x08,0xF8,0x0F,0x08,0x08,/*"日",6*/
- 0x00,0x00,0xF8,0x0F,0x08,0x08,0xF8,0x0F,
- 0x08,0x08,0xF8,0x0F,0x80,0x00,0x88,0x00,
- 0xF8,0x1F,0x84,0x00,0x82,0x00,0xF8,0x0F,
- 0x80,0x00,0x80,0x00,0xFE,0x3F,0x00,0x00,/*"星",7*/
- 0x44,0x00,0x44,0x3E,0xFE,0x22,0x44,0x22,
- 0x44,0x22,0x7C,0x3E,0x44,0x22,0x44,0x22,
- 0x7C,0x22,0x44,0x3E,0x44,0x22,0xFF,0x22,
- 0x20,0x21,0x44,0x21,0x82,0x28,0x41,0x10,/*"期",8*/
-
- 0x00,0x00,0xE0,0x0F,0x62,0x0C,0xE6,0x0F,0x6C,0x0C,
- 0xEA,0x0F,0x06,0x00,0xF4,0x1F,0x3C,0x18,0xB0,0x1A,
- 0xBC,0x1A,0xB4,0x1A,0xB2,0x1A,0xFB,0x3F,0xF9,0x3F,
- 0x00,0x00, /////////////////////溫////9//
- 0x00,0x00,0xC0,0x00,0x80,0x00,0xFC,0x0F,0x0C,0x00,
- 0x6C,0x03,0xFC,0x0F,0x6C,0x03,0xEC,0x03,0x0C,0x00,
- 0xEC,0x07,0x6C,0x06,0xCC,0x03,0x66,0x06,0x33,0x0C,
- 0x00,0x00,/////////////////度、、、、、、10//
- 0x00,0x00,0x0C,0x00,0xFC,0x1F,0x0C,0x00,0xF6,0x07,
- 0xB0,0x01,0xB0,0x01,0xB0,0x01,0xFC,0x0F,0x80,0x01,
- 0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x00,0x00,
- 0x00,0x00,///////////年、、、、、、、、、11//
- 0x00,0x00,0xF8,0x0F,0x18,0x0C,0x18,0x0C,0x18,0x0C,
- 0xF8,0x0D,0x18,0x0C,0x18,0x0C,0xF8,0x0D,0x18,0x0C,
- 0x18,0x0C,0x1C,0x0C,0x1C,0x0C,0x0E,0x0F,0x06,0x06,
- 0x00,0x00,///////////月////////////12///
- //0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- //0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- //9; //0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- //0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- };
復(fù)制代碼 ude "macroandconst.h" 文件。 |