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

开通VIP
 

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

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(基于单片机的红外遥控设计与制作.doc)为本站上传会员【天****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于单片机的红外遥控设计与制作.doc

1、 基于单片机红外遥控设计及制作 13工试2班 陈舒佳 章韬略 一、 设计目 对于本课题研究,其理论中价值是对红外线这种电磁波特性进行更加深入研究。同时在及单片机和电子电路共同作用下,找到单片机及电子电路在实际运用中更多功能,从而挖掘出红外线和硬件设备结合中更多可能性。在现实意义中,对于红外线使用,它不仅提高了单片机、硬件设备和硬件系统在智能遥控领域广泛应用,而相对了在硬件设施上使用了红外线遥控技术,也同时大大拓宽了硬件设施应用范围。在不久将来,我相信,人们对于红外遥控控制运用,会变得越来越广。 二、 设计要求 基本功能要求: 1. 以

2、一个单片机作为控制遥控器,另一个单片机控制系统为被遥控对象; 2. 用遥控器10个遥控开关,控制遥控对象10个电源开关通断; 3. 能实现10个电源开关状态显示; 4. 能实现定时开关某一个电源开关。 扩展功能: 1. 能实现灯光亮度连续调节; 2. 能根据不同电器实现不同时间通断控制; 3. 其他扩展功能。 三、 方案设计 3.1红外遥控发射电路方案 采用指令键产生电路产生不同控制指令,单片机进行状态编码,直接由单片机口输出方波信号控制红外发射管进行发射。红外发射管采用普通红外发射二极管。 3.2红外遥控接收电路方案 遥控系统采用红外线脉冲个数编码,直接利用单

3、片机软件解码,实现功能遥控。 3.3单片机选择 本设计所编写程序比较简单,功能也比较少,所用到输入输出端口也不是很多,所以我们决定用STC89C52单片机来完成本设计,既方便也很实用。 3.4红外遥控系统电路原理框图以及各部分作用 各部分作用:  (1)行列式键盘  行列式键盘又称为矩阵式键盘,用I/O线组成行列结构,按键设置在行列交点上,行列式分别连接到按键开关两端。键盘中有无按键按下是由行线送入扫描字及列线读入列线状态字来判断,有键按下时通过查键并执行键功能程序。  (2)红外线发射电路  遥控器信息码由单片机定时器1中断产生40KHZ红外线方波信号。由P3.5

4、口输出,经过三极管放大,由红外线发射管发送。  (3)单片机  单片机用于输出方波信号控制红外发射电路工作。 3.5红外接收部分原理框图以及各部分作用 各部分作用: (1)+5V电源电路  给单片机最小系统、控制电路提供以及红外接收电路提供电压。 (2)红外接收电路  红外接收电路把接收到状态在内部进行解码,从而实现不同功能。  (3)控制电路  通过发射电路按键实现对控制电路控制作用。 3.6系统硬件电路设计 红外发射电路: 28 / 28 红外接收电路: 四、 遥控发射及接收控制电路软件设计 4.1 软件设计流程图 4.1.1键扫描程序流程图 

5、 相应按键扫描程序: #include #define uint unsigned int #define uchar unsigned char #define keyrow P0 #define keyline P2 uchar code keyv[8]={1,2,4,8}; uchar keyscan(void) { uchar keyval,i; keyval=0; keyrow=0xfe; if(keyline!=0xff) for(i=0;i<4;i++) if(~keyline

6、keyv[i]) keyval=i+1; keyrow=0xfd; if(keyline!=0xff) for(i=0;i<4;i++) if(~keyline==keyv[i]) keyval=i+5; keyrow=0xfb; if(keyline!=0xff) for(i=0;i<4;i++) if(~keyline==keyv[i]) keyval=i+9; keyrow=0xf7; if(keyline!=0xff) for(i=0;i<4;i++) if(

7、~keyline==keyv[i]) keyval=i+13; while(keyline!=0xff); return(keyval); } 4.1.2遥控码发射程序流程图 红外信号发射过程:  该遥控器采用脉冲个数编码,不同脉冲个数代表不同码,最小为2个脉冲,最大为17个脉冲,为了使接收可靠,第一位码宽为3ms,其余为1ms,遥控码数据帧间隔大于10ms 。当某个被控电器电源开关被按下时,单片机先读出键值,然后根据键值设定遥控码脉冲个数,再调制成40kHz方波由红外线发光管发身出去。 相应遥控码发射程序如下:  sb

