📄 led.lis
字号:
.module led.c
.area code(ram, con, rel)
.area lit(rom, con, rel)
0000 _printtable::
0000 3F06 .byte 63,6
0002 5B4F .byte 91,'O
0004 666D .byte 'f,'m
0006 7D07 .byte 125,7
0008 7F67 .byte 127,'g
000A 777C .byte 'w,124
000C 395E .byte 57,94
000E 7971 .byte 'y,'q
0010 80 .byte 128
0011 .dbfile C:\DOCUME~1\Administrator\桌面\car\led.c
0011 .dbsym e printtable _printtable A[17:17]kc
.area data(ram, con, rel)
0000 .dbfile C:\DOCUME~1\Administrator\桌面\car\led.c
.area text(rom, con, rel)
0000 .dbfile C:\DOCUME~1\Administrator\桌面\car\led.c
0000 .dbfunc e led_init _led_init fV
.even
0000 _led_init::
0000 .dbline -1
0000 .dbline 17
0000 ; /*****************************************
0000 ; 名称: LED显示函数
0000 ; 入参:断位weizhi , 数据data
0000 ; 备注:A口0-A口5控制0位-5位
0000 ; B口输出数据内容
0000 ; ****************************************/
0000 ; #include <io8515v.h>
0000 ; #include <macros.h>
0000 ; #define WEIZHI PORTA
0000 ; #define DATA PORTB
0000 ;
0000 ; #pragma data:code
0000 ; const unsigned char printtable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0000 ; 0x7f,0x67,0x77,0x7c,0x39,0x5e,0x79,0x71,0x80};
0000 ; #pragma data:data
0000 ; void led_init(void)
0000 ; {
0000 .dbline 18
0000 ; WEIZHI|=0x3F;
0000 8BB3 in R24,0x1b
0002 8F63 ori R24,63
0004 8BBB out 0x1b,R24
0006 .dbline 19
0006 ; DATA=0xFF;
0006 8FEF ldi R24,255
0008 88BB out 0x18,R24
000A .dbline -2
000A .dbline 20
000A ; }
000A L1:
000A .dbline 0 ; func end
000A 0895 ret
000C .dbend
000C .dbfunc e led _led fV
000C ; data -> R20
000C ; weizhi -> R22,R23
.even
000C _led::
000C 00D0 rcall push_gset2
000E 422F mov R20,R18
0010 602F mov R22,R16
0012 712F mov R23,R17
0014 .dbline -1
0014 .dbline 22
0014 ; void led(int weizhi,char data)
0014 ; {
0014 .dbline 23
0014 ; led_init();
0014 F5DF rcall _led_init
0016 .dbline 24
0016 ; switch(weizhi)
0016 6030 cpi R22,0
0018 6707 cpc R22,R23
001A A9F0 breq L5
001C X0:
001C 6130 cpi R22,1
001E E0E0 ldi R30,0
0020 7E07 cpc R23,R30
0022 A9F0 breq L6
0024 6230 cpi R22,2
0026 E0E0 ldi R30,0
0028 7E07 cpc R23,R30
002A A9F0 breq L7
002C 6330 cpi R22,3
002E E0E0 ldi R30,0
0030 7E07 cpc R23,R30
0032 A9F0 breq L8
0034 6430 cpi R22,4
0036 E0E0 ldi R30,0
0038 7E07 cpc R23,R30
003A A9F0 breq L9
003C 6530 cpi R22,5
003E E0E0 ldi R30,0
0040 7E07 cpc R23,R30
0042 A9F0 breq L10
0044 17C0 rjmp L4
0046 X1:
0046 .dbline 25
0046 ; {
0046 L5:
0046 .dbline 26
0046 ; case 0:WEIZHI &=0xFE;
0046 8BB3 in R24,0x1b
0048 8E7F andi R24,254
004A 8BBB out 0x1b,R24
004C .dbline 27
004C ; break;
004C 13C0 rjmp L4
004E L6:
004E .dbline 28
004E ; case 1:WEIZHI &=0xFD;
004E 8BB3 in R24,0x1b
0050 8D7F andi R24,253
0052 8BBB out 0x1b,R24
0054 .dbline 29
0054 ; break;
0054 0FC0 rjmp L4
0056 L7:
0056 .dbline 30
0056 ; case 2:WEIZHI &=0xFB;
0056 8BB3 in R24,0x1b
0058 8B7F andi R24,251
005A 8BBB out 0x1b,R24
005C .dbline 31
005C ; break;
005C 0BC0 rjmp L4
005E L8:
005E .dbline 32
005E ; case 3:WEIZHI &=0xF7;
005E 8BB3 in R24,0x1b
0060 877F andi R24,247
0062 8BBB out 0x1b,R24
0064 .dbline 33
0064 ; break;
0064 07C0 rjmp L4
0066 L9:
0066 .dbline 34
0066 ; case 4:WEIZHI &=0xEF;
0066 8BB3 in R24,0x1b
0068 8F7E andi R24,239
006A 8BBB out 0x1b,R24
006C .dbline 35
006C ; break;
006C 03C0 rjmp L4
006E L10:
006E .dbline 36
006E ; case 5:WEIZHI &=0xDF;
006E 8BB3 in R24,0x1b
0070 8F7D andi R24,223
0072 8BBB out 0x1b,R24
0074 .dbline 37
0074 ; break;
0074 .dbline 38
0074 ; default: break;
0074 L4:
0074 .dbline 40
0074 ; }
0074 ; DATA =printtable[data];
0074 80E0 ldi R24,<_printtable
0076 90E0 ldi R25,>_printtable
0078 242E mov R2,R20
007A 3324 clr R3
007C 280E add R2,R24
007E 391E adc R3,R25
0080 E22D mov R30,R2
0082 F32D mov R31,R3
0084 C895 lpm
0086 08BA out 0x18,R0
0088 .dbline -2
0088 .dbline 41
0088 ; }
0088 L2:
0088 00D0 rcall pop_gset2
008A .dbline 0 ; func end
008A 0895 ret
008C .dbsym r data 20 c
008C .dbsym r weizhi 22 I
008C .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -