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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2820|回復: 1
收起左側

可調時鐘+溫度顯示(ds1302+1602+18b20)

[復制鏈接]
ID:242950 發表于 2017-11-11 20:06 | 顯示全部樓層 |閱讀模式
本帖最后由 17805591357 于 2017-11-11 20:07 編輯

//可調時鐘+溫度顯示(ds1302+1602+18b20),還可以拓展成串口通信模式

#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
#include<stdio.h>
#include<intrins.h>
#include "18b20.h"
#include "1602.h"
#include "delay.h"
#include"ds1302.h"
#define KeyPort P3 //定義按鍵端口
bit ReadTimeFlag;//定義讀時間標志 時間
unsigned char KeyScan(void);//鍵盤掃描
void Init_Timer0(void);//定時器初始化
/*------------------------------------------------
              串口通訊初始化
------------------------------------------------*/
void UART_Init(void)
{
    SCON  = 0x50;          // SCON: 模式 1, 8-bit UART, 使能接收  
    TMOD |= 0x20;               // TMOD: timer 1, mode 2, 8-bit 重裝
    TH1   = 0xFD;               // TH1:  重裝值 9600 波特率 晶振 11.0592MHz  
    TR1   = 1;                  // TR1:  timer 1 打開                        
    //EA    = 1;                  //打開總中斷
    //ES    = 1;                  //打開串口中斷
TI=1;
}
/*------------------------------------------------
                    主函數
------------------------------------------------*/
void main (void)
{  
unsigned char num;                  
unsigned char temp[16];//定義顯示區域臨時存儲數組               
int temp1;
float temperature;
char displaytemp[16];//定義顯示區域臨時存儲數組
LCD_Init();           //初始化液晶
DelayMs(20);          //延時有助于穩定
LCD_Clear();          //清屏
Init_Timer0();
UART_Init();
Init_DS18B20();
Ds1302_Init();        //ds1302初始化
Ds1302_Read_Time();   //首次讀取時間
if((time_buf1[1]+time_buf1[6])==0) //如果所有參數都為0,寫入一個初始值
   Ds1302_Write_Time();

while (1)         //主循環
{ temp1=ReadTemperature();
  temperature=(float)temp1*0.0625;
  sprintf(displaytemp,"%0.1f",temperature);//打印溫度值
  LCD_Write_String(12,1,displaytemp);//顯示第二行
   
   
   
if(ReadTimeFlag==1)
{
   ReadTimeFlag=0;  //標志位清零
   Ds1302_Read_Time();//讀取時間參數
   sprintf(temp,"%02d-%02d-%02d",(int)time_buf1[1],(int)time_buf1[2],(int)time_buf1[3]);//年月日周
  LCD_Write_String(0,0,temp);//顯示第一行
  sprintf(temp,"%02d:%02d:%02d",(int)time_buf1[4],(int)time_buf1[5],(int)time_buf1[6]);//時分秒
  LCD_Write_String(0,1,temp);//顯示第二行
  
}     

    num=KeyScan();
  switch(num)
       {
     case 1:time_buf1[4]++;if(time_buf1[4]==24)time_buf1[4]=0;   
              Ds1302_Write_Time();break; //正常時間 小時 加1
  
  case 2:time_buf1[4]--;if(time_buf1[4]==255)time_buf1[4]=23;  
           Ds1302_Write_Time();break; //正常時間 小時減1
  
  case 3:time_buf1[5]++;if(time_buf1[5]==60)time_buf1[5]=0;     
           Ds1302_Write_Time();break;//分加1
  
  case 4:time_buf1[5]--;if(time_buf1[5]==255)time_buf1[5]=59;
  
  case 5:time_buf1[1]++;//if(time_buf1[0]==60)time_buf1[4]=0; //年   
           Ds1302_Write_Time();break;
  
  case 6:time_buf1[1]--;//if(time_buf1[0]==255)time_buf1[4]=59;//年
           Ds1302_Write_Time();break;
     
  case 7:time_buf1[2]++;if(time_buf1[2]==13)time_buf1[2]=0;  //月   
           Ds1302_Write_Time();break;
  
  case 8:time_buf1[3]--;if(time_buf1[3]==31)time_buf1[3]=0; //日
  default:break;
    }
}
}


可調時鐘.rar

39.45 KB, 下載次數: 21, 下載積分: 黑幣 -5

評分

參與人數 1黑幣 +5 收起 理由
小小卋界 + 5 很給力!

查看全部評分

回復

使用道具 舉報

ID:47652 發表于 2017-11-12 09:38 | 顯示全部樓層
沙發,配個圖就好了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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