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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机遥控.docx

1、单片机遥控单片机红外遥控的设计南昌科技大学 杜德钦1 方案论证:在现实生活中,随着技术的快速发展,自动化的程度越来越高;而在自动控制中,遥控控制成了不可缺少的一个部分,虽然现在有专门的编码遥控发送芯片,但本设计是基于AT89C51单片机的一种简易的遥控控制试验,用一块AT89C51单片机做发送模块用,主要是调制40KHz载波编码利用红外发送管,扫描键盘,通过相应的键值发出相应的脉冲数;用另一块AT89C51做接收处理器,解码并做出相应的处理;在本应用系统中主要以控制灯泡亮度控制为例。2. 系统硬件电路的设计: 单片机遥控应用系统电路分为遥控发送电路和接收电路(1) 遥控发送电路设计a) 详细电

2、路图见后;b) 其中在原理图中:P0口用着键盘扫描端口,利用矩阵式键盘有16个按键,分别有16个功能;第9脚是单片机复位脚,才用RC电路来实现上电复位;第15脚为红外线遥控码的输出口,用于输出40KHz载波编码,第18,19脚接12MHz晶振。因为AT89C51单片机P0口内部不具有上拉电阻,所以要接上拉电阻。c) AT89C51单片机i. 主芯片AT89C51内含8Kb flash 存储器,256x8位内部RAM,两个定时器,使用5V电源供电,在发送电路中可以采用LV型,方便电池供电。d) 矩阵式键盘处理I 矩阵式键盘是用I/O口组成行列结构,用扫描方式来读取键码; 在这里是用P0口来扩展的

3、,实现16个键盘。(2) 红外接收电路设计a) 详细电路图见后b) 在电路图中有电源电路,调光控制电路;交流电过电源检测电路;c) 我们把电灯的亮度分为7个档,同时用P1.0P1.2作为数码管的二进制数据输出,显示数字07,采用4511集成硬件译码现实数值,以及P0.0P0.7和P2.0P2.6作为十五个电器的电源控制,接口可用继电器和可控硅。d) 本电路中P2.7为控制电灯的可调亮度。P3.0为50H交流电相位基准输入,第12脚为中断输入口,P3.1用于接收红外遥控编码输入信号。e) 电源和交流电过零检测电路f) 开关及亮度控制电路 3. 系统软件设计 1) 遥控码的编码格式 遥控码采用脉冲

4、个数编码个数编码,不同的脉冲个数代表不同的码,最小为2个脉冲,最大为17个脉冲;为了接收可靠,第一位脉宽为3ms,其余为1ms,遥控码数据帧间隔大于10ms,其编码图形如图所示:编码1格式编码2格式2) 遥控码的发送 当某个键按下时,单片机先读出键值,然后根据键值设定遥控码的个数,再调40khz方波有红外发光管发送出去。 P3.5端口的输出调波如下图所示调光命令波形码3)数据帧接收的处理 当红外接收器输出脉冲帧数据时,第一位码的低电平将起动中断程序,实时接收数据,在接收数据帧是,将第一位(起始位)码的脉宽进行验证,若第一位的低电平的脉宽小于3ms将做错误处理,当间隔位的高电平脉宽大于3ms,作

5、为接收到结束信号;,结束接收,再根据脉冲计数器中脉冲的个数来做出相应的处理,下图为红外接收头输出的一帧遥控码波形:4. 遥控发射及接收控制程序设计流程图1)遥控发送器主程序,键盘扫描程序,遥控码发送程序流程图如下图所示: 2)遥控接收主程序,中断程序流程图如下所示:5. 调试及性能分析1) 调试在调试过程中一般先进行系统硬件检查后进行软件调试,对遥控器的调试主要是用示波器来观察接收到的遥控编码波形,能否达到要求。其次调整发射电阻的大小可以改变红外线发送距离,电灯的控制系统中通过对可控制硅的延时时间的调整,电灯按07共8个档次来调整亮度。红外接收头应尽量安装在靠表面,以扩大接收的角度,不同厂家的

