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

📄 main.ls

📁 STM8S105S4程序
💻 LS
字号:
   1                     ; C Compiler for STM8 (COSMIC Software)
   2                     ; Parser V4.9.10 - 10 Feb 2011
   3                     ; Generator (Limited) V4.3.6 - 15 Feb 2011
2820                     ; 4 void init(void)
2820                     ; 5 {
2822                     	switch	.text
2823  0000               _init:
2827                     ; 6 	PD_DDR=0X10;
2829  0000 35105011      	mov	_PD_DDR,#16
2830                     ; 7 	PD_CR1=0X10;
2832  0004 35105012      	mov	_PD_CR1,#16
2833                     ; 8 	PD_CR2=0X00;
2835  0008 725f5013      	clr	_PD_CR2
2836                     ; 11 	PD_ODR|=0x10;
2838  000c 7218500f      	bset	_PD_ODR,#4
2839                     ; 13 	TIM2_EGR=0X01;       //允许产生更新事件
2841  0010 35015304      	mov	_TIM2_EGR,#1
2842                     ; 14 	TIM2_PSCR=0X01;     //分频,使频率为1MHz
2844  0014 3501530c      	mov	_TIM2_PSCR,#1
2845                     ; 16 	TIM2_ARRH=0XC3;     //更新后计数器的值
2847  0018 35c3530d      	mov	_TIM2_ARRH,#195
2848                     ; 17 	TIM2_ARRL=0X50;
2850  001c 3550530e      	mov	_TIM2_ARRL,#80
2851                     ; 19 	TIM2_CR1=0X05;      //允许定时器工作
2853  0020 35055300      	mov	_TIM2_CR1,#5
2854                     ; 20 	TIM2_IER=0X01;     //允许更新中断
2856  0024 35015301      	mov	_TIM2_IER,#1
2857                     ; 23 	TIM3_EGR=0X01;       //允许产生更新事件
2859  0028 35015324      	mov	_TIM3_EGR,#1
2860                     ; 24 	TIM3_PSCR=0X01;     //分频,使频率为1MHz
2862  002c 3501532a      	mov	_TIM3_PSCR,#1
2863                     ; 26 	TIM3_ARRH=0X00;     //更新后计数器的值
2865  0030 725f532b      	clr	_TIM3_ARRH
2866                     ; 27 	TIM3_ARRL=0Xfa;
2868  0034 35fa532c      	mov	_TIM3_ARRL,#250
2869                     ; 29 	TIM3_CR1=0X05;      //允许定时器工作
2871  0038 35055320      	mov	_TIM3_CR1,#5
2872                     ; 30 	TIM3_IER=0X01;     //允许更新中断
2874  003c 35015321      	mov	_TIM3_IER,#1
2875                     ; 32 	_asm("rim");       //汇编语句,启动定时器
2878  0040 9a            rim
2880                     ; 34 }
2883  0041 81            	ret
2926                     ; 35 void delay(unsigned char s)
2926                     ; 36 {
2927                     	switch	.text
2928  0042               _delay:
2930  0042 88            	push	a
2931  0043 88            	push	a
2932       00000001      OFST:	set	1
2935                     ; 38 	for(s;s>0;s--)
2938  0044 200c          	jra	L3202
2939  0046               L7102:
2940                     ; 39 	  for(i=0;i<250;i++);
2942  0046 0f01          	clr	(OFST+0,sp)
2943  0048               L7202:
2947  0048 0c01          	inc	(OFST+0,sp)
2950  004a 7b01          	ld	a,(OFST+0,sp)
2951  004c a1fa          	cp	a,#250
2952  004e 25f8          	jrult	L7202
2953                     ; 38 	for(s;s>0;s--)
2955  0050 0a02          	dec	(OFST+1,sp)
2956  0052               L3202:
2959  0052 0d02          	tnz	(OFST+1,sp)
2960  0054 26f0          	jrne	L7102
2961                     ; 40 }
2964  0056 85            	popw	x
2965  0057 81            	ret
2992                     ; 41 void main()
2992                     ; 42 {
2993                     	switch	.text
2994  0058               _main:
2998                     ; 43 	init();
3000  0058 ada6          	call	_init
3002  005a               L5402:
3003                     ; 46 		if(t3%2==0)
3005  005a b600          	ld	a,_t3
3006  005c a501          	bcp	a,#1
3007  005e 2606          	jrne	L1502
3008                     ; 47 		  PD_ODR|=0x10;
3010  0060 7218500f      	bset	_PD_ODR,#4
3012  0064 2018          	jra	L7502
3013  0066               L1502:
3014                     ; 49 		  PD_ODR&=0xef;
3016  0066 7219500f      	bres	_PD_ODR,#4
3017  006a 2012          	jra	L7502
3018  006c               L5502:
3019                     ; 53 		  if(t3%4<2)
3021  006c b600          	ld	a,_t3
3022  006e a403          	and	a,#3
3023  0070 a102          	cp	a,#2
3024  0072 2406          	jruge	L3602
3025                     ; 54 		    PD_ODR|=0x10;
3027  0074 7218500f      	bset	_PD_ODR,#4
3029  0078 2004          	jra	L7502
3030  007a               L3602:
3031                     ; 56 		    PD_ODR&=0xef;
3033  007a 7219500f      	bres	_PD_ODR,#4
3034  007e               L7502:
3035                     ; 51 		while(t2>=20&&t2<40)
3037  007e b601          	ld	a,_t2
3038  0080 a114          	cp	a,#20
3039  0082 251a          	jrult	L3702
3041  0084 b601          	ld	a,_t2
3042  0086 a128          	cp	a,#40
3043  0088 25e2          	jrult	L5502
3044  008a 2012          	jra	L3702
3045  008c               L1702:
3046                     ; 61 		  if(t3%8<4)
3048  008c b600          	ld	a,_t3
3049  008e a407          	and	a,#7
3050  0090 a104          	cp	a,#4
3051  0092 2406          	jruge	L7702
3052                     ; 62 		    PD_ODR|=0x10;
3054  0094 7218500f      	bset	_PD_ODR,#4
3056  0098 2004          	jra	L3702
3057  009a               L7702:
3058                     ; 64 		    PD_ODR&=0xef;
3060  009a 7219500f      	bres	_PD_ODR,#4
3061  009e               L3702:
3062                     ; 59 		while(t2>=40&&t2<60)
3064  009e b601          	ld	a,_t2
3065  00a0 a128          	cp	a,#40
3066  00a2 2506          	jrult	L3012
3068  00a4 b601          	ld	a,_t2
3069  00a6 a13c          	cp	a,#60
3070  00a8 25e2          	jrult	L1702
3071  00aa               L3012:
3072                     ; 66 		if(t2>=60)
3074  00aa b601          	ld	a,_t2
3075  00ac a13c          	cp	a,#60
3076  00ae 2502          	jrult	L5012
3077                     ; 67 		  t2=0;  
3079  00b0 3f01          	clr	_t2
3080  00b2               L5012:
3081                     ; 68     if(t3==8)
3083  00b2 b600          	ld	a,_t3
3084  00b4 a108          	cp	a,#8
3085  00b6 26a2          	jrne	L5402
3086                     ; 69       t3=0;		
3088  00b8 3f00          	clr	_t3
3089  00ba 209e          	jra	L5402
3114                     ; 73 @far @interrupt void TIM2_UP_IRQHandler (void)
3114                     ; 74 
3114                     ; 75 {
3116                     	switch	.text
3117  00bc               f_TIM2_UP_IRQHandler:
3121                     ; 76    TIM2_SR1 = 0x00; 
3123  00bc 725f5302      	clr	_TIM2_SR1
3124                     ; 77      t2++;
3126  00c0 3c01          	inc	_t2
3127                     ; 78 }
3130  00c2 80            	iret
3154                     ; 80 @far @interrupt void TIM3_UP_IRQHandler (void)
3154                     ; 81 
3154                     ; 82 {
3155                     	switch	.text
3156  00c3               f_TIM3_UP_IRQHandler:
3160                     ; 83    TIM3_SR1 = 0x00; 
3162  00c3 725f5322      	clr	_TIM3_SR1
3163                     ; 84      t3++;
3165  00c7 3c00          	inc	_t3
3166                     ; 85 }
3169  00c9 80            	iret
3201                     	xdef	f_TIM3_UP_IRQHandler
3202                     	xdef	f_TIM2_UP_IRQHandler
3203                     	xdef	_main
3204                     	xdef	_delay
3205                     	xdef	_init
3206                     	switch	.ubsct
3207  0000               _t3:
3208  0000 00            	ds.b	1
3209                     	xdef	_t3
3210  0001               _t2:
3211  0001 00            	ds.b	1
3212                     	xdef	_t2
3232                     	end

⌨️ 快捷键说明

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