ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:257.84KB ,
资源ID:17369608      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-17369608.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电子综合设计报告.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

电子综合设计报告.docx

1、电子综合设计报告电子综合设计红外传输设计指导老师 : 红外传输设计总结报告一系统功能描述1.1实现的基本功能原设计主要研究并设计一个基于单片机的红外传输系统,并实现对八路开关的控制。控制系统主要是由51和52系列单片机、红外发射电路、红外接收电路、等部分组成,单片机编码发射遥控信号经红外接收处理传送给单片机,单片机根据不同的信息码控制八路LED发光二极管各个状态,并完成相应的状态指示修改后设计有电脑软件设置发送字符,红外发送接收后显示在LCD屏幕上。1.2系统的工作原理红外通信是利用 950nm近红外波段的红外线作为传递信息的媒体, 即通信信道。发送端采用脉时调制 ( PPM)方式, 将二进制

2、数字信号调制成某一频率的脉冲序列, 并驱动红外发射管以光脉冲的形式发送出去, 接收端将收到的光脉冲转换成电信号, 再经过放大、滤波处理后送给解调电路进行解调, 还原为二进制数字信号后输出。换句话说, 红外通信的实质就是对二进制数字信号进行调制和解调, 以便利用红外进行传输。1.3系统组成原设计系统硬件由以下几部分组成:键盘采用矩阵键盘,44矩阵键盘中P1.0-P1.3为采集数据入口,P1.4-P1.7采集数据出口,红外数据发射电路,红外接收电路,继电器电路。软件部分包括AT89S52单片机,STC89C52单片机修改后设计硬件包括发射电路,接收电路,LCD二实际各部分电路的电路图和设计方案2.

3、1硬件电路2.1.1 AT89S52单片机介绍原设计采用了AT89C2051,它是由ATMEL公司推出的一种小型单片机。其主要特点为采用Flash存贮器技术,降低了制造成本,其软件、硬件与MCS-51完全兼容,其程序的电可擦写特性,使得开发与试验比较容易。但此芯片需要独特的下载方法,不便使用,故本设计换为AT89S52。AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧

4、的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。2.1.

5、2 STC89C52RC单片机介绍STC89C52RC系列单片机是有超强抗干扰、高速、低功耗的单片机,指令代码完全兼容传统8051单片机,12时钟机器周期和6时钟机器周期可任意选择,最新的D版本内部集成MAX810专用复位电路。2.1.3 时钟电路及RC复位电路STC89C52RC芯片内部有一高增益反相放大器,用于构成振荡器.反相放大器的输入端为XTAL1,输出端为XTAL2。在XTAL1、XTAL2(第19、18引脚)两端跨接一个石英晶体振荡器,和两个电容就构成了稳定自激谐振电路。晶振频率为11.0592MHz。C12,C13是两个瓷片电容,与晶振Y2构成了自激谐振电路。其电容的作用主要是对

6、频率进行微调,一般取30-45PF左右。使用该电路可产生稳定的11.0592MHZ频率,受外界的环境的干扰影响非常小。其接法如图3-2所示:图2-2 晶振电路 图2-3复位电路图2.2 单片机红外发射器的电路设计原设计2.2.1 矩阵键盘电路(1)44矩阵键盘的工作原理:矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是44个。这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。行线接P1.4-P1.7,列线接P1.0-P1.3,如图2-4所示。图2-4 矩阵键盘电路图(2)按键功能

7、说明:设备1-3是用电器件的选择按键,按下时则相应的用电器件被选中,如果长按下超过5秒钟,则会关断对应的用电器件;S1-12是用电器件的功能选择按键;OFF是LED指示灯和所有用电器件的总关断按键,OFF按键按下时会使LED指示灭二达到节能的目的,如果长按超过5秒钟,则会关掉所有的用电器件。修改后设计采用电脑发送字符。2.2.2 红外发射电路(1)红外线遥控制系统的原理:将指令脉冲编码信号调制在载波振荡器产生的载波上(也称脉码调制),然后用这脉码调制信号去驱动红外发光二极管,以发出经过调制的红外光波。 (2)红外编码原理:通常,红外遥控器将遥控信号(二进制脉冲码)调制在38KHz的载波上,经缓

