www.pudn.com > ADC.zip > main.ls, change:2012-11-16,size:6398b


   1                     ; C Compiler for STM8 (COSMIC Software) 
   2                     ; Generator V4.2.8 - 03 Dec 2008 
2542                     ; 14 void GPIO(void) 
2542                     ; 15 { 
2544                     	switch	.text 
2545  0000               _GPIO: 
2549                     ; 16 	PB_DDR=0x00; 
2551  0000 725f5007      	clr	_PB_DDR 
2552                     ; 17 	PB_CR1=0x00; 
2554  0004 725f5008      	clr	_PB_CR1 
2555                     ; 18 	PB_CR2=0x00; 
2557  0008 725f5009      	clr	_PB_CR2 
2558                     ; 19 	PD_DDR=0x10; 
2560  000c 35105011      	mov	_PD_DDR,#16 
2561                     ; 20 	PD_CR1=0x10; 
2563  0010 35105012      	mov	_PD_CR1,#16 
2564                     ; 21 	PD_CR2=0x00; 
2566  0014 725f5013      	clr	_PD_CR2 
2567                     ; 24 } 
2570  0018 81            	ret 
2613                     ; 25 void delay(unsigned int ms) 
2613                     ; 26 { 
2614                     	switch	.text 
2615  0019               _delay: 
2617  0019 89            	pushw	x 
2618  001a 88            	push	a 
2619       00000001      OFST:	set	1 
2622  001b 201b          	jra	L1661 
2623  001d               L7561: 
2624                     ; 30 	for(i=0;i<126;i++) 
2626  001d 0f01          	clr	(OFST+0,sp) 
2627  001f               L5661: 
2628                     ; 31 		for(i=0;i<75;i++); 
2630  001f 0f01          	clr	(OFST+0,sp) 
2631  0021               L3761: 
2635  0021 0c01          	inc	(OFST+0,sp) 
2638  0023 7b01          	ld	a,(OFST+0,sp) 
2639  0025 a14b          	cp	a,#75 
2640  0027 25f8          	jrult	L3761 
2641                     ; 30 	for(i=0;i<126;i++) 
2643  0029 0c01          	inc	(OFST+0,sp) 
2646  002b 7b01          	ld	a,(OFST+0,sp) 
2647  002d a17e          	cp	a,#126 
2648  002f 25ee          	jrult	L5661 
2649                     ; 32 		ms--; 
2651  0031 1e02          	ldw	x,(OFST+1,sp) 
2652  0033 1d0001        	subw	x,#1 
2653  0036 1f02          	ldw	(OFST+1,sp),x 
2654  0038               L1661: 
2655                     ; 28 	while(ms!=0) 
2657  0038 1e02          	ldw	x,(OFST+1,sp) 
2658  003a 26e1          	jrne	L7561 
2659                     ; 35 } 
2662  003c 5b03          	addw	sp,#3 
2663  003e 81            	ret 
2687                     ; 37 void CLK_init(void) 
2687                     ; 38 { 
2688                     	switch	.text 
2689  003f               _CLK_init: 
2693                     ; 39 	CLK_CKDIVR=0x01; 
2695  003f 350150c6      	mov	_CLK_CKDIVR,#1 
2696                     ; 40 } 
2699  0043 81            	ret 
2725                     ; 42 void ADC_init(void) 
2725                     ; 43 { 
2726                     	switch	.text 
2727  0044               _ADC_init: 
2731                     ; 44 CLK_PCKENR2|=0x08; 
2733  0044 721650ca      	bset	_CLK_PCKENR2,#3 
2734                     ; 45 	ADC_CR2=0x08; 
2736  0048 35085402      	mov	_ADC_CR2,#8 
2737                     ; 46 	ADC_CR1=0x00; 
2739  004c 725f5401      	clr	_ADC_CR1 
2740                     ; 50 } 
2743  0050 81            	ret 
2775                     ; 51 void disp(void) 
2775                     ; 52 { 
2776                     	switch	.text 
2777  0051               _disp: 
2781                     ; 53 	ADC_CSR=0x00; 
2783  0051 725f5400      	clr	_ADC_CSR 
2784                     ; 54 	for(i=0;i<5;i++) ; 
2786  0055 5f            	clrw	x 
2787  0056 bf04          	ldw	_i,x 
2788  0058               L1371: 
2792  0058 be04          	ldw	x,_i 
2793  005a 1c0001        	addw	x,#1 
2794  005d bf04          	ldw	_i,x 
2797  005f be04          	ldw	x,_i 
2798  0061 a30005        	cpw	x,#5 
2799  0064 25f2          	jrult	L1371 
2800                     ; 55 	ADC_CR1=ADC_CR1|0x01; 
2802  0066 72105401      	bset	_ADC_CR1,#0 
2804  006a               L1471: 
2805                     ; 57 	while(!(ADC_CSR&0x80)==0); 
2807  006a c65400        	ld	a,_ADC_CSR 
2808  006d a580          	bcp	a,#128 
2809  006f 26f9          	jrne	L1471 
2810                     ; 60 	ADC_CSR&=0x7f; 
2812  0071 721f5400      	bres	_ADC_CSR,#7 
2813                     ; 61 	LED=1; 
2815  0075 7218500f      	bset	_LED 
2816                     ; 62 	L = ADC_DRL; 
2818  0079 c65405        	ld	a,_ADC_DRL 
2819  007c 5f            	clrw	x 
2820  007d 97            	ld	xl,a 
2821  007e bf00          	ldw	_L,x 
2822                     ; 63 	H=ADC_DRH; 
2824  0080 c65404        	ld	a,_ADC_DRH 
2825  0083 5f            	clrw	x 
2826  0084 97            	ld	xl,a 
2827  0085 bf02          	ldw	_H,x 
2828                     ; 64 	temp=(H<<8)+L; 
2830  0087 be02          	ldw	x,_H 
2831  0089 4f            	clr	a 
2832  008a 02            	rlwa	x,a 
2833  008b 72bb0000      	addw	x,_L 
2834  008f bf0c          	ldw	_temp,x 
2835                     ; 66 } 
2838  0091 81            	ret 
2865                     ; 105 main() 
2865                     ; 106 { 
2866                     	switch	.text 
2867  0092               _main: 
2871                     ; 108 	GPIO(); 
2873  0092 cd0000        	call	_GPIO 
2875                     ; 109 	CLK_init(); 
2877  0095 ada8          	call	_CLK_init 
2879                     ; 110 	ADC_init(); 
2881  0097 adab          	call	_ADC_init 
2883  0099               L5571: 
2884                     ; 114 	disp(); 
2886  0099 adb6          	call	_disp 
2889  009b 20fc          	jra	L5571 
2987                     	xdef	_main 
2988                     	xdef	_ADC_init 
2989                     	xdef	_CLK_init 
2990                     	xdef	_delay 
2991                     	xdef	_GPIO 
2992                     	xdef	_disp 
2993                     	switch	.ubsct 
2994  0000               _L: 
2995  0000 0000          	ds.b	2 
2996                     	xdef	_L 
2997  0002               _H: 
2998  0002 0000          	ds.b	2 
2999                     	xdef	_H 
3000  0004               _i: 
3001  0004 0000          	ds.b	2 
3002                     	xdef	_i 
3003  0006               _x: 
3004  0006 0000          	ds.b	2 
3005                     	xdef	_x 
3006  0008               _min: 
3007  0008 0000          	ds.b	2 
3008                     	xdef	_min 
3009  000a               _max: 
3010  000a 0000          	ds.b	2 
3011                     	xdef	_max 
3012  000c               _temp: 
3013  000c 0000          	ds.b	2 
3014                     	xdef	_temp 
3034                     	end