《单片机系统开发与应用实习报告基于AT89S52单片机的学习型红外遥控器的设计.doc》由会员分享,可在线阅读,更多相关《单片机系统开发与应用实习报告基于AT89S52单片机的学习型红外遥控器的设计.doc(17页珍藏版)》请在三一办公上搜索。
1、单片机系统开发与应用工程实习报告选题名称: 基于AT89S52的学习型红外遥控器的设计系(院): 专 业:计算机科学与技术(嵌入式系统软件设计)班 级: 姓 名: 学 号: 指导教师: 学年学期: 2009 2010 学年 第 2 学期2010年 5 月 30 日摘要:学习型红外线遥控器,通过自学习而拥有对多台电器的遥控功能。该遥控器有两种状态:学习状态和控制状态。处于学习状态时,使用者每按一个控制键红外接收电路就开始接收外来红外信号,并将其转换为电信号,然后经过检波、整形、放大,再由单片机定时对其采样,将每个采样点的二进制数据以8位为一个单位,分别存放到指定的存储单元中去,供以后对该设备控制
2、使用;处于控制状态时,使用者每按一个控制键单片机从指定的存储单元中读取二进制数据,串行输出(位和位之间的时间间隔等于采样的时间间隔)给信号保持电路,同时由调制电路进行信号调制,将调制信号经放大后,由红外线发射二极管进行发射,从而实现对该键对应设备功能的控制。关键词:学习型;红外线遥控器;学习状态;控制状态;AT89S52 目 录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 AT89S52单片机与各模块电路的连接端口分配64.2 复位电路的设计64.3 按键电路设计的实现74.4 中断程序的实现84.5 主函数的实现105 程序调试106 运行与测试11总 结12参考文献131 课题综述1.1 课题来源及意义目前,人们的物质文化生活水平日益提高,各种各样的家用电器走进了千家万户,其中,大多数的家用电器都有各自不同的遥控器,人们常常为了控制某台电器到处寻找其对应的遥控器,这样就给人们的生活带来了很多步便。为了解决这个问题,笨项目提出了一个多功能遥控器的设计方案:该遥控器可以通过自学习而拥有对多台电器的遥控功能,既省时又省力,从而使人们免除
4、同时面对众多遥控器的苦恼。1.2 预期目标设计一种基于AT89S52单片机控制的红外线遥控器,具有以下功能:1、适用于编码式红外线遥控型家用电器2、可遥控多台家用电器3、具有一个学习/控制复用键4、可通过一个设备选择键和各个功能控制键实现对多台设备的常用功能的学习和控制5、成本低,抗干扰能力强1.3 面对的问题1、对于AT89S52单片机的了解及应用2、对于抗干扰能力的解决1.4 需解决的关键技术本项目是通过扫描按键的状态、单片机外中断0和定时/计数器程序来判断遥控器处于什么状态,实现什么功能,因此,对于功能键的设计和中断程序的设计是难点。同时,对于红外发射和红外接收的工作原理和设计对于我们来
5、说也是陌生的,都要从头开始,对其进行了解、掌握及使用,所以也是一个难题。2 系统分析2.1 涉及的基础知识通过对本项目的了解,为了实现该项目的各个功能,必须要掌握以下知识点:1、电源原理及设计2、单片机复位电路工作原理及设计3、单片机晶振电路工作原理及设计4、按键电路的设计5、驱动74LS07的特性及使用6、一体化红外遥控接收器的特性及使用7、AT89S52单片机引脚8、单片机C语言程序设计2.2 解决问题的基本思路2.2.1 AT89S52单片机的基本知识功能特性:AT89S52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非
6、 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许
7、RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89S52。主要性能:与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。图2-1 AT89S52引脚图2.2.2 对于抗干扰能力的解决该项目中采用一体化红
8、外遥控接收器HX1838,该接收器的内部包括红外光敏二极管、谐振电路、放大电路、解码器、滤波器等,其工作电压为+5V,输出引脚直接输出不带副载波的负极性RC-5V信号,具有电路简单、灵敏度高、抗干扰性好等优点。2.3 总体方案学习型红外线遥控器,通过自学习而拥有对多台电器的遥控功能。该遥控器有两种状态:学习状态和控制状态。处于学习状态时,使用者每按一个控制键红外接收电路就开始接收外来红外信号,并将其转换为电信号,然后经过检波、整形、放大,再由单片机定时对其采样,将每个采样点的二进制数据以8位为一个单位,分别存放到指定的存储单元中去,供以后对该设备控制使用;处于控制状态时,使用者每按一个控制键单
9、片机从指定的存储单元中读取二进制数据,串行输出(位和位之间的时间间隔等于采样的时间间隔)给信号保持电路,同时由调制电路进行信号调制,将调制信号经放大后,由红外线发射二极管进行发射,从而实现对该键对应设备功能的控制。2.3 功能模块框图遥控器由红外接收及红外发射电路、复位电路、控制器AT89S52、按键及状态指示电路组成,其组成框图如图2-1所示。AT89S52控制器红外接收电路状态指示电路复位电路电源电路红外发射电路图2-2基于AT89S52学习型红外线遥控器系统框图3 系统设计3.1电路原理图控制芯片选择AT89S52单片机,控制系统按最小化工作模式设计,P1.0接红外线发射,P1.6和P1
10、.7接两个发光二极管用来指示遥控器的工作状态,P3.4和P3.5用来接收和发射红外线。红外接收采用一体化红外遥控接收器(HX1838)。其原理图如图3-1所示。图3-1 基于AT89S52学习型红外遥控器原理图3.2实现方法当红外遥控器的某个按键按下时,发射出的一组串行二进制编码脉冲,该脉冲由引导码、系统码、功能码和反码组成,通过设置这些编码以及码长便可区分不同的红外遥控器。红外接收器负责红外信号的接收和放大并解调出TTL电平信号送至微处理器进行处理,微处理器通过比较和识别接收来的红外遥控编码便可执行相应的遥控功能,本系统的设计思想是不考虑红外编码方式,仅利用单片机AT89S52对多个红外遥控
11、编码的脉冲宽度进行测量,并原封不动地把发射信号中高、低电平的时间宽度记忆至存储区的指定地址。当要发射红外信号时,从存储区中还原出相应的红外遥控编码,并调制到38kHz的载波信号上,最后,通过74LS07驱动发光二极管发射红外信号,达到学习和发射的目的,从而实现一个遥控器控制多种遥控设备的功能。3.3 详细流程图在程序中主程序完成初始化、按键扫描和调用信号发射程序的功能,学习功能通过中断0来完成。程序的具体流程图如图3-2所示。Y结束?中断开始开学习指示灯等待键释放读遥控码存学习标志,关指示灯结束NY开始初始化扫描按键?信号发射N(a)主程序流程图 (b)中断程序流程图图3-2 基于AT89S5
12、2学习型红外线遥控器程序流程图4 代码编写4.1 AT89S52单片机与各模块电路的连接端口分配P1.6和P1.7分别接学习灯指示灯和发射指示灯sbit studylamp=P16;/学习指示灯sbit lamp=P17;/发射指示灯sbit studykey=P32;/学习键(中断口)sbit remotein=P34;/遥控信号输入口sbit remoteout=P35;/遥控信号输出口sbit txkey=P10;/发射键4.2 复位电路的设计复位电路实现的是对单片机以及整个电路的初始化 uint i,j,m=255,n,k,s;/定义各个变量uchar idata remotedata
13、206;/存脉冲宽度数据用uint head;/存起始位用uint remdata;clearmen()/初始化函数studylamp=0;/关学习指示灯lamp=0;/关发射指示灯remoteout=0;/关遥控输出remotein=0;for(i=0;i206;i+)/清内存remotedatai=0x00;IE=0x00;/中断允许控制寄存器置0IP=0x01;/定义中断优先级TMOD=0x22;/8位自动重装模式PCON=0x00;/定时器溢出位清零TH1=0xf3;/40khz初值TL1=0xf3;IT0=1;/脉冲触发方式,负跳变有效EX0=1;/外中断允许EA=1;/开总中断定义
14、延时1ms子程序delay1ms(uint t)/1ms延时子程序for(i=0;it;i+)for(j=0;j0;i-);remoteout=0;ET1=0;TR1=0;n=0;while(1)if(remotedatan=0x00)/数据为0结束delay1ms(10);break;for(i=remotedatan;i0;i-)_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();lamp=lamp;n+;/偶地址不发脉冲ET1=1;TR1=1;/奇地址发调制脉冲for(i=remotedatan;
15、i0;i-);remoteout=0;ET1=0;TR1=0;n+;4.4 中断程序的实现4.4.1定时器中断T1的服务程序定时器中断T1的服务程序,实现控制红外发射灯是否发射。当remoteout为低电平时,红外发射处于工作状态,会发出红外信号;当送入的为高电平时,红外发射不工作。void time_intt1(void) interrupt 3/定时器中断T1remoteout=remoteout;4.4.2 外中断0的服务程序外中断服务程序实现的是接收遥控器发射的红外信号,判断其高低电平,并存入单片机指定的位置,以供当系统处于学习状态时,该红外遥控器进行学习,并控制家电的使用。void
16、intt0(void) interrupt 0/外中断0ET1=0;TR1=0;EX0=0;EA=0;head=0;studylamp=1;lamp=0;while(studykey=0);/等待键释放while(remotein=1);/等待遥控码输入head=0;/读入起始位while(remotein=0)_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();head+;n=0;remdata=0x000
17、0;while(1)while(remotein=1)_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();remdata+;if(remdatam)/高电平5ms退出remotedatan=0x00;EX0=1;EA=1;goto end;remotedatan=remdata;n+;/存高电平脉宽数据remdata=0x0000;/脉宽计数器清零while(remotein=0)_nop_();_nop_(
18、);_nop_();_nop_();_nop_();nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();remdata+;/低电平计数remotedatan=remdata;/存低电平脉宽数据n+;remdata=0x00;end:lamp=1;studylamp=0;4.5 主函数的实现主函数只需调用初始化函数实现电路复位,调用按键函数实现学习、控制功能。main()clearmen();while(1)keywork();/按键扫描5 程序调试各个函数实现后,对该函数整体实现,并进行调
19、试了,调试过程中出现了一些低级错误,如变量的书写错误,定义的错误等等,但整体的模块规划设计实现跟设想的还是一样比较完整、正确的,故软件的实现还是比较顺利的。6 运行与测试本项目设计的是一个多功能红外线遥控器,控制电路板的安装与调试在整个系统研制中占有重要位置,它是把理论付诸实践的过程,也是把纸面设计转变成实际产品的必经阶段。在调试过程中药注意以下几个特点。(1) 正确使用测量仪器的接地端,仪器的接地端与电路的接地端要可靠连接。(2) 在信号较弱的输入端,尽可能使用屏蔽线连线,屏蔽线的外屏蔽层要接到公共地线上,在频率较高时要设法隔离连接线分布电容的电影,例如用示波器测量时应该使用使用示波器探头连
20、接,以减少分布电容的影响。(3) 测量电压所用仪器的输入阻抗必须远大于被测处的等效阻抗。(4) 测量仪器的带宽必须大于被测量电路的带宽。(5) 正确选择测量点和测量。(6) 认真观察记录实验过程,包括条件、现象、数据、波形、相位等。(7) 出现故障时要认真查找原因。在程序调试成功之后,我将该程序烧入AT89S52芯片中,并对整个系统进行了测试。刚开始时,当按下学习键时,其学习指示灯不亮,于是,我用万能表对焊接的状态指示电路进行了测试,最后发现是与单片机的P1.6端口接入处没有焊实。但经焊实后,发现跟我要系统实现的功能还是不完全,于是我又对程序进行了修改,经多次烧写、运行、调试,终于实现了学习型
21、红外线遥控功能。遥控器在使用时按下学习键,待学习指示灯亮后,用原遥控器对着红外接收头按下某一功能键,当学习指示灯灭时,就可按发射键进行遥控操作了。本设计还有较多的扩展空间,若在系统中扩展一个存储器,再加入相应的按键就可以制作成一个学习型的万能遥控器。总 结本次单片机系统开发与应用工程实习报告前后历时两周。此次工程实习的前一周,我们对整个系统的进行了深入的了解,并对其进行了整体规划,分别划分为AT89S52控制器模块、红外接收电路模块、红外发射电路模块、状态指示电路模块、复位电路模块、电源电路模块。当我把该系统的模块确定以后,就初步画出该系统的硬件电路原理图,经过确定以后,就开始了硬件电路的焊接
22、。经过对焊接的电路运行和测试成功后,就对软件设计进行了简单的设计。实习的第二周主要是将程序烧写入硬件电路中,并对其进行运行与调试。在学习这门课程时,感到单片机的概念抽象,对其中的引脚的分配、寄存器的功能等基本理论也不能很好地理解与掌握。通过本次工程实习,我对学到的单片机知识有了更深一步的深入,而且,本次实习让我对于实践也有了基本认识。刚开始时,我有的只是书本上的东西,只有表面记忆,通过该次实习,我对其有了进一步的了解,如AT89S52单片机芯片的具体功能、默认输出的值,元器件的如何正确焊接,如何验证元器件的焊接是否正确等等。本次工程实习是本科学习阶段很有价值的理论与实践相结合的机会,这次实习能
23、这么顺利的完成,首先感谢淮阴工学院、计算机工程学院提供的实践机会,同时也感谢实验室老师给我们提供的良好的实验环境。当然,更要感谢一直陪伴在实验室的老师孜孜不倦的教诲、细心的指导和不懈的支持,以及同班同学的帮忙调试,让我学会了很多东西。这次比较系统的学习型红外遥控器的设计提高了我运用所学的专业基础知识来解决面临实际问题的能力,让我见证了单片机应用的价值,同时也提高了我查阅各种文献资料、设计手册、设计规范以及软件编程的水平。参考文献1 赵鑫,蒋亮,齐兆群等.数字电路设计.北京:机械工业出版社,20052 苏家健,曹柏荣,汪志锋.单片机原理及应用技术. 北京:高等教育出版社,20033 李朝青. 单
24、片机原理及接口技术. 北京:北京航天航空大学出版色,20014 胡汉才. 单片机原理及其接口技术. 北京:清华大学出版社,2004.5 潭浩强.C语言程序设计.北京:清华大学出版社.20056 李华,李东.MCS51/98系列单片机原理与应用.北京:机械工业出版社.19977 杨居义,杨尧,杨晓琴等.单片机课程设计指导.北京:清华大学出版社.2009指导教师评语学号姓名班级选题名称基于AT89S52的学习型红外遥控器的设计序号评价内容权重(%)得分1考勤记录、学习态度、工作作风与表现。52自学情况:上网检索机时数、文献阅读情况(笔记)。103论文选题是否先进,是否具有前沿性或前瞻性。54成果验收:是否完成设计任务;能否运行、可操作性如何等。205报告的格式规范程度、是否图文并茂、语言规范及流畅程度;主题是否鲜明、重心是否突出、论述是否充分、结论是否正确;是否提出了自己的独到见解。306文献引用是否合理、充分、真实。57答辩情况: 自我陈述、回答问题的正确性、用语准确性、逻辑思维、是否具有独到见解等。25合计指导教师(签章): 年 月 日