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

📄 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
2776                     	bsct
2777  0000               _table:
2778  0000 fe            	dc.b	254
2779  0001 fd            	dc.b	253
2780  0002 fb            	dc.b	251
2781  0003 f7            	dc.b	247
2782  0004 ef            	dc.b	239
2783  0005 df            	dc.b	223
2784  0006 bf            	dc.b	191
2785  0007 7f            	dc.b	127
2834                     ; 12 void DelayMS(uint s)                      //延时子函数,约延时1ms
2834                     ; 13 {
2836                     	switch	.text
2837  0000               _DelayMS:
2839  0000 89            	pushw	x
2840  0001 89            	pushw	x
2841       00000002      OFST:	set	2
2844                     ; 15 	for(s;s>0;s--)
2847  0002 2018          	jra	L3102
2848  0004               L7002:
2849                     ; 16 	  for(i=0;i<500;i++);
2851  0004 5f            	clrw	x
2852  0005 1f01          	ldw	(OFST-1,sp),x
2853  0007               L7102:
2857  0007 1e01          	ldw	x,(OFST-1,sp)
2858  0009 1c0001        	addw	x,#1
2859  000c 1f01          	ldw	(OFST-1,sp),x
2862  000e 1e01          	ldw	x,(OFST-1,sp)
2863  0010 a301f4        	cpw	x,#500
2864  0013 25f2          	jrult	L7102
2865                     ; 15 	for(s;s>0;s--)
2867  0015 1e03          	ldw	x,(OFST+1,sp)
2868  0017 1d0001        	subw	x,#1
2869  001a 1f03          	ldw	(OFST+1,sp),x
2870  001c               L3102:
2873  001c 1e03          	ldw	x,(OFST+1,sp)
2874  001e 26e4          	jrne	L7002
2875                     ; 17 }    
2878  0020 5b04          	addw	sp,#4
2879  0022 81            	ret
2907                     ; 19 void init(void)                      //stm8初始化函数
2907                     ; 20 {
2908                     	switch	.text
2909  0023               _init:
2913                     ; 21 	PB_DDR = 0xff;
2915  0023 35ff5007      	mov	_PB_DDR,#255
2916                     ; 22 	PB_CR1 = 0xff;                    // 将PB设置成推挽输出
2918  0027 35ff5008      	mov	_PB_CR1,#255
2919                     ; 23 	PB_CR2 = 0x00;
2921  002b 725f5009      	clr	_PB_CR2
2922                     ; 25 	CLK_SWR = 0xE1;                   //选内部高速时钟作为主时钟
2924  002f 35e150c4      	mov	_CLK_SWR,#225
2925                     ; 26 	CLK_CKDIVR = 0x08;               //将CPU主频设置为2M(STM8默认的就是内部高速时钟的八分频,即2MH,这里只是告诉大家设置方法)
2927  0033 350850c6      	mov	_CLK_CKDIVR,#8
2928                     ; 27 }
2931  0037 81            	ret
2969                     ; 29 void main()
2969                     ; 30 {
2970                     	switch	.text
2971  0038               _main:
2973  0038 88            	push	a
2974       00000001      OFST:	set	1
2977                     ; 32 	init();
2979  0039 ade8          	call	_init
2981  003b               L3502:
2982                     ; 35 		PB_ODR =  0xff;           //先将所有的LED关闭
2984  003b 35ff5005      	mov	_PB_ODR,#255
2985                     ; 36 		for(i=0;i<9;i++)         //一开始是所有的LED熄灭,再逐点亮所有LED,共九种状态
2987  003f 0f01          	clr	(OFST+0,sp)
2988  0041               L7502:
2989                     ; 38 			DelayMS(500);           //延时500毫秒
2991  0041 ae01f4        	ldw	x,#500
2992  0044 adba          	call	_DelayMS
2994                     ; 39 			PB_ODR<<=1;             //将PB_ODR向左移动一位,逐渐点亮所有LED
2996  0046 72585005      	sll	_PB_ODR
2997                     ; 36 		for(i=0;i<9;i++)         //一开始是所有的LED熄灭,再逐点亮所有LED,共九种状态
2999  004a 0c01          	inc	(OFST+0,sp)
3002  004c 7b01          	ld	a,(OFST+0,sp)
3003  004e a109          	cp	a,#9
3004  0050 25ef          	jrult	L7502
3005                     ; 42 	  for(i=0;i<8;i++)
3007  0052 0f01          	clr	(OFST+0,sp)
3008  0054               L5602:
3009                     ; 44 			PB_ODR=table[i];    //将table中的数依次赋给PB_ODR ,从上至下依次点亮LED
3011  0054 7b01          	ld	a,(OFST+0,sp)
3012  0056 5f            	clrw	x
3013  0057 97            	ld	xl,a
3014  0058 e600          	ld	a,(_table,x)
3015  005a c75005        	ld	_PB_ODR,a
3016                     ; 45 			DelayMS(500);
3018  005d ae01f4        	ldw	x,#500
3019  0060 ad9e          	call	_DelayMS
3021                     ; 42 	  for(i=0;i<8;i++)
3023  0062 0c01          	inc	(OFST+0,sp)
3026  0064 7b01          	ld	a,(OFST+0,sp)
3027  0066 a108          	cp	a,#8
3028  0068 25ea          	jrult	L5602
3030  006a 20cf          	jra	L3502
3055                     	xdef	_main
3056                     	xdef	_init
3057                     	xdef	_DelayMS
3058                     	xdef	_table
3077                     	end

⌨️ 快捷键说明

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