📄 main.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 + -