久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
pic單片機做的萬年歷
[打印本頁]
作者:
jinsheng7533967
時間:
2019-1-17 14:03
標題:
pic單片機做的萬年歷
pic.jpg
(852.57 KB, 下載次數: 168)
下載附件
2019-1-17 14:02 上傳
#include <pic.h>
#include "ziku.h"
#include "lcd_init.h"
#include "ds1302.h"
#include "ds18b20.h"
#include "keyscan.h"
#include "yinli.h"
uch jj,ii;
//子程序
//LCD顯示空白邊框子程序
void LCDShowTable()
{
uch i;
SlectScreen(1); //寫左半屏
SetLine(0); //起使頁
SetColumn(0); //起使列
for(i=0;i<64;i++)
{
if((i==0)||(i==63))WriteData(0xff);//第1、63列豎線
else WriteData(0x01); //最上面一行線
}
for(i=1;i<7;i++)
{
SetLine(i);
SetColumn(0);
WriteData(0xff); //豎線
SetColumn(63);
WriteData(0xff); //豎線
}
SetLine(7);
SetColumn(0);
for(i=0;i<64;i++)
{
if((i==0)||(i==63))WriteData(0xff);
else WriteData(0x80); //最下面的橫線
}
SlectScreen(2);//寫右半屏
SetLine(0);
SetColumn(0);
for(i=0;i<64;i++)
{
if(i==63)WriteData(0xff);
else WriteData(0x01);
}
SetLine(4);
SetColumn(0);
for(i=0;i<64;i++)
{
if(i==63)WriteData(0xff);
else WriteData(0x01);
}
for(i=1;i<7;i++)
{
SetLine(i);
SetColumn(63);
WriteData(0xff);
}
SetLine(7);
SetColumn(0);
for(i=0;i<64;i++)
{
if(i==63)WriteData(0xff);
else WriteData(0x80);
}
}
/*----------------------------------------------------------*/
//顯示固定字符子程序
void LCDShowGudingWord()
{
Show8X16(0,80,maohao,1);
Show8X16(0,104,maohao,1);
Show16X16(6,80,yue,2);
Show16X16(0,40,nian,1);
Show16X16(4,2,yue,0);
Show16X16(6,8,xing,2);
Show16X16(6,24,qi,2);
Show16X16(2,96,danwei1,0);
Show8X16(0,8,s2,1);
Show8X16(0,16,s0,1);
}
/*----------------------------------------------------------*/
void TMR0init()
{
T0CS=0;
PSA=0;
PS2=1;
PS1=1;
PS0=1;
TMR0=0x80;
T0IE=1;
T0IF=0;
}
//冒號閃爍子程序
void FlashMaohao()
{
static uch timecount1;
static int timecount2;
if(TMR0IF==1)
{
TMR0=0x80;
TMR0IF=0;
timecount1++;
timecount2++;
if(timecount1==10)
{
flag++;
flag=flag%2; //閃爍標志在0-1間翻轉
timecount1=0;
}
if(timecount2==1200)//1分鐘采樣一次溫度
{
timecount2=0;
get_temp(); //溫度轉換子程序
}
}
if(flag==0)
{
Show8X16(0,80,maohao,1);
Show8X16(0,104,maohao,1);
}
if(flag==1)
{
Show8X16(0,80,noshu,1);//清除
Show8X16(0,104,noshu,1);
}
}
void Naoling()
{
if(kk==1)
{
if(RD3==0)
{
jj++;
jj=jj%4;
while(1)
{
if(RD3==1)break;
}
}
if(jj==1)
{
Naoling_hour_1= Naoling_hour;
Naoling_minute_1=Naoling_minute;
RC4=1;
RC6=0;
RC7=0;
}
if(jj==2)
{
Naoling_hour_2= Naoling_hour;
Naoling_minute_2=Naoling_minute;
RC4=0;
RC6=1;
RC7=0;
}
if(jj==3)
{
Naoling_hour_3= Naoling_hour;
Naoling_minute_3=Naoling_minute;
RC4=0;
RC6=0;
RC7=1;
}
}
}
void NaolingXiang()
{
int i;
if((kk==1)&&(Naoling_hour_1==clock[2])&&(Naoling_minute_1==clock[1]))
{
RC5=1;
for(i=0;i<100;i++);
RC5=0;
for(i=0;i<500;i++);
}
if((kk==1)&&(Naoling_hour_2==clock[2])&&(Naoling_minute_2==clock[1]))
{
RC5=1;
for(i=0;i<100;i++);
RC5=0;
for(i=0;i<200;i++);
}
if((kk==1)&&(Naoling_hour_3==clock[2])&&(Naoling_minute_3==clock[1]))
{
RC5=1;
for(i=0;i<200;i++);
RC5=0;
for(i=0;i<500;i++);
}
}
//查詢子程序
void chaxun()
{
if(RD3==0)
{
ii++;
ii=ii%2;
}
while(1)
{
if(RD3==1)break;
}
if(ii==1)
{
KeyScan();
}
}
//主程序
void main()
{
keyinit(); //鍵盤初始化
LCDinit(); //LCD操作初始化
LCDShowTable(); //顯示空白表格
LCDShowGudingWord(); //顯示固定字符
get_temp(); //讀取溫度
TMR0init();
while(1)
{
v_Get1302(clock); //讀取時間、日歷
display();
FlashMaohao(); //冒號閃爍
KeyScan(); //鍵盤掃描
GetWeek(clock[6]+2000,clock[4],clock[3]);
GetChinaCalendar(clock[6]+2000,clock[4],clock[3]);
//Naoling();
//NaolingXiang();
chaxun();
}
}
作者:
chenkl1996
時間:
2019-1-17 15:24
好漂亮的萬年歷 有仿真源碼工程包嗎?
作者:
jinsheng7533967
時間:
2019-1-21 16:04
#include "ziku.h"
#include "lcd_init.h"
#include "ds1302.h"
#include "ds18b20.h"
#include "keyscan.h"這些你不知道怎么編嗎?壇子里都有大把現成的例子!
頂多給你一份陰歷的內容
/***************************************************
* 標題:公歷與陰歷、星期轉換 * *
* 日期:2019年1月18日 *
* 說明:陰歷日期與星期隨公歷變化 *
***************************************************/
const uch year_code[]=
{
0x04,0xAe,0x53, //1901
0x0A,0x57,0x48, //1902
0x55,0x26,0xBd, //1903
0x0d,0x26,0x50, //1904
0x0d,0x95,0x44, //1905
0x46,0xAA,0xB9, //1906
0x05,0x6A,0x4d, //1907
0x09,0xAd,0x42, //1908
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
0x0d,0x4A,0x51, //2064
0x0d,0xA5,0x45, //2065
0x55,0xAA,0xBA, //2066
0x05,0x6A,0x4e, //2067
0x0A,0x6d,0x43, //2068
0x45,0x2e,0xB7, //2069
0x05,0x2d,0x4B, //2070
0x8A,0x95,0xBf, //2071
0x0A,0x95,0x53, //2072
0x0B,0x4A,0x47, //2073
0x6B,0x55,0x3B, //2074
0x0A,0xd5,0x4f, //2075
0x05,0x5A,0x45, //2076
0x4A,0x5d,0x38, //2077
0x0A,0x5B,0x4C, //2078
0x05,0x2B,0x42, //2079
0x3A,0x93,0xB6, //2080
0x06,0x93,0x49, //2081
0x77,0x29,0xBd, //2082
0x06,0xAA,0x51, //2083
0x0A,0xd5,0x46, //2084
0x54,0xdA,0xBA, //2085
0x04,0xB6,0x4e, //2086
0x0A,0x57,0x43, //2087
0x45,0x27,0x38, //2088
0x0d,0x26,0x4A, //2089
0x8e,0x93,0x3e, //2090
0x0d,0x52,0x52, //2091
0x0d,0xAA,0x47, //2092
0x66,0xB5,0x3B, //2093
0x05,0x6d,0x4f, //2094
0x04,0xAe,0x45, //2095
0x4A,0x4e,0xB9, //2096
0x0A,0x4d,0x4C, //2097
0x0d,0x15,0x41, //2098
0x2d,0x92,0xB5, //2099
};
bank1 uch day_code1[9]={0x0,0x1f,0x3b,0x5a,0x78,0x97,0xb5,0xd4,0xf3};
bank1 uch day_code2[3]={0x111,0x130,0x14e};
bank1 uch table_week[12]={0,3,3,6,1,4,6,2,5,0,3,5}; //月修正數據表
/*********************************************************************************************************
** 函數名稱:GetWeek
** 功能描述:輸入公歷日期得到星期(只允許2000-2099年)
** 輸 入: year 公歷年
** month 公歷月
** day 公歷日
**
** 輸 出: 無
** 作 者: wujie
** 修 改: wujie
** 日 期: 2008年05月06日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void GetWeek(
unsigned int year,
unsigned char month,
unsigned char day
)
{
unsigned char xingqi;
unsigned int temp2;
unsigned char yearH,yearL;
yearH=year/100; yearL=year%100;
// 如果為21世紀,年份數加100
if (yearH>19) yearL+=100;
// 所過閏年數只算1900年之后的
temp2=yearL+yearL/4;
temp2=temp2%7;
temp2=temp2+day+table_week[month-1];
if (yearL%4==0&&month<3) temp2--;
xingqi=(temp2%7+1);
ChangeToLCD4(6,40,xingqi);
}
//*********************************************************************************************************
/****************************************************************************
* 子函數,用于讀取數據表中農歷月的大月或小月,如果該月為大返回1,為小返回0
****************************************************************************/
unsigned char GetMoonDay(unsigned char month_p,unsigned short table_addr)
{
switch (month_p)
{
case 1:
if((year_code[table_addr]&0x08)==0) return(0);
else return(1);
case 2:
if((year_code[table_addr]&0x04)==0) return(0);
else return(1);
case 3:
if((year_code[table_addr]&0x02)==0) return(0);
else return(1);
case 4:
if((year_code[table_addr]&0x01)==0) return(0);
else return(1);
case 5:
if((year_code[table_addr+1]&0x80)==0) return(0);
else return(1);
case 6:
if((year_code[table_addr+1]&0x40)==0) return(0);
else return(1);
case 7:
if((year_code[table_addr+1]&0x20)==0) return(0);
else return(1);
case 8:
if((year_code[table_addr+1]&0x10)==0) return(0);
else return(1);
case 9:
if((year_code[table_addr+1]&0x08)==0) return(0);
else return(1);
case 10:
if((year_code[table_addr+1]&0x04)==0) return(0);
else return(1);
case 11:
if((year_code[table_addr+1]&0x02)==0) return(0);
else return(1);
case 12:
if((year_code[table_addr+1]&0x01)==0) return(0);
else return(1);
case 13:
if((year_code[table_addr+2]&0x80)==0) return(0);
else return(1);
}
return(0);
}
/*********************************************************************************************************
** 函數名稱:GetChinaCalendar
** 功能描述:公農歷轉換(只允許1901-2099年)
** 輸 入: year 公歷年
** month 公歷月
** day 公歷日
**
** 輸 出: 1 成功
** 0 失敗
** 作 者: wujie
** 修 改: wujie
** 日 期: 2007年05月06日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
unsigned char GetChinaCalendar(
unsigned int year,
unsigned char month,
unsigned char day
)
{
uch NLmonth,NLday;
unsigned char temp1,temp2,temp3,month_p,yearH,yearL;
unsigned char flag_y;
unsigned short temp4,table_addr;
yearH=year/100; yearL=year%100;
if((yearH!=19)&&(yearH!=20)) return(0);
//定位數據表地址
if(yearH==20) table_addr=(yearL+100-1)*3;
else table_addr=(yearL-1)*3;
// 取當年春節所在的公歷月份
temp1=year_code[table_addr+2]&0x60;
temp1>>=5;
// 取當年春節所在的公歷日
temp2=year_code[table_addr+2]&31;
// 計算當年春年離當年元旦的天數,春節只會在公歷1月或2月
if(temp1==1) temp3=temp2-1;
else temp3=temp2+31-1;
//計算公歷日離當年元旦的天數
if (month<10) temp4=day_code1[month-1]+day-1;
else temp4=day_code2[month-10]+day-1;
// 如果公歷月大于2月并且該年的2月為閏月,天數加1
if ((month>2)&&(yearL%4==0)) temp4++;
// 判斷公歷日在春節前還是春節后
if (temp4>=temp3)
{
temp4-=temp3;
month=1;
month_p=1;
flag_y=0;
if(GetMoonDay(month_p,table_addr)==0) temp1=29; //小月29天
else temp1=30; //大小30天
// 從數據表中取該年的閏月月份,如為0則該年無閏月
temp2=year_code[table_addr]/16;
while(temp4>=temp1)
{
temp4-=temp1;
month_p++;
if(month==temp2)
{
flag_y=~flag_y;
if(flag_y==0)month++;
}
else month++;
if(GetMoonDay(month_p,table_addr)==0) temp1=29;
else temp1=30;
}
day=temp4+1;
}
// 公歷日在春節前使用下面代碼進行運算
else
{
temp3-=temp4;
if (yearL==0)
{
yearL=100-1;
yearH=19;
}
else yearL--;
table_addr-=3;
month=12;
temp2=year_code[table_addr]/16;
if (temp2==0) month_p=12;
else month_p=13;
flag_y=0;
if(GetMoonDay(month_p,table_addr)==0) temp1=29;
else temp1=30;
while(temp3>temp1)
{
temp3-=temp1;
month_p--;
if(flag_y==0) month--;
if(month==temp2) flag_y=~flag_y;
if(GetMoonDay(month_p,table_addr)==0) temp1=29;
else temp1=30;
}
day=temp1-temp3+1;
}
NLmonth=month;
NLday=day;
ChangeToLCD6(6,64,NLmonth);
ChangeToLCD7(6,95,NLday);
return(1);
}
作者:
shuisheng
時間:
2019-1-26 18:50
也來學習了,真的好棒!
作者:
#include51.h
時間:
2019-2-7 15:08
好漂亮啊!好精致啊
作者:
春風十里吹
時間:
2019-2-19 19:20
不錯不錯,謝謝!
作者:
zhengchong60
時間:
2019-3-7 22:59
確實做的很不錯,收下了
作者:
喜悅的春天66
時間:
2019-3-19 16:52
好漂亮的,學習學習
作者:
cck314
時間:
2019-9-7 23:35
高手高手,向你學習
作者:
bbb168
時間:
2019-9-27 14:52
正需要,謝謝。
作者:
hlmfox
時間:
2019-10-22 11:57
厲害啊,做的不錯哈
作者:
無難
時間:
2019-10-27 14:37
太強了
作者:
wxbdcmh
時間:
2020-4-1 22:10
確實做的很不錯
作者:
zydl123
時間:
2021-11-26 11:04
確實做的很不錯,頂你!
作者:
GEECGYJ
時間:
2022-2-15 08:54
沒有附上工程文件嗎?
作者:
Martinku
時間:
2022-2-16 08:26
樓主發個打包的完整程序,這樣太散了。
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
欧美一级在线
|
成人在线h
|
国产乱一区二区三区视频
|
午夜精品福利视频
|
91精品国产综合久久精品
|
亚洲综合在线一区二区
|
成人国产精品入口免费视频
|
亚洲一区免费视频
|
国产一级片
|
日韩天堂av
|
国产精品免费一区二区三区四区
|
91久操视频
|
伊人免费在线观看
|
成人免费视频网站
|
国产成人精品在线播放
|
国产精品久久久久久久白浊
|
免费三级av
|
男人阁久久
|
国产99视频精品免费播放照片
|
国产69久久精品成人看动漫
|
亚洲第一av网站
|
久久精品色欧美aⅴ一区二区
|
999观看免费高清www
|
亚洲 欧美 日韩 在线
|
在线视频一区二区三区
|
欧美日韩国产精品一区二区
|
欧美精品在线视频
|
av在线黄
|
亚洲精品日韩一区二区电影
|
人人精品
|
亚洲一区二区三区
|
亚洲一一在线
|
青青久在线视频
|
亚洲人成一区二区三区性色
|
欧美一级大片
|
亚洲成人精品
|
中文字幕精品视频
|
亚洲欧美一区二区在线观看
|
国产精品一区二区三区在线
|
中文字幕国
|
久久久久国产精品一区二区
|