⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 6r.lt

📁 用单片机做的多路遥控,接收控制板,很好用的.
💻 LT
字号:
        		 1		;*************************************
        		 2		;*	(INCEPT3.ASM)	*
        		 3		;*	十五路遥控接收板	*
        		 4		;*	2001.7.18	*
        		 5		;*	*
        		 6		;*************************************
        		 7		;
        		 8		;**********************************************************************
        		 9		;*	*
        		 10		;*	A	P1.0	1	40	VCC	*
        		 11		;*	B	P1.1	2	39	P0.0	LED0	*
        		 12		;*	C	P1.2	3	38	P0.1	LED1	*
        		 13		;*	P1.3	4	37	P0.2	LED2	*
        		 14		;*	P1.4	5	36	P0.3	LED3	*
        		 15		;*	P1.5	6	35	P0.4	LED4	*
        		 16		;*	P1.6	7	34	P0.5	LED5	*
        		 17		;*	P1.7	8	33	P0.6	LED6	*
        		 18		;*	100HZ	RST	9	32	P0.7	LED7	*
        		 19		;*	P3.0	10	MCS-51	31	EA	VDD	*
        		 20		;*	P3.1	11	30	ALE	*
        		 21		;*	REMOTEIN	P3.2	12	29	PSEN	*
        		 22		;*	P3.3	13	28	P2.7	调光脉冲	*
        		 23		;*	P3.4	14	27	P2.6	LED8	*
        		 24		;*	P3.5	15	26	P2.5	LED9	*
        		 25		;*	P3.6	16	25	P2.4	LED10	*
        		 26		;*	P3.7	17	24	P2.3	LED11	*
        		 27		;*	XTAL2	18	23	P2.2	LED12	*
        		 28		;*	XTAL1	19	22	P2.1	LED13	*
        		 29		;*	VSS	20	21	P2.0	DEV14(灯泡)	*
        		 30		;*	*
        		 31		;*	*
        		 32		;**********************************************************************
        		 33	;注:	P3.0为100HZ的交流电源过零点相位参考输入
        		 34		;
        		 35		;
        		 36		;*************************************
        		 37		;*	*
        		 38		;*	主程序和中断程序入口	*
        		 39		;*	*
        		 40		;*************************************
        	       	 41		ORG	0000H	;程序开始地址
  0000  02003E	 	 42		LJMP	START	;跳至START执行
        	       	 43		ORG	0003H	;外中断0中断入口
  0003  020059	 	 44		LJMP	INTEX0	;跳至INTEX0执行中断服务程序
        	       	 45		ORG	000BH	;定时器T0中断入口地址
  000B  32	     	 46		RETI	;中断返回(不开中断)
        	       	 47		ORG	0013H	;外中断1中断入口地址
  0013  32	     	 48		RETI	;中断返回(不开中断)
        	       	 49		ORG	001BH	;定时器T1中断入口地址
  001B  32	     	 50		RETI	;中断返回(不开中断)
        	       	 51		ORG	0023H	;串行口中断入口地址
  0023  32	     	 52		RETI	;中断返回(不开中断)
        	       	 53		ORG	002BH	;定时器T2中断入口地址
  002B  32	     	 54		RETI	;中断返回(不开中断)
        		 55		;
        		 56		;***************************
        		 57		;*	*
        		 58		;*	初始化程序	*
        		 59		;*	*
        		 60		;****************************
  002C  E4	     	 61	CLEARMEMIO:	CLR	A	;
  002D  14	     	 62		DEC	A	;A为#0FFH
  002E  F580	   	 63		MOV	P0,A	;P1-P3口置1
  0030  F590	   	 64		MOV	P1,A	;
  0032  F5A0	   	 65		MOV	P2,A	;
  0034  F5B0	   	 66		MOV	P3,A	;
  0036  75A800	 	 67	CLEARMEM:	MOV	IE,#00H	;关所有中断
  0039  D2A8	   	 68		SETB	EX0	;开外中断
  003B  D2AF	   	 69		SETB	EA	;总中断允许
  003D  22	     	 70		RET	;子程序返回
        		 71		;
        		 72		;*************************************
        		 73		;*	*
        		 74		;*	主程序	*
        		 75		;*	*
        		 76		;*************************************
  003E  12002C	 	 77	START:	LCALL	CLEARMEMIO	;上电初始化
  0041  120129	 	 78		LCALL	LOOP	;调用调光控制程序
        		 79		;
  0044  20B0FD	 	 80	MAIN:	JB	P3.0,MAIN	;50HZ交流电未过零转MAIN
  0047  120121	 	 81		LCALL	DLX	;过零点时调用延时子程序(延时可变)
  004A  C2A7	   	 82		CLR	P2.7	;发调光脉冲
  004C  120114	 	 83		LCALL	DELAY	;持续512微秒
  004F  D2A7	   	 84		SETB	P2.7	;关调光脉冲
  0051  020044	 	 85		LJMP	MAIN	;转MAIN循环
  0054  00	     	 86		NOP	;PC值出错处理
  0055  00	     	 87		NOP
  0056  02003E	 	 88		LJMP	START	;出错时重新初始化
        		 89		;******************************
        		 90		;遥控接收程序
        		 91		;******************************
        		 92		;采用中断接收
  0059  C2A8	   	 93	INTEX0:	CLR	EX0	;关外中断
  005B  30B103	 	 94		JNB	P3.1,READ1	;P3.1口为低电平转READ1
  005E  D2A8	   	 95	READOUTT0:	SETB	EX0	;P3.1口为高电平开中断(系干扰)
  0060  32	     	 96		RETI	;退出中断
        		 97		;
  0061  E4	     	 98	READ1:	CLR	A	;清A
  0062  F583	   	 99		MOV	DPH,A	;清DPTR
  0064  F582	   	 100		MOV	DPL,A	;
  0066  20B106	 	 101	HARD1:	JB	P3.1,HARD11	;P3.1变高电平转HARD11
  0069  A3	     	 102		INC	DPTR	;用DPTR对低电平计数
  006B  00	     	 103		NOP	;1微秒延时
  006C  00	     	 104		NOP
  006D  0166	   	 105		AJMP	HARD1	;转HARD1循环(循环周期为8微秒)
  006F  E583	   	 106	HARD11:	MOV	A,DPH	;DPTR高8位放入A
  0071  60EB	   	 107		JZ	READOUTT0	;为0(脉宽小于8*255=2毫秒)退出
  0073  E4	     	 108		CLR	A	;不为0,说明是第一个宽脉冲(3毫秒)
  0074  04	     	 109	READ11:	INC	A	;脉冲个数计1
  0075  30B1FD	 	 110	READ12:	JNB	P3.1,READ12	;低电平时等待
  0078  7906	   	 111		MOV	R1,#06H	;高电平宽度判断定时值
  007A  30B1F7	 	 112	READ13:	JNB	P3.1,READ11	;变低电平时转READ11脉冲计数
  007D  120114	 	 113		LCALL	DELAY	;延时(512微秒)
  0080  D9F8	   	 114		DJNZ	R1,READ13	;6次延时不到转READ13再延时
  0082  14	     	 115		DEC	A	;超过3毫秒判为结束,减1
  0083  14	     	 116		DEC	A	;减1
  0084  6032	   	 117		JZ	FUN0	;为0执行FUN0(2个脉冲)
  0086  14	     	 118		DEC	A	;减1
  0087  6034	   	 119		JZ	FUN1	;为0执行FUN1(3个脉冲)
  0089  14	     	 120		DEC	A	;
  008A  6036	   	 121		JZ	FUN2	;为0执行FUN2(4个脉冲)
  008C  14	     	 122		DEC	A	;
  008D  6038	   	 123		JZ	FUN3	;为0执行FUN3(5个脉冲)
  008F  14	     	 124		DEC	A	;
  0090  603A	   	 125		JZ	FUN4	;为0执行FUN4(6个脉冲)
  0092  14	     	 126		DEC	A	;
  0093  603C	   	 127		JZ	FUN5	;为0执行FUN5(7个脉冲)
  0095  14	     	 128		DEC	A	;
  0096  603E	   	 129		JZ	FUN6	;为0执行FUN6(8个脉冲)
  0098  14	     	 130		DEC	A	;
  0099  6040	   	 131		JZ	FUN7	;为0执行FUN7(9个脉冲)
  009B  14	     	 132		DEC	A	;
  009C  6042	   	 133		JZ	FUN8	;为0执行FUN8(10个脉冲)
  009E  14	     	 134		DEC	A	;
  009F  6044	   	 135		JZ	FUN9	;为0执行FUN9(11个脉冲)
  00A1  14	     	 136		DEC	A	;
  00A2  6046	   	 137		JZ	FUN10	;为0执行FUN10(12个脉冲)
  00A4  14	     	 138		DEC	A	;
  00A5  6048	   	 139		JZ	FUN11	;为0执行FUN11(13个脉冲)
  00A7  14	     	 140		DEC	A	;
  00A8  604A	   	 141		JZ	FUN12	;为0执行FUN12(14个脉冲)
  00AA  14	     	 142		DEC	A	;
  00AB  604C	   	 143		JZ	FUN13	;为0执行FUN13(15个脉冲)
  00AD  14	     	 144		DEC	A	;
  00AE  604E	   	 145		JZ	FUN14	;为0执行FUN14(16个脉冲)
  00B0  14	     	 146		DEC	A	;
  00B1  6050	   	 147		JZ	FUN15	;为0执行FUN15(17个脉冲)
  00B3  00	     	 148		NOP	;
  00B4  00	     	 149		NOP	;
  00B5  02005E	 	 150		LJMP	READOUTT0	;出错退出
        		 151		;
  00B8  B280	   	 152	FUN0:	CPL	P0.0	;P0口各端口开关输出控制
  00BA  02005E	 	 153		LJMP	READOUTT0	;转中断退出
  00BD  B281	   	 154	FUN1:	CPL	P0.1	;
  00BF  02005E	 	 155		LJMP	READOUTT0	;
  00C2  B282	   	 156	FUN2:	CPL	P0.2
  00C4  02005E	 	 157		LJMP	READOUTT0
  00C7  B283	   	 158	FUN3:	CPL	P0.3
  00C9  02005E	 	 159		LJMP	READOUTT0
  00CC  B284	   	 160	FUN4:	CPL	P0.4
  00CE  02005E	 	 161		LJMP	READOUTT0
  00D1  B285	   	 162	FUN5:	CPL	P0.5
  00D3  02005E	 	 163		LJMP	READOUTT0
  00D6  B286	   	 164	FUN6:	CPL	P0.6
  00D8  02005E	 	 165		LJMP	READOUTT0
  00DB  B287	   	 166	FUN7:	CPL	P0.7
  00DD  02005E	 	 167		LJMP	READOUTT0
  00E0  B2A6	   	 168	FUN8:	CPL	P2.6	;P2口各端口开关输出控制
  00E2  02005E	 	 169		LJMP	READOUTT0	;转中断退出
  00E5  B2A5	   	 170	FUN9:	CPL	P2.5
  00E7  02005E	 	 171		LJMP	READOUTT0
  00EA  B2A4	   	 172	FUN10:	CPL	P2.4
  00EC  02005E	 	 173		LJMP	READOUTT0
  00EF  B2A3	   	 174	FUN11:	CPL	P2.3
  00F1  02005E	 	 175		LJMP	READOUTT0
  00F4  B2A2	   	 176	FUN12:	CPL	P2.2
  00F6  02005E	 	 177		LJMP	READOUTT0
  00F9  B2A1	   	 178	FUN13:	CPL	P2.1
  00FB  02005E	 	 179		LJMP	READOUTT0
  00FE  B2A0	   	 180	FUN14:	CPL	P2.0	;P2.0口开关控制
  0100  02005E	 	 181		LJMP	READOUTT0	;转中断退出
  0103  1590	   	 182	FUN15:	DEC	P1	;P1口值减1
  0105  E590	   	 183		MOV	A,P1	;移入A
  0107  B4F704	 	 184		CJNE	A,#0F7H,OUTT0	;不等转OUTT0(显示值小于7)
  010A  E4	     	 185		CLR	A	;相等清A
  010B  14	     	 186		DEC	A	;A为#0FFH
  010C  F590	   	 187		MOV	P1,A	;放回P1(显示值为7)
  010E  120129	 	 188	OUTT0:	LCALL	LOOP	;亮度调整
  0111  02005E	 	 189		LJMP	READOUTT0	;中断退出
        		 190		;
        		 191		;*************************************
        		 192		;*	延时	255	X	2	=	512	US	*
        		 193		;*************************************
        		 194		;
  0114  78FF	   	 195	DELAY:	MOV	R0,#0FFH
  0116  D8FE	   	 196	DELAY1:	DJNZ	R0,DELAY1
  0118  22	     	 197		RET
        		 198		;
        		 199		;*************************************
        		 200		;*	延时10	MS	*
        		 201		;*************************************
        		 202		;
  0119  7914	   	 203	DL10MS:	MOV	R1,#14H
  011B  120114	 	 204	DL10MS1:	LCALL	DELAY
  011E  D9FB	   	 205		DJNZ	R1,DL10MS1
  0120  22	     	 206		RET
        		 207		;
        		 208		;*************************************
        		 209		;*	调光延时时间控制	*
        		 210		;*************************************
        		 211		;
  0121  AAF0	   	 212	DLX:	MOV	R2,B	;置延时初值
  0123  120114	 	 213	DLX1:	LCALL	DELAY	;调512微秒延时子程序
  0126  DAFB	   	 214		DJNZ	R2,DLX1	;循环控制
  0128  22	     	 215		RET	;返回
        		 216		;
        		 217		;*************************************
        		 218		;*	调光控制程序	*
        		 219		;*************************************
        		 220		;根据数码管指示值设置调光脉冲延时值
  0129  E590	   	 221	LOOP:	MOV	A,P1	;读入P1口值
  012B  94FF	   	 222		SUBB	A,#0FFH	;比较
  012D  602B	   	 223		JZ	LOOP7	;值为#0FFH(显示7)时转LOOP7
  012F  E590	   	 224		MOV	A,P1	;
  0131  94FE	   	 225		SUBB	A,#0FEH	;
  0133  6029	   	 226		JZ	LOOP6	;值为#0FEH(显示6)时转LOOP6
  0135  E590	   	 227		MOV	A,P1	;
  0137  94FD	   	 228		SUBB	A,#0FDH	;
  0139  6027	   	 229		JZ	LOOP5	;值为#0FDH(显示5)时转LOOP5
  013B  E590	   	 230		MOV	A,P1	;
  013D  94FC	   	 231		SUBB	A,#0FCH	;
  013F  6025	   	 232		JZ	LOOP4	;值为#0FCH(显示4)时转LOOP4
  0141  E590	   	 233		MOV	A,P1	;
  0143  94FB	   	 234		SUBB	A,#0FBH	;
  0145  6023	   	 235		JZ	LOOP3	;值为#0FBH(显示3)时转LOOP3
  0147  E590	   	 236		MOV	A,P1	;
  0149  94FA	   	 237		SUBB	A,#0FAH	;
  014B  6021	   	 238		JZ	LOOP2	;值为#0FAH(显示2)时转LOOP2
  014D  E590	   	 239		MOV	A,P1	;
  014F  94F9	   	 240		SUBB	A,#0F9H	;
  0151  601F	   	 241		JZ	LOOP1	;值为#0F9H(显示1)时转LOOP1
  0153  E590	   	 242		MOV	A,P1	;
  0155  94F8	   	 243		SUBB	A,#0F8H	;
  0157  601D	   	 244		JZ	LOOP0	;值为#0F8H(显示0)时转LOOP0
  0159  22	     	 245		RET	;返回
        		 246		;
  015A  75F001	 	 247	LOOP7:	MOV	B,#01H	;设置延时值#01H(最亮)
  015D  22	     	 248		RET	;返回
  015E  75F002	 	 249	LOOP6:	MOV	B,#02H	;设置延时值#02H(次亮)
  0161  22	     	 250		RET	;返回
  0162  75F004	 	 251	LOOP5:	MOV	B,#04H	;
  0165  22	     	 252		RET
  0166  75F006	 	 253	LOOP4:	MOV	B,#06H	;
  0169  22	     	 254		RET
  016A  75F008	 	 255	LOOP3:	MOV	B,#08H	;
  016D  22	     	 256		RET
  016E  75F00A	 	 257	LOOP2:	MOV	B,#0AH	;
  0171  22	     	 258		RET
  0172  75F00C	 	 259	LOOP1:	MOV	B,#0CH	;设置延时值#0CH(次暗)
  0175  22	     	 260		RET	;返回
  0176  75F00D	 	 261	LOOP0:	MOV	B,#0DH	;设置延时值#0DH(最暗)
  0179  22	     	 262		RET	;返回
        		 263		;
  017A  	       	 264		END	;程序结束
        		       	 265		END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -