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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5377|回復: 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++;是什么意思
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人欧美一区二区三区黑人孕妇 | 97精品视频在线观看 | 亚洲一区二区免费视频 | 欧美成人在线网站 | 欧美一级片在线播放 | 视频在线亚洲 | 免费在线观看av的网站 | 成人精品一区二区户外勾搭野战 | 99tv成人影院| 狠狠色狠狠色综合日日92 | 9191在线观看| 亚洲精品亚洲人成人网 | 中国美女一级黄色片 | 午夜丁香视频在线观看 | 天堂一区二区三区四区 | 日韩电影一区二区三区 | 日韩国产在线观看 | 91久久| 日韩av在线中文字幕 | 久久久久久亚洲精品 | 久久精品亚洲精品国产欧美 | 亚洲一区二区三区 | 香蕉久久a毛片 | 国产精品久久国产精品久久 | 激情麻豆视频 | 免费网站在线 | 日本欧美国产 | 在线第一页 | 成人深夜福利网站 | 免费视频一区二区 | 日韩精品1区2区3区 爱爱综合网 | 免费a大片| 日韩欧美在线视频播放 | 国产精品自产拍 | 久久久高清 | 久久亚洲一区二区 | 日韩在线一区二区三区 | 黑人精品欧美一区二区蜜桃 | 成人国产精品久久久 | 成人欧美一区二区三区黑人孕妇 | 91精品国产91久久久久久 |