日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應(yīng)用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
帶溫度測量的LCD顯示的實時時鐘
帶溫度測量的LCD顯示的實時時鐘
 更新時間:2009-7-9 16:55:16  點擊數(shù):0
【字體: 字體顏色

#include <REGX51.H>

#include "16x2LCDDriver.h"  //LCD頭文件

#include "DS18B20Driver.h"  //DS18B20頭文件

#include "DS1302Driver.h"   //DS1302頭文件

 

struct TimerStruct          //定義時鐘的數(shù)據(jù)結(jié)構(gòu)

{

  unsigned char Year;

  unsigned char Month;

  unsigned char Day;

  unsigned char Week;

  unsigned char Hour;

  unsigned char Minute;

  unsigned char Second;

};

unsigned char DateBuffer[]={"2005/01/01"};

unsigned char TimeBuffer[]= {"00:00:00"};

unsigned char LCDDisplayBuffer[]={"       "};

 

unsigned int SecondCounter;//秒計數(shù)器(無符號整型)

void timer0(void) interrupt 1//定時T0溢出中斷,每25mS產(chǎn)生一次中斷

{

  unsigned int Temp;

  unsigned char TemperatureH;

  unsigned char TemperatureL;

  struct TimerStruct RealClock;

 

  TH0=(65536-46080)/256;//重新裝入定時25mS的初值到TH0,TL0

  TL0=(65536-46080)%256;

 

  SecondCounter++;//秒計數(shù)器加1

  if(SecondCounter==40)//到40,表示1S時間到

    {

      SecondCounter=0;

      while(DS18B20_Reset());//向DS18B20發(fā)復(fù)位命令

      DS18B20_Write(0xCC);   //向DS18B20發(fā)讀數(shù)據(jù)命令

      DS18B20_Write(0xBE);

      TemperatureL=DS18B20_Read();//讀DS18B20的第1個BYTE

      TemperatureH=DS18B20_Read();//讀DS18B20的第2個Byte

      while(DS18B20_Reset());//向DS18B20發(fā)復(fù)位命令

      DS18B20_Write(0xCC);//向DS18B20發(fā)啟動溫度轉(zhuǎn)換開始命令

      DS18B20_Write(0x44);

      //----以下是關(guān)于讀取DS18B20的數(shù)據(jù)時行處理,并將結(jié)果顯示出來   

      Temp=TemperatureH*256+TemperatureL;         

      if(Temp & 0xf800)

        {

      LCDDisplayBuffer[0]=''-'';

      Temp=(~Temp)+1;

      TemperatureL=Temp%256;

      TemperatureH=Temp/256;

    }

      Temp>>=4;

      LCDDisplayBuffer[1]=Temp/10+0x30;

      LCDDisplayBuffer[2]=Temp%10+0x30;

      Temp=TemperatureL;

      Temp&=0x000F;

      Temp*=625;

      Temp/=100;

      LCDDisplayBuffer[3]=''.'';

      LCDDisplayBuffer[4]=Temp/10+0x30;

      LCDDisplayBuffer[5]=Temp%10+0x30; 

      LCDDisplayBuffer[6]=''C'';

      //---以下是讀取DS1302的時鐘信息,并將結(jié)果存儲到顯示緩沖區(qū)中

      Temp=Read_DS1302_RTC(0x81);//讀秒信息

      RealClock.Second=Temp;

      TimeBuffer[7]=Temp%16+0x30;

      TimeBuffer[6]=Temp/16+0x30;

      Temp=Read_DS1302_RTC(0x83);//讀分信息

      RealClock.Minute=Temp;

      TimeBuffer[4]=Temp%16+0x30;

      TimeBuffer[3]=Temp/16+0x30;

      Temp=Read_DS1302_RTC(0x85);//讀時信息

      RealClock.Hour=Temp;

      TimeBuffer[1]=Temp%16+0x30;

      TimeBuffer[0]=Temp/16+0x30;   

      Temp=Read_DS1302_RTC(0x87);//讀日信息

      RealClock.Day=Temp;

      DateBuffer[9]=Temp%16+0x30;

      DateBuffer[8]=Temp/16+0x30;

      Temp=Read_DS1302_RTC(0x89);//讀月信息

      RealClock.Month=Temp;

      DateBuffer[6]=Temp%16+0x30;

      DateBuffer[5]=Temp/16+0x30;

      Temp=Read_DS1302_RTC(0x8d);//讀年信息

      RealClock.Year=Temp;

      DateBuffer[3]=Temp%16+0x30;

      DateBuffer[2]=Temp/16+0x30;

      //---送到LCD上顯示出來

      lcd_displaystr_ram(0,3,DateBuffer);//刷新LCD上的日期信息

      lcd_displaystr_ram(1,1,TimeBuffer);//刷新LCD上的時間顯示信息

      lcd_displaystr_ram(1,sizeof(TimeBuffer),LCDDisplayBuffer);

    }

}

 

void main(void)

{

  TMOD=0x01;//T0工作于16位定時功能

  TH0=(65536-46080)/256;//T0定時25mS的初值裝入TH0,TL0

  TL0=(65536-46080)%256;

  TR0=1;//啟動T0開始工作

  ET0=1;//允許T0溢出中斷

  EA=1;//CPU開中斷

  initize_lcd();//初始化LCD

  Init_DS1302_RTC();//初始化DS1302

  //clock initize

  Write_DS1302_RTC(0x8e,0x00);

  Write_DS1302_RTC(0x80,0x00);

  Write_DS1302_RTC(0x82,0x55);

  Write_DS1302_RTC(0x84,0x11);

  Write_DS1302_RTC(0x86,0x16);

  Write_DS1302_RTC(0x88,0x11);

  Write_DS1302_RTC(0x8a,0x05);

  Write_DS1302_RTC(0x8c,0x05);

  Write_DS1302_RTC(0x8e,0x80);

 

  while(1)

    {

       ;

    }

}

  • 上一篇: 指針類型和存儲區(qū)的關(guān)系詳解
  • 下一篇: 基于數(shù)字電位器X9312的功率調(diào)節(jié)電路
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責(zé)信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1