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

📄 main.ls

📁 ST7LITE39 IIC功能应用实例,是一个完整的源程序
💻 LS
字号:
   1                     ; C Compiler for ST7 (COSMIC Software)
   2                     ; Generator V4.5.5 - 12 Jan 2006
 882                     ; 13 void main (void)
 882                     ; 14 {   
 883                     	switch	.text
 885                     	xref.b	_main$L
 886  0000               _main:
 889                     ; 15       unsigned char Pin = 0;     
 891  0000 3fff          	clr	_main$L-1
 892                     ; 17       ITC_Init ();                                             /* 初始化ITC */
 894  0002 cd0000        	call	_ITC_Init
 896                     ; 19 			IO_Output(IO_PUSH_PULL,IO_PORT_A,((unsigned char)IO_PIN_4 | 
 896                     ; 20                                                     (unsigned char)IO_PIN_2 ));
 898  0005 a614          	ld	a,#20
 899  0007 b702          	ld	_IO_Output$L+2,a
 900  0009 4f            	clr	a
 901  000a ae02          	ld	x,#2
 902  000c cd0000        	call	_IO_Output
 904                     ; 22       ITC_ConfigureInterrupt(IT_PortB,Pin, IT_EDGE_F);
 906  000f a602          	ld	a,#2
 907  0011 b702          	ld	_ITC_ConfigureInterrupt$L+2,a
 908  0013 b6ff          	ld	a,_main$L-1
 909  0015 ae02          	ld	x,#2
 910  0017 cd0000        	call	_ITC_ConfigureInterrupt
 912                     ; 25 			EnableInterrupts;                                        /*使能中断*/ 
 915  001a 9a            RIM
 917                     ; 27 }
 921  001b 81            	ret
 957                     ; 45 void EI3_IT_Routine (void)  
 957                     ; 46 {
 958                     	switch	.text
 960                     	xref.b	_EI3_IT_Routine$L
 961  001c               _EI3_IT_Routine:
 963  001c 9089          	push	y
 964  001e b600          	ld	a,c_x
 965  0020 b700          	ld	_EI3_IT_Routine$L+0,a
 966  0022 b601          	ld	a,c_x+1
 967  0024 b701          	ld	_EI3_IT_Routine$L+1,a
 968  0026 b600          	ld	a,c_y
 969  0028 b702          	ld	_EI3_IT_Routine$L+2,a
 970  002a b601          	ld	a,c_y+1
 971  002c b703          	ld	_EI3_IT_Routine$L+3,a
 973                     ; 49 			IO_Write (IO_PORT_A,IO_PIN_2,IO_DATA_LOW);       /* 在PA2打开LED*/
 975  002e a602          	ld	a,#2
 976  0030 b702          	ld	_IO_Write$L+2,a
 977  0032 a604          	ld	a,#4
 978  0034 5f            	clr	x
 979  0035 cd0000        	call	_IO_Write
 981                     ; 51 			for ( i=0;i<=1000;i++)                            /* 延时 */
 983  0038 3ffe          	clr	_EI3_IT_Routine$L-2
 984  003a 3fff          	clr	_EI3_IT_Routine$L-1
 985  003c               L525:
 986                     ; 53 					Nop
 989  003c 9d            nop
 991                     ; 51 			for ( i=0;i<=1000;i++)                            /* 延时 */
 993  003d 3cff          	inc	_EI3_IT_Routine$L-1
 994  003f 2602          	jrne	L01
 995  0041 3cfe          	inc	_EI3_IT_Routine$L-2
 996  0043               L01:
 999  0043 b6ff          	ld	a,_EI3_IT_Routine$L-1
1000  0045 a0e9          	sub	a,#233
1001  0047 b6fe          	ld	a,_EI3_IT_Routine$L-2
1002  0049 a203          	sbc	a,#3
1003  004b 25ef          	jrult	L525
1004                     ; 55 			IO_Write (IO_PORT_A,IO_PIN_2,IO_DATA_HIGH);      /* 在PA2关闭LED */
1006  004d a601          	ld	a,#1
1007  004f b702          	ld	_IO_Write$L+2,a
1008  0051 a604          	ld	a,#4
1009  0053 5f            	clr	x
1010  0054 cd0000        	call	_IO_Write
1012                     ; 57 			ClearInterrupts
1015  0057 80            IRET
1017                     ; 58 }
1020  0058 b600          	ld	a,_EI3_IT_Routine$L+0
1021  005a b700          	ld	c_x,a
1022  005c b601          	ld	a,_EI3_IT_Routine$L+1
1023  005e b701          	ld	c_x+1,a
1024  0060 b602          	ld	a,_EI3_IT_Routine$L+2
1025  0062 b700          	ld	c_y,a
1026  0064 b603          	ld	a,_EI3_IT_Routine$L+3
1027  0066 b701          	ld	c_y+1,a
1028  0068 9085          	pop	y
1029  006a 80            	iret
1066                     ; 75 void EI2_IT_Routine (void)
1066                     ; 76 {
1067                     	switch	.text
1069                     	xref.b	_EI2_IT_Routine$L
1070  006b               _EI2_IT_Routine:
1072  006b 9089          	push	y
1073  006d b600          	ld	a,c_x
1074  006f b700          	ld	_EI2_IT_Routine$L+0,a
1075  0071 b601          	ld	a,c_x+1
1076  0073 b701          	ld	_EI2_IT_Routine$L+1,a
1077  0075 b600          	ld	a,c_y
1078  0077 b702          	ld	_EI2_IT_Routine$L+2,a
1079  0079 b601          	ld	a,c_y+1
1080  007b b703          	ld	_EI2_IT_Routine$L+3,a
1082                     ; 79     count++;
1084  007d be00          	ld	x,_count
1085  007f b601          	ld	a,_count+1
1086  0081 4c            	inc	a
1087  0082 2601          	jrne	L41
1088  0084 5c            	inc	x
1089  0085               L41:
1090  0085 bf00          	ld	_count,x
1091  0087 b701          	ld	_count+1,a
1092                     ; 80     if(count == 5000)
1094  0089 b601          	ld	a,_count+1
1095  008b a188          	cp	a,#136
1096  008d 2604          	jrne	L61
1097  008f be00          	ld	x,_count
1098  0091 a313          	cp	x,#19
1099  0093               L61:
1100  0093 2626          	jrne	L155
1101                     ; 82         Temp = IO_Read (IO_PORT_A );                        /* 切换PA4 */
1103  0095 4f            	clr	a
1104  0096 cd0000        	call	_IO_Read
1106  0099 b7ff          	ld	_EI2_IT_Routine$L-1,a
1107                     ; 83         if (Temp & 0x08)
1109  009b b6ff          	ld	a,_EI2_IT_Routine$L-1
1110  009d a508          	bcp	a,#8
1111  009f 270c          	jreq	L355
1112                     ; 85             IO_Write (IO_PORT_A,IO_PIN_4,IO_DATA_LOW);  /* 在PA4打开LED */
1114  00a1 a602          	ld	a,#2
1115  00a3 b702          	ld	_IO_Write$L+2,a
1116  00a5 a610          	ld	a,#16
1117  00a7 5f            	clr	x
1118  00a8 cd0000        	call	_IO_Write
1121  00ab 200a          	jra	L555
1122  00ad               L355:
1123                     ; 89             IO_Write (IO_PORT_A,IO_PIN_4,IO_DATA_HIGH); /* 在PA4关闭LED  */
1125  00ad a601          	ld	a,#1
1126  00af b702          	ld	_IO_Write$L+2,a
1127  00b1 a610          	ld	a,#16
1128  00b3 5f            	clr	x
1129  00b4 cd0000        	call	_IO_Write
1131  00b7               L555:
1132                     ; 91         count = 0;
1134  00b7 3f00          	clr	_count
1135  00b9 3f01          	clr	_count+1
1136  00bb               L155:
1137                     ; 94 			ClearInterrupts
1140  00bb 80            IRET
1142                     ; 95 }
1145  00bc b600          	ld	a,_EI2_IT_Routine$L+0
1146  00be b700          	ld	c_x,a
1147  00c0 b601          	ld	a,_EI2_IT_Routine$L+1
1148  00c2 b701          	ld	c_x+1,a
1149  00c4 b602          	ld	a,_EI2_IT_Routine$L+2
1150  00c6 b700          	ld	c_y,a
1151  00c8 b603          	ld	a,_EI2_IT_Routine$L+3
1152  00ca b701          	ld	c_y+1,a
1153  00cc 9085          	pop	y
1154  00ce 80            	iret
1177                     	switch	.ubsct
1178  0000               _count:
1179  0000 0000          	ds.b	2
1180                     	xdef	_count
1181                     	xdef	_main
1182                     	xdef	_EI2_IT_Routine
1183                     	xdef	_EI3_IT_Routine
1184                     	xref	_ITC_ConfigureInterrupt
1185                     	xref	_ITC_Init
1186                     	xref	_IO_Write
1187                     	xref	_IO_Read
1188                     	xref	_IO_Output
1189                     	xref.b	c_x
1190                     	xref.b	c_y
1210                     	xref.b	_IO_Write$L
1211                     	xref.b	_ITC_ConfigureInterrupt$L
1212                     	xref.b	_IO_Output$L
1213                     	end

⌨️ 快捷键说明

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