红外线遥控数字电子钟单片机答辩_第1页
红外线遥控数字电子钟单片机答辩_第2页
红外线遥控数字电子钟单片机答辩_第3页
红外线遥控数字电子钟单片机答辩_第4页
红外线遥控数字电子钟单片机答辩_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机开放实验答辩,小组成员: 薛利华 陈茜 朱一博 张锐,本次课程设计的主要任务是完成数字电子时钟的设计和实现,其主要功能如下:于微机系统上实现时间的正常显示;实现时间的正常调节;实现定时并做到可调,并在预定时间到达时进行报警并且实现可控;红外线控制闹钟及定时;,本次课程设计是基于AT89C51单片机为核心硬件,辅以必要的红外接收和蜂鸣器电路设计,构成的遥控电子时钟。基于单片机的定时和控制装置在许多行业有着广泛的应用。而数字定时闹钟是其中最基本,也是最有代表性的一个实例。,该设计中采用的单片机AT89C51,它是低功耗、高性能的CMOS型8位单片机。片内带有4KB的Flash存储器,且允许在系统内改写或用编程器编程。另外, AT89C51的指令系统和引脚与8051完全兼容,片内有128B 的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等。AT89C51单片机设计的由遥控器控制的电子时钟,可以设置现在的时间及显示闹铃设置时间,在闹钟时间内蜂鸣器发出声音。,本次设计还应注意一下几点事项:1,、对微机系统中的51单片机的内部存储器要进行合理的、有条理的安排和使用,如果没有进行合理安排在设计的过程中,有些相关的内部存储器中存放的数据会出现冲突,导致设计的结果不正常,如:数码管显示不正常出现乱码或频闪跳动等问题;2、对单片机开发系统的硬件在运用时所出现的问题要有更清楚的认识和了解,并且运用程序来防止和减少问题的出现从而影响设计的可行性,如按键部分的抖动问题,在本次设计当中,采用延时的方法来防止按键按下所产生的抖动问题。,一、硬件功能介绍二、设计思路三、功能模块,红外线遥控数字电子钟功能介绍,1.数码管显示电子钟小时、分、秒;2. 闹钟3.红外线遥控定时,设计思路,定时器T1初始化,用于控制秒。定时器T0初始化,外部中断初始化,用于控制红外线接收。红外扫描,用于接收红外遥控发出的信号扫描红外线,并且接收处理显示。转换成可用代码,可用红外遥控控制设置闹钟,本次方案的设计以单片机中的定时为主分别实现时、分、秒、时上的显示和正常进位,在此基础上,总体方案可分为以下四个功能模块:,模块一:计时功能模块,以微机开发系统中51单片机的定时功能为主,本次设计采用的计时方式为方式1,并且采用中断方式进行一秒计时,由于51单片机的功能特性的限制,计时的方案由采用50ms计时并且在这个基础上连续循环20次进行秒钟计时,在秒的基础上再分别进行其他时间单位的转化,如此逐渐递进实现总体时间计时的实现。时进制采用24小时进制,模块二:显示功能模块,主要以微机开发系统中的七段数码管实现,显示的主要格式为“时分秒”,其中,年、月、日的显示由微机开发系统中的按键实现切换。,模块三:闹钟功能模块:以蜂鸣器的蜂鸣为标志,蜂鸣器工作则表示预定时间到达。闹钟的设定由红外线遥控实现,闹钟的开关有拨键开关控制。,模块四:远程红外线遥控:红外线采用发送端脉冲调制方式,将二进制数字信号调制成某一频率的脉冲序列,并驱动红外线发射管一光脉冲的形式发送出去;接受端将接收到的光脉冲换成电信号,再经过放大、滤波处理后送给调节电路进行解调,还原以二进制数信号。,蜂鸣器与单片机接口电路,电路图,定时器中断流程图,当秒计数器计满60后,向分计数器产生进位信号,分计数器开始计数;当分计数器计满60后,向时计数器产生进位信号,时计数器加1。当外部输入一个清零信号时,计数器全部清零。,时间显示流程图,/*- 说明: 1)时间显示格式为#-#-#。F2进入闹钟设置时间(时间在定时时间到 定时时间加一之内闹钟均会响),退出键保存闹钟时间设置。 2)F1进入时间设置,退出键位保存并退出。上下左右键控制时分秒的切 换和时分秒的加减。 3)定时器T1用于控制1s,定时器T0和外部输入用于控制红外接收。 -*/,主函数-*/void main()TIM1init(); /定时器1初始化TIM0init(); /定时器0初始化EX0init(); /初始化外部中断while(1)Hwscan();/红外扫描display(hh,hl,mh,ml,sh,sl);key_work();clock();,/*- 定时器0初始化 (-*/void TIM0init(void) /定时器0初始化 TMOD=0x12; /定时器0工作方式2,TH0是重装值,TL0是初值 TH0=0x00; /重载值 TL0=0x00; /初始化值 ET0=1; /开中断 TR0=1; ,/*- 定时器T1初始化-*/void TIM1init()TMOD =0x12; /定时器1工作方式1TH1 =(65536-50000)/256;TL1 =(65536-50000)%256;ET1 =1;TR1 =1;,/*- 外部中断0初始化-*/void EX0init(void) IT0 = 1; /指定外部中断0下降沿触发,INT0 (P3.2) EX0 = 1; /使能外部中断 EA = 1; /开总中断,/*- 红外扫描函数-*/void Hwscan()if(irok) /如果接收好了进行红外处理 Ircdeal();irok=0;if(irpro_ok) /如果处理好后进行工作处理,如按对应的按键后显示对应的数字等Ir_work();,/*- 定时器T1中断处理函数-*/void T1_time() interrupt 3 /定时器T1TH1=(65536-50000)/256;TL1=(65536-50000)%256;num1+; if(num1=20) /加一为50ms 20次为1秒num1=0;if(time_sign=0,if(clock_sign=1,if(num2=60) /秒循环进位判断num2=0;num3+;sh=num2/10;sl=num2%10;elsesh=num2/10;sl=num2%10; if(num3=60) /分循环进位判断num3=0;num4+;mh=num3/10;ml=num3%10;elsemh=num3/10;ml=num3%10; if(num4=24) /时循环进位判断num4=0;hh=num4/10;hl=num4%10;elsehh=num4/10;hl=num4%10;,/*- 定时器0中断处理-*/void T0_time() interrupt 1 using 1 irtime+; /用于计数2个下降沿之间的时间,/*- 外部中断0中断处理-*/void EX0_() interrupt 0 /外部中断0服务函数static uchar i; /接收红外信号处理static bit startflag; /是否开始处理标志位if(startflag) if(irtime=33) /头码是9ms+4.5ms和4.5ms+4.5ms均可 i=0; /头码存储到0位 irdatai=irtime;/存储每个电平的持续时间,用于以后判断是0还是1 irtime=0; i+; /跳到下一位 if(i=33) /表示存储32为完毕 irok=1; i=0; else /装回初值irtime=0; /有其他干扰是不为0startflag=1;,/*- 红外码值处理-*/void Ircdeal(void) /红外码值处理函数(四个字节一共32位)和量化差不多 unsigned char i, j, k;unsigned char cord,value;k=1;for(i=0;i7) /大于某值为1,这个和晶振有绝对关系,这里使用12M计算,此值可以有一定误差value|=0x80; /| 记毁作前者表示或,后者表右移的意思,针对二进制位进行操作if(j=1;k+;IRcordi=value;value=0; irpro_ok=1;/处理完毕标志位置1,/*- 数码管显示函数-*/void display(uchar hh,uchar hl,uchar mh,uchar ml,uchar sh,uchar sl)if(set_sign=1)if(num1=8) /时显示并闪烁dula=1; P0=tablehh;dula=0;P0=0xff; wela=1;P0=0x7f; /0111 1111wela=0;delayms(1);dula=1;P0=tablehl;dula=0;P0=0xff;wela=1;P0=0xbf; /1011 1111wela=0;delayms(1);,elsedula=1; /时显示不闪烁P0=tablehh;dula=0;P0=0xff; wela=1;P0=0x7f; /0111 1111wela=0;delayms(1);dula=1;P0=tablehl;dula=0;P0=0xff;wela=1;P0=0xbf; /1011 1111wela=0;delayms(1);,if(set_sign=2)if(num1=8) /分显示并闪烁dula=1; P0=tablemh;dula=0;P0=0xff;wela=1;P0=0xef; /1110 1111wela=0;delayms(1);dula=1;P0=tableml;dula=0;P0=0xff;wela=1;P0=0xf7; /1111 0111wela=0;delayms(1);,else/分显示不闪烁dula=1; P0=tablemh;dula=0;P0=0xff;wela=1;P0=0xef; /1110 1111wela=0;delayms(1);dula=1;P0=tableml;dula=0;P0=0xff;wela=1;P0=0xf7; /1111 0111wela=0;delayms(1);,if(set_sign=3)if(num10;i-)for(j=124;j0;j-);,/*- 闹钟函数-*/void clock() if(num2=num6,/*- 闹钟定时函数-*/void clock_set()if(clock_sign=1)numt1=n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论