⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led.lis

📁 AVR单片机C语言程序设计实例精粹
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .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 + -