- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
89c51单片机数码管时钟例程
//data: 2010-07-06
//writer: wu xian dian
//fame: wan nian li
//function:a时分秒的精确显示及设定;b定时的精确显示及设定;c定时时刻不影响时钟精确走时;
// d当输入数值有误将蜂鸣报警且数值归1或0;e可以进行定时时间的查看;
// f可进行星期的设定及查看g可进行年月日的设定及查看
// h可进行平、闰年的分辨;i拥有定时时间到报时1分及整点提示,显示不会闪烁;
// j定时、调时为移位显示,设定万年历为单显;星期、定时、调时、年、月日分屏显示;
// k可进行数码管和蜂鸣器的检验;L当闹钟响起可随时关闭;
#includeat89x51.h
void control(void);//判断是否进行键盘操作;
void display(char,char);//显示,位控和段控;
void delayms(unsigned int x);//延时;
void common(void);//定时、调时显示控制;
void fixed_times(void);//定时,进行时分秒输入。先按11号键,再按六位数字键,自动返回运行;
void swap_times(void);//调时 ,进行时分秒输入。先按12号键,再按六位数字键,自动返回运行;
void fixed_show(void);//全显示,检查数码管和蜂鸣器好坏,按零号键;
void week(void);//星期设定8返回7;
void week_show(void);//星期显示6返回5;
void calendar_show(void);//日历显示4显示年,3显示月日,2返回;
void calendar(void);//日历设定2显示年,3显示月日,4返回;
char key(void);//键盘;
void initial(void);//初始化;定时中断
char hour1=1,hour0=2,min1=0,min0=0,sec1=0,sec0=0,n=0,w=1,v=1,//主显示全局变量;n循环次数w星期显示v闹铃判断位;
fhour1=0,fhour0=0,fmin1=0,fmin0=0,fsec1=0,fsec0=0,//定时、调时共用全局变量;
t6=0,t5=6,t4=0,t3=0,t2=0,t1=0,//定时显示全局变量;
year3=2,year2=0,year1=1,year0=0,mouts1=0,mouts0=7,day1=0,day0=7;//年月日全局变量;
int a1[12]={31,28,31,30,31,30,31,31,30,31,30,31};//平年;
int a0[12]={31,29,31,30,31,30,31,31,30,31,30,31};//闰年;
int *p;//为a1.a0设置指针;
//********************************************************************定义和声明;
void main(void)
{
initial();//初始化
while(1)
{
P1=0x0f;
if(P1!=0x0f)//判位进入调控程序;
control();
P1=0xff;
display(5,hour1);///主显示程序;
delayms(150);
display(4,hour0);
delayms(150);
display(3,min1);
delayms(150);
display(2,min0);
delayms(150);
display(1,sec1);
delayms(150);
display(0,sec0);
delayms(150);
}
}
//*************************************************判位操作显示;
void control(void)
{
P1=0xbf;
if(P1==0xbe)// 1显示数码管和蜂鸣器,自动返回;
{P2=0x00;P0=0xff;
delayms(2000);}
else if(P1==0xb7)//4显示某年,3显示某月日,2返回;
calendar_show();
else if(P1==0xbb)// 3定时年,2定时月日,1返回
原创力文档


文档评论(0)