📄 leds.lis
字号:
.module Leds.c
.area data(ram, con, rel)
0000 _ledsOn::
0000 .blkb 1
.area idata
0000 70 .byte 112
.area data(ram, con, rel)
.area text(rom, con, rel)
.even
0000 _led_init::
0000 ; //LED接口
0000 ; #include "led.h"
0000 ; unsigned char ledsOn=0x70;
0000 ; void led_init()
0000 ; {
0000 ; PORTC |=0x70;
0000 85B3 in R24,0x15
0002 8067 ori R24,112
0004 85BB out 0x15,R24
0006 L1:
0006 .dbline 0 ; func end
0006 0895 ret
.even
0008 _led0Off::
0008 ; }
0008 ;
0008 ; //*********Turn off LED 0.
0008 ; void led0Off()
0008 ; {
0008 ; PORTC |=0x10;
0008 AC9A sbi 0x15,4
000A ; ledsOn |=0x10;
000A 80910000 lds R24,_ledsOn
000E 8061 ori R24,16
0010 80930000 sts _ledsOn,R24
0014 L2:
0014 .dbline 0 ; func end
0014 0895 ret
.even
0016 _led0On::
0016 ; }
0016 ;
0016 ;
0016 ; //**********Turn on LED 0.
0016 ; void led0On()
0016 ; {
0016 ; PORTC &=~0x10;
0016 AC98 cbi 0x15,4
0018 ; ledsOn &=~0x10;
0018 80910000 lds R24,_ledsOn
001C 8F7E andi R24,239
001E 80930000 sts _ledsOn,R24
0022 L3:
0022 .dbline 0 ; func end
0022 0895 ret
.even
0024 _led0Toggle::
0024 ; }
0024 ;
0024 ;
0024 ; //**********Toggle LED 0; if it was off, turn it on, if was on, turn it off.
0024 ; void led0Toggle()
0024 ; {
0024 ; if (ledsOn &0x10)
0024 20900000 lds R2,_ledsOn
0028 24FE sbrs R2,4
002A 02C0 rjmp L5
002C ; led0On();
002C F4DF xcall _led0On
002E 01C0 xjmp L6
0030 L5:
0030 ; else
0030 ; led0Off();
0030 EBDF xcall _led0Off
0032 L6:
0032 L4:
0032 .dbline 0 ; func end
0032 0895 ret
.even
0034 _led1Off::
0034 ; }
0034 ;
0034 ; //*********Turn off LED 1.
0034 ; void led1Off()
0034 ; {
0034 ; PORTC |=0x20;
0034 AD9A sbi 0x15,5
0036 ; ledsOn |=0x20;
0036 80910000 lds R24,_ledsOn
003A 8062 ori R24,32
003C 80930000 sts _ledsOn,R24
0040 L7:
0040 .dbline 0 ; func end
0040 0895 ret
.even
0042 _led1On::
0042 ; }
0042 ;
0042 ; //**********Turn on LED 1.
0042 ; void led1On()
0042 ; {
0042 ; PORTC &=~0x20;
0042 AD98 cbi 0x15,5
0044 ; ledsOn &=~0x20;
0044 80910000 lds R24,_ledsOn
0048 8F7D andi R24,223
004A 80930000 sts _ledsOn,R24
004E L8:
004E .dbline 0 ; func end
004E 0895 ret
.even
0050 _led1Toggle::
0050 ; }
0050 ;
0050 ; //*********Toggle LED 1; if it was off, turn it on, if was on, turn it off.
0050 ; void led1Toggle()
0050 ; {
0050 ; if (ledsOn &0x20)
0050 20900000 lds R2,_ledsOn
0054 25FE sbrs R2,5
0056 02C0 rjmp L10
0058 ; led1On();
0058 F4DF xcall _led1On
005A 01C0 xjmp L11
005C L10:
005C ; else
005C ; led1Off();
005C EBDF xcall _led1Off
005E L11:
005E L9:
005E .dbline 0 ; func end
005E 0895 ret
.even
0060 _led2Off::
0060 ; }
0060 ;
0060 ; //********Turn off LED 2.
0060 ; void led2Off()
0060 ; {
0060 ; PORTC |=0x40;
0060 AE9A sbi 0x15,6
0062 ; ledsOn |=0x40;
0062 80910000 lds R24,_ledsOn
0066 8064 ori R24,64
0068 80930000 sts _ledsOn,R24
006C L12:
006C .dbline 0 ; func end
006C 0895 ret
.even
006E _led2On::
006E ; }
006E ;
006E ; //*******Turn on LED 2.
006E ; void led2On()
006E ; {
006E ; PORTC &=~0x40;
006E AE98 cbi 0x15,6
0070 ; ledsOn &=~0x40;
0070 80910000 lds R24,_ledsOn
0074 8F7B andi R24,191
0076 80930000 sts _ledsOn,R24
007A L13:
007A .dbline 0 ; func end
007A 0895 ret
.even
007C _led2Toggle::
007C ; }
007C ;
007C ; //*********Toggle LED 2; if it was off, turn it on, if was on, turn it off.
007C ; void led2Toggle()
007C ; {
007C ; if (ledsOn &0x40)
007C 20900000 lds R2,_ledsOn
0080 26FE sbrs R2,6
0082 02C0 rjmp L15
0084 ; led2On();
0084 F4DF xcall _led2On
0086 01C0 xjmp L16
0088 L15:
0088 ; else
0088 ; led2Off();
0088 EBDF xcall _led2Off
008A L16:
008A L14:
008A .dbline 0 ; func end
008A 0895 ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -