- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
家用多功能定时器设计与制作
《单片机技术》课程设计报告
项目名称:
2.2 系统硬件单元电路设计
2.2.1 时钟电路设计
该电路为时钟电路,主要功能为:与单片机内部振荡器构成振荡电路,为单片机工作提供时序。晶体是12MHz,电容选用33pf,时钟周期为1/12us,机器周期为1/12*12=1us
2.2.2 复位电路设计
电阻为10k,电容为0.1uf, 由于电容的阻抗对直流而言比较大,当复位开关未按下时,通过电容和电阻分压使得RESET端为低电平,当按下复位键时,通过两个电阻分压在RESET为高电平,从而实现复位 电阻的作用不是限制电流的大小,而是控制复位时间.电容充电时间与R C的值成正比.
主程序在初始化参数后进入while循环,不断调用子程序进行刷新缓冲区,刷新显示LED,定时时间检测,按键处理等操作。
定时器0中断计时子程序流程图:
定时器1中断计时子程序流程图
定时器1中断主要用于刷新缓冲区按键扫描记录
重装定时器初值后,判断扫描显示位NUM
送相应数码管低电平点亮,同时检测P2^1与P2^2是否出现低电平,
若有则结合当前数码管低电平列线唯一确定一个按键,并将赋予它的键值记录下来
最后NUM++,结束返回主程序。
刷新缓冲区子程序流程图:
根据当前状态STATE判断应刷新哪个缓冲区,例如:
Case 1:刷新时分显示缓冲区
Case 2:刷新定时时间显示缓冲区
Case 3:刷新年月日显示缓冲区
这样做的好处是:
条理清晰,一目了然。
不用刷新没有变化的缓冲区,如定时时间单元在非定时状态下。
提高程序效率,为单片机省电。
LED显示子程序:
根据当前状态选择LED显示方式,例如:
Case 1:LED1半秒取反,其他不变。
Case 2:LED2常亮,其他不变。
Case 3:LED3常亮,其他不变。
数码管显示子程序:
根据当前状态选择数码管显示方式,例如:
Case 1:显示时分缓冲区的值。
Case 2: 显示定时时间缓冲区的值。
Case 3: 显示年月日缓冲区的值。
按键处理子程序:
根据当前状态选择按键处理方式,例如:
Case 1: 时分状态下按键处理。
Case 2: 定时状态下按键处理。
Case 3: 年月日状态下按键处理。
定时检测子程序:
定时检测,定时开始时间到后,启动相应定时报警状态;定时结束时间到后,关闭相应定时报警状态.
3.2 系统程序设计
3.2.1 系统主程序
/******************************************************************/
/* 主程序 */
/******************************************************************/
void main(void)
{
P1=0x00;
STATE=12;
EA=1;
TMOD |=0x01;//定时器0计时50ms in 12M crystal
TH0=0x3C; //初值
TL0=0xB0;
ET0=1;
TR0=1;
TMOD |=0x10; //定时器1用于动态扫描
TH1=0xFa; //初值
TL1=0xF0;
ET1=1;
TR1=1;
while(1)
{
RefreshTab();
LED_Display();
SetTime_test();
if(!Line1||!Line2){Delay(300);Key_Process();}
}
}
3.2.2 定时中断子程序
/******************************************************************/
/* 定时器0中断用于计时 */
/******************************************************************/
void Timer0(void) interrupt 1
{
TH0=0x3C; //重新赋值50ms溢出
TL0=0xB0;
count++;
if(count==10STATE!=13)
LED1=~LED1;
if (count==20)
{
count=0;
second++; //秒加1
if(second==60)
{
second=0;
mi
您可能关注的文档
最近下载
- 生物神经调节.ppt VIP
- 2.1 整十整百数乘一位数的口算和估算(课件)2025-2026学年度苏教版数学三年级上册.pptx
- 中粮集团品牌VI手册.pdf
- 利润表模板一.doc VIP
- 2024-2025学年九年级化学上册 第一单元 单元测试卷(人教版).pdf VIP
- 天津执业药师继续教育《儿科常用药物概要》习题答案.docx VIP
- 怎么群里所有人.doc VIP
- 宝山古木阳光顶棚改造项目施工组织设计.doc VIP
- (高清版)JGT 503-2016 承插型盘扣式钢管支架构件.pptx VIP
- TB0101-301-2018建筑材料、构配件和设备进场质量控制工作指南.pdf VIP
文档评论(0)