欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機LCD12864萬年歷源程序+Proteus仿真 年月日 星期 溫度顯示

  [復制鏈接]
跳轉到指定樓層
樓主
這是一個電子時鐘,具有顯示溫度調時,鬧鐘等功能。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include "reg52.h"                         //此文件中定義了單片機的一些特殊功能寄存器        
  2. #include<show.h>
  3. #include<beep.h>
  4. typedef unsigned int u16;          //對數據類型進行聲明定義
  5. typedef unsigned char u8;
  6. unsigned int  State=0;//讀時間標志
  7. sbit K1=P0^0;
  8. sbit K2=P0^1;
  9. sbit K3=P0^2;
  10. sbit K4=P0^3;
  11. sbit led2=P0^4;
  12. void delay(unsigned int ms);
  13. void button();//按鍵掃描函數
  14. void compare();//鬧鈴函?

  15. void alarmshow();
  16. unsigned char d;
  17. void delay(unsigned int ms)
  18.   {
  19.      while(ms--);//大約為10us
  20.   }


  21. void main()
  22. {
  23. u8 temperature[2];        
  24. Lcd_Initial();
  25. DS1302_Init();
  26. led2=0;
  27.         while(1)
  28.         {
  29.         if(State==0)DS1302_R();
  30.         button();
  31.         show();
  32.         compare();
  33.         Sensor_Fresh(temperature);        
  34.         Lcd_Temperture(temperature);

  35.         }               
  36. }

  37. unsigned int onf,kk;//鬧鐘開啟標志位
  38.         unsigned int State;
  39.   unsigned int SetPlace=0;//調時選擇標志位
  40.   unsigned int alack=0;//鬧鈴選擇標志位
  41.   unsigned int MH;        //月份選擇
  42.   unsigned int YB;//年份標志
  43.   unsigned char a1,a2,a3,a4,a5;
  44.   unsigned char a6,a7,a8,a9;

  45. void button()
  46. {
  47.   if(a1==0)
  48.   {
  49.   if(K1==0&&a9==1)
  50.   {
  51.   delay(1000);
  52.   if(K1==0&&a9==1){d=0;a9=0;a8=0;a=0;AFlag[alack]=1;}
  53.   while(!K1);         
  54.   }
  55. if(K1==0&&a2==0)
  56.   {
  57.   delay(1000);
  58.   if(K1==0&&a2==0){;}
  59.   while(!K1);         
  60.   }
  61.   if(K1==0&&a2==1){
  62.   delay(1000);
  63.   if(K1==0&&a2==1){
  64.   led2=~led2;a4=0;DS1302_Init();a2=0;a5=0;CFlag[SetPlace]=1;}while(!K1);}
  65.   }

  66.   if(a3==0)
  67. {
  68.   if(K2==0&&a4==0)                                                                                                                                          
  69.   {
  70.   delay(1000);
  71.   if(K2==0&&a4==0){State=~State;a4=1;a2=1;}
  72.   while(!K2);
  73.   }
  74.     if(K2==0&&a4==1)                                                                                                                                          
  75.   {
  76.   delay(1000);
  77.   if(K2==0&&a4==1){SetPlace++;CFlag[SetPlace]=0;CFlag[SetPlace-1]=1;if(SetPlace>7)SetPlace=0;a5=1;}
  78.   while(!K2);
  79.   }
  80. }
  81. if(a6==0)
  82. {
  83.   if(K3==0&&a5==0)
  84.   {
  85.   delay(1000);
  86.   if(K3==0&&a5==0){a=1;alack++;AFlag[alack]=0;AFlag[alack-1]=1;if(alack>3)alack=0;
  87.   d=1;a8=1;}while(!K3);}
  88.   if(K3==0&&a5==1)
  89.   {
  90.   delay(1000);
  91.   if(K3==0&&a5==1){TIME[(SetPlace-1)]++;
  92.   if((TIME[(SetPlace-1)]&0x0f)>9)TIME[(SetPlace-1)]=TIME[(SetPlace-1)]+6;
  93.   if(SetPlace<=2&&TIME[(SetPlace-1)]>=0x60){TIME[(SetPlace-1)]=0;}
  94.   if(SetPlace==3&&TIME[(SetPlace-1)]>=0x24){TIME[(SetPlace-1)]=0;}
  95.   if(SetPlace==4&&(TIME[4]==1||TIME[4]==3
  96.   ||TIME[4]==5||TIME[4]==7||TIME[4]==8)&&TIME[SetPlace-1]>0x31){TIME[SetPlace-1]=1;}
  97.   if(SetPlace==4&&(TIME[4]==4||TIME[4]==6
  98.   ||TIME[4]==9)&&TIME[SetPlace-1]>0x30){TIME[SetPlace-1]=1;}
  99.   if(SetPlace==5&&TIME[SetPlace-1]>0x12){TIME[SetPlace-1]=1;}
  100.   if(SetPlace==6&&TIME[SetPlace-1]>0x07){TIME[SetPlace-1]=1;}
  101.   if(SetPlace==7&&TIME[SetPlace-1]>0x99){TIME[SetPlace-1]=0;}
  102.    if(TIME[4]==2&&twoflag==0&&TIME[SetPlace-1]>0x28)TIME[SetPlace-1]=0x01;
  103.    if(TIME[4]==2&&twoflag==1&&TIME[SetPlace-1]>0x29)TIME[SetPlace-1]=0x01;
  104.   
  105.    }
  106.   while(!K3);
  107.   }
  108. }
  109.    if(a7==0)
  110. {

  111.   if(K4==0&&a5==1)
  112.   {
  113.   delay(1000);
  114.   if(K4==0&&a5==1){TIME[(SetPlace-1)]--;
  115.   if((TIME[(SetPlace-1)]&0x0f)>9)TIME[(SetPlace-1)]=TIME[(SetPlace-1)]-6;
  116.   if((TIME[4]==4||TIME[4]==6||TIME[4]==9)&&(TIME[SetPlace-1]<0x01))TIME[SetPlace-1]=0x30;
  117.   if((TIME[4]==1||TIME[4]==3||TIME[4]==5)&&(TIME[SetPlace-1]<0x01))TIME[SetPlace-1]=0x31;
  118.   if(TIME[4]==2&&twoflag==1&&TIME[SetPlace-1]<0x01)TIME[SetPlace-1]=0x29;
  119.   if(TIME[4]==2&&twoflag==0&&TIME[SetPlace-1]<0x01)TIME[SetPlace-1]=0x28;
  120.   }
  121.   while(!K4);
  122.   }
  123. if(K4==0&&a8==1)
  124.   {
  125.   delay(1000);
  126.   if(K4==0&&a8==1){alck[(alack-1)]++;
  127.   if((alck[(alack-1)]&0x0f)>9)alck[(alack-1)]=alck[(alack-1)]+6;
  128.   if(alack<=2){if(alck[(alack-1)]>=0x60){alck[(alack-1)]=0;}}
  129.   if(alack==3&&alck[alack-1]>=0x24){alck[(alack-1)]=0;}a9=1;
  130.   }
  131.   while(!K4);
  132.   }
  133. }
  134. if(K4==0&&kk==0)
  135.   {
  136.   delay(1000);
  137.   if(K4==0&&kk==0){onf=~onf;  led2=~led2;
  138.   }
  139.   while(!K4);
  140.   }

  141. }

  142. void compare()
  143. {
  144. if(!onf){
  145. ……………………

  146. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
設計.rar (1.55 MB, 下載次數: 210)


評分

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

查看全部評分

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

使用道具 舉報

無效樓層,該帖已經被刪除
板凳
ID:891154 發表于 2021-7-15 20:38 | 只看該作者
SetPlace++;是什么意思
回復

使用道具 舉報

無效樓層,該帖已經被刪除
5#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表