使用INT1边沿触发

源代码在线查看: 单片机红外遥控解码中断子程序.lst

软件大小: 17 K
上传用户: jwl119
关键词: INT1 边沿触发
下载地址: 免注册下载 普通下载 VIP

相关代码

				A51 MACRO ASSEMBLER  __芲籣篲外襙縚解码謃_献觃___                                         02/23/2009 09:52:07 PAGE     1
				
				
				MACRO ASSEMBLER A51 V8.00d
				OBJECT MODULE PLACED IN 单片机红外遥控解码中断子程序.OBJ
				ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE 单片机红外遥控解码中断子程序.asm SET(SMALL) DEBUG EP
				
				LOC  OBJ            LINE     SOURCE
				
				0000                   1     ORG 0000H
				0000 0162              2     AJMP MAIN;
				                       3     
				0013                   4     ORG 0013H;外部中断P3.3脚INT1入口地址 
				0013 C2AF              5     CLR EA ;暂时关闭CPU的所有中断请求
				0015 7E0A              6     MOV R6,#10
				0017 1185              7     SB: ACALL YS4;调用882微秒延时子程序
				0019 20B343            8     JB P3.3,EXIT;延时882微秒后判断P3.3脚是否出现高电平如果有就退出解码程序
				001C DEF9              9     DJNZ R6, SB;重复10次,目的是检测在8820微秒内如果出现高电平就退出解码程序 
				                      10     ;以上完成对遥控信号的9000微秒的初始低电平信号的识别。
				001E 30B3FD           11     JNB P3.3, $ ;等待高电平避开9毫秒低电平引导脉冲
				0021 118E             12     ACALL YS5 ;延时4.74毫秒避开4.5毫秒的结果码
				                      13     
				0023 7F1A             14     MOV R7,#26;忽略前26位系统识别码 
				                      15     
				0025 30B3FD           16     JJJJA:JNB P3.3,$;等待地址码第一位的高电平信号
				0028 120085           17     LCALL YS4;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态
				002B A2B3             18     MOV C,P3.3;将P3.3引脚此时的电平状态0或1存入C中
				002D 5003             19     JNC UUUA;如果为0就跳转到UUUA
				002F 12007C           20     LCALL YS3;检测到高电平1的话延时1毫秒等待脉冲高电平结束
				0032 DFF1             21     UUUA: DJNZ R7,JJJJA
				                      22     
				0034 791A             23     MOV R1,#1AH ;设定1AH为起始RAM区
				0036 7A02             24     MOV R2,#2;接收从1AH到1BH的2个内存,用于存放操作码和操作反码 
				0038 7B08             25     PP: MOV R3,#8;每组数据为8位 
				                      26     
				003A 30B3FD           27     JJJJ: JNB P3.3,$;等待地址码第一位的高电平信号
				003D 120085           28     LCALL YS4;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态
				0040 A2B3             29     MOV C,P3.3;将P3.3引脚此时的电平状态0或1存入C中
				0042 5003             30     JNC UUU;如果为0就跳转到UUU
				0044 12007C           31     LCALL YS3;检测到高电平1的话延时1毫秒等待脉冲高电平结束
				0047 E7               32     UUU: MOV A,@R1;将R1中地址的给A
				0048 13               33     RRC A;将C中的值0或1移入A中的最低位
				0049 F7               34     MOV @R1,A;将A中的数暂时存放在R1数值的内存中
				004A DBEE             35     DJNZ R3,JJJJ;接收满8位换一个内存
				004C 09               36     INC R1;对R1中的值加1,换下一个RAM
				004D DAE9             37     DJNZ R2,PP ;接收完8位数据码和8位数据反码,存放在1AH/1BH中
				                      38     
				004F E51A             39     MOV A,1AH
				0051 F4               40     CPL A;对1AH取反后和1BH比较
				0052 B51B0A           41     CJNE A,1BH,EXIT;如果不等表示接收数据发生错误,放弃
				0055 851A90           42     MOV P1,1AH;将按键的键值通过P1口的8个LED显示出来!
				0058 C2A3             43     CLR P2.3;蜂鸣器鸣响-嘀嘀嘀-的声音,表示解码成功
				005A 12006A           44     LCALL YS1
				005D D2A3             45     SETB P2.3;蜂鸣器停止
				005F D2AF             46     EXIT: SETB EA ;允许中断
				0061 32               47     RETI ;退出解码子程序
				                      48     ;以下为主程序进行CPU中断方式设置
				0062                  49     MAIN:
				0062 D2AF             50     SETB EA ;打开CPU总中断请求
				0064 D28A             51     SETB IT1 ;设定INT1的触发方式为脉冲负边沿触发
				0066 D2AA             52     SETB EX1 ;打开INT1中断请求
				0068 80FE             53     JMP $;
				                      54     
				006A 7C14             55     YS1:MOV R4,#20;10ms延时
				006C 7DF8             56     D1:MOV R5,#248
				006E DDFE             57     DJNZ R5,$
				0070 DCFA             58     DJNZ R4,D1
				A51 MACRO ASSEMBLER  __芲籣篲外襙縚解码謃_献觃___                                         02/23/2009 09:52:07 PAGE     2
				
				0072 22               59     RET
				                      60     
				0073 7C01             61     YS2:MOV R4,#1;0.5ms延时
				0075 7DF8             62     D2:MOV R5,#248
				0077 DDFE             63     DJNZ R5,$
				0079 DCFA             64     DJNZ R4,D2
				007B 22               65     RET
				                      66     
				007C 7C02             67     YS3:MOV R4,#2;1ms延时
				007E 7DF8             68     D3:MOV R5,#248
				0080 DDFE             69     DJNZ R5,$
				0082 DCFA             70     DJNZ R4,D3
				0084 22               71     RET
				                      72     
				0085 7C14             73     YS4: MOV R4,#20 ;(占用R4/R5)延时子程序4,精确延时882微秒
				0087 7D14             74     D4: MOV R5,#20
				0089 DDFE             75     DJNZ R5,$
				008B DCFA             76     DJNZ R4,D4 
				008D 22               77     RET
				                      78     
				008E 7C0A             79     YS5: MOV R4,#10 ;(占用R4/R5)延时子程序5,精确延时4740微秒
				0090 7DEB             80     D5: MOV R5,#235
				0092 DDFE             81     DJNZ R5,$
				0094 DCFA             82     DJNZ R4,D5 
				0096 22               83     RET
				                      84     
				                      85     END
				                             
				                             
				A51 MACRO ASSEMBLER  __芲籣篲外襙縚解码謃_献觃___                                         02/23/2009 09:52:07 PAGE     3
				
				SYMBOL TABLE LISTING
				------ ----- -------
				
				
				N A M E             T Y P E  V A L U E   ATTRIBUTES
				
				D1 . . . . . . . .  C ADDR   006CH   A   
				D2 . . . . . . . .  C ADDR   0075H   A   
				D3 . . . . . . . .  C ADDR   007EH   A   
				D4 . . . . . . . .  C ADDR   0087H   A   
				D5 . . . . . . . .  C ADDR   0090H   A   
				EA . . . . . . . .  B ADDR   00A8H.7 A   
				EX1. . . . . . . .  B ADDR   00A8H.2 A   
				EXIT . . . . . . .  C ADDR   005FH   A   
				IT1. . . . . . . .  B ADDR   0088H.2 A   
				JJJJ . . . . . . .  C ADDR   003AH   A   
				JJJJA. . . . . . .  C ADDR   0025H   A   
				MAIN . . . . . . .  C ADDR   0062H   A   
				P1 . . . . . . . .  D ADDR   0090H   A   
				P2 . . . . . . . .  D ADDR   00A0H   A   
				P3 . . . . . . . .  D ADDR   00B0H   A   
				PP . . . . . . . .  C ADDR   0038H   A   
				SB . . . . . . . .  C ADDR   0017H   A   
				UUU. . . . . . . .  C ADDR   0047H   A   
				UUUA . . . . . . .  C ADDR   0032H   A   
				YS1. . . . . . . .  C ADDR   006AH   A   
				YS2. . . . . . . .  C ADDR   0073H   A   
				YS3. . . . . . . .  C ADDR   007CH   A   
				YS4. . . . . . . .  C ADDR   0085H   A   
				YS5. . . . . . . .  C ADDR   008EH   A   
				
				
				REGISTER BANK(S) USED: 0 
				
								ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)
							

相关资源