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

开通VIP
 

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

红外遥控-.doc

1、 红外遥控解码器 广东湛江海洋大学 杨振尚 你家里是否有一个电视机遥控器或者空调机遥控器呢?你是否也想让它遥控其他的电器甚至让它遥控您的电脑呢?那好,跟我一起做这个“红外遥控解码器”。 该小制作所需要的元件很少:单片机TA89C2051一只,RS232接口电平与TTL电平转换心片MAX232CPE 一只,红外接收管一只,晶振11.0592MHz,电解电容10uF4只,10uF一只,电阻1K1个,300欧姆左右1个,瓷片电容30P2个。发光二极管8个。价钱不足20元。 电路原理介绍: 主控制单元是单片机AT89C2051,中断口INT0

2、跟红外接受管U1相连,接收红外信号的脉冲,8个发光二极管作为显示解码输出(也可以用来扩展接其他控制电路),U3是跟电脑串行口RS232相连时的电平转换心片,9、10脚分别与单片机的1、2脚相连,(1脚为串行接收,2脚为串行发送),MAX232CPE的7、8脚分别接电脑串行口的2(接收)脚、3(发送脚)。晶振采用11.0592MHz,这样才能使得通讯的波特率达到9600b/s,电脑一般默认值是9600b/s、8位数据位、1位停止位、无校验位。电路就这么简单了,现在分析具体的编程过程吧。 如图所示,panasonic遥控器的波形是这样的(经过反复测试的结果)。 开始位是以3.

3、6ms低电平然后是3.6ms高电平,然后数据表示形式是0.9ms低电平0.9ms高电平周期为1.8ms表示“0”, 0.9ms低电平 2.4ms高电平周期为3.3ms表示“1”,编写程序时,以大于3.4ms小于3.8ms高电平为起始位,以大于2.2ms小于2.7ms高电平表示“1”,大于0.84ms小于1.11ms高电平表示“0”。因此,我们主要用单片机测量高电平的长短来确定是“1”还是“0”即可。定时器0的工作方式设置为方式1:mov tmod,#09h,这样设置定时器0即是把GATE置1,16位计数器,最大计数值为2的16次方个机器周期,此方式由外中断INT0控制,即INT0为高时才允许计

4、数器计数。比如: jnb p3.2,$ jb p3.2,$ clr tr0 这3条指令就可以测量一个高电平,接下来读取计数值TH0,TL0就可以分辨是起始位还是“1”或“0”。在确定码表之前,您可以使用P0口的8个发光二极管来显示编码,16位编码分两次显示: mov p0,keydata acall delay_1s ;//1ms延时子程序 mov p0,keydata+1 ljmp main 根据P0相继的两次显示的编码,记录每个按键的编码,形成编码表,即遥控器编码的解码完毕。码表确定之后,以后接收到遥控器的编码之后,就与码表比较,找到匹配的码项,并把该码项对应的顺序号输

5、出到P0口,同时也把顺序号向串行口输出到电脑,电脑接收该数据后由串口软件决定如何处理。 程序不长,下面是完整的程序和注释:(先看流程图) keydata equ 30h ;//该地址和31H地址用来存放遥控器按键编码。 org 00h main: mov keydata,#0 ;// 清零 mov tmod ,#09h ;//设置定时0方式1,GATE=1 mov r7,#0 ;//计数器,用来计数是否满8位 mov r6,#0 ;//计数器,用来计数是否满2字节(解16位编码) jb p3.2,$ ;//是否为低

6、电平 again: ;//如果为低,继续往下面执行 mov tl0,#0 ;//清零TL0 mov th0,#0 ;//清零TH0 setb tr0 ;//开启定时器0 jnb p3.2,$ ;//等待高电平到来 jb p3.2,$ ;//高电平到来,此时开始计数 clr tr0 ;//高电平结束,停止计数 mov a,th0 ;//读取th0 值,TL0忽略不计 clr c ;// subb a,#12 ;// jc again ;//th0<12则转,即小于3.4ms,你可以算一下这个时间 mov a,#14 ;// cl

7、r c ;// subb a,th0 ;//和14比较,如果TH0>14则大于3.8ms jc again ;//大于3.8ms,从新再检测 nextbit: ;//起始位找到了,然后下一位 mov tl0,#0 ;// mov th0,#0 ;// setb tr0 ;//启动定时器 jnb p3.2,$ ;//等待高电平 jb p3.2,$ ;//高电平到来,此时开始计数 clr tr0 ;//高电平结束,停止计数 mov a,th0 ;//读取计数值,TL0忽略不计 clr c ;// subb a,#8 ;//t

8、h0和8比较 jc next ;;;;//若 <2.2ms则转,再判断是否大于0.84ms mov a,#10 ;//再跟10比较 clr c ;// subb a,th0 ;// jc again ;;;;;;;//若 >2.7ms,则放弃,从新检测 mov a,keydata ;// 符合大于2.2ms 小于2.7ms,即为“1” setb c ;//C = 1 rrc a ;//把1移位进A mov keydata,a ;//保存 inc r7 ;//计数器加1 cjne r7,#8,nextbit ;//是否满8位

