注意:访问本站需要Cookie和JavaScript支持!请设置您的浏览器! • 打开购物车 • 查看留言 • 付款方式 • 联系我们 |
首页 | 电子入门 | 学单片机 | 免费资源 | 下载中心 | 商品列表 | 象棋在线 | 在线绘图 | 加盟五一 | 加入收藏 | 设为首页 |
选择分类:当前分类——电子制作 相关联或者相类似的文章: 假银行网站骗局屡现(740) 上网要防网络陷井!(740) 做梦(740) 天空为什么是蓝色(739) 实用的门控防盗报警器(739) 电池短路以后会有什么后果呢?(739) 飞扬(738) 如何选择入门的教材(738) 隧道二极管脉冲电路(738) 日光灯的正确使用和故障修理(738) 全新小巧玲珑、安全可靠、不损系统(737) 比酒劲(737) 单片机破解的常用方法及应对策略 (737) 太阳的温度是多少?(736) !!!站长也要享受!!!网站在线管理系统5.08(736) 黑白电视机电路特点和电路分析方法(736) JAVASCRIPT简介 (736) 电子制作中印制电路板设计(736) BH1415F无线发射IC(736) 在骗局的最后一刻,我停住了!(735) 首页 前页 后页 尾页 本站推荐: | 单键学习型遥控器 单键遥控码学习控制器电路原理图 ;********************************************************************** ;* * ;* KEYX0 P1.0 * 1 40 * VCC * ;* KEYX1 P1.1 * 2 39 * P0.0 KEYY0 * ;* KEYX2 P1.2 * 3 38 * P0.1 KEYY1 * ;* KEYX3 P1.3 * 4 37 * P0.2 KEYY2 * ;* SCL P1.4 * 5 36 * P0.3 KEYY3 * ;* SDA P1.5 * 6 35 * P0.4 KEYY4 * ;* STUDYLAMP P1.6 * 7 34 * P0.5 KEYY5 * ;* LAMP P1.7 * 8 33 * P0.6 KEYY6 * ;* RST * 9 32 * P0.7 KEYY7 * ;* RXD P3.0 * 10 MCS-51 31 * EA VDD * ;* TXD P3.1 * 11 30 * ALE * ;* STUDYKEY INT0 P3.2 * 12 29 * PSEN * ;* INT1 P3.3 * 13 28 * P2.7 A15 DEV7 * ;* REMOTEIN T0 P3.4 * 14 27 * P2.6 A14 DEV6 * ;* REMOTEOUT T1 P3.5 * 15 26 * P2.5 A13 DEV5 * ;* WR P3.6 * 16 25 * P2.4 A12 DEV4 * ;* RD P3.7 * 17 24 * P2.3 A11 DEV3 * ;* XTAL2 * 18 23 * P2.2 A10 DEV2 * ;* XTAL1 * 19 22 * P2.1 A9 DEV1 * ;* VSS * 20 21 * P2.0 A8 DEV0 * ;* * ;********************************************************************** ; ; SPBASE EQU 70H ;堆栈基址 IEVAL EQU 00H ;关所有中断 MEMBASE EQU 08H ;工作寄存器基址 MEMS EQU 67H ;工作寄存器个数 ; ; BITNMB EQU 08H ;一个字节包含八个位 ; KEYFUNFLAG EQU 80H ; 键功能索引 KEYFUNNMB EQU 81H ;键功能号 KEYFUNRW EQU 82H ;遥控信号读写标志 READFLAG EQU 88H ;读标记 WITERFLAG EQU 99H ;写标记 ; TMPHADDR EQU 08H ;读入高电平存放首址 TMPLADDR EQU 90H ;读入低电平存放首址 READTIME EQU 00H ;读入数据指令时间 ; LOWH EQU R4 ;起始位存放高地址 ; LOWL EQU R5 ;起始位存放低地址 STUDYLAMP EQU P1.6 ;学习指示灯 LAMP EQU P1.7 ;未定义指示灯 STUDYKEY EQU P3.2 ;学习键 ; REMOTEIN EQU P3.4 ;遥控输入 REMOTEOUT EQU P3.5 ;遥控输出 DELAYCONUT EQU 30H ;延时值 DELAYCONUT0 EQU 0FFH ;延时值 T1COUNT EQU 0F3H ;T1计数值 TMODVAL EQU 22H TCONVAL EQU 41H PCONVAL EQU 00H T2CONVAL EQU 00H SCONVAL EQU 0F8H IPVAL EQU 01H ; ; ;************************************* ;* * ;* 主程序和中断程序入口 * ;* * ;************************************* ORG 0000H AJMP START ORG 0003H AJMP INTEX0 ORG 000BH RETI ORG 0013H RETI ORG 001BH AJMP INTT1 ORG 0023H RETI ORG 002BH RETI ; ;************************************* ;* * ;* 初始化程序中的各变量 * ;* * ;************************************* CLEARMEMIO: CLR A DEC A MOV P0,A ;清 I/O 口 MOV P3,A MOV P1,A CLR A MOV P2,A CLR STUDYLAMP CLR LAMP CLR REMOTEOUT SETB REMOTEIN MOV R0,#MEMBASE ;清工作寄存器 MOV R1,#MEMS CLEARMEM: MOV @R0,A INC R0 DJNZ R1,CLEARMEM MOV R0,#KEYFUNRW MOV @R0,#READFLAG MOV SP,#SPBASE ;设堆栈基址 MOV IE,#IEVAL ;关所有中断 MOV IP,#IPVAL MOV TMOD,#TMODVAL MOV PCON,#PCONVAL MOV SCON,#SCONVAL MOV TH1,#T1COUNT MOV TL1,#T1COUNT SETB EX0 SETB EA RET ; ;************************************* ;* * ;* 主程序 * ;* * ;************************************* START: LCALL CLEARMEMIO ;初始化 ; MAIN: LCALL KEYWORK ;主体程序 LJMP MAIN NOP ;PC值出错处理 NOP NOP LJMP START ; ;************************************* ;* * ;* T1中断服务程序 * ;* * ;************************************* INTT1: CPL REMOTEOUT ;40kHZ RETI ; ;************************************* ;* * ;* 载波合成 * ;* * ;************************************* REMOTETX: MOV R0,#TMPHADDR MOV R1,#TMPLADDR SETB LAMP ; CPL STUDYLAMP MOV A,R4 MOV R3,A JZ LOWBACK CLR A DEC A LOWBACKTMP: MOV R2,A ;起始位复原 LOWBACKTMP0: SETB TR1 SETB ET1 NOP NOP NOP NOP NOP NOP DJNZ R2,LOWBACKTMP0 DJNZ R3,LOWBACKTMP LOWBACK: MOV A,R5 MOV R2,A LOWBACKTMP1: SETB TR1 SETB ET1 NOP NOP NOP NOP NOP NOP DJNZ R2,LOWBACKTMP1 ; TMP0: MOV A,@R0 ;高电平处理 MOV R2,A ; CPL LAMP TMP1: CLR TR1 CLR ET1 CLR REMOTEOUT ; NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP DJNZ R2,TMP1 INC R0 TMPP: MOV A,@R1 MOV R2,A ; CPL LAMP TMP2: SETB TR1 ;低电平处理 SETB ET1 NOP NOP NOP NOP NOP NOP DJNZ R2,TMP2 INC R1 MOV A,@R1 JZ OUT AJMP TMP0 OUT: CLR TR1 CLR ET1 CLR LAMP CLR REMOTEOUT RET ; ;************************************* ;* 遥控数据读取 INT0中断程序 * ;* 高电平存TMPHADDR为首址RAM * ;* 低电平存TMPLADDR为首址RAM * ;************************************* INTEX0: CLR ET1 CLR TR1 CLR EX0 CLR EA SETB STUDYLAMP CLR LAMP MOV R0,#TMPHADDR MOV R1,#TMPLADDR CLR A MOV DPH,A MOV DPL,A READHEAD: JNB REMOTEIN,READDATA ;寻找起始位 INC DPTR NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP AJMP READHEAD ; READDATA: CJNE A,DPH,READDATA00 MOV DPH,A AJMP READHEAD ; READDATA00: MOV R3,DPH MOV DPH,A MOV DPL,A READLOOP01: JB REMOTEIN,READDATA02 ;读起始位 INC DPTR NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP AJMP READLOOP01 ; READDATA02: CLR LAMP MOV R4,DPH MOV R5,DPL ;存起始位 MOV DPH,#00H MOV DPL,#READTIME AJMP READLOOP1 ; READDATA1: SETB LAMP ;存高电平 MOV @R0,DPL INC R0 MOV DPL,#READTIME MOV DPH,#00H READLOOP0: JB REMOTEIN,READDATA2 ;读低电平 INC DPTR NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP AJMP READLOOP0 ; READDATA2: CLR LAMP ;存低电平 MOV @R1,DPL INC R1 MOV DPL,#READTIME MOV DPH,#00H READLOOP1: JNB REMOTEIN,READDATA3 ;读高电平 INC DPTR NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP AJMP READLOOP1 ; READDATA3: CLR A CJNE A,DPH,READDATA4 AJMP READDATA1 ; READDATA4: MOV @R0,A MOV @R1,A ; SETB LAMP CLR STUDYLAMP SETB REMOTEIN READEND: JNB STUDYKEY,READEND MOV R0,#KEYFUNRW MOV @R0,#WITERFLAG SETB EX0 SETB EA RETI ; ;************************************* ;* * ;* 键工作子程序 * ;* * ;************************************* KEYWORK: SETB P1.0 JNB P1.0,KEY0 KEYOUT: RET ; KEY0: LCALL DL10MS ;延时去抖动 JB P1.0,KEYOUT LJMP REMOTETX ; ;************************************* ;* * ;* 延时 255 X 2 = 512 us * ;* * ;************************************* DELAY: MOV R0,#DELAYCONUT0 DELAY1: DJNZ R0,DELAY1 RET ; ;************************************* ;* * ;* 延时25 ms * ;* * ;************************************* DL10MS: MOV R1,#DELAYCONUT DL10MS1: LCALL DELAY DJNZ R1,DL10MS1 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 |