while(--n);
}
void main()
{uchar i,j;
TMOD=0x01;
IE=0x82;
while(1)
{i=0;
while(notetab[i].delay)
{if(!notetab[i].tone) TR0=0;
else
{th0=TH0=tonetable[notetab[i].tone-1]>>8;
tl0=TL0=tonetable[notetab[i].tone-1]&0xff;
TR0=1;
}
for(j=0;j
i++;
}
BEEP=1 ;
TR0=0;
delay_ms(2000);
}
}
}
}
//******************************************************************* ********************************************************************* //
电子系统设计报告
设计题目:万年历 :电子信息工程 班级:电信07-2 姓名:李晓 学号:070901140224
电子万年历
摘要
“一寸光阴一寸金,寸金难买寸光阴”!时间对于我们每一个人都是非常宝贵的,所以钟表作为人们掌握时间的工具就显得十分重要! 钟表的出现已经有几百年历史,尤其是摆钟和后来的怀表,可以称作钟表中的经典,不仅大方实用,而且制作精美。但近几十年,由于微电子的迅猛发展,这样的钟表已经销声匿迹,取而代之的则是电子时钟。随着社会的发展,人们的消费水平不断的提高,对生活的要求也越来越高,而电子时钟不仅精确度更高、外观小巧、功能更加强大更加完善,制作成本也是非常低。
由于单片机体积小、价格低、可靠性高、适用面广、有其本身的指令系统等诸多优势 ,在各个领域得到广泛应用,所以用单片机控制的电子时钟完全具备时钟的各种功能,硬件组成非常精简,只需要进行软件的编写,就能够实现我们需要的功能。
本设计利用STC89C52RC计数器产生时间,并进行处理,辅以必要的电路,用C语言编写程序,并进行模块化设计而成的的电子万年历。它能显示阳历年,月,日,星期,小时,分,秒;具有定时报警功能,能够进行整点和半点语音报时;能用按键调整时间。
关键词:万年历,LCD显示,STC89C52RC,定时报警
第一部分 设计方案原理与理论分析计算
1.方案论证及比较
1.1方案
本设计利用STC89C52RC计数器定时产生时间,并进行处理,然后把时钟信息传输到1602LCD液晶屏进行显示;键盘接口模块采用直接编码输入;当系统时间与预设的报警时间相同时,蜂鸣器发出响声进行报警提示。用STC89C52RC的计数器定时产生时间,充分利用单片机的资源,且其自动重装初值定时方式能达到ms级误差,能满足需求,不必用DS1302。1602LCD显示量少,但成本低,设计简单。
2.实现原理
单片机STC89C52RC的定时/计数器每1s产生一次中断,每产生一次中断,秒计数单元加一,当秒计数单元大于或等于60时,秒计数单元清零,分计数单元加一,当分计数单元大于或等于60时,分计数单元清零,时计数单元加一,当时计数单元大于或等于24时,时计数单元清零,如此循环来产生时间。3.理论分析计算
3.1 星期计算方法
2
星期天数可由年月日来计算,计算公式为
Weekday=(日+2*月+3*(月+1)/5+年+年/4-年/100+年/400)%7
4.功能与指标 4.1功能
4.1.1 LCD显示
显示阳历年、月、日、星期、小时、分、秒、报警次序、定时报警时间; 4.1.2定时报警
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-26593-10.html
送项目拉动它们的经济