9、inc r6 ;//计数加1 cjne r6,#2,last8 ;//是否满两字节 sjmp seach ;//不满两字节,再新采集 last8: ;//满1字节,再接下来第二字节 mov keydata+1,a ;//把第一字节编码数据保存到31h里 mov r7,#0 ;//计数器R7清零 sjmp nextbit ;//继续采集数据 next: ;//小于2.2ms时转到这里 mov a,th0 ;//读取计数值TH0 swap a ;//高4位与低4位对换 mov r1,a ;//保存到R1 anl tl0,#0

10、f0h ;//取TL0高4位,低4位忽略不计 mov a,tl0 ;// clr c ;// rrc a ;// rrc a ;// rrc a ;// rrc a ;// add a,r1 ;// mov r1,a ;// subb a,#30 ;//以上几行是把TH0的低4位和TL0的高4位合并为1字节作为计数值 jc nextbit ; //判断是否 <0.84ms,是则放弃,继续采集 mov a,r1 ;//否 clr c ;// cjne a,#64,continue ;//跟64比较 continue:

11、// jnc nextbit ; //a>64表示采样值 >1.11ms 放弃 mov a,keydata ;//否则 ,符合位“0” clr c ;//C = 0 rrc a ;//把零右移进A mov keydata,a ;//保存 inc r7 ;//计数器加1 cjne r7,#8,nextbit ;//是否满8位 inc r6 ;//计数器加1 cjne r6,#2,last_8 ;//是第一字节已经满 sjmp seach ;// last_8: ;//如果为第二字节 mov keyda

12、ta+1,a ;//则保存第一字节到31h mov r7,#0 ;//清零R7 sjmp nextbit ;// seach: ;//匹配按键编码 mov r0,#-2 ;//按键编码字节个数计数器 mov r1,#-1 ;//按键顺序计数器 seach1: ;// inc r0 ;// seach2: ;// inc r0 ;// inc r1 ;// cjne r1,#29,compare ;//是否R1=29 sjmp exit0 ;// compare: ;//开始匹配 mov a,

13、r0 ;// mov dptr,#keycode ;//地址指针指向码表首址 movc a,@a+dptr ;//取码 cjne a,keydata,seach1 ;//比较 inc r0 ;//R0+1,再比较下一字节(每个按键编码为2字节) mov a,r0 ;// ;mov dptr,#keycode ;// movc a,@a+dptr ;//比较 cjne a,keydata+1,seach2 ;//是否匹配,不匹配则继续跟下一字节比较 mov p1,r1 ;//如果匹配,把按键顺序号输出到p1 send: ;//

14、 mov tmod,#20h ; //设置timer 1,mode 2 mov tl1,#0fdh ;//设置定时器初值 mov th1,#0fdh ;// mov scon,#01010000b;//以上设置,即设置串口波特率系数为:9600,8,1,0 setb tr1 ;//启动定时器1 loop_s: ;// mov sbuf,r1 ;//把R1(按键顺序号)输出到串口 jnb ti,$ ;//等待是否发送完毕 clr ti ;//发送完毕,清零TI exit0: ;// ljmp main ;//循环

15、 keycode: ;//每两字节代表一个按键的编码 db 11111000b,00000000b, 11111100b,00000000b, 11111001b,11000000b db 11111100b,11000000b, 11111010b,00000000b, 11111010b,00100000b db 11111010b,01000000b, 11111010b,01100000b, 11111010b,10000000b db 11111010b,10100000b, 11111010b,11000000b, 111

16、11010b,11100000b db 11111011b,00000000b, 11111011b,00100000b, 11111011b,01000000b db 11111011b,01100000b, 11111111b,01100000b, 11111111b,10100000b db 10001100b,10001110b, 10001101b,11101110b, 10001100b,10101110b db 10001101b,11001110b, 11111000b,11100000b, 11111100b,10000

17、000b db 11111100b,01000000b, 11111001b,10100000b, 11111100b,10100000b db 11111100b,01100000b end --------------------------------------------------------------------------------- 各种遥控器编码不同,如果你采用的是其他遥控器,修改几个参数即可(当然按键的编码表肯定不同了),即计数器的值不同,不过有的遥控器有机器码(机器码每个按键都是一样的),此时可以跳过机器码的采集。最后有一点想提一下的是,刚开始不知道遥控器的编码是比较麻烦的,笔者在“双龙电子“网站下载了个声卡示波器,用他可以一目了然观看遥控器的波形,测量其脉冲宽度,有了它确实方便很多,该软件可以到双龙公司网站

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

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

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

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

gongan.png浙公网安备33021202000488号   

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

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

客服