久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3409|回復: 1
打印 上一主題 下一主題
收起左側

51單片機農歷時鐘Proteus仿真圖與程序 LCD12864顯示

[復制鏈接]
跳轉到指定樓層
樓主
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include <REGX52.H>
  2. #define        uint unsigned int
  3. #define        uchar unsigned char
  4. #include <zm.h>
  5. #include <_12864.H>
  6. #include <nongLi.h>
  7. init_time0(){
  8.         TMOD=0x01;
  9.         EA=ET0=TR0=1;
  10. }
  11. char c=0,sec=0,min=0,hour=12,day=12,mon=6,year=109;
  12. char week;
  13. bit flag,newShow=1;

  14. time0()interrupt 1        //定時器0中斷
  15. {
  16.         TL0=(65536-5*110592/12)%256;
  17.         TH0=(65536-5*110592/12)/256;
  18.         c++;
  19.         if(c>=20)c=0,flag=1;   //1秒時間到
  20. }
  21. //
  22. DateAdd(){
  23.         if(flag){                  //如果到1秒則執行時間更新
  24.                 flag=0;        sec++;           //秒
  25.                 if(sec==60){
  26.                         sec=0; min++;  //分
  27.                         newShow=1;                 //每秒刷新一次顯示
  28.                         if(min==60){
  29.                                 min=0;hour++;  //時
  30.                                 if(hour==24){
  31.                                         hour=0;day++;         //日
  32.                                         if(day>MonArr[LeapYear(year)][mon]){
  33.                                                 day=1; mon++;        //月
  34.                                                 if(mon==13){
  35.                                                         mon=1;year++;        //年
  36.                                                 }
  37.                                         }
  38.                                 }
  39.                         }
  40.                 }
  41.         }
  42. }
  43. #include <key.h>

  44. void main(){
  45.         init_time0();
  46.         Init12864();
  47.         while(1){
  48.                 keyCom();  //按鍵處理
  49.                 DateAdd();         //每秒更新新時鐘
  50.                 if(newShow){
  51.                         newShow=0;
  52.                         /** 農歷顯示 **/
  53.                         getNongLi(year,mon,day);        //獲取農歷日期
  54.                         //顯示天干地支,生肖
  55.                         showXY(0,66,15,2,TianGan_Table[(NL.year)%10]);
  56.                         showXY(0,82,15,2,DiZhi_Table[(NL.year)%12]);
  57.                         showXY(0,110,15,2,ShengXiao_Table[(NL.year)%12]);
  58.                         //農歷月份
  59.                         if(NL.mon==1)showStr(2,64,"正");
  60.                         else showXY(2,64,15,2,nlMonCode[NL.mon-1]);
  61.                         showStr(2,80,"月");
  62.                         //農歷日
  63.                         if(NL.day<11)showStr(2,96,"初");          //十位
  64.                         else if(NL.day<20)showStr(2,96,"十");
  65.                         else if(NL.day<30)showStr(2,96,"廿");
  66.                         else showStr(2,96,"三");
  67.                
  68.                         if(NL.day%10==0)showStr(2,112,"十");  //個位
  69.                         else  showXY(2,112,15,2,nlMonCode[NL.day%10-1]);
  70.                         
  71.                         /** 公歷顯示 **/
  72.                         showXY(0,0,20,5,zm20x40_Table[day/10]);        //大字
  73.                         showXY(0,20,20,5,zm20x40_Table[day%10]);
  74.                         showStr(2,40,"日");
  75.                         showNum8x16(6,0,(1901+year)/100);        //年
  76.                         showNum8x16(6,16,(1901+year)%100);
  77.                         showStr(6,32,"年");
  78.                         showNum8x16(6,48,mon);showStr(6,64,"月"); //月

  79.                         showStr(5,80,"星期");                           //星期
  80.                         week=getWeek(year,mon,day);
  81.                         if(week==6)showStr(5,112,"日");
  82.                         else showXY(5,112,15,2,nlMonCode[week]);

  83.                         showXY(7,92,5,1,zm5x8_Table[10]);        //冒號
  84.                         showXY(7,110,5,1,zm5x8_Table[10]);
  85.                           switch(keyCount){                                   //設置時,反白處理
  86.                                 case 1:notShow(6,2,0,32);break;        //年反白
  87.                                 case 2:notShow(6,2,48,16);break;//月反白
  88.                                 case 3:notShow(0,5,0,40);break;        //日反白                        
  89.                         }
  90.                         rect(0,0,40,60); rect(34,60,35,127); //畫線條
  91.                 }
  92.                 //時分秒
  93.                 if(c>15&&keyCount>3){           //設置時閃爍處理
  94.                         if(keyCount==4){
  95.                                 showXY(7,81,5,1,zm5x8_Table[11]);//時
  96.                                 showXY(7,87,5,1,zm5x8_Table[11]);
  97.                         }
  98.                         else if(keyCount==5){
  99.                                 showXY(7,99,5,1,zm5x8_Table[11]);//分
  100.                                 showXY(7,105,5,1,zm5x8_Table[11]);
  101.                         }
  102.                         else if(keyCount==6){
  103.                                 showXY(7,116,5,1,zm5x8_Table[11]);//秒
  104.                                 showXY(7,122,5,1,zm5x8_Table[11]);
  105.                         }
  106.                 }
  107.                 else {                                           //時分秒正常顯示
  108.                         showNum5x8(7,81,hour);
  109.                         showNum5x8(7,99,min);
  110.                         showNum5x8(7,116,sec);
  111.                 }
  112.         }
  113. }
復制代碼

Proteus7.5版本的工程文件和程序下載:
農歷鐘.zip (36.77 KB, 下載次數: 72)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:102963 發表于 2021-8-1 12:21 | 只看該作者
農歷部分程序有問題,2021年7月30日,農歷是六月二十一!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 九色av| 国产精品久久一区二区三区 | 久久青| 欧美 日韩 视频 | 中文字幕在线播放第一页 | 干狠狠| 久久久久亚洲精品 | 成人av片在线观看 | 欧美一区二区三区在线观看视频 | 久久久久久久国产精品影院 | 亚洲一区二区欧美 | 久久大陆 | 精品美女视频在线观看免费软件 | 最新91在线| 影视一区| 99久久久99久久国产片鸭王 | 精品一区二区三区免费视频 | 精品在线一区二区 | 国产精品婷婷 | 国产欧美视频一区二区三区 | 国产激情毛片 | 日韩中文字幕一区 | 亚洲视频自拍 | 精品一区二区三区免费毛片 | 久久国产精品一区 | 国产精品入口麻豆www | 综合久久久 | 精品国产一区探花在线观看 | 国产午夜精品理论片a大结局 | 亚洲欧美激情网 | 男人天堂网址 | 91丨国产| 精品一区二区电影 | 久久久av一区| 一区二区三区欧美 | 亚洲福利一区 | 精品乱子伦一区二区三区 | 亚洲人在线| 国产精品毛片一区二区三区 | 天天综合网91 | 色综合久久久久 |