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

📄 main.ls

📁 STM8全部资料
💻 LS
字号:
   1                     ; C Compiler for STM8 (COSMIC Software)
   2                     ; Parser V4.8.32.1 - 30 Mar 2010
   3                     ; Generator V4.3.4 - 23 Mar 2010
2823                     ; 52 void delay_ms(u16 ms)
2823                     ; 53 {
2825                     	switch	.text
2826  0000               _delay_ms:
2828  0000 89            	pushw	x
2829  0001 88            	push	a
2830       00000001      OFST:	set	1
2833  0002 201b          	jra	L1102
2834  0004               L7002:
2835                     ; 57 				for(i=0;i<250;i++)
2837  0004 0f01          	clr	(OFST+0,sp)
2838  0006               L5102:
2841  0006 0c01          	inc	(OFST+0,sp)
2844  0008 7b01          	ld	a,(OFST+0,sp)
2845  000a a1fa          	cp	a,#250
2846  000c 25f8          	jrult	L5102
2847                     ; 59 				for(i=0;i<75;i++)
2849  000e 0f01          	clr	(OFST+0,sp)
2850  0010               L3202:
2853  0010 0c01          	inc	(OFST+0,sp)
2856  0012 7b01          	ld	a,(OFST+0,sp)
2857  0014 a14b          	cp	a,#75
2858  0016 25f8          	jrult	L3202
2859                     ; 61 				ms--;
2861  0018 1e02          	ldw	x,(OFST+1,sp)
2862  001a 1d0001        	subw	x,#1
2863  001d 1f02          	ldw	(OFST+1,sp),x
2864  001f               L1102:
2865                     ; 55 			while(ms!=0)
2867  001f 1e02          	ldw	x,(OFST+1,sp)
2868  0021 26e1          	jrne	L7002
2869                     ; 63 }
2872  0023 5b03          	addw	sp,#3
2873  0025 81            	ret
2916                     ; 65 void delay_us(u16 us)
2916                     ; 66 {
2917                     	switch	.text
2918  0026               _delay_us:
2920  0026 89            	pushw	x
2921  0027 88            	push	a
2922       00000001      OFST:	set	1
2925  0028 201b          	jra	L5502
2926  002a               L3502:
2927                     ; 70 				for(i=0;i<25;i++)
2929  002a 0f01          	clr	(OFST+0,sp)
2930  002c               L1602:
2933  002c 0c01          	inc	(OFST+0,sp)
2936  002e 7b01          	ld	a,(OFST+0,sp)
2937  0030 a119          	cp	a,#25
2938  0032 25f8          	jrult	L1602
2939                     ; 72 				for(i=0;i<7;i++)
2941  0034 0f01          	clr	(OFST+0,sp)
2942  0036               L7602:
2945  0036 0c01          	inc	(OFST+0,sp)
2948  0038 7b01          	ld	a,(OFST+0,sp)
2949  003a a107          	cp	a,#7
2950  003c 25f8          	jrult	L7602
2951                     ; 74 				us--;
2953  003e 1e02          	ldw	x,(OFST+1,sp)
2954  0040 1d0001        	subw	x,#1
2955  0043 1f02          	ldw	(OFST+1,sp),x
2956  0045               L5502:
2957                     ; 68 			while(us!=0)
2959  0045 1e02          	ldw	x,(OFST+1,sp)
2960  0047 26e1          	jrne	L3502
2961                     ; 76 }
2964  0049 5b03          	addw	sp,#3
2965  004b 81            	ret
2978                     	bsct
2979  0000               _GPIO:
2980  0000 01            	dc.b	1
2981  0001 02            	dc.b	2
2982  0002 04            	dc.b	4
2983  0003 08            	dc.b	8
2984  0004 10            	dc.b	16
2985  0005 20            	dc.b	32
2986  0006 40            	dc.b	64
2987  0007 80            	dc.b	128
3051                     ; 42 void Init_GPIO(u8 port,u8 io)
3051                     ; 43 {
3052                     	switch	.text
3053  004c               _Init_GPIO:
3055  004c 89            	pushw	x
3056       00000000      OFST:	set	0
3059                     ; 44 	if(io==1)
3061  004d 9f            	ld	a,xl
3062  004e a101          	cp	a,#1
3063  0050 2648          	jrne	L5512
3064                     ; 46 		switch(port)
3066  0052 9e            	ld	a,xh
3068                     ; 56 					default: break;
3069  0053 4d            	tnz	a
3070  0054 270e          	jreq	L5702
3071  0056 4a            	dec	a
3072  0057 2715          	jreq	L7702
3073  0059 4a            	dec	a
3074  005a 271c          	jreq	L1012
3075  005c 4a            	dec	a
3076  005d 2723          	jreq	L3012
3077  005f 4a            	dec	a
3078  0060 272a          	jreq	L5012
3079  0062 2051          	jra	L3612
3080  0064               L5702:
3081                     ; 48 					case 0: PA_DDR=0xff;PA_CR1=0xff;break;
3083  0064 35ff5002      	mov	_PA_DDR,#255
3086  0068 35ff5003      	mov	_PA_CR1,#255
3089  006c 2047          	jra	L3612
3090  006e               L7702:
3091                     ; 49 					case 1: PB_DDR=0xff;PB_CR1=0xff;break; 
3093  006e 35ff5007      	mov	_PB_DDR,#255
3096  0072 35ff5008      	mov	_PB_CR1,#255
3099  0076 203d          	jra	L3612
3100  0078               L1012:
3101                     ; 50 					case 2: PC_DDR=0xff;PC_CR1=0xff;break;  
3103  0078 35ff500c      	mov	_PC_DDR,#255
3106  007c 35ff500d      	mov	_PC_CR1,#255
3109  0080 2033          	jra	L3612
3110  0082               L3012:
3111                     ; 51 					case 3: PD_DDR=0xff;PD_CR1=0xff;break;
3113  0082 35ff5011      	mov	_PD_DDR,#255
3116  0086 35ff5012      	mov	_PD_CR1,#255
3119  008a 2029          	jra	L3612
3120  008c               L5012:
3121                     ; 52 					case 4: PE_DDR=0xff;PE_CR1=0xff;break;
3123  008c 35ff5016      	mov	_PE_DDR,#255
3126  0090 35ff5017      	mov	_PE_CR1,#255
3129  0094 201f          	jra	L3612
3130  0096               L7012:
3131                     ; 56 					default: break;
3133  0096 201d          	jra	L3612
3134  0098               L1612:
3136  0098 201b          	jra	L3612
3137  009a               L5512:
3138                     ; 61 		switch(port)
3140  009a 7b01          	ld	a,(OFST+1,sp)
3142                     ; 71 					default: break;
3143  009c 4d            	tnz	a
3144  009d 270e          	jreq	L1112
3145  009f 4a            	dec	a
3146  00a0 2715          	jreq	L3112
3147  00a2 4a            	dec	a
3148  00a3 271c          	jreq	L5112
3149  00a5 4a            	dec	a
3150  00a6 2723          	jreq	L7112
3151  00a8 4a            	dec	a
3152  00a9 272a          	jreq	L1212
3153  00ab 2008          	jra	L3612
3154  00ad               L1112:
3155                     ; 63 					case 0: PA_DDR=0x00;PA_CR2=0xff;break;
3157  00ad 725f5002      	clr	_PA_DDR
3160  00b1 35ff5004      	mov	_PA_CR2,#255
3162  00b5               L3612:
3163                     ; 74 }
3166  00b5 85            	popw	x
3167  00b6 81            	ret
3168  00b7               L3112:
3169                     ; 64 					case 1: PB_DDR=0x00;PB_CR2=0xff;break; 
3171  00b7 725f5007      	clr	_PB_DDR
3174  00bb 35ff5009      	mov	_PB_CR2,#255
3177  00bf 20f4          	jra	L3612
3178  00c1               L5112:
3179                     ; 65 					case 2: PC_DDR=0x00;PC_CR2=0xff;break;  
3181  00c1 725f500c      	clr	_PC_DDR
3184  00c5 35ff500e      	mov	_PC_CR2,#255
3187  00c9 20ea          	jra	L3612
3188  00cb               L7112:
3189                     ; 66 					case 3: PD_DDR=0x00;PD_CR2=0xff;break;
3191  00cb 725f5011      	clr	_PD_DDR
3194  00cf 35ff5013      	mov	_PD_CR2,#255
3197  00d3 20e0          	jra	L3612
3198  00d5               L1212:
3199                     ; 67 					case 4: PE_DDR=0x00;PE_CR2=0xff;break;
3201  00d5 725f5016      	clr	_PE_DDR
3204  00d9 35ff5018      	mov	_PE_CR2,#255
3207  00dd 20d6          	jra	L3612
3208  00df               L3212:
3209                     ; 71 					default: break;
3211  00df 20d4          	jra	L3612
3212  00e1               L7612:
3213  00e1 20d2          	jra	L3612
3263                     ; 76 void Send_led(u8 port)
3263                     ; 77 {
3264                     	switch	.text
3265  00e3               _Send_led:
3267  00e3 88            	push	a
3268  00e4 88            	push	a
3269       00000001      OFST:	set	1
3272                     ; 79 	for(i=0;i<8;i++)
3274  00e5 0f01          	clr	(OFST+0,sp)
3275  00e7               L7222:
3276                     ; 81 			switch(port)
3278  00e7 7b02          	ld	a,(OFST+1,sp)
3280                     ; 91 				default: break;
3281  00e9 4d            	tnz	a
3282  00ea 270e          	jreq	L1712
3283  00ec 4a            	dec	a
3284  00ed 2716          	jreq	L3712
3285  00ef 4a            	dec	a
3286  00f0 271e          	jreq	L5712
3287  00f2 4a            	dec	a
3288  00f3 2726          	jreq	L7712
3289  00f5 4a            	dec	a
3290  00f6 272e          	jreq	L1022
3291  00f8 2035          	jra	L7322
3292  00fa               L1712:
3293                     ; 83 				case 0: PA_ODR=GPIO[i];break;
3295  00fa 7b01          	ld	a,(OFST+0,sp)
3296  00fc 5f            	clrw	x
3297  00fd 97            	ld	xl,a
3298  00fe e600          	ld	a,(_GPIO,x)
3299  0100 c75000        	ld	_PA_ODR,a
3302  0103 202a          	jra	L7322
3303  0105               L3712:
3304                     ; 84 				case 1: PB_ODR=GPIO[i];break; 
3306  0105 7b01          	ld	a,(OFST+0,sp)
3307  0107 5f            	clrw	x
3308  0108 97            	ld	xl,a
3309  0109 e600          	ld	a,(_GPIO,x)
3310  010b c75005        	ld	_PB_ODR,a
3313  010e 201f          	jra	L7322
3314  0110               L5712:
3315                     ; 85 				case 2: PC_ODR=GPIO[i];break;  
3317  0110 7b01          	ld	a,(OFST+0,sp)
3318  0112 5f            	clrw	x
3319  0113 97            	ld	xl,a
3320  0114 e600          	ld	a,(_GPIO,x)
3321  0116 c7500a        	ld	_PC_ODR,a
3324  0119 2014          	jra	L7322
3325  011b               L7712:
3326                     ; 86 				case 3: PD_ODR=GPIO[i];break;
3328  011b 7b01          	ld	a,(OFST+0,sp)
3329  011d 5f            	clrw	x
3330  011e 97            	ld	xl,a
3331  011f e600          	ld	a,(_GPIO,x)
3332  0121 c7500f        	ld	_PD_ODR,a
3335  0124 2009          	jra	L7322
3336  0126               L1022:
3337                     ; 87 				case 4: PE_ODR=GPIO[i];break;
3339  0126 7b01          	ld	a,(OFST+0,sp)
3340  0128 5f            	clrw	x
3341  0129 97            	ld	xl,a
3342  012a e600          	ld	a,(_GPIO,x)
3343  012c c75014        	ld	_PE_ODR,a
3346  012f               L3022:
3347                     ; 91 				default: break;
3349  012f               L7322:
3350                     ; 93 			delay_ms(500);
3352  012f ae01f4        	ldw	x,#500
3353  0132 cd0000        	call	_delay_ms
3355                     ; 79 	for(i=0;i<8;i++)
3357  0135 0c01          	inc	(OFST+0,sp)
3360  0137 7b01          	ld	a,(OFST+0,sp)
3361  0139 a108          	cp	a,#8
3362  013b 25aa          	jrult	L7222
3363                     ; 95 }
3366  013d 85            	popw	x
3367  013e 81            	ret
3421                     ; 19 main()
3421                     ; 20 {
3422                     	switch	.text
3423  013f               _main:
3427                     ; 21 	Init_GPIO(PB,OUT);
3429  013f ae0001        	ldw	x,#1
3430  0142 a601          	ld	a,#1
3431  0144 95            	ld	xh,a
3432  0145 cd004c        	call	_Init_GPIO
3434  0148               L5622:
3435                     ; 22 	while (1){Send_led(PB);}
3437  0148 a601          	ld	a,#1
3438  014a ad97          	call	_Send_led
3441  014c 20fa          	jra	L5622
3454                     	xdef	_main
3455                     	xdef	_Send_led
3456                     	xdef	_Init_GPIO
3457                     	xdef	_GPIO
3458                     	xdef	_delay_us
3459                     	xdef	_delay_ms
3478                     	end

⌨️ 快捷键说明

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