8、it remoteout=P3^5; extern void delay1ms(uint time); /*************初始化函数***********/ void init(void) { remoteout=0; IE=0x00; IP=0x08; TMOD=0x22; TH1=0xf3; TL1=0xf3; EA=1; } /****

9、发射函数***********/ void send_infrared(uchar keyval) { uchar m; ET1=1;TR1=1;delay1ms(3);ET1=0;TR1=0;remoteout=0; for(m=keyval;m>0;m--) { delay1ms(1); ET1=1;TR1=1;delay1ms(1);ET1=0;TR1=0;remoteout=0; }

10、 delay1ms(10); } /******************40KHZ发生器************/ void time_intt1(void) interrupt 3 { remoteout=~remoteout; } 4.1.3遥控发射主程序流程图 遥控发射主程序流程图:首先初始化程序,然后调用键扫描程序。相应发射主程序如下: #include #define uint unsigned int #define uchar unsigned char extern uchar key

11、scan(void); extern void init(void); extern void send_infrared(uchar keyval); void delay1ms(uint time) { uint i,j; for(i=0;i

12、frared(keyval);} } } 4.1.4 中断程序流程图 中断过程:首先判断低电平脉宽度是否大于2ms,若脉宽不到2ms,则中断返回;若低电平大于2ms,则接收并对低电平脉冲计数,接下来看判断高电平脉宽度冲是否大于3ms,若脉宽不到3ms,则返回上一接收计数过程;若高电平脉宽大于3ms,则按照脉冲个数至对应功能程序。此时中断返回。相应中断程序如下:  #include #include #define uchar unsigned char #define uint unsigned

13、 int sbit remotein=P3^1; extern void delay1ms(uint time); uchar value; /***********初始化********/ void clearmen(void) { EX0=1; EA=1; } /**************外中断遥控接收函数**************/ void intt0(void) interrupt 0 { uc

14、har keyval,k,sign; EX0=0;sign=0;keyval=0; if(remotein==0) { delay1ms(2); if(remotein==0) while(1) { while(remotein==0); keyval++;k=0;delay1ms(1); while(remotein==1) {

15、 delay1ms(1);k++; if(k>2) { value=keyval-1; sign=1; break; } } if(sign) break;

16、 } } EX0=1; } 4.1.5遥控接收器主程序流程图 相应接收主程序: #include #include #define uchar unsigned char #define uint unsigned int extern void clearmen(void); extern uchar value; uchar temp; void delay1ms(uint time) { uint i,j;

17、 for(i=0;i

18、 P2=~temp; delay1ms(1000); Temp>>=1; } } void quanliang(void) {uint i; temp=0xfe; for(i=0;i<8;i++) //7个流水灯依次全部点亮 { P2=temp; delay1ms(1000); temp<<=1; } } void fquanliang(void) { uint i; temp=0x7f; for(i=0;i<8;i++) /

19、/7个流水灯依次全部点亮 { P2=temp; delay1ms(1000); Temp>>=1; } } void main() { clearmen(); P0=0xff; while(1) { if(value==1) {P2=0xfe;} if(value==2) {P2=0xfd;} if(value==3) {P2=0xfb;} if(value==4 {P2=0xf7;} if(value==5)

20、 {P2=0xef;} if(value==6) {P2=0xdf;} if(value==7) {P2=0xbf;} if(value==8) {P2=0x7f;} if(value==9) {P1=0xfe;} if(value==10) {P1=0xfd;} if(value==11) youyi(); if(value==12) zuoyi(); if(value==13) quanliang(); if(value==14) fquanliang

21、); } } 五、 演示结果 当按下键1时,发光二极管LED1亮;  当按下键2时,发光二极管LED2亮;  当按下键3时,发光二极管LED3亮;  当按下键4时,发光二极管LED4亮;  当按下键5时,发光二极管LED5亮;  当按下键6时,发光二极管LED6亮;  当按下键7时,发光二极管LED7亮;  当按下键8时,发光二极管LED8亮;  当按下键9时,发光二极管LED9亮; 当按下键10时,发光二极管LED10亮;  当按下键11时,发光二极管LED8-LED1依次渐亮;  当按下键12时,发光二极管LED1-LED8依次渐亮; 当按下键13时

22、发光二极管LED8-LED1依次全亮; 当按下键14时,发光二极管LED1-LED8依次全亮;  附录: 1.程序: #include #define uint unsigned int #define uchar unsigned char #define keyrow P0 #define keyline P2 uchar code keyv[8]={1,2,4,8}; uchar keyscan(void) { uchar keyval,i; keyval=0; keyrow=0xfe; if(keyl

23、ine!=0xff) for(i=0;i<4;i++) if(~keyline==keyv[i]) keyval=i+1; keyrow=0xfd; if(keyline!=0xff) for(i=0;i<4;i++) if(~keyline==keyv[i]) keyval=i+5; keyrow=0xfb; if(keyline!=0xff) for(i=0;i<4;i++) if(~keyline==keyv[i]) keyval=i+9; keyrow=0xf7;

