• 大小: 25KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: 其他
  • 标签:

资源简介

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); //显示闹

评论

共有 条评论