《基于at89s52的学习型红外遥控器的设计本科毕业设计》由会员分享,可在线阅读,更多相关《基于at89s52的学习型红外遥控器的设计本科毕业设计(20页珍藏版)》请在金锄头文库上搜索。
1、单片机系统开发与应用工程实习报告单片机系统开发与应用工程实习报告选题名称: 基于STC89C52的学习型红外遥控器的设计系(院): 专 业: 班 级: 姓 名: 学 号: 指导教师: 学年学期: 2009 2010 学年 第 2 学期2014年 12 月 08 日1摘要:学习型红外线遥控器,通过自学习而拥有对多台电器的遥控功能。该遥控器有两种状态:学习状态和控制状态。处于学习状态时,使用者每按一个控制键红外接收电路就开始接收外来红外信号,并将其转换为电信号,然后经过检波、整形、放大,再由单片机定时对其采样,将每个采样点的二进制数据以8位为一个单位,分别存放到指定的存储单元中去,供以后对该设备控
2、制使用;处于控制状态时,使用者每按一个控制键单片机从指定的存储单元中读取二进制数据,串行输出(位和位之间的时间间隔等于采样的时间间隔)给信号保持电路,同时由调制电路进行信号调制,将调制信号经放大后,由红外线发射二极管进行发射,从而实现对该键对应设备功能的控制。关键词:学习型;红外线遥控器;学习状态;控制状态;STC89C52 目 录1 课题综述11.1 课题来源及意义11.2 预期目标11.3 面对的问题11.4 需解决的关键技术12 系统分析12.1 涉及的基础知识12.2 解决问题的基本思路22.3 总体方案32.3 功能模块框图33 系统设计43.1电路原理图43.2实现方法53.3 详
3、细流程图54 代码编写64.1 STC89C52单片机与各模块电路的连接端口分配64.2 复位电路的设计64.3 按键电路设计的实现74.4 中断程序的实现84.5 主函数的实现105 程序调试106 运行与测试11总 结12参考文献131 课题综述1.1 课题来源及意义目前,人们的物质文化生活水平日益提高,各种各样的家用电器走进了千家万户,其中,大多数的家用电器都有各自不同的遥控器,人们常常为了控制某台电器到处寻找其对应的遥控器,这样就给人们的生活带来了很多步便。为了解决这个问题,笨项目提出了一个多功能遥控器的设计方案:该遥控器可以通过自学习而拥有对多台电器的遥控功能,既省时又省力,从而使人
4、们免除同时面对众多遥控器的苦恼。1.2 预期目标设计一种基于STC89C52单片机控制的红外线遥控器,具有以下功能:1、适用于编码式红外线遥控型家用电器2、可遥控多台家用电器3、具有一个学习/控制复用键4、可通过一个设备选择键和各个功能控制键实现对多台设备的常用功能的学习和控制5、成本低,抗干扰能力强1.3 面对的问题1、对于STC89C52单片机的了解及应用2、对于抗干扰能力的解决1.4 需解决的关键技术本项目是通过扫描按键的状态、单片机外中断0和定时/计数器程序来判断遥控器处于什么状态,实现什么功能,因此,对于功能键的设计和中断程序的设计是难点。同时,对于红外发射和红外接收的工作原理和设计
5、对于我们来说也是陌生的,都要从头开始,对其进行了解、掌握及使用,所以也是一个难题。2 系统分析2.1 涉及的基础知识通过对本项目的了解,为了实现该项目的各个功能,必须要掌握以下知识点:1、电源原理及设计2、单片机复位电路工作原理及设计3、单片机晶振电路工作原理及设计4、按键电路的设计5、驱动74LS07的特性及使用6、一体化红外遥控接收器的特性及使用7、STC89C52单片机引脚8、单片机C语言程序设计2.2 解决问题的基本思路2.2.1 STC89C52单片机的基本知识功能特性:STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atme
6、l 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得STC89C52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 STC89C52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,STC89C52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,
7、CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash STC89C52。主要性能:与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。图2-1 STC89C52引脚图2.2.2 对于抗干扰能力
8、的解决该项目中采用一体化红外遥控接收器HX1838,该接收器的内部包括红外光敏二极管、谐振电路、放大电路、解码器、滤波器等,其工作电压为+5V,输出引脚直接输出不带副载波的负极性RC-5V信号,具有电路简单、灵敏度高、抗干扰性好等优点。2.3 总体方案学习型红外线遥控器,通过自学习而拥有对多台电器的遥控功能。该遥控器有两种状态:学习状态和控制状态。处于学习状态时,使用者每按一个控制键红外接收电路就开始接收外来红外信号,并将其转换为电信号,然后经过检波、整形、放大,再由单片机定时对其采样,将每个采样点的二进制数据以8位为一个单位,分别存放到指定的存储单元中去,供以后对该设备控制使用;处于控制状态
9、时,使用者每按一个控制键单片机从指定的存储单元中读取二进制数据,串行输出(位和位之间的时间间隔等于采样的时间间隔)给信号保持电路,同时由调制电路进行信号调制,将调制信号经放大后,由红外线发射二极管进行发射,从而实现对该键对应设备功能的控制。2.3 功能模块框图遥控器由红外接收及红外发射电路、复位电路、控制器STC89C52、按键及状态指示电路组成,其组成框图如图2-1所示。STC89C52控制器红外接收电路状态指示电路复位电路电源电路红外发射电路图2-2基于STC89C52学习型红外线遥控器系统框图3 系统设计3.1电路原理图控制芯片选择STC89C52单片机,控制系统按最小化工作模式设计,P
10、1.0接红外线发射,P1.6和P1.7接两个发光二极管用来指示遥控器的工作状态,P3.4和P3.5用来接收和发射红外线。红外接收采用一体化红外遥控接收器(HX1838)。其原理图如图3-1所示。图3-1 基于STC89C52学习型红外遥控器原理图3.2实现方法当红外遥控器的某个按键按下时,发射出的一组串行二进制编码脉冲,该脉冲由引导码、系统码、功能码和反码组成,通过设置这些编码以及码长便可区分不同的红外遥控器。红外接收器负责红外信号的接收和放大并解调出TTL电平信号送至微处理器进行处理,微处理器通过比较和识别接收来的红外遥控编码便可执行相应的遥控功能,本系统的设计思想是不考虑红外编码方式,仅利
11、用单片机STC89C52对多个红外遥控编码的脉冲宽度进行测量,并原封不动地把发射信号中高、低电平的时间宽度记忆至存储区的指定地址。当要发射红外信号时,从存储区中还原出相应的红外遥控编码,并调制到38kHz的载波信号上,最后,通过74LS07驱动发光二极管发射红外信号,达到学习和发射的目的,从而实现一个遥控器控制多种遥控设备的功能。3.3 详细流程图在程序中主程序完成初始化、按键扫描和调用信号发射程序的功能,学习功能通过中断0来完成。程序的具体流程图如图3-2所示。Y结束?中断开始开学习指示灯等待键释放读遥控码存学习标志,关指示灯结束NY开始初始化扫描按键?信号发射N(a)主程序流程图 (b)中
12、断程序流程图图3-2 基于STC89C52学习型红外线遥控器程序流程图4 代码编写4.1 STC89C52单片机与各模块电路的连接端口分配P1.6和P1.7分别接学习灯指示灯和发射指示灯sbit studylamp=P27;/学习指示灯sbit lamp=P26;/发射指示灯sbit studykey=P32;/学习键(中断口)sbit remotein=P11;/遥控信号输入口sbit remoteout=P12;/遥控信号输出口sbit txkey=P10;/发射键4.2 复位电路的设计复位电路实现的是对单片机以及整个电路的初始化 uint i,j,n;/定义各个变量uint idata
13、FH55; /存脉冲宽度高电平数据用 uint idata FL55; /存脉冲宽度低电平数据用 uint head,head2;/存起始位用clearmen()/初始化函数studylamp=1;/关学习指示灯lamp=1;/关发射指示灯remoteout=1;/关遥控输出remotein=1;head=0; /起始位1 清0head2=0; /起始位2 清0for(i=0;i55;i+)/清内存 FHi=0x0000;FLi=0x0000;IE=0x00;/中断允许控制寄存器置0IP=0x01;/定义中断优先级TMOD=0x21;/8位自动重装模式和定时器0为16位模式TCON=0x00;
14、/定时器溢出位清零TH1=0xf3;/40khz初值TL1=0xf3;IT0=1;/脉冲触发方式,负跳变有效EX0=1;/外中断允许EA=1;/开总中断定义延时1ms子程序delay1ms(uint t) /1ms延时子程序for(i=0;it;i+)for(j=0;j120;j+);4.3 按键电路设计的实现通过扫描按键来判断实现的功能,并通过按键进入中断程序void keywork()/键功能键if(txkey=0) delay1ms(100);if(txkey=0)remoteout=1; /关闭红外输出口 TH0=head/256;TL0=head%256;ET1=1;TR1=1;/ 产生脉冲TR0=1;while(TF0=0);TR0