24、 if(keyline!=0xff) for(i=0;i<4;i++) if(~keyline==keyv[i]) keyval=i+13; while(keyline!=0xff); return(keyval); } sbit remoteout=P3^5; extern void delay1ms(uint time); /*************初始化函数***********/ void init(void) { remoteout=0; IE=0x00;

25、 IP=0x08; TMOD=0x22; TH1=0xf3; TL1=0xf3; EA=1; } /*****************发射函数***********/ void send_infrared(uchar keyval) { uchar m; ET1=1;TR1=1;delay1ms(3);ET1=0;TR1=0;remoteout=0; for(m=keyval;m>0;m-

26、) { delay1 ET1=1;TR1=1;delay1ms(1);ET1=0;TR1=0;remoteout=0; } delay1ms(10); } /******************40KHZ发生器************/ void time_intt1(void) interrupt 3 { remoteout=~remoteout; } extern uchar keyscan(void); extern void init(void); extern v

27、oid send_infrared(uchar keyval); void delay1ms(uint time) { uint i,j; for(i=0;i

28、 #include #define uchar unsigned char #define uint unsigned int sbit remotein=P3^1; extern void delay1ms(uint time); uchar value; /***********初始化********/ void clearmen(void) { EX0=1; EA=1;

29、 } /**************外中断遥控接收函数**************/ void intt0(void) interrupt 0 { uchar keyval,k,sign; EX0=0;sign=0;keyval=0; if(remotein==0) { delay1ms(2); if(remotein==0) while(1) { while(remotein==0); keyval++;k=0;de

30、lay1ms(1); while(remotein==1) { delay1ms(1);k++; if(k>2) { value=keyval-1; sign=1;

31、 break; } } if(sign) break; } } EX0=1; } 接收主程序: extern void clearmen(void); extern uchar value; uchar temp; void delay1ms(uint time) { uint i,j; for(i=0;i

32、} void youyi(void) { uint i; temp=0x01; for(i=0;i<8;i++) { P2=~temp; delay1ms(1000); temp<<=1; } } void zuoyi(void) { uint i; temp=0x80; for(i=0;i<8;i++) { P2=~temp; delay1ms(1000); Temp>>=1; } } void quanliang(v

33、oid) {uint i; temp=0xfe; for(i=0;i<8;i++) { P2=temp; delay1ms(1000); temp<<=1; } } void fquanliang(void) { uint i; temp=0x7f; for(i=0;i<8;i++) { P2=temp; delay1ms(1000); Temp>>=1; } } void

34、main() { clearmen(); P0=0xff; while(1) { if(value==1) {P2=0xfe;} if(value==2) {P2=0xfd;} if(value==3) {P2=0xfb;} if(value==4 {P2=0xf7;} if(value==5) {P2=0xef;} if(value==6) {P2=0xdf;} if(value==7) {P2=0xbf;} if(value==8) {P2

35、0x7f;} if(value==9) {P1=0xfe;} if(value==10) {P1=0xfd;} if(value==11) youyi(); if(value==12) zuoyi(); if(value==13) quanliang(); if(value==14) fquanliang(); } } 2. 个人小结 这次课程设计我们题目是设计单片机遥控系统设计,以51单片机为基础通过红外发射及接收装置来实现信息传递,通过这次课程设计,我学会了红外通信装置使用以及它们之间

36、编码设计。另外,通过自己设计焊接单片机让我对单片机结构有了新认识及理解。单片机每一个端口都有自己所需结构及电路,特别是P0口,需要接上拉电阻。这次课程设计我负责接收模块及部分程序设计,我用了一个hs0038一体化红外接收头,使接收电路大大简洁化了,为了找hs0038电路,还上网找了很多版本资料,最终确定了一个相对简单电路,且比较稳定。最后实验结果虽然不尽如人意,但是也学会了很多电路设计方法。 ——————章韬略 这次课程设计,我们设计共分为两个模块,我负责是红外发射模块。首先我在

37、网上查询了一些关于红外发射模块硬件电路资料,确定所需要硬件材料。运用软件来绘制出了硬件电路图。再购买到了材料之后,开始了硬件电路焊接工作,焊接完成后,开始编写程序。在写程序过程中,我了解到了51单片机芯片工作原理,学会了矩阵键盘扫描原则。同时,也认清了红外发射原理,这次我采用是按脉冲个数来对应相应功能,相对来说更为简单易懂。再完成这些工作之后,我们开始了测试和调节,虽然最终并没有完全达到预期效果,但通过这次课程设计,我还是了学会了很多电路设计和单片机知识。 -----------陈舒佳

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服