資源簡介
51單片機鬧鐘程序,keli環境,包括時間滾動,日期滾動及修改,秒表,定時器,音樂鬧鐘,整點報時等功能
代碼片段和文件信息
#include?“intrins.h“
#include?“reg52.h“
#define?RldTmr(fr)?65536?-?(11059200?/?12)?/?(fr?<1)
#define?FuDian(n)?(n?<1)?/?3????//附點n分音符的換算
//位定義
sbit?beep?=?P1^6;
sbit?a12=P2^4;
sbit?a13=P2^5;
sbit?a14=P2^6;
/**********************************************編碼表************************************************************/?
//段碼編碼表1??????????????????0???1 2 ?3 ??4 ???5 6 ?7 ??8 ???9???中杠???_???A????c????C?????空?)
unsigned?char?code?table1[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0x400x080x770x580x390x00};???
unsigned?int?code?noteFreq[]?=?{????//中音?1-7?和高音?1-7對應的頻率列表
????523?587?659?698?784?880?988
????1047?1175?1319?1397?1568?1760?1976
};
unsigned?int?code?tmrRld[]?=?{??????//中音?1-7?和高音?1-7對應的定時器重載值
????RldTmr(523)?RldTmr(587)?RldTmr(659)?RldTmr(698)?RldTmr(784)?RldTmr(880)?RldTmr(988)
????RldTmr(1047)?RldTmr(1175)?RldTmr(1319)?RldTmr(1397)?RldTmr(1568)?RldTmr(1760)?RldTmr(1976)
};
unsigned?char?code?musicNote[]?=?{??????//音名
????1?2?3?1
????1?2?3?1
????3?4?5
????3?4?5
????5?6?5?4?3?1
????5?6?5?4?3?1
????1?5?1
????1?5?1
};
unsigned?char?code?musicNnote[]?=?{??????//音名
????1?2?2?11?2?2?11?2?2?1?1?2?2?11?2?2?1?1?2?2?1
};
unsigned?char?code?noteDuration[]?=?{???????//音名對應的時值,4表示4分音符,8表示8分音符,16表示16分音符
????64?64?64?64
????64?64?64?64
????64?64?32
????64?64?32
????FuDian(128)?128?FuDian(128)?128?64?64
????FuDian(128)?128?FuDian(128)?128?64?64
????64?64?32
????64?64?32
};
unsigned?char?code?noteDduration[]?=?{???????
????32323232
32323232
32323232
32323232
32323232
32323232
};?
/***********************************************全局變量*********************************************************/?
?
unsigned?char?mondayhouminsec;??
unsigned?long?year;???????????? //月、日、時、分、秒
unsigned?char?TimCont1TimCont2KeyKeyFlag;???? //定時器0的計數器定時器1的計數器,鍵的瞬時值、鍵的按下的值
unsigned?char?AlarmHouAlarmMin; //鬧鐘的小時,分鐘
unsigned?char?StopwatchMinStopwatchSecStopwatchDec;//秒表分秒和百分之一秒
unsigned?char?TimingHou?TimingMin?TimingSec;? //定時器時分秒;
?unsigned?char?KeyCount1KeyCount4;?
?unsigned?char?x;?? ???? //用來統計按鍵的次數;
bit?FlagSTFlagAm; //FlagST判斷是不是在設置時間,是為1,此時定時器0工作,秒表停止工作
bit?FlagBp?; //FlagBp為beep響聲的控制,0為不響1為響?
bit?FlagSW; //秒表開啟標志
bit?FlagTiming; //定時器開啟標志;
bit?enabletmrFlg;
unsigned?char?T1RHT1RL;
/***********************************************函數聲明**********************************************************/??
void?Init();?????????????????????????? ? ?//初始化函數
void?delay(unsigned?char?tt);??????????? //延時函數
//void?delaymm(unsigned?char?p); //延時函數
?void?delay2(unsigned?char??p);
void?DisplayTime(bit?flag?unsigned?char?ConBit); //顯示時間
void?DisplayDate(bit?flagunsigned?char?ConBit); //顯示日期
void?ScrollDate(); //滾動顯示日期
void?DisplayAlarm(bit?flagunsigned?char?ConBit); //顯示鬧
- 上一篇:發夾型微帶帶通濾波器設計
- 下一篇:微信小程序調度班表.zip
評論
共有 條評論