8、冲放大后送至红外发光二极管,转化为红外信号发射出去。二进制脉冲码的形式有多种,其中最为常用的是PWM码(脉冲宽度调制码)和PPM码(脉冲位置调制码)。本课题是以PPM码(脉冲位置调制码及遥控编码中的NEC码)对红外数据的发送进行论证。如图2-5示图2-5 指令脉冲图编码脉冲信号由引导码、系统码、系统反码、功能码、功能反码等信号组成。引导码也叫起始码,由宽度为9ms的高电平和宽度为4.5ms的低电平组成,用来标志遥控编码脉冲信号的开始。如图2-6所示图2-6 信号引导码图脉冲位置表示的“0”和“1”组成的32位二进制码前16位控制指令,控制不同的红外遥控设备。而不同的红外家用电器又有不同的脉冲调

9、控方式,后16位分别是8位的功能码和8位的功能反码。串行数据码时序图如2-7所示图2-7 串行数据码时序图将要发送的指令脉冲编码信号调制在38KHz的载波上,可以增加信号的抗干扰能力,提高信号传输效率。 (3)红外数据发射电路的设计:在红外数据发射过程中,由于发送信号时的最大平均电流需几十mA,所以需要三极管放大后去驱动红外光发射二极管。软件编程将数据从P30将数据输出。T0定时产生38KHz载波信号,与门采用了74LS08。红外数据射发射电路图如2-8所示。图2-8 红外数据发射电路2.3 单片机红外接收器的电路设计2.3.1 红外接收电路LT0038是用于红外遥控接收的小型一体化接收头,集

10、成红外线的接收、放大、解调,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输,中心频率38.0kHz。红外接收电路连接图如图2-9所示。图2-9红外接收电路图原设计采用八路LED显示2.3.2八路LED开关电路八路开关电路的实现是本次设计的重点,通过八路开关的功能演示来体现本次多功能红外遥控器的设计思想,其电路图2-10所示。图2-10 八路LED开关电路修改后采用LCD屏幕显示发射的字符电路如图2-11图2-11 接收及显示电路三实际各部分电路的调试过程 遇到的问题及解决方案原设计首先对矩阵

11、键盘进行了测试,发现出现了短路,及按键损坏,下载程序后测量晶振正常起振频率为11.0592正弦波,按下按键测量发射脚P30为38K正常,P37脚发射波形持续时间不对,对程序中的时间进行调整,仍得不到正确波形,检查后发现线性关系错误,修改后得到了正确的波形,紧接着测量与门输出正确为38K和发射波形相乘结果。接收电路经测量复位电路并联电容出现了短路,修改后得到了正确的结果。四测试结果原设计实物图修改后设计实物图原设计虽未在硬件上实现但得到了正确的仿真结果如下五成功经验和失败原因:收获和不足 初次设计发送采用了AT89C51,此单片机是精简的AT89C51,但程序下载较困难,需要特殊下载电路,因此耽

12、误了设计的进度。修改后设计发送采用较常用的AT89S系列,晶振为24M,采用电脑做为发射信号源消除了键盘发射的复杂性,但在显示上采用了LCD12864液晶屏使设计更加有意义。在这次设计中因为中途更换了题目了解了很多种芯片包括AT89C2051 AT89S52 STC89C52以及矩阵键盘、 红外发射管、红外一体化接收头、LCD等的构造原理及使用方法。此次设计起初因为芯片选择出现问题,程序无法下载,之后因为元器件放置不当而损坏以及程序错误得不到理想波形,经过查询资料请教老师并对电路进行各级排查,在各测试点检测波形得到了正确的发射码字。通过本次设计对单片机有了更深的了解,锻炼了编程能力以及硬件检错

