📄 led.lis
字号:
.module LED.c
.area lit(rom, con, rel)
0000 _Char_I::
0000 0000 .byte 0,0
0002 82FE .byte 130,254
0004 8200 .byte 130,0
0006 0000 .byte 0,0
0008 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LED大屏幕显示系统设计\LED.c
0008 .dbsym e Char_I _Char_I A[8:8]kc
0008 _Char_L::
0008 0000 .byte 0,0
000A FE02 .byte 254,2
000C 0202 .byte 2,2
000E 0000 .byte 0,0
0010 .dbsym e Char_L _Char_L A[8:8]kc
0010 _Char_V::
0010 00F0 .byte 0,240
0012 0804 .byte 8,4
0014 0408 .byte 4,8
0016 F000 .byte 240,0
0018 .dbsym e Char_V _Char_V A[8:8]kc
0018 _Char_E::
0018 0000 .byte 0,0
001A FE92 .byte 254,146
001C 9282 .byte 146,130
001E 0000 .byte 0,0
0020 .dbsym e Char_E _Char_E A[8:8]kc
0020 _Char_Y::
0020 00C0 .byte 0,192
0022 201E .byte 32,30
0024 20C0 .byte 32,192
0026 0000 .byte 0,0
0028 .dbsym e Char_Y _Char_Y A[8:8]kc
0028 _Char_O::
0028 0000 .byte 0,0
002A FE82 .byte 254,130
002C 82FE .byte 130,254
002E 0000 .byte 0,0
0030 .dbsym e Char_O _Char_O A[8:8]kc
0030 _Char_U::
0030 0000 .byte 0,0
0032 FC02 .byte 252,2
0034 02FC .byte 2,252
0036 0000 .byte 0,0
0038 .dbsym e Char_U _Char_U A[8:8]kc
0038 _Space::
0038 0000 .byte 0,0
003A 0000 .byte 0,0
003C 0000 .byte 0,0
003E 0000 .byte 0,0
0040 .dbsym e Space _Space A[8:8]kc
0040 _DataBaseIndexList::
0040 49 .byte 73
0041 0000 .word _Char_I
0043 4C .byte 76
0044 0800 .word _Char_L
0046 4F .byte 79
0047 2800 .word _Char_O
0049 56 .byte 86
004A 1000 .word _Char_V
004C 45 .byte 69
004D 1800 .word _Char_E
004F 59 .byte 89
0050 2000 .word _Char_Y
0052 55 .byte 85
0053 3000 .word _Char_U
0055 00 .byte 0
0056 0000 .word 0
0058 .dbsym e DataBaseIndexList _DataBaseIndexList A[24:8]kX
0058 _String1::
0058 494C4F5645594F5500 .byte 'I,'L,'O,'V,'E,'Y,'O,'U,0
0061 .dbsym e String1 _String1 A[9:9]kc
.area text(rom, con, rel)
0000 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LED大屏幕显示系统设计\LED.c
0000 .dbfunc e Display_Init _Display_Init fV
0000 ; Index -> R20
.even
0000 _Display_Init::
0000 0E940000 xcall push_gset1
0004 .dbline -1
0004 .dbline 58
0004 ; //***************************************************************
0004 ; // File Name : LED.c
0004 ; // Author : Steaven
0004 ; // Created : 2008-07-26
0004 ; // Modified :
0004 ; // Revision : V0.0
0004 ; //***************************************************************
0004 ;
0004 ; #include "iom16v.h"
0004 ; #include "DataType.h"
0004 ; #include "app.h"
0004 ; #include "LED.h"
0004 ;
0004 ; //constant definition
0004 ; const INT8U Char_I[] = {0x00,0x00,0x82,0xFE,0x82,0x00,0x00,0x00};/*"I",0*/
0004 ; const INT8U Char_L[] = {0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00};/*"L",0*/
0004 ; const INT8U Char_V[] = {0x00,0xF0,0x08,0x04,0x04,0x08,0xF0,0x00};/*"V",0*/
0004 ; const INT8U Char_E[] = {0x00,0x00,0xFE,0x92,0x92,0x82,0x00,0x00};/*"E",0*/
0004 ; const INT8U Char_Y[] = {0x00,0xC0,0x20,0x1E,0x20,0xC0,0x00,0x00};/*"Y",0*/
0004 ; const INT8U Char_O[] = {0x00,0x00,0xFE,0x82,0x82,0xFE,0x00,0x00};/*"O",0*/
0004 ; const INT8U Char_U[] = {0x00,0x00,0xFC,0x02,0x02,0xFC,0x00,0x00};/*"U",0*/
0004 ; const INT8U Space[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*" ",0*/
0004 ;
0004 ; //struct definition
0004 ; struct DataBaseIndex
0004 ; {
0004 ; INT8U Code;
0004 ; const INT8U *Ptr;
0004 ; };
0004 ;
0004 ; //char code database list
0004 ; const struct DataBaseIndex DataBaseIndexList[] =
0004 ; {
0004 ; 'I', Char_I,
0004 ; 'L', Char_L,
0004 ; 'O', Char_O,
0004 ; 'V', Char_V,
0004 ; 'E', Char_E,
0004 ; 'Y', Char_Y,
0004 ; 'U', Char_U,
0004 ; 0 , 0
0004 ; };
0004 ;
0004 ; //global variables definition
0004 ; const INT8U *pBufStr; //字符指针
0004 ; const char String1[] = {"ILOVEYOU"}; //字符串
0004 ; INT8U DisplayCnt; //显示计数器
0004 ; INT8U Buffer[8]; //显示缓冲区
0004 ; INT8U Length_of_DataBase; //字符数据库长度
0004 ;
0004 ; //***************************************************************
0004 ; // Function : Display_Init
0004 ; // Input : none
0004 ; // Output : none
0004 ; // Description : Display Initialization
0004 ; //***************************************************************
0004 ; void Display_Init(void)
0004 ; {
0004 .dbline 59
0004 ; INT8U Index = 0;
0004 4427 clr R20
0006 .dbline 60
0006 ; for(Index = 0;Index < 8;Index++)
0006 09C0 xjmp L5
0008 L2:
0008 .dbline 61
0008 .dbline 62
0008 80E0 ldi R24,<_Buffer
000A 90E0 ldi R25,>_Buffer
000C E42F mov R30,R20
000E FF27 clr R31
0010 E80F add R30,R24
0012 F91F adc R31,R25
0014 2224 clr R2
0016 2082 std z+0,R2
0018 .dbline 63
0018 L3:
0018 .dbline 60
0018 4395 inc R20
001A L5:
001A .dbline 60
001A 4830 cpi R20,8
001C A8F3 brlo L2
001E .dbline 64
001E ; {
001E ; Buffer[Index] = 0;
001E ; }
001E ; pBufStr = String1;
001E 80E0 ldi R24,<_String1
0020 90E0 ldi R25,>_String1
0022 90930B00 sts _pBufStr+1,R25
0026 80930A00 sts _pBufStr,R24
002A .dbline 65
002A ; DisplayCnt = 0;
002A 2224 clr R2
002C 20920900 sts _DisplayCnt,R2
0030 .dbline 66
0030 ; Length_of_DataBase = Search_DataBase_Length();
0030 4BD0 xcall _Search_DataBase_Length
0032 00930000 sts _Length_of_DataBase,R16
0036 .dbline -2
0036 .dbline 67
0036 ; }
0036 L1:
0036 0E940000 xcall pop_gset1
003A .dbline 0 ; func end
003A 0895 ret
003C .dbsym r Index 20 c
003C .dbend
003C .dbfunc e Buffer_IN _Buffer_IN fV
003C ; pdata -> R20,R21
003C ; Count -> R22
003C ; Index -> R10
.even
003C _Buffer_IN::
003C 0E940000 xcall push_gset3
0040 A02E mov R10,R16
0042 .dbline -1
0042 .dbline 76
0042 ;
0042 ; //***************************************************************
0042 ; // Function : DotTest
0042 ; // Input : none
0042 ; // Output : none
0042 ; // Description : LED Display Test
0042 ; //***************************************************************
0042 ; void Buffer_IN(INT8U Index)
0042 ; {
0042 .dbline 78
0042 ; const INT8U *pdata;
0042 ; INT8U Count = 0;
0042 6627 clr R22
0044 .dbline 79
0044 ; pdata = SearchCharIndex(*pBufStr);
0044 E0910A00 lds R30,_pBufStr
0048 F0910B00 lds R31,_pBufStr+1
004C 0491 lpm R16,Z
004E 21D0 xcall _SearchCharIndex
0050 A801 movw R20,R16
0052 .dbline 80
0052 ; if(pdata != (INT8U *)0)
0052 0030 cpi R16,0
0054 0107 cpc R16,R17
0056 D1F0 breq L7
0058 X0:
0058 .dbline 81
0058 ; {
0058 .dbline 82
0058 ; for(Count = 0;Count < 7;Count++)
0058 6627 clr R22
005A 0FC0 xjmp L12
005C L9:
005C .dbline 83
005C .dbline 84
005C 80E0 ldi R24,<_Buffer+1
005E 90E0 ldi R25,>_Buffer+1
0060 E62F mov R30,R22
0062 FF27 clr R31
0064 E80F add R30,R24
0066 F91F adc R31,R25
0068 2080 ldd R2,z+0
006A 80E0 ldi R24,<_Buffer
006C 90E0 ldi R25,>_Buffer
006E E62F mov R30,R22
0070 FF27 clr R31
0072 E80F add R30,R24
0074 F91F adc R31,R25
0076 2082 std z+0,R2
0078 .dbline 85
0078 L10:
0078 .dbline 82
0078 6395 inc R22
007A L12:
007A .dbline 82
007A 6730 cpi R22,7
007C 78F3 brlo L9
007E .dbline 86
007E EA2D mov R30,R10
0080 FF27 clr R31
0082 E40F add R30,R20
0084 F51F adc R31,R21
0086 E491 lpm R30,Z
0088 E0930800 sts _Buffer+7,R30
008C .dbline 87
008C L7:
008C .dbline -2
008C .dbline 88
008C ; {
008C ; Buffer[Count] = Buffer[Count+1];
008C ; }
008C ; Buffer[7] = *(pdata + Index);
008C ; }
008C ; }
008C L6:
008C 0E940000 xcall pop_gset3
0090 .dbline 0 ; func end
0090 0895 ret
0092 .dbsym r pdata 20 pkc
0092 .dbsym r Count 22 c
0092 .dbsym r Index 10 c
0092 .dbend
0092 .dbfunc e SearchCharIndex _SearchCharIndex fpkc
0092 ; pDataBasePtr -> R20,R21
0092 ; Index -> R22
0092 ; CharCode -> R16
.even
0092 _SearchCharIndex::
0092 0E940000 xcall push_gset2
0096 .dbline -1
0096 .dbline 97
0096 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -