?? 帶農(nóng)歷帶生肖.c
字號(hào):
/*****************************************************************************/
//調(diào)時(shí)用加1程序
void Set_time(unsigned char sel) //根據(jù)選擇調(diào)整的相應(yīng)項(xiàng)目加1并寫入DS12887
{
signed char address,item;
signed char max,mini;
LCM_WriteDatOrCom(0,0x9a);
LCM_WriteString("調(diào)整");
//if(sel==6) {LCM_WriteString("秒鐘");address=0x80; max=0;mini=0;} //秒7
if(sel==5) {LCM_WriteString("分鐘");address=0x82; max=59;mini=0;} //分鐘6
if(sel==4) {LCM_WriteString("小時(shí)");address=0x84; max=23;mini=0;} //小時(shí)5
if(sel==3) {LCM_WriteString("星期");address=0x8a; max=7;mini=1;} //星期4
if(sel==2) {LCM_WriteString("日期");address=0x86; max=31;mini=1;} //日3
if(sel==1) {LCM_WriteString("月份");address=0x88; max=12;mini=1;} //月2
if(sel==0) {LCM_WriteString("年份");address=0x8c; max=99; mini=0;} //年1
//讀取DS12CR887某地址上的數(shù)值賦給item
item=ds_read(address);
if(KEY_3 == 0)//K3-加
{
item++;//數(shù)加 1
}
if(KEY_4 == 0)//K4-減
{
item--;//數(shù)減 1
}
if(item>max)
item=mini;//查看數(shù)值有效范圍
if(item<mini)
item=max;
//將調(diào)整好的item值寫入DS12CR887
ds_write(address,item);//+
lcm_w_year(); //年
lcm_w_month(); //月
lcm_w_date(); //日
lcm_w_day(); //星期
lcm_w_hour(); //時(shí)
lcm_w_min(); //分
}
/*****************************************************************************/
/*DS12CR887驅(qū)動(dòng)程序----------------------------------------------------------*/
//往DS12CR887寫數(shù)據(jù)函數(shù)
void ds_write(uchar add,uchar date)
{
DS_CS=0;
DS_DS=1;
DS_RW=1;
DS_AS=1;
Ds_Bus=add;
DS_AS=0;
DS_RW=0;
Ds_Bus=date;
DS_RW=1;
DS_AS=1;
DS_CS=1;
}
//讀取DS12CR887的數(shù)據(jù)
uchar ds_read(uchar add)
{
uchar z;
DS_CS=0;
DS_RW=1;
DS_DS=1;
DS_AS=1;
Ds_Bus=add;
DS_AS=0;
DS_DS=0;
Ds_Bus=0xff;
z=Ds_Bus;
DS_DS=1;
DS_AS=1;
DS_CS=1;
return z;
}
//DS12CR887初始化
void ds_int()
{
DS_AS=0;
DS_DS=0;
DS_RW=0;
ds_write(0x0a,0x20);//DS12CR887寄存器A功能設(shè)置,開啟時(shí)鐘振蕩器
}
/*****************************************************************************/
//向LCM中填寫 年 數(shù)據(jù)
void LCM_w_yy(void){
//if(Read1302(0x8d) != yy){
yy = ds_read(9);
LCM_WriteDatOrCom(0,0x80);
LCM_WriteString("20");
LCM_WriteDatOrCom(0,0x81);
LCM_WriteDatOrCom(1,(yy/16)+0x30);
LCM_WriteDatOrCom(1,yy%16+0x30);
LCM_WriteDatOrCom(0,0x82);
LCM_WriteString("年");
nl();
}
/*****************************************************************************/
//向LCM中填寫 月 數(shù)據(jù)
void LCM_w_mo(void){
//if(Read1302(0x89) != mo){
mo = ds_read(8);
LCM_WriteDatOrCom(0,0x83);
if(mo/16 != 0){LCM_WriteDatOrCom(1,(mo/16)+0x30);} //十位消隱
else{LCM_WriteDatOrCom(1,0x20);}//同上
LCM_WriteDatOrCom(1,mo%16+0x30);
LCM_WriteDatOrCom(0,0x84);
LCM_WriteString("月");
nl();
}
/*****************************************************************************/
//星期處理并送入LCM的指定區(qū)域
void LCM_w_xq(void){
unsigned char sel;
//if(Read1302(0x8b) != xq){
xq = ds_read(6);
sel = (ds_read(6))%16; //字節(jié)低4位的BCD碼放入sel
LCM_WriteDatOrCom(0,0x97);//寫入指定區(qū)域(97H 第二行第8個(gè)字)
if(sel==7) {LCM_WriteString("日");} //
if(sel==6) {LCM_WriteString("六");} //
if(sel==5) {LCM_WriteString("五");} //
if(sel==4) {LCM_WriteString("四");} //
if(sel==3) {LCM_WriteDatOrCom(1,0xc8);LCM_WriteDatOrCom(1,0xfd);} //此指令等于LCM_WriteString("三"); 因?yàn)?quot;三"的內(nèi)碼失效。
if(sel==2) {LCM_WriteString("二");} //
if(sel==1) {LCM_WriteString("一");} //星期一
LCM_WriteDatOrCom(0,0x95);
LCM_WriteString("星周");
}
/*****************************************************************************/
//向LCM中填寫 日 數(shù)據(jù)
void LCM_w_dd(void){
// if(Read1302(0x87) != dd){
dd = ds_read(7);
LCM_WriteDatOrCom(0,0x85);
if(dd/16 != 0){LCM_WriteDatOrCom(1,(dd/16)+0x30);} //十位消隱
else{LCM_WriteDatOrCom(1,0x20);}//同上
LCM_WriteDatOrCom(1,dd%16+0x30);
LCM_WriteDatOrCom(0,0x86);
LCM_WriteString("日 ");
nl();
}
/*****************************************************************************/
//向LCM中填寫 小時(shí) 數(shù)據(jù)
void LCM_w_hh(void){
if(ds_read(0x85) != hh){
hh = ds_read(4);
if (hh > 0x07 && hh < 0x22 && w == 0){
beep = 0;
DelayM(100);
beep = 1;
}
}
LCM_WriteDatOrCom(0,0x88);
LCM_WriteDatOrCom(1,(hh/16)+0x30);
LCM_WriteDatOrCom(1,hh%16+0x30);
}
/*****************************************************************************/
//向LCM中填寫 分鐘 數(shù)據(jù)
void LCM_w_mm(void){
if(ds_read(2) != mm){
mm = ds_read(2);
if( w == 0){
days(); //節(jié)日顯示
updata (); //刷新數(shù)據(jù)
}
}
LCM_WriteDatOrCom(0,0x89);
LCM_WriteDatOrCom(1,0x3a); //":"
LCM_WriteDatOrCom(1,(mm/16)+0x30);
LCM_WriteDatOrCom(1,mm%16+0x30);
LCM_WriteDatOrCom(1,0x3a); //"."
}
/*****************************************************************************/
//刷新數(shù)據(jù)
void updata (void){
LCM_w_hh();//刷新 小時(shí)
LCM_w_dd();//刷新 日
LCM_w_xq();//更新星期值
LCM_w_mo();//刷新 月
LCM_w_yy();//刷新 年
nl();
}
/*****************************************************************************/
//向LCM中填寫 秒 數(shù)據(jù)
void LCM_w_ss(void){
unsigned int i=0;
unsigned char a=0,b=0,c=0;
if(ds_read(0) != ss){ //判斷是否需要更新
ss = ds_read(0); //更新數(shù)據(jù)
LCM_WriteDatOrCom(0,0x8b); //秒值在LCM上的寫入位置
LCM_WriteDatOrCom(1,(ss/16)+0x30); //寫十位
LCM_WriteDatOrCom(1,ss%16+0x30); //寫個(gè)位
LCM_w_mm();//刷新 分
nl();
LCM_WriteDatOrCom(0,0x8d); //溫度在LCM上的寫入位置
i=ReadTemperature();//讀溫度并送顯
a=i/100;
LCM_WriteDatOrCom(1,a+0x30); //顯示溫度十位
b=i/10-a*10;
LCM_WriteDatOrCom(1,b+0x30); //個(gè)位
LCM_WriteDatOrCom(1,0x2e); //"."
c=i-a*100-b*10;
LCM_WriteDatOrCom(1,c+0x30); //小位1位
LCM_WriteString("℃"); //度C
} }
/********陽(yáng)歷轉(zhuǎn)換陰歷********************************************************************/
code uchar year_code[597]={
0x04,0xAe,0x53, //1901 0
0x0A,0x57,0x48, //1902 3
0x55,0x26,0xBd, //1903 6
0x0d,0x26,0x50, //1904 9
0x0d,0x95,0x44, //1905 12
0x46,0xAA,0xB9, //1906 15
0x05,0x6A,0x4d, //1907 18
0x09,0xAd,0x42, //1908 21
0x24,0xAe,0xB6, //1909
0x04,0xAe,0x4A, //1910
0x6A,0x4d,0xBe, //1911
0x0A,0x4d,0x52, //1912
0x0d,0x25,0x46, //1913
0x5d,0x52,0xBA, //1914
0x0B,0x54,0x4e, //1915
0x0d,0x6A,0x43, //1916
0x29,0x6d,0x37, //1917
0x09,0x5B,0x4B, //1918
0x74,0x9B,0xC1, //1919
0x04,0x97,0x54, //1920
0x0A,0x4B,0x48, //1921
0x5B,0x25,0xBC, //1922
0x06,0xA5,0x50, //1923
0x06,0xd4,0x45, //1924
0x4A,0xdA,0xB8, //1925
0x02,0xB6,0x4d, //1926
0x09,0x57,0x42, //1927
0x24,0x97,0xB7, //1928
0x04,0x97,0x4A, //1929
0x66,0x4B,0x3e, //1930
0x0d,0x4A,0x51, //1931
0x0e,0xA5,0x46, //1932
0x56,0xd4,0xBA, //1933
0x05,0xAd,0x4e, //1934
0x02,0xB6,0x44, //1935
0x39,0x37,0x38, //1936
0x09,0x2e,0x4B, //1937
0x7C,0x96,0xBf, //1938
0x0C,0x95,0x53, //1939
0x0d,0x4A,0x48, //1940
0x6d,0xA5,0x3B, //1941
0x0B,0x55,0x4f, //1942
0x05,0x6A,0x45, //1943
0x4A,0xAd,0xB9, //1944
0x02,0x5d,0x4d, //1945
0x09,0x2d,0x42, //1946
0x2C,0x95,0xB6, //1947
0x0A,0x95,0x4A, //1948
0x7B,0x4A,0xBd, //1949
0x06,0xCA,0x51, //1950
0x0B,0x55,0x46, //1951
0x55,0x5A,0xBB, //1952
0x04,0xdA,0x4e, //1953
0x0A,0x5B,0x43, //1954
0x35,0x2B,0xB8, //1955
0x05,0x2B,0x4C, //1956
0x8A,0x95,0x3f, //1957
0x0e,0x95,0x52, //1958
0x06,0xAA,0x48, //1959
0x7A,0xd5,0x3C, //1960
0x0A,0xB5,0x4f, //1961
0x04,0xB6,0x45, //1962
0x4A,0x57,0x39, //1963
0x0A,0x57,0x4d, //1964
0x05,0x26,0x42, //1965
0x3e,0x93,0x35, //1966
0x0d,0x95,0x49, //1967
0x75,0xAA,0xBe, //1968
0x05,0x6A,0x51, //1969
0x09,0x6d,0x46, //1970
0x54,0xAe,0xBB, //1971
0x04,0xAd,0x4f, //1972
0x0A,0x4d,0x43, //1973
0x4d,0x26,0xB7, //1974
0x0d,0x25,0x4B, //1975
0x8d,0x52,0xBf, //1976
0x0B,0x54,0x52, //1977
0x0B,0x6A,0x47, //1978
0x69,0x6d,0x3C, //1979
0x09,0x5B,0x50, //1980
0x04,0x9B,0x45, //1981
0x4A,0x4B,0xB9, //1982
0x0A,0x4B,0x4d, //1983
0xAB,0x25,0xC2, //1984
0x06,0xA5,0x54, //1985
0x06,0xd4,0x49, //1986
0x6A,0xdA,0x3d, //1987
0x0A,0xB6,0x51, //1988
0x09,0x37,0x46, //1989
0x54,0x97,0xBB, //1990
0x04,0x97,0x4f, //1991
0x06,0x4B,0x44, //1992
0x36,0xA5,0x37, //1993
0x0e,0xA5,0x4A, //1994
0x86,0xB2,0xBf, //1995
0x05,0xAC,0x53, //1996
0x0A,0xB6,0x47, //1997
0x59,0x36,0xBC, //1998
0x09,0x2e,0x50, //1999 294
0x0C,0x96,0x45, //2000 297
0x4d,0x4A,0xB8, //2001
0x0d,0x4A,0x4C, //2002
0x0d,0xA5,0x41, //2003
0x25,0xAA,0xB6, //2004
0x05,0x6A,0x49, //2005
0x7A,0xAd,0xBd, //2006
0x02,0x5d,0x52, //2007
0x09,0x2d,0x47, //2008
0x5C,0x95,0xBA, //2009
0x0A,0x95,0x4e, //2010
0x0B,0x4A,0x43, //2011
0x4B,0x55,0x37, //2012
0x0A,0xd5,0x4A, //2013
0x95,0x5A,0xBf, //2014
0x04,0xBA,0x53, //2015
0x0A,0x5B,0x48, //2016
0x65,0x2B,0xBC, //2017
0x05,0x2B,0x50, //2018
0x0A,0x93,0x45, //2019
0x47,0x4A,0xB9, //2020
0x06,0xAA,0x4C, //2021
0x0A,0xd5,0x41, //2022
0x24,0xdA,0xB6, //2023
0x04,0xB6,0x4A, //2024
0x69,0x57,0x3d, //2025
0x0A,0x4e,0x51, //2026
0x0d,0x26,0x46, //2027
0x5e,0x93,0x3A, //2028
0x0d,0x53,0x4d, //2029
0x05,0xAA,0x43, //2030
0x36,0xB5,0x37, //2031
0x09,0x6d,0x4B, //2032
0xB4,0xAe,0xBf, //2033
0x04,0xAd,0x53, //2034
0x0A,0x4d,0x48, //2035
0x6d,0x25,0xBC, //2036
0x0d,0x25,0x4f, //2037
0x0d,0x52,0x44, //2038
0x5d,0xAA,0x38, //2039
0x0B,0x5A,0x4C, //2040
0x05,0x6d,0x41, //2041
0x24,0xAd,0xB6, //2042
0x04,0x9B,0x4A, //2043
0x7A,0x4B,0xBe, //2044
0x0A,0x4B,0x51, //2045
0x0A,0xA5,0x46, //2046
0x5B,0x52,0xBA, //2047
0x06,0xd2,0x4e, //2048
0x0A,0xdA,0x42, //2049
0x35,0x5B,0x37, //2050
0x09,0x37,0x4B, //2051
0x84,0x97,0xC1, //2052
0x04,0x97,0x53, //2053
0x06,0x4B,0x48, //2054
0x66,0xA5,0x3C, //2055
0x0e,0xA5,0x4f, //2056
0x06,0xB2,0x44, //2057
0x4A,0xB6,0x38, //2058
0x0A,0xAe,0x4C, //2059
0x09,0x2e,0x42, //2060
0x3C,0x97,0x35, //2061
0x0C,0x96,0x49, //2062
0x7d,0x4A,0xBd, //2063
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -