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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于51單片機的電子萬年歷代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:441643 發表于 2018-12-7 14:58 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include < reg52.h >

#include < character.h >

#include < lcd.h >

#include < clock.h >

#include < sensor.h>

#include < calendar.h >

#include < key.h >

/*****************************預定義**************************************/

#define uchar unsigned char

#define uint unsigned int

/****************************************************************************/ sbit bell = P2 ^ 0; //定義蜂鳴器端口

sbit in = P2 ^ 7; //定義紅外檢測端口

/***************************************************************************** * 名稱: Timer0_Service() inturrupt 1

* 功能: 中斷服務程序整點報時3聲嘟嘟的聲音

*****************************************************************************/ void Timer0_Service() interrupt 1

{

static uchar count = 0;

static uchar flag = 0; //記錄鳴叫的次數

count = 0;

TR0 = 0; //關閉Timer0

TH0 = 0x3c;

TL0 = 0XB0; //延時50 ms

TR0 = 1 ; //啟動Timer0

count ++;

if( count == 20 ) //鳴叫1 秒

{

bell = ~ bell;

count = 0;

flag ++;

}

if( flag == 6 )

{

flag = 0;

TR0 = 0; //關閉Timer0

}

}

/*****************************************************************************

* 名稱: Timer2_Servie() interrupt 5

* 功能: 中斷服務程序整點報時一分鐘

*****************************************************************************/

void Timer3_Service() interrupt 5

{

static uchar count;

TF2 = 0; //軟件清除中斷標志

count ++;

if( in == 1 )

{

count = 0; //計算清0

TR2 = 0; //關閉Timer2

bell = 1; //關閉蜂鳴器

}

if( count == 120 ) // 一分鐘后關閉報警

{

count = 0; //計算清0

TR2 = 0; //關閉Timer2

bell = 1; //關閉蜂鳴器

}

}

/******************************************************************************

* 函數名稱:main()

********************************************************************************/

void main( void )

{

uchar clock_time[7] = { 0x00, 0x00, 0x12, 0x29, 0x06, 0x08 }; //定義時間變量秒分時日月年uchar alarm_time[2] = { 0, 0}; //鬧鐘設置alarm_time[0]: 分鐘alarm_time[1] :小時

uchar temperature[2]; //定義溫度變量temperature[0] 低8位temperature[1] 高8位

Lcd_Initial(); //LCD初始化

clock_Initial( clock_time ); //時鐘初試化

/***********************中斷初始化***************************/

EA = 1; //開總中斷

ET0 = 1; //Timer0 開中斷

ET2 = 1; //Timer2 開中斷

TMOD = 0x01 ; //Timer0 工作方式1

RCAP2H = 0x3c;

RCAP2L = 0xb0; //Timer2 延時50 ms

while( 1 )

{

switch( Key_Scan() )

{

case up_array:

{

Key_Idle();

}

break;

case down_array:

{

Key_Idle();

}

break;

case clear_array:

{

Key_Idle();

}

break;

case function_array:{

Key_Function( clock_time, alarm_time );

}

case null:

{

Clock_Fresh( clock_time ); //時間刷新

Lcd_Clock( clock_time ); //時間顯示

Sensor_Fresh( temperature ); //溫度更新

Lcd_Temperture( temperature ); //溫度顯示

Calendar_Convert( 0 , clock_time );

Week_Convert( 0, clock_time );

//整點報時

if( ( * clock_time == 0x59 ) && ( * ( clock_time + 1 ) == 0x59 ) )

{

bell = 0;

TR2 = 1; //啟動Timer2

}

//鬧鐘報警

if( * alarm_time == * ( clock_time + 1 ) ) //分鐘相吻合

if( * ( alarm_time + 1 ) == *( clock_time + 2 ) ) //小時相吻合

{

bell = 0;

TR2 = 1; //啟動Timer2

}

}

break;

}

}

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩高清一区 | 国产一区免费视频 | 综合久久av | 亚洲天堂成人在线视频 | 日韩黄色免费 | 国产精品欧美一区喷水 | 蜜桃精品视频在线 | 亚洲一区二区三区免费观看 | 成人午夜精品一区二区三区 | 国产偷录视频叫床高潮对白 | 成人h动漫亚洲一区二区 | 欧美日韩一区二区三区四区 | 波多野结衣一区二区三区在线观看 | 精品国产乱码久久久久久88av | www.色五月.com | 日韩欧美中文字幕在线观看 | 成人免费毛片片v | 久久草视频 | 亚洲精品一区二区三区蜜桃久 | 一级一片在线观看 | 国产精品一区在线观看你懂的 | 国产精品一区二区三区免费观看 | 精品99爱视频在线观看 | 国产传媒视频在线观看 | 日本福利一区 | 毛片在线免费播放 | 成人免费福利视频 | 欧美一区二区三区视频 | 午夜激情影院 | www.日本国产| 91视频官网 | 你懂的在线视频播放 | 亚洲国产精品一区 | 国产精品爱久久久久久久 | 欧美jizzhd精品欧美巨大免费 | 欧洲在线视频 | 国产精品日产欧美久久久久 | 精品av天堂毛片久久久借种 | 免费精品国产 | 日日干夜夜操 | 99re在线视频|