基于单片机的家用定时报警器软件设计答辩稿.ppt

基于单片机的家用定时报警器软件设计答辩稿.ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于单片机的家用定时报警器软件设计; 随着我国经济和人民的生活水平不断的提高,人们的安防意识也逐渐提高,我们现在家庭中常常用到的家电都有时间的限制,如果超出时间则会发生严重的后果,如:火灾,触电等。所以通过一个简易的定时报警可以避免这些事情的发生。 它体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。单片机种类系列很多,但无论是从世界范围或是从全国范围来看,使用最为广泛的应用属于MCS-51系列单片机。MCS-51 单片机是单片机中最为典型和最有代表性的一种。 基于这一事实,本次设计应用MCS-51系列的8位单片机89C51为主芯片来实现定时报警器这一功能。通电后,系统显示默认的定时时间及方式。如使用默认值,可直接按“开始”键,计时开始,定时间到开始报警。如不选择默认值,可进行定时时间设定,定时方式选择, 开始倒计时,定时间到开始报警。定时时间设定从0---99秒,由八段码LED显示。定时间到,可实现灯、声同时报警。 ;论文的结构和主要内容;系统实现的功能;硬件整体框图;硬件模块的简单介绍;按键模块;倒计时报警的软件设计; void main(void)  {   // 初始化   TimerInit();   LED = 1;   time = 99; // 初始化时间99秒   show_time = time;   // 主循环   while(1)   {   // 倒计时时间显示转换   Buf[0] = show_time % 10;   Buf[1] = show_time / 10;     DisPlay(Buf); // 时间显示   KeyScan(); // 按键扫描   if(1 == alarm)   {   TR0 = 0; // 关闭定时器0   openAlarm(); // 开启报警   ; }   else   closeAlarm(); // 关闭报警   }     return;  }    // 定时器0中断处理函数 // 预约加热模式使用  void Timer0(void) interrupt 1  {   /* 重装初值 */   TH0 = (65535 - 50000) / 256; //计数时间50ms   TL0 = (65535 - 50000) % 256;     Count++;   if(20 == Count) // 1秒钟刷新一次倒计时   {   Count = 0; // 控制变量置0 ; show_time--; // 倒计时进行   if(0 == show_time)   {   alarm = 1; // 报警标志置一   }   }  }    // 定时器1中断处理函数  void Timer1(void) interrupt 3  {   /* 重装初值 */   TH1 = 0xfd;   TL1 = 0x00;   SPK = ~SPK; // 蜂鸣器鸣响报警  };按键程序流程图;void KeyScan(void) { // 按键1开始或停止倒计时 if(Key1 == 0) { Delay(15); // 去抖 if(Key1 == 0) { start = ~start; // 开始倒计时或停止 show_time = time; if(1 == start) { TR0 = 1; // 启动定时器0 } else { alarm = 0; TR0 = 0; Count = 0; ;} while(!Key1); // 等待按键释放 } } // 按键2按下倒计时时间加一 if(Key2 == 0) { Delay(15); // 去抖 if(Key2 == 0) { if(start == 0) // 当未启动倒计时时有效 { if(time 99) time++; else time = 0; show_time = time; } while(!Key2); // 等待按键释放 } ;} // 按键3按下倒计时时间减一 if(Key3 == 0) { Delay(15); if(Key3 == 0) { if(start == 0) { if(time 0) t

文档评论(0)

153****9595 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档