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