13、能力,加强了我们动手、思考和解决问题的能力,出现差错的随机应变能力,和与人合作的能力,今后的制作应该会更加更轻松。在整个设计过程中,我们通过这个方案包括设计了一套电路原理和PCB连接图,和芯片上的选择。由于粗心出现了很多基础性错误,也因此耗费了很多时间。做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且对于其在电路中的使用有了更多的认识。在制作PCB时,发现细心耐心,恒心一定要有才能做好事情,首先是线的布局上既要美观又要实用和走线简单,兼顾到方方面面去考虑

14、是很需要的,否则只是一纸空话。其次我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能提高自己的实际动手能力和独立思考的能力。设计的过程可以说是困难重重,过程中发现了自己很多的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固遇到的很多专业知识问题,最后在老师的专业指导下,终于迎刃而解。对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢! 1、单片机原理及接口技术M,高等教育出版社2、C语言控制与应用M,清华大学

15、出版社3、高频电子线路M,高等教育出版社4、实用声光及无线电遥控电路300例M,中国电力出版社出版5、单片机典型模块设计实例导航M,人民邮电出版社附录键盘及发送程序#include #include #include lcd.hstatic bit OP; /红外发射管的亮灭static unsigned int count; /延时计数器static volatile unsigned int endcount; /终止延时计数char iraddr1; /十六位地址的第一个字 节char iraddr2; /十六位地址的第二个字节typedef unsigned char uchar;un

16、signed char datau,flagu=0;uchar kbscan(void); void SendIRdata(char p_irdata);void delay();void delays(unsigned char c);uchar kbscan(void) uchar sccode,recode; P1=0x0f; /置所有行为低电平,列扫描,列线输入 if(P1&0xf0)!=0xf0) /判断是否有有键按下,有往下执行 delay(); /延时去抖动(10ms) if(P1&0xf0)!=0xf0) /再次判断列中是否是干扰信号,不是则向下执行 sccode=0xFE;

17、/逐行扫描初值(即先扫描第1行) while(sccode&0x10)!=0) /行扫描完成时停止while程序 P1=sccode; /输出行扫描码 if (P1&0xf0)!=0xf0) /本行有键按下 recode=(P1&0xf0)|0x0f; /列 return(sccode&recode); /返回行和列 else /所扫描的行没有键按下,则扫描下一行 /sccode=(sccode); /sccode=(sccode1); /sccode=(sccode); /sccode=(sccode)1);/行扫描码左移一位 sccode=(sccode1)|0x01; else retu

18、rn 0; /无键按下,返回0 void main(void) volatile unsigned char key; volatile unsigned char mod; count = 0; OP = 0; P3_7 = 0; P3_0 = 1; P3_1 = 1; P3_3 = 1; EA = 1; /允许CPU中断 TMOD = 0x21; /设定时器0和1为16位模式1 ET0 = 1; /定时器0中断允许 TH0 = 0xFF; TL0 = 0xE8; /设定时值0为38K 也就是每隔26us中断一次 TR0 = 1;/开始计数SCON=0X50; TH1 = 230; TL1

19、= 230; TR1=1; IE|=0X90; iraddr1=0xff; iraddr2=0xff; init_lcd(); qingping(); do key=kbscan(); delays(2); if(key=0xed) mod=1; else if(key=0xdd) mod=0; if(mod=0) if(flagu) SendIRdata(datau); flagu=0; write_com(0x80); write_data(0x43); else switch(key) case 0xed: SendIRdata(0x00);/0 break; case 0xDD: Se

20、ndIRdata(0x01);/1 break; case 0xBD: SendIRdata(0x02);/2 P3_1=P3_1; break; case 0x7D: SendIRdata(0x03);/3 break; case 0xEB: SendIRdata(0x04);/4 break; case 0xDB: SendIRdata(0x05);/5 break; case 0xBB: SendIRdata(0x06);/6 break; case 0xE7: P3_0=1; break; case 0xD7: P3_1=1; break; case 0xB7: P3_2=1; bre

