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

📄 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 bf            	dc.b	191
2779  0001 f9            	dc.b	249
2780  0002 a4            	dc.b	164
2781  0003 b0            	dc.b	176
2782  0004 99            	dc.b	153
2783  0005               _n:
2784  0005 00            	dc.b	0
2833                     ; 13 void delay(uchar a)
2833                     ; 14 {
2835                     	switch	.text
2836  0000               _delay:
2838  0000 88            	push	a
2839  0001 88            	push	a
2840       00000001      OFST:	set	1
2843                     ; 16 	for(a;a>0;a--)
2846  0002 200c          	jra	L3102
2847  0004               L7002:
2848                     ; 17 	  for(i=0;i<250;i++);
2850  0004 0f01          	clr	(OFST+0,sp)
2851  0006               L7102:
2855  0006 0c01          	inc	(OFST+0,sp)
2858  0008 7b01          	ld	a,(OFST+0,sp)
2859  000a a1fa          	cp	a,#250
2860  000c 25f8          	jrult	L7102
2861                     ; 16 	for(a;a>0;a--)
2863  000e 0a02          	dec	(OFST+1,sp)
2864  0010               L3102:
2867  0010 0d02          	tnz	(OFST+1,sp)
2868  0012 26f0          	jrne	L7002
2869                     ; 18 }
2872  0014 85            	popw	x
2873  0015 81            	ret
2907                     ; 19 void init(void)
2907                     ; 20 {
2908                     	switch	.text
2909  0016               _init:
2913                     ; 21     PB_DDR=0XFF;
2915  0016 35ff5007      	mov	_PB_DDR,#255
2916                     ; 22     PB_CR1=0XFF;
2918  001a 35ff5008      	mov	_PB_CR1,#255
2919                     ; 23     PB_CR2=0X00;
2921  001e 725f5009      	clr	_PB_CR2
2922                     ; 25     PC_DDR=0XFF;
2924  0022 35ff500c      	mov	_PC_DDR,#255
2925                     ; 26     PC_CR1=0XFF;
2927  0026 35ff500d      	mov	_PC_CR1,#255
2928                     ; 27     PC_CR2=0X00;
2930  002a 725f500e      	clr	_PC_CR2
2931                     ; 28 		PC_ODR=0x00;
2933  002e 725f500a      	clr	_PC_ODR
2934                     ; 30 	ADC_CR2=0x00;        //数据左对齐,先读ADC_DRH,再读ADC_DRL  
2936  0032 725f5402      	clr	_ADC_CR2
2937                     ; 31 	ADC_CR1=0x00;       //2分频,单次转换,暂时关闭AD转换
2939  0036 725f5401      	clr	_ADC_CR1
2940                     ; 32 	ADC_CSR=0x09;       //选择通道9
2942  003a 35095400      	mov	_ADC_CSR,#9
2943                     ; 33 	ADC_TDRL=0x20;     //禁止施密特触发
2945  003e 35205407      	mov	_ADC_TDRL,#32
2946                     ; 34 }
2949  0042 81            	ret
2977                     ; 37 void display(void)
2977                     ; 38 {
2978                     	switch	.text
2979  0043               _display:
2983                     ; 39 	if(data<220)      
2985  0043 b600          	ld	a,_data
2986  0045 a1dc          	cp	a,#220
2987  0047 2444          	jruge	L5402
2988                     ; 41 		delay(60);                //为了稳定电压,提高准确性,这里延时较长,请按键时按键时按键时间稍长些
2990  0049 a63c          	ld	a,#60
2991  004b adb3          	call	_delay
2993                     ; 42 		if(data<220)
2995  004d b600          	ld	a,_data
2996  004f a1dc          	cp	a,#220
2997  0051 243a          	jruge	L5402
2998                     ; 44 			if(data<100)
3000  0053 b600          	ld	a,_data
3001  0055 a164          	cp	a,#100
3002  0057 2404          	jruge	L1502
3003                     ; 45 				n=1;
3005  0059 35010005      	mov	_n,#1
3006  005d               L1502:
3007                     ; 47 			if(data>100&&data<165)
3009  005d b600          	ld	a,_data
3010  005f a165          	cp	a,#101
3011  0061 250a          	jrult	L3502
3013  0063 b600          	ld	a,_data
3014  0065 a1a5          	cp	a,#165
3015  0067 2404          	jruge	L3502
3016                     ; 48 				n=2;
3018  0069 35020005      	mov	_n,#2
3019  006d               L3502:
3020                     ; 50 			if(data>165&&data<188)
3022  006d b600          	ld	a,_data
3023  006f a1a6          	cp	a,#166
3024  0071 250a          	jrult	L5502
3026  0073 b600          	ld	a,_data
3027  0075 a1bc          	cp	a,#188
3028  0077 2404          	jruge	L5502
3029                     ; 51 				n=3;
3031  0079 35030005      	mov	_n,#3
3032  007d               L5502:
3033                     ; 53 			if(data>185&&data<200)
3035  007d b600          	ld	a,_data
3036  007f a1ba          	cp	a,#186
3037  0081 250a          	jrult	L5402
3039  0083 b600          	ld	a,_data
3040  0085 a1c8          	cp	a,#200
3041  0087 2404          	jruge	L5402
3042                     ; 54 			 n=4;
3044  0089 35040005      	mov	_n,#4
3045  008d               L5402:
3046                     ; 57 	PB_ODR=table[n];
3048  008d b605          	ld	a,_n
3049  008f 5f            	clrw	x
3050  0090 97            	ld	xl,a
3051  0091 e600          	ld	a,(_table,x)
3052  0093 c75005        	ld	_PB_ODR,a
3053                     ; 58 }
3056  0096 81            	ret
3086                     ; 60 void main()
3086                     ; 61 {
3087                     	switch	.text
3088  0097               _main:
3092                     ; 62 	init();
3094  0097 cd0016        	call	_init
3096  009a               L1702:
3097                     ; 65 		ADC_CR1=0x01;                   //将单片机从低功耗中唤醒
3099  009a 35015401      	mov	_ADC_CR1,#1
3100                     ; 66 		delay(1);                       //等待ADC模块上电完成
3102  009e a601          	ld	a,#1
3103  00a0 cd0000        	call	_delay
3105                     ; 67 		ADC_CR1=0x01;                   //开启AD转换
3107  00a3 35015401      	mov	_ADC_CR1,#1
3109  00a7               L1012:
3110                     ; 68 		while((ADC_CSR&0x80)==0);       //等待转换完成
3112  00a7 c65400        	ld	a,_ADC_CSR
3113  00aa a580          	bcp	a,#128
3114  00ac 27f9          	jreq	L1012
3115                     ; 69 		data=ADC_DRH;                     //将数据赋给n
3117  00ae 5554040000    	mov	_data,_ADC_DRH
3118                     ; 71 		display();
3120  00b3 ad8e          	call	_display
3123  00b5 20e3          	jra	L1702
3166                     	xdef	_main
3167                     	xdef	_display
3168                     	xdef	_init
3169                     	xdef	_delay
3170                     	xdef	_n
3171                     	switch	.ubsct
3172  0000               _data:
3173  0000 00            	ds.b	1
3174                     	xdef	_data
3175                     	xdef	_table
3195                     	end

⌨️ 快捷键说明

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