注意:访问本站需要Cookie和JavaScript支持!请设置您的浏览器! • 打开购物车 • 查看留言 • 付款方式 • 联系我们 |
首页 | 电子入门 | 学单片机 | 免费资源 | 下载中心 | 商品列表 | 象棋在线 | 在线绘图 | 加盟五一 | 加入收藏 | 设为首页 |
选择分类:当前分类——学单片机 相关联或者相类似的文章: 三十分钟一个小时学会单片机(9045) 什么是单片机?单片机有什么用? (8723) 如何用STC板将代码烧录进IC(8681) 怎样安装AT51编程板的USB转串口软件?(8206) 送给单片机爱好者——LED在线编码器(1814) 送给单片机爱好者——LED点阵在线编码器(1544) 单片机系统中的汉字显示(1492) 带语音报数功能的抢答器(1489) 用VB进行串口实时数据采集(1347) 用AT89C2051设计超声波测距仪(1171) 小小电子闹钟 生活学习良伴(1165) DS1820测温原理(1129) 几句代码实现控制摄像头(转)(1117) STC单片机选型指南(1111) 自制PIC单片机编程器(1105) USB转串口芯片CH340(1010) 快速学习单片机之黄金机会!(1010) 告戒购单片机开发实验板初学者(970) 新款实用旋转LED显示屏A(890) 使用市售 USB转RS232串口与PLC通信的测试报告 (881) 首页 前页 后页 尾页 本站推荐: | ★单片机四路无线遥控解码程序 这篇文章中的程序我们只提供了程序设计思路,有些子程序还要自己增加。即大家应该怎么样做才可能完成我们需要的功能。本站另一片文章中有最终版本完成版的程序,可以直接生成HEX,请自己找。 该程序可以对2262以及类似芯片的遥控器进行解码,并且可以学习记忆,不受停电影响,做成的无线遥控开关通过学习后,可以实现单独开、单独关、群开、群关等功能。 这个程序我们收了客户2500元,客户不允许我们提供在网上,后来达成协议,不提供任何技术支持的情况下,可以让付费贵宾阅读。如果需要提供原理路、源程序批注,最少应付款800元才可以出售(包括一块功能演示测试电路板)。 org 00h jmp config org 03h reti org 0bh reti org 13h reti org 1bh reti org 23h reti org 30h config: clr ea mov p0,#0h mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh mov r3,#0;表示现在非学习状态,1234分别表示要学习四路 mov r4,#0;延时要准 mov r5,#0;延时要准 clr 30h;当30h能变成高电平时,说明长识别码已经收到,下次电平变化时开始保存数据 main: call key;求出键值 call keyrun;执行功能 call rec;记录接收 call kong;执行接收 call xuexi;是否学习 jmp:main rec:jb p2.2,recend;检查p2.2是低电平,高电平转移到recend,可以进入保存数据程序 rec0:clr p2.3 mov r1,#30h mov a,#0;累加器清零,准备保存数据 rec1:call chk rlc a;第1位存入低位 call d10ms rec2:call chk rlc a;第2位存入a call d10ms rec3:call chk rlc a;第3位存入a call d10ms rec4:call chk rlc a;第4位存入a call d10ms rec5:call chk rlc a;第5位存入a call d10ms rec6:call chk rlc a;第6位存入a call d10ms rec7:call chk rlc a;第7位存入a call d10ms rec8:call chk rlc a;第8位存入a call d10ms mov @r1,a;r1=30/31/32/33,连续记录4个字节 inc r1 cjne r1,#34h,rec1 setb p2.3 recend:ret chk:inc r5 cjne r5,#0,chk0;去检测P3。7的状态 mov r5,#0 inc r4 cjne r4,#50,chk0 mov r4,#0 clr p2.2 chk0:jnb p2.1, sou2 sou1:jb p3.7, sou3 clr p2.1 setb p2.2 jmp sou3 sou2:jnb p3.7, sou3 setb p2.1 setb p2.2 chkend: mov c,p3.7 jb p2.2,recend;检查p2.2是低电平,高电平转移到recend,可以进入保存数据程序 ret kong:jb p2.3,kondend;只有p2.3为高表示收到了有效的数据 jb p2.4,kongend;数据已经记录,看现在是什么状态,是学习状态跳到学习,kk0表示要开始执行按键功能 kk0:mov r1,#50h;50/51/52/53存第一个开关 call bj cjne r2,#4,kk1;连续4个字节相等,说明有码相同,执行开关命令,否则到kk1检查第二个开关 cpl p1.4 kk1:mov r1,#54h; call bj cjne r2,#4,kk2;连续4个字节相等,说明有码相同 cpl p1.5 kk2:mov r1,#58h; call bj cjne r2,#4,kk3;连续4个字节相等,说明有码相同 cpl p1.6 kk3:mov r1,#5ch; call bj cjne r2,#4,bend;连续4个字节相等,说明有码相同, cpl p1.7 kongend :ret xuexi:jnb p2.3,xxend;只有p2.3为高表示收到了有效的数据 jb p2.4,xxend;数据已经记录,看现在是什么状态,是学习状态学习 cjne r3,#0,xxend;r3是表示当前被学习的路数,0表示不学习,1234分别代表4路 xx1:cjne r3,#1,xx2;是否保存第1路数据 mov r1,#50h call up xx2:cjne r3,#2,xx3;是否保存第2路数据 mov r1,#54h call up xx3:cjne r3,#3,xx4;是否保存第3路数据 mov r1,#58h call up xx4:cjne r3,#4,xxend;是否保存第4路数据 mov r1,#5ch call up jmp xxend up: mov r2,#0;从第一位数保存 mov r0,#30h;装入学习的数或者收到的数 upre: mov a,@r0 mov @r1,a;r1已经分别装入四路要保存的数 inc r0 inc r1 inc r2 cjne r2,#4,upre;0123表示四位数已经全部保存,r2=4时表示第五数不能保存,否则会写坏其它数据 iap0: ;此处要写到EEROM,50-5f必须放入EEROM中才能在停电不丢失数据,每次重启动时又从EEROM中读出 ; ; ; xxend:ret bj:mov r2,#0;正在比较第几位数 mov r0,#30h;装入学习的数或者收到的数 bj0:mov a,@r0 xrl a,@r1;与要比较的数异或 inc r0 inc r1 inc r2 cjne a,#0,bjend;等于表示数相等,往下走,不等于0表示不等,结束比较 cjne r2,#4,bj0;0123表示四位数都相等就要立即反回,等于4表示前四次比较完都相等 bjend:ret key: setb p1.0 setb p1.1 setb p1.2 setb p1.3 mov r7,#0;r7内装按键值,0表示无键按下去 k1:jb p1.0,k2;先检查P1。0是否按下, mov r7,#1 mov 4fh,r7;立即将键值存入R7和4F,R7还要检查按键松开 k2:jb p1.1,k3 mov r7,#2 mov 4fh,r7 k3:jb p1.2,k4 mov r7,#3 mov 4fh,r7 k4:jb p1.3,k5 mov r7,#4 mov 4fh,r7;立即将键值存入R7和4F,R7还要检查按键松开 k5:cjne r7,#0,kend;扫描到最后,r7为0表示已经没有按键按下,下面要执行按键程序 mov r7,4fh;将4FH值装入r7,根据键值去执行功能。 mov 4fh,#0;同时将4FH清零,以免重复执行 run1:cjne r7,#1,run2;分别执行键值等于1234的功能 cpl p1.4 run2:cjne r7,#2,run3 cpl p1.5 run3:cjne r7,#3,run4 cpl p1.6 run4:cjne r7,#4,kend;没有按键值相等,表示什么也不执行。 cpl p1.7 kend:ret d10ms: mov r6,#0 ;mov r5,#0 dms: ;inc r5 ;cjne r5,#25,dms ;mov r5,#0 inc r6 cjne r6,#250,dms mov r6,#0 cpl p1.7 ret end 1、 本站不保证以上观点正确,就算是本站原创作品,本站也不保证内容正确。 2、如果您拥有本文版权,并且不想在本站转载,请书面通知本站立即删除并且向您公开道歉! |
本站协议 |
版权信息 |
关于我们 |
本站地图 |
营业执照 |
发票说明 |
付款方式 |
联系方式
深圳市宝安区西乡五壹电子商行——粤ICP备16073394号-1;地址:深圳西乡河西四坊183号;邮编:518102 E-mail:51dz$163.com($改为@);Tel:(0755)27947428 工作时间:9:30-12:00和13:30-17:30和18:30-20:30,无人接听时可以再打手机13537585389 |