分享一個1602萬年歷,全套資料在附件,源代碼+仿真+原理圖+ PCB(可以直接打板)。喜歡動手的可以做,資料齊全,簡單易弄。
1552033629903.jpg (65.69 KB, 下載次數: 95)
下載附件
2019-3-8 16:32 上傳
原理圖及仿真
1552033631827.jpg (68.19 KB, 下載次數: 106)
下載附件
2019-3-8 16:33 上傳
1552033636697.jpg (59.55 KB, 下載次數: 87)
下載附件
2019-3-8 16:43 上傳
PCB
QQ截圖20190308161511.png (80.1 KB, 下載次數: 102)
下載附件
2019-3-8 16:34 上傳
QQ截圖20190308161531.png (62.42 KB, 下載次數: 92)
下載附件
2019-3-8 16:34 上傳
QQ截圖20190308161604.png (160.23 KB, 下載次數: 88)
下載附件
2019-3-8 16:34 上傳
源代碼
- #include<reg52.h>
- #include <string.h>
- #include <intrins.h>
- #define uint unsigned int
- #define uchar unsigned char
- #define wd 1 //定義是否有溫度功能 =0時無溫度,=1時有溫度
- #define yh 0x80 //LCD第一行的初始位置,因為LCD1602字符地址首位D7恒定為1(100000000=80)
- #define er 0x80+0x40 //LCD第二行初始位置(因為第二行第一個字符位置地址是0x40)
- //液晶屏的與C51之間的引腳連接定義(顯示數據線接C51的P0口)
- sbit en=P2^6;
- sbit rw=P2^5; //如果硬件上rw接地,就不用寫這句和后面的rw=0了
- sbit rs=P2^4;
- //校時按鍵與C51的引腳連接定義
- sbit menu=P3^0; //菜單鍵
- sbit set=P3^1; //設置鍵
- sbit add=P3^2; //加鍵
- sbit dec=P3^3; //減鍵
- sbit ensure=P3^4; //確認鍵
- sbit DQ=P2^0; //
- sbit buzzer=P1^4; //蜂鳴器,通過三極管8550驅動,端口低電平響
- sbit led=P2^4; //LCD背光開關
- bit led1=1;
- unsigned char temp_miao;
- unsigned char bltime; //背光亮的時間
- //DS1302時鐘芯片與C51之間的引腳連接定義
- sbit IO=P1^1;
- sbit SCLK=P1^2;
- sbit RST=P1^0;
- uchar a,miao,shi,fen,ri,yue,nian,week,setn,temp;
- uint flag;
- //flag用于讀取頭文件中的溫度值,和顯示溫度值
- bit c_moon;
- uchar nz_shi=12,nz_fen=0,nz_miao=0,setNZn; //定義鬧鐘變量
- uchar shangyimiao,bsn,temp_hour; //記錄上一秒時間
- uchar T_NL_NZ=0; //計數器
- bit timerOn=0; //鬧鐘啟用標志位
- bit baoshi=0; //整點報時標志位
- bit p_r=0; //平年/潤年 =0表示平年,=1表示潤年
- data uchar year_moon,month_moon,day_moon,week;
- sbit ACC0=ACC^0;
- sbit ACC7=ACC^7;
- /************************************************************
- ACC累加器=A
- ACC.0=E0H
- ACC.0就是ACC的第0位。Acc可以位尋址。
- 累加器ACC是一個8位的存儲單元,是用來放數據的。但是,這個存儲單元有其特殊的地位,
- 是單片機中一個非常關鍵的單元,很多運算都要通過ACC來進行。以后在學習指令時,
- 常用A來表示累加器。但有一些地方例外,比如在PUSH指令中,就必須用ACC這樣的名字。
- 一般的說法,A代表了累加器中的內容、而ACC代表的是累加器的地址。
- ***************************************************************/
- //********陽歷轉換陰歷表************************************
- /*
- 公歷年對應的農歷數據,每年三字節,
- 格式第一字節BIT7-4 位表示閏月月份,值為0 為無閏月,BIT3-0 對應農歷第1-4 月的大小
- 第二字節BIT7-0 對應農歷第5-12 月大小,第三字節BIT7 表示農歷第13 個月大小
- 月份對應的位為1 表示本農歷月大(30 天),為0 表示小(29 天)
- 第三字節BIT6-5 表示春節的公歷月份,BIT4-0 表示春節的公歷日期
- */
- 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
復制代碼
全部資料51hei下載地址:
1602萬年歷.rar
(3.09 MB, 下載次數: 452)
2019-3-8 16:40 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|