21、ak; default: break; while(1); /定时器0中断处理 void timeint(void) interrupt 1 TH0=0xFF; TL0=241; /设定时值为38K 也就是每隔26us中断一次 count+; P3_3=P3_3; void serial () interrupt 4 using 3 if(RI) RI=0; datau=SBUF; flagu=1; void SendIRdata(unsigned char p_irdata) char i; volatile unsigned char irdata;/发送4.5ms的起始码 endcoun

22、t=351; count=0; P3_7=1; dowhile(countendcount);/发送9ms的结果码 endcount=768; count=0; P3_7=0; dowhile(countendcount); for(i=0;ii); if(p_irdata&irdata) /先发送0.56ms的38KHZ红外波(即编码中0.56ms的低电平) endcount=123; count=0; P3_7=1; dowhile(countendcount); endcount=45; count=0; P3_7=0; dowhile(countendcount); else endc

23、ount=45; count=0; P3_7=1; dowhile(countendcount); endcount=45; count=0; P3_7=0; dowhile(countendcount); void delay() unsigned int i,j; for(i=0;i26;i+) for(j=0;j20;j+) _nop_(); void delays(unsigned char c) unsigned int i; for(i=0;ic;i+) delay();解码及LED程序#include #includesfr p0=0x80; sfr p3=0xb0; sbit

24、p10=P10;sbit p32=P32; sbit p00=P00;sbit p01=P01; sbit p02=P02;sbit p03=P03; sbit p04=P04;sbit p05=P05;sbit p06=P06;sbit p07=P07; unsigned char led,dm,i,j,k; void ds_9ms(void) unsigned char j,k; for(j=180;j0;j-) for(k=50;k0;k-) ; void ds0_56ms(void) unsigned char i,j; for(i=3;i0;i-) for(j=184;j0;j-)

25、; void ds4_5ms(void) unsigned char i,j; for(i=90;i0;i-) for(j=50;j0;j-) ; void ds1_68ms(void) unsigned char i,j; for(i=9;i0;i-) for(j=184;j0;j-) ; void ds0_1ms(void) unsigned char i,j; for(i=9;i0;i-) for(j=10;j0;j-) ; void main() IT0=1; EX0=1; EA=1; dm=0; p0=0; p10=1; P2=0xff; while(1) p10=p10; ds0_

26、1ms(); /*void t0(void) interrupt 0 using 2/ unsigned char tt,flag; EA=0; flag=1; for(tt=0;tt40;tt+) if(p32=0) flag=0; break; ds0_1ms(); while(!p32); if(flag) for(tt=0;tt85;tt+) if(p32=1) flag=0; break; ds0_1ms(); while(p32); if(flag) for(tt=0;tt85;tt+) if(p32=1) flag=0; break; ds0_1ms(); while(!p32)

27、; if(flag) for(tt=0;tt85;tt+) if(p32=1) flag=0; break; ds0_1ms(); switch(led) case 0x00:p00=0;p01=1;p02=1;p03=1;p04=1;p05=1;p06=1;p07=1;break; case 0x01:p00=1;p01=0;p02=1;p03=1;p04=1;p05=1;p06=1;p07=1;break; case 0x02:p00=1;p01=1;p02=0;p03=1;p04=1;p05=1;p06=1;p07=1;break; case 0x03:p00=1;p01=1;p02=1

28、;p03=0;p04=1;p05=1;p06=1;p07=1;break; case 0x04:p00=1;p01=1;p02=1;p03=1;p04=0;p05=1;p06=1;p07=1;break; case 0x05:p00=1;p01=1;p02=1;p03=1;p04=1;p05=0;p06=1;p07=1;break; case 0x06:p00=1;p01=1;p02=1;p03=1;p04=1;p05=1;p06=0;p07=1;break; case 0x07:p00=1;p01=1;p02=1;p03=1;p04=1;p05=1;p06=1;p07=0;break; default:p00=1;p01=1;p02=1;p03=1;p04=1;p05=1;p06=1;p07=1; LCD显示程序#include lcd.hvoid delaylcd()_nop_();_nop_();_nop_();void write_com(unsigned char com) unsigned char i; set_sid(); for(i=0;i5;i+

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2