『壹』 用單片機控制液晶1602顯示萬年歷,但是在時間後多顯示了一位,可我並沒有編碼哪位啊,求破啊
這個容易解決的,你用模擬調試,在顯示時間的地方設置斷點,再一步步執行就可以查出問題.不知你用的是什麼單片機?如果能用PROTEUS模擬的話,就更容易查出問題了.這種問題我們只能給出大致的方向,解鈴還須系鈴人...
『貳』 基於51單片機,DS1302,1602實現萬年歷(年月日時分秒)及鬧鍾功能的C程序,不要顯示農歷和溫度,謝謝!!
【八】電子表、萬年歷系列
[1]單片機公交車環境監測及時間顯示系統
功能描述:
1、按鍵調時間
2、帶備用電池(斷電繼續走時)
3、監測雜訊和溫濕度並實時顯示
4、超過報警值蜂鳴器會響
☆已作出的實物優酷視頻演示地址:
http://v.youku.com/v_show/id_XMTQ3OTMxMDUwMA==.html
[2]單片機語音報時電子表
功能描述:
1、按鍵調試設置鬧鍾
2、帶備用電池(斷電繼續走時)
3、整點語音報時
☆已作出的實物優酷視頻演示地址:
http://v.youku.com/v_show/id_XMTQ3OTMwMjM0OA==.html
[3]單片機紅外遙控電子表語音報時語音播報溫濕度
功能描述:
1、紅外遙控調時間設定鬧鍾
2、帶備用電池(斷電繼續走時)
3、整點語音報時語音播報溫濕度
4、按鍵遙控語音報時語音播報溫濕度
☆已作出的實物優酷視頻演示地址:
http://v.youku.com/v_show/id_XMTQ3OTMxMTUyOA==.html
[4]單片機紅外遙控電子表語音報時格林威治時間雙顯示
功能描述:
1、紅外遙控調時間設定鬧鍾
2、帶備用電池(斷電繼續走時)
3、整點語音報時語音播報溫濕度
4、按鍵遙控語音報時語音播報溫濕度
☆已作出的實物優酷視頻演示地址:
http://v.youku.com/v_show/id_XMTQ3OTMxMTUyOA==.html
[5]單片機多功能萬年歷電子表系統節日提醒溫濕度顯示
功能描述:
1、按鍵調時間,設置鬧鍾
2、帶備用電池(斷電繼續走時)
3、陽歷、農歷節日提醒;可顯示上午、中午、晚上、午夜、深夜等時間段
4、溫濕度實時顯示(可替換其他感測器數據顯示)
5、功能擴展:語音播報萬年歷、溫濕度等。(此項功能為擴展功能,需要需補差價)
☆已作出的實物優酷視頻演示地址:
http://v.youku.com/v_show/id_XMTU0MjI4OTExNg==.html
【二十】GPS授時定位系統系列
[1]GPS自動授時系統 語音報時/播報溫濕度
實現功能:
1.可設置授時模式為自動授時和手動更新
2.可脫離GPS數據利用本地時鍾晶元准確走時
3.可設置靜音模式、整點報時和自動語音播報溫濕度及其混合模式等四種語音工作模式
4.可以切換顯示本地時間和溫濕度數據和GPS衛星時間數據和定位數據
5.經過分析GPS數據,利用演算法縮短了解析時間在秒級時間內就能獲取到GPS時間數據(正常情況下,完成定位需要幾分鍾以上)
6.(亮點)利用演算法自動計算星期參數和農歷參數,程序內部演算法輸入任何陽歷日期數據即可得到准確的星期數據和農歷數據
7.利用12864串口工作模式,節省了8個IO
8.可根據需求進行功能定製
☆已作出的實物優酷視頻演示地址:
http://v.youku.com/v_show/id_XMjUzMzcyNTkyOA==.html
『叄』 求大神寫一個51單片機1602顯示萬年歷+串口修改
你好!
串口修改? 是串口修改時鍾晶元的時鍾嗎
『肆』 51單片機1602的萬年歷只要年月日時分秒 晶元只有c51 定時用單片機自帶的方式,沒有其它晶元
只要能寫出0到99計數的程序就可以寫出你要的了啊,關鍵是真的很麻煩,我都為單片機感到累,你買個DS1302模塊,分分鍾鍾就能實現要求了,而且又不貴
『伍』 51單片機用1302寫的1602顯示的萬年歷,按鍵調節時間同時調節哪個時間游標會在哪裡閃爍,
LCD 有自帶閃爍的功能,把游標打開就可以了
或者在要閃的地方填入空白跟要顯示的值交互顯示就可以達到閃爍的目的
『陸』 求51單片機 1602+1302可以顯示農歷的萬年歷或農歷部分的c語言程序
與MCS-51單片機產品兼容 、8K位元組在系統可編程Flash存儲器、 1000次擦寫周期、 全靜態操作:0Hz~33Hz 、 三級加密程序存儲器 、 32個可編程I/O口線 、三個16位定時器/計數器 八個中斷源 、全雙工UART串列通道、 低功耗空閑和掉電模式 、掉電後中斷可喚醒 、看門狗定時器 、雙數據指針 、掉電標識符 。
功能特性描述
At89s52 是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統可編程Flash 存儲器。使用Atmel 公司高密度非 易失性存儲器技術製造,與工業80C51 產品指令和引腳完 全兼容。片上Flash允許程序存儲器在系統可編程,亦適於 常規編程器。在單晶元上,擁有靈巧的8 位CPU 和在系統 可編程Flash,使得AT89S52為眾多嵌入式控制應用系統提 供高靈活、超有效的解決方案。 AT89S52具有以下標准功能: 8k位元組Flash,256位元組RAM, 32 位I/O 口線,看門狗定時器,2 個數據指針,三個16 位 定時器/計數器,一個6向量2級中斷結構,全雙工串列口, 片內晶振及時鍾電路。另外,AT89S52 可降至0Hz 靜態邏 輯操作,支持2種軟體可選擇節電模式。空閑模式下,CPU 停止工作,允許RAM、定時器/計數器、串口、中斷繼續工 作。掉電保護方式下,RAM內容被保存,振盪器被凍結, 單片機一切工作停止,直到下一個中斷或硬體復位為止。8 位微控制器 8K 位元組在系統可編程 Flash AT89S52
P0 口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅動8個TTL邏
輯電平。對P0埠寫「1」時,引腳用作高阻抗輸入。
當訪問外部程序和數據存儲器時,P0口也被作為低8位地址/數據復用。在這種模式下,
P0具有內部上拉電阻。
在flash編程時,P0口也用來接收指令位元組;在程序校驗時,輸出指令位元組。程序校驗
時,需要外部上拉電阻。
P1 口:P1 口是一個具有內部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅動4 個
TTL 邏輯電平。對P1 埠寫「1」時,內部上拉電阻把埠拉高,此時可以作為輸入
口使用。作為輸入使用時,被外部拉低的引腳由於內部電阻的原因,將輸出電流(IIL)。
此外,P1.0和P1.2分別作定時器/計數器2的外部計數輸入(P1.0/T2)和時器/計數器2
的觸發輸入(P1.1/T2EX),具體如下表所示。
在flash編程和校驗時,P1口接收低8位地址位元組。
引腳號第二功能
P1.0 T2(定時器/計數器T2的外部計數輸入),時鍾輸出
P1.1 T2EX(定時器/計數器T2的捕捉/重載觸發信號和方向控制)
P1.5 MOSI(在系統編程用)
P1.6 MISO(在系統編程用)
P1.7 SCK(在系統編程用)
P2 口:P2 口是一個具有內部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅動4 個
TTL 邏輯電平。對P2 埠寫「1」時,內部上拉電阻把埠拉高,此時可以作為輸入
口使用。作為輸入使用時,被外部拉低的引腳由於內部電阻的原因,將輸出電流(IIL)。
在訪問外部程序存儲器或用16位地址讀取外部數據存儲器(例如執行MOVX @DPTR)
時,P2 口送出高八位地址。在這種應用中,P2 口使用很強的內部上拉發送1。在使用
8位地址(如MOVX @RI)訪問外部數據存儲器時,P2口輸出P2鎖存器的內容。
在flash編程和校驗時,P2口也接收高8位地址位元組和一些控制信號。
P3 口:P3 口是一個具有內部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅動4 個
TTL 邏輯電平。對P3 埠寫「1」時,內部上拉電阻把埠拉高,此時可以作為輸入
口使用。作為輸入使用時,被外部拉低的引腳由於內部電阻的原因,將輸出電流(IIL)。
P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。
在flash編程和校驗時,P3口也接收一些控制信號。
埠引腳 第二功能
P3.0 RXD(串列輸入口)
P3.1 TXD(串列輸出口)
P3.2 INTO(外中斷0)
P3.3 INT1(外中斷1)
P3.4 TO(定時/計數器0)
P3.5 T1(定時/計數器1)
P3.6 WR(外部數據存儲器寫選通)
P3.7 RD(外部數據存儲器讀選通)
此外,P3口還接收一些用於FLASH快閃記憶體編程和程序校驗的控制信號。
RST——復位輸入。當振盪器工作時,RST引腳出現兩個機器周期以上高電平將是單片機復位。
ALE/PROG——當訪問外部程存儲器或數據存儲器時,ALE(地址鎖存允許)輸出脈沖用於鎖存地址的低8位位元組。一般情況下,ALE仍以時鍾振盪頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鍾或用於定時目的。要注意的是:每當訪問外部數據存儲器時將跳過一個ALE脈沖。
對FLASH存儲器編程期間,該引腳還用於輸入編程脈沖(PROG)。
如有必要,可通過對特殊功能寄存器(SFR)區中的8EH單元的D0位置位,可禁止ALE操作。該位置位後,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機執行外部程序時,應設置ALE禁止位無效。
PSEN——程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89C52由外部程序存儲器取指令(或數據)時,每個機器周期兩次PSEN有效,即輸出兩個脈沖,在此期間,當訪問外部數據存儲器,將跳過兩次PSEN信號。
EA/VPP——外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復位時內部會鎖存EA端狀態。
如EA端為高電平(接Vcc端),CPU則執行內部程序存儲器的指令。
FLASH存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當然這必須是該器件是使用12V編程電壓Vpp。
『柒』 跪求個利用51單片機1602顯示屏DS1302做的萬年歷c編程序,帶有公歷,農歷,星期,時間功能,一定要有農歷
農歷計算方式,
///月份數據表
code uchar day_code1[9]={0x0,0x1f,0x3b,0x5a,0x78,0x97,0xb5,0xd4,0xf3};
code uint day_code2[3]={0x111,0x130,0x14e};
/*
函數功能:輸入BCD陽歷數據,輸出BCD陰歷數據(只允許1901-2099年)
調用函數示例:Conversion(c_sun,year_sun,month_sun,day_sun)
如:計算2004年10月16日Conversion(0,0x4,0x10,0x16);
c_sun,year_sun,month_sun,day_sun均為BCD數據,c_sun為世紀標志位,c_sun=0為21世
紀,c_sun=1為19世紀
調用函數後,原有數據不變,讀c_moon,year_moon,month_moon,day_moon得出陰歷BCD數據
*/
bit c_moon;
data uchar year_moon,month_moon,day_moon,week;
/*子函數,用於讀取數據表中農歷月的大月或小月,如果該月為大返回1,為小返回0*/
bit get_moon_day(uchar month_p,uint table_addr)
{
uchar temp;
switch (month_p)
{
case 1:{temp=year_code[table_addr]&0x08;
if (temp==0)return(0);else return(1);}
case 2:{temp=year_code[table_addr]&0x04;
if (temp==0)return(0);else return(1);}
case 3:{temp=year_code[table_addr]&0x02;
if (temp==0)return(0);else return(1);}
case 4:{temp=year_code[table_addr]&0x01;
if (temp==0)return(0);else return(1);}
case 5:{temp=year_code[table_addr+1]&0x80;
if (temp==0) return(0);else return(1);}
case 6:{temp=year_code[table_addr+1]&0x40;
if (temp==0)return(0);else return(1);}
case 7:{temp=year_code[table_addr+1]&0x20;
if (temp==0)return(0);else return(1);}
case 8:{temp=year_code[table_addr+1]&0x10;
if (temp==0)return(0);else return(1);}
case 9:{temp=year_code[table_addr+1]&0x08;
if (temp==0)return(0);else return(1);}
case 10:{temp=year_code[table_addr+1]&0x04;
if (temp==0)return(0);else return(1);}
case 11:{temp=year_code[table_addr+1]&0x02;
if (temp==0)return(0);else return(1);}
case 12:{temp=year_code[table_addr+1]&0x01;
if (temp==0)return(0);else return(1);}
case 13:{temp=year_code[table_addr+2]&0x80;
if (temp==0)return(0);else return(1);}
}
}
/*
函數功能:輸入BCD陽歷數據,輸出BCD陰歷數據(只允許1901-2099年)
調用函數示例:Conversion(c_sun,year_sun,month_sun,day_sun)
如:計算2004年10月16日Conversion(0,0x4,0x10,0x16);
c_sun,year_sun,month_sun,day_sun均為BCD數據,c_sun為世紀標志位,c_sun=0為21世
紀,c_sun=1為19世紀
調用函數後,原有數據不變,讀c_moon,year_moon,month_moon,day_moon得出陰歷BCD數據
*/
void Conversion(bit c,uchar year,uchar month,uchar day)
{ //c=0 為21世紀,c=1 為19世紀 輸入輸出數據均為BCD數據
uchar temp1,temp2,temp3,month_p;
uint temp4,table_addr;
bit flag2,flag_y;
temp1=year/16; //BCD->hex 先把數據轉換為十六進制
temp2=year%16;
year=temp1*10+temp2;
temp1=month/16;
temp2=month%16;
month=temp1*10+temp2;
temp1=day/16;
temp2=day%16;
day=temp1*10+temp2;
//定位數據表地址
if(c==0)
{
table_addr=(year+0x64-1)*0x3;
}
else
{
table_addr=(year-1)*0x3;
}
//定位數據表地址完成
//取當年春節所在的公歷月份
temp1=year_code[table_addr+2]&0x60;
temp1=_cror_(temp1,5);
//取當年春節所在的公歷月份完成
//取當年春節所在的公歷日
temp2=year_code[table_addr+2]&0x1f;
//取當年春節所在的公歷日完成
// 計算當年春年離當年元旦的天數,春節只會在公歷1月或2月
if(temp1==0x1)
{
temp3=temp2-1;
}
else
{
temp3=temp2+0x1f-1;
}
// 計算當年春年離當年元旦的天數完成
//計算公歷日離當年元旦的天數,為了減少運算,用了兩個表
//day_code1[9],day_code2[3]
//如果公歷月在九月或前,天數會少於0xff,用表day_code1[9],
//在九月後,天數大於0xff,用表day_code2[3]
//如輸入公歷日為8月10日,則公歷日離元旦天數為day_code1[8-1]+10-1
//如輸入公歷日為11月10日,則公歷日離元旦天數為day_code2[11-10]+10-1
if (month<10)
{
temp4=day_code1[month-1]+day-1;
}
else
{
temp4=day_code2[month-10]+day-1;
}
if ((month>0x2)&&(year%0x4==0))
{ //如果公歷月大於2月並且該年的2月為閏月,天數加1
temp4+=1;
}
//計算公歷日離當年元旦的天數完成
//判斷公歷日在春節前還是春節後
if (temp4>=temp3)
{ //公歷日在春節後或就是春節當日使用下面代碼進行運算
temp4-=temp3;
month=0x1;
month_p=0x1; //month_p為月份指向,公歷日在春節前或就是春節當日month_p指向首月
flag2=get_moon_day(month_p,table_addr);
//檢查該農歷月為大小還是小月,大月返回1,小月返回0
flag_y=0;
if(flag2==0)temp1=0x1d; //小月29天
else temp1=0x1e; //大小30天
temp2=year_code[table_addr]&0xf0;
temp2=_cror_(temp2,4); //從數據表中取該年的閏月月份,如為0則該年無閏月
while(temp4>=temp1)
{
temp4-=temp1;
month_p+=1;
if(month==temp2)
{
flag_y=~flag_y;
if(flag_y==0)
month+=1;
}
else month+=1;
flag2=get_moon_day(month_p,table_addr);
if(flag2==0)temp1=0x1d;
else temp1=0x1e;
}
day=temp4+1;
}
else
{ //公歷日在春節前使用下面代碼進行運算
temp3-=temp4;
if (year==0x0)
{
year=0x63;c=1;
}
else year-=1;
table_addr-=0x3;
month=0xc;
temp2=year_code[table_addr]&0xf0;
temp2=_cror_(temp2,4);
if (temp2==0)
month_p=0xc;
else
month_p=0xd; //
/*month_p為月份指向,如果當年有閏月,一年有十三個月,月指向13,無閏月指向12*/
flag_y=0;
flag2=get_moon_day(month_p,table_addr);
if(flag2==0)temp1=0x1d;
else temp1=0x1e;
while(temp3>temp1)
{
temp3-=temp1;
month_p-=1;
if(flag_y==0)month-=1;
if(month==temp2)flag_y=~flag_y;
flag2=get_moon_day(month_p,table_addr);
if(flag2==0)temp1=0x1d;
else temp1=0x1e;
}
day=temp1-temp3+1;
}
c_moon=c; //HEX->BCD ,運算結束後,把數據轉換為BCD數據
temp1=year/10;
temp1=_crol_(temp1,4);
temp2=year%10;
year_moon=temp1|temp2;
temp1=month/10;
temp1=_crol_(temp1,4);
temp2=month%10;
month_moon=temp1|temp2;
temp1=day/10;
temp1=_crol_(temp1,4);
temp2=day%10;
day_moon=temp1|temp2;
}
/*************************************************************************
/*函數功能:輸入BCD陽歷數據,輸出BCD星期數據(只允許1901-2099年)
調用函數示例:Conver_week(c_sun,year_sun,month_sun,day_sun)
如:計算2004年10月16日Conversion(0,0x4,0x10,0x16);
c_sun,year_sun,month_sun,day_sun均為BCD數據,c_sun為世紀標志位,c_sun=0為21世
紀,c_sun=1為19世紀
調用函數後,原有數據不變,讀week得出陰歷BCD數據
*/
code uchar table_week[12]={0,3,3,6,1,4,6,2,5,0,3,5}; //月修正數據表
/*
演算法:日期+年份+所過閏年數+月較正數之和除7 的余數就是星期但如果是在
閏年又不到3 月份上述之和要減一天再除7
星期數為0
*/
void Conver_week(bit c,uchar year,uchar month,uchar day)
{//c=0 為21世紀,c=1 為19世紀 輸入輸出數據均為BCD數據
uchar temp1,temp2;
temp1=year/16; //BCD->hex 先把數據轉換為十六進制
temp2=year%16;
year=temp1*10+temp2;
temp1=month/16;
temp2=month%16;
month=temp1*10+temp2;
temp1=day/16;
temp2=day%16;
day=temp1*10+temp2;
if (c==0){year+=0x64;} //如果為21世紀,年份數加100
temp1=year/0x4; //所過閏年數只算1900年之後的
temp2=year+temp1;
temp2=temp2%0x7; //為節省資源,先進行一次取余,避免數大於0xff,避免使用整型數據
temp2=temp2+day+table_week[month-1];
if (year%0x4==0&&month<3)temp2-=1;
week=temp2%0x7;
}
『捌』 我想用c51單片機加上LCD 1602液晶顯示板做萬年歷,求哪位大神給個c語言的程序.
你說的可能是我之前做的這種嘍,沒有時鍾晶元。
我之前做的,都可以調節,具有閏年補償功能,還有鬧鍾功能。
當然,這種萬年歷掉電後時間是不能保存的,上電後又重新來。
『玖』 單片機和lcd1602編寫萬年歷C語言程序,求高手啊
下面是我的程序,還有模擬圖,不懂可以再問我,祝你成功
/*******************************************
ds1302計時+lcd1602顯示
*******************************************/
#include<reg51.h>
#include<intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitrs=P2^0;
sbitrw=P2^1;
sbite=P2^2;
sbitT_RST=P1^5;
sbitT_CLK=P1^6;
sbitT_IO=P1^7;
sbitACC0=ACC^0;
sbitACC7=ACC^7;
/*******************************************
向1302寫一個位元組
*******************************************/
voidinput_BYTE(uchardat)
{
uchari;
ACC=dat;
for(i=8;i>0;i--)
{
T_IO=ACC0;
T_CLK=1;
T_CLK=0;
ACC=(ACC>>1);
}
}
/*******************************************
1302讀出一個位元組
*******************************************/
ucharoutput_BYTE()
{
uchari;
for(i=8;i>0;i--)
{
ACC=(ACC>>1);
ACC7=T_IO;
T_CLK=1;
T_CLK=0;
}
return(ACC);
}
/*******************************************
寫數據
*******************************************/
voidwrite_1302(ucharadd,uchardat)
{
T_RST=0;
T_CLK=0;
T_RST=1;
input_BYTE(add);
input_BYTE(dat);
T_CLK=1;
T_RST=0;
}
/*******************************************
讀數據
*******************************************/
ucharread_1302(ucharadd)
{
ucharinf;
T_RST=0;
T_CLK=0;
T_RST=1;
input_BYTE(add);
inf=output_BYTE();
T_CLK=1;
T_RST=0;
return(inf);
}
voidinit_1302()
{
write_1302(0x8e,0x00);//關閉防寫;
/*write_1302(0x90,0xaa);//設置充電方式;
write_1302(0x80,0x00);//秒寄存器初始化;
write_1302(0x82,0x46);//分.......
write_1302(0x84,0x22);//時.......
write_1302(0x86,0x17);//日........
write_1302(0x88,0x03);//月.......
write_1302(0x8a,0x04);//星期...
write_1302(0x8c,0x11);//年......*/
write_1302(0x8e,0x80);//打開防寫;
}
ucharcom,inf;
ucharcodetable[]="DS1302";
ucharcodetable1[]="0123456789";
ucharcodetable2[]="WEEK-";
voiddelay1(uchart)
{
ucharx,y;
for(x=t;x>0;x--)
for(y=110;y>0;y--);
}
/*******************************************
給1602寫指令
*******************************************/
voidwrite_com(ucharcom)
{
rs=0;
P0=com;
delay1(5);
e=1;
delay1(5);
e=0;
}
/*******************************************
給1602寫數據
*******************************************/
voidwrite_date(uchardate)
{
rs=1;
P0=date;
delay1(5);
e=1;
delay1(5);
e=0;
}
/*******************************************
1602初始化
*******************************************/
voinit()
{
e=0;
rw=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
/*******************************************
主函數
*******************************************/
voidmain()
{
uchari;
uchart_sec,sec1,sec2;
uchart_min,min1,min2;
uchart_hour,hour1,hour2;
uchart_mon,mon1,mon2;
uchart_day,day1,day2;
uchart_year,year1,year2;
ucharweek,week1;
ucharnum;
unit();
init_1302();
while(1)
{
t_sec=read_1302(0x81);//miao;
sec1=t_sec&0x0f;
sec2=(t_sec>>4);
t_min=read_1302(0x83);//fen;
min1=t_min&0x0f;
min2=(t_min>>4);
t_hour=read_1302(0x85);//shi;
hour1=t_hour&0x0f;
hour2=(t_hour>>4);
t_day=read_1302(0x87);//ri;
day1=t_day&0x0f;
day2=(t_day>>4);
t_mon=read_1302(0x89);//yue;
mon1=t_mon&0x0f;
mon2=(t_mon>>4);
week=read_1302(0x8b);//xingqi;
week1=week&0x0f;
t_year=read_1302(0x8d);//nian;
year1=t_year&0x0f;
year2=(t_year>>4);
write_com(0x80);
for(i=0;i<6;i++)
{
write_date(table[i]);
}
write_com(0x80+0x40);
for(i=0;i<5;i++)
{
write_date(table2[i]);
}
write_com(0x80+0x07);
write_date(table1[year2]);
write_com(0x80+0x08);
write_date(table1[year1]);
write_com(0x80+0x09);
write_date('/');
write_com(0x80+0x0a);
write_date(table1[mon2]);
write_com(0x80+0x0b);
write_date(table1[mon1]);
write_com(0x80+0x0c);
write_date('/');
write_com(0x80+0x0d);
write_date(table1[day2]);
write_com(0x80+0x0e);
write_date(table1[day1]);
write_com(0x80+0x40+0x05);
write_date(table1[week1]);
write_com(0x80+0x40+0x07);
write_date(table1[hour2]);
write_com(0x80+0x40+0x08);
write_date(table1[hour1]);
write_com(0x80+0x40+0x09);
write_date(':');
write_com(0x80+0x40+0x0a);
write_date(table1[min2]);
write_com(0x80+0x40+0x0b);
write_date(table1[min1]);
write_com(0x80+0x40+0x0c);
write_date(':');
write_com(0x80+0x40+0x0d);
write_date(table1[sec2]);
write_com(0x80+0x40+0x0e);
write_date(table1[sec1]);
}
}