6、遥控接收头的接收角度不一致,以选择确定;2) 性能指示调试后性能指标测试如下:1. 最大遥控距离:10m;2. 发射接收角:水平最大900;3. 遥控器发射时工作电流:20mA;4. 电灯最亮电压:AC220;5. 电灯最暗电压:AC10;当采用红外接收时距离和角度等使用效果都将受到一定的限制;当采用调频或调幅接收时距离会远些,接收不受角度的影响。本单片机遥控编码及解码方案一般的遥控电器控制系统中!6. 控制源程序以c语言为例:1):发送程序/*红外遥控发送 AT89C51 12MHz晶振*/#include #include #define uint unsigned int#define

7、uchar unsigned char #define key P0sbit hwout=P35; /红外输出脚uchar temp1,m,n;uchar temp=0;/*1ms延时*/void delay(uint t) uchar i,j; for(i=0;it;i+) for(j=0;j120;j+);/*初始化程序*/void init() IE=0x00; IP=0x01; hwout=0; TMOD=0x020; TH0=0xf3; TL0=0xf3; EA=1;/*定时器1中断*/void time1() interrupt 4 hwout=hwout;/*发送程序*/void

8、 send(m) TR1=1; /40KHz发3ms ET1=1; delay(3); ET1=0; TR1=0; hwout=0; for(n=0;nm;n+) /停1秒 TR1=1; /40KHZ发1ms ET1=1; delay(1); ET1=0; TR1=0; hwout=0; delay(10);/*键盘程序*/void keyscan() key=0xf0; _nop_(); temp=key; if(temp!=0xf0) delay(3); /消抖 if(temp!=0xf0) /确认是否有键按下 temp=key; key=0x0f; _nop_(); temp1=key;

9、 temp=(temp&0xf0)|(temp1&0x0f);/获取键码 delay(3); temp1=0; while(temp1) /判断是否放开按键 key=0xf0; _nop_(); temp1=key; temp1=0xf0; switch(temp) /获取键值 case 0x77:m=1; break; case 0xB7:m=2; break; case 0xD7:m=3; break; case 0xE7:m=4; break; case 0x7B:m=5; break; case 0xBB:m=6; break; case 0xDB:m=7; break; case 0

10、xEB:m=8; break; case 0x7D:m=9; break; case 0xBD:m=10; break; case 0xDD:m=11; break; case 0xED:m=12; break; case 0x7E:m=13; break; case 0xBE:m=14; break; case 0xDE:m=15; break; case 0xEE:m=16; break; default: break; send(m); /*主程序*/void main() init(); while(1) keyscan(); 2) :接收程序/*红外遥控接收 AT89C51 12MH

11、z晶振*/#include #include #define uint unsigned int #define uchar unsigned char #define disout P1sbit powerin=P30;sbit hwin=P31;/对应按键的处理位定义sbit key1=P00;sbit key2=P01;sbit key3=P02;sbit key4=P03;sbit key5=P04;sbit key6=P05;sbit key7=P06;sbit key8=P07;sbit key9=P20;sbit key10=P21;sbit key11=P22;sbit key

12、12=P23;sbit key13=P24;sbit key14=P25;sbit key15=P26;sbit pwm=P27; /灯光pwm控制 /变量定义uint key; /定义一个红外脉冲计数变量uchar k; /定义一个记时变量判断是否为结束信号uint s=1;/*1ms延时*/void delay(uint t) uint i,j; for(i=0;it;i+) for(j=0;j2) goto loopout; loopout: switch(key) /对应键盘选择相应的处理 case 2:key1=key1;break; case 3:key2=key2;break;

13、case 4:key3=key3;break; case 5:key4=key4;break; case 6:key5=key5;break; case 7:key6=key6;break; case 8:key7=key7;break; case 9:key8=key8;break; case 10:key9=key9;break; case 11:key10=key10;break; case 12:key11=key11;break; case 13:key12=key12;break; case 14:key13=key13;break; case 15:key14=key14;break; case 16:key15=key15;break; case 17: /调光和档次选择 if(disout=0x00) disout=0xff; else disout-; loop(); ;break; default:break; /*主函数*/void main() init(); loop(); P2=0xfe; while(1) while(powerin=1) delay(s); tiaoguang();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1