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

📄 240128.lis

📁 用ATMEGA88推动LCD240128液晶的测试程序。按config.h的定义连接AVR和LCD
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module _240128.C
                        .area text(rom, con, rel)
 0000                   .dbfile E:\工作\240X12~1\(000)\240128.C
 0000                   .dbfunc e lcd_delay _lcd_delay fV
 0000           ;              i -> R20,R21
 0000           ;           time -> R16,R17
                        .even
 0000           _lcd_delay::
 0000 00D0              rcall push_gset1
 0002                   .dbline -1
 0002                   .dbline 15
 0002           ; /*******************************************************************************
 0002           ;                            T6963C液晶驱动 RT240128
 0002           ;                               MAGE88 16M
 0002           ; *******************************************************************************/
 0002           ; #include "CONFIG.H"
 0002           ; 
 0002           ; #define LCD_LEFT        0
 0002           ; #define LCD_TOP         0
 0002           ; #define LCD_RIGHT       239
 0002           ; #define LCD_BOTTOM      127
 0002           ; 
 0002           ; #define LCD_DELAY       0
 0002           ; /******************************************************************************/
 0002           ; void lcd_delay(unsigned int time)
 0002           ; {
 0002 08C0              rjmp L3
 0004           L2:
 0004                   .dbline 18
 0004           ;     unsigned int i;
 0004           ;     while(time--)
 0004           ;       {
 0004                   .dbline 19
 0004           ;         i=1000;
 0004 48EE              ldi R20,1000
 0006 53E0              ldi R21,3
 0008           L5:
 0008                   .dbline 20
 0008           L6:
 0008                   .dbline 20
 0008 CA01              movw R24,R20
 000A 0197              sbiw R24,1
 000C AC01              movw R20,R24
 000E 4030              cpi R20,0
 0010 4507              cpc R20,R21
 0012 D1F7              brne L5
 0014           X0:
 0014                   .dbline 21
 0014           L3:
 0014                   .dbline 17
 0014 1801              movw R2,R16
 0016 0150              subi R16,1
 0018 1040              sbci R17,0
 001A 2220              tst R2
 001C 99F7              brne L2
 001E 3320              tst R3
 0020 89F7              brne L2
 0022           X1:
 0022                   .dbline -2
 0022           L1:
 0022 00D0              rcall pop_gset1
 0024                   .dbline 0 ; func end
 0024 0895              ret
 0026                   .dbsym r i 20 i
 0026                   .dbsym r time 16 i
 0026                   .dbend
 0026                   .dbfunc e lcd_wd _lcd_wd fV
 0026           ;       lcd_data -> R16
                        .even
 0026           _lcd_wd::
 0026                   .dbline -1
 0026                   .dbline 25
 0026           ;         while(--i);
 0026           ;     }
 0026           ; }
 0026           ; /***********************************************************************************/
 0026           ; void lcd_wd(uchar lcd_data)/*写数据*/
 0026           ; {
 0026                   .dbline 26
 0026           ;     LCD_DDR = 0x00;   
 0026 2224              clr R2
 0028 2AB8              out 0xa,R2
 002A                   .dbline 27
 002A           ;     LCD_CODE_P &= ~(BIT(LCD_RD) | BIT(LCD_CE));
 002A 85B1              in R24,0x5
 002C 837F              andi R24,243
 002E 85B9              out 0x5,R24
 0030                   .dbline 28
 0030           ;     LCD_CODE_P |= (BIT(LCD_RW) | BIT(LCD_CD));
 0030 85B1              in R24,0x5
 0032 8360              ori R24,3
 0034 85B9              out 0x5,R24
 0036           L9:
 0036                   .dbline 29
 0036           L10:
 0036                   .dbline 29
 0036           ;     while( (LCD_DATA & 0x03) != 0x03 );
 0036 89B1              in R24,0x9
 0038 8370              andi R24,3
 003A 8330              cpi R24,3
 003C E1F7              brne L9
 003E                   .dbline 32
 003E           ;       
 003E           ;       
 003E           ;     LCD_RD_H;NOP();NOP();NOP();NOP();NOP();NOP();
 003E 2A9A              sbi 0x5,2
 0040                   .dbline 32
 0040 0000              nop
 0042                   .dbline 32
 0042 0000              nop
 0044                   .dbline 32
 0044 0000              nop
 0046                   .dbline 32
 0046 0000              nop
 0048                   .dbline 32
 0048 0000              nop
 004A                   .dbline 32
 004A 0000              nop
 004C                   .dbline 33
 004C           ;       LCD_CD_L;NOP();NOP();NOP();NOP();NOP();NOP();
 004C 2898              cbi 0x5,0
 004E                   .dbline 33
 004E 0000              nop
 0050                   .dbline 33
 0050 0000              nop
 0052                   .dbline 33
 0052 0000              nop
 0054                   .dbline 33
 0054 0000              nop
 0056                   .dbline 33
 0056 0000              nop
 0058                   .dbline 33
 0058 0000              nop
 005A                   .dbline 34
 005A           ;     LCD_RW_L;NOP();NOP();NOP();NOP();NOP();NOP();
 005A 2998              cbi 0x5,1
 005C                   .dbline 34
 005C 0000              nop
 005E                   .dbline 34
 005E 0000              nop
 0060                   .dbline 34
 0060 0000              nop
 0062                   .dbline 34
 0062 0000              nop
 0064                   .dbline 34
 0064 0000              nop
 0066                   .dbline 34
 0066 0000              nop
 0068                   .dbline 37
 0068           ;       
 0068           ;       
 0068           ;     LCD_DDR = 0XFF;
 0068 8FEF              ldi R24,255
 006A 8AB9              out 0xa,R24
 006C                   .dbline 38
 006C           ;     LCD_PORT = lcd_data;NOP();NOP();NOP();NOP();NOP();NOP();NOP();
 006C 0BB9              out 0xb,R16
 006E                   .dbline 38
 006E 0000              nop
 0070                   .dbline 38
 0070 0000              nop
 0072                   .dbline 38
 0072 0000              nop
 0074                   .dbline 38
 0074 0000              nop
 0076                   .dbline 38
 0076 0000              nop
 0078                   .dbline 38
 0078 0000              nop
 007A                   .dbline 38
 007A 0000              nop
 007C                   .dbline 39
 007C           ;     LCD_CODE_P |= (BIT(LCD_RW) | BIT(LCD_RD) | BIT(LCD_CD) | BIT(LCD_CE));
 007C 85B1              in R24,0x5
 007E 8F60              ori R24,15
 0080 85B9              out 0x5,R24
 0082                   .dbline -2
 0082           L8:
 0082                   .dbline 0 ; func end
 0082 0895              ret
 0084                   .dbsym r lcd_data 16 c
 0084                   .dbend
 0084                   .dbfunc e lcd_wc _lcd_wc fV
 0084           ;       lcd_code -> R16
                        .even
 0084           _lcd_wc::
 0084                   .dbline -1
 0084                   .dbline 43
 0084           ; }
 0084           ; /***********************************************************************************/
 0084           ; void lcd_wc(uchar lcd_code)/*写命令*/
 0084           ; {
 0084                   .dbline 44
 0084           ;     LCD_DDR = 0X00;
 0084 2224              clr R2
 0086 2AB8              out 0xa,R2
 0088                   .dbline 45
 0088           ;     LCD_CODE_P &= ~(BIT(LCD_RD) | BIT(LCD_CE));
 0088 85B1              in R24,0x5
 008A 837F              andi R24,243
 008C 85B9              out 0x5,R24
 008E                   .dbline 46
 008E           ;     LCD_CODE_P |= (BIT(LCD_RD) | BIT(LCD_CE));
 008E 85B1              in R24,0x5
 0090 8C60              ori R24,12
 0092 85B9              out 0x5,R24
 0094           L13:
 0094                   .dbline 47
 0094           L14:
 0094                   .dbline 47
 0094           ;     while( (LCD_DATA & 0X03) != 0X03 );
 0094 89B1              in R24,0x9
 0096 8370              andi R24,3
 0098 8330              cpi R24,3
 009A E1F7              brne L13
 009C                   .dbline 50
 009C           ;     
 009C           ;       
 009C           ;     LCD_RD_H;NOP();NOP();NOP();NOP();NOP();NOP();
 009C 2A9A              sbi 0x5,2
 009E                   .dbline 50
 009E 0000              nop
 00A0                   .dbline 50
 00A0 0000              nop
 00A2                   .dbline 50
 00A2 0000              nop
 00A4                   .dbline 50
 00A4 0000              nop
 00A6                   .dbline 50
 00A6 0000              nop
 00A8                   .dbline 50
 00A8 0000              nop
 00AA                   .dbline 51
 00AA           ;       LCD_CD_H;NOP();NOP();NOP();NOP();NOP();NOP();
 00AA 289A              sbi 0x5,0
 00AC                   .dbline 51
 00AC 0000              nop
 00AE                   .dbline 51
 00AE 0000              nop
 00B0                   .dbline 51
 00B0 0000              nop
 00B2                   .dbline 51
 00B2 0000              nop
 00B4                   .dbline 51
 00B4 0000              nop
 00B6                   .dbline 51
 00B6 0000              nop
 00B8                   .dbline 52
 00B8           ;     LCD_RW_L;NOP();NOP();NOP();NOP();NOP();NOP();
 00B8 2998              cbi 0x5,1
 00BA                   .dbline 52
 00BA 0000              nop
 00BC                   .dbline 52
 00BC 0000              nop
 00BE                   .dbline 52
 00BE 0000              nop
 00C0                   .dbline 52
 00C0 0000              nop
 00C2                   .dbline 52
 00C2 0000              nop
 00C4                   .dbline 52
 00C4 0000              nop
 00C6                   .dbline 55
 00C6           ;       
 00C6           ;       
 00C6           ;     LCD_DDR = 0XFF;
 00C6 8FEF              ldi R24,255
 00C8 8AB9              out 0xa,R24
 00CA                   .dbline 56
 00CA           ;     LCD_PORT = lcd_code;NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();NOP();
 00CA 0BB9              out 0xb,R16
 00CC                   .dbline 56
 00CC 0000              nop
 00CE                   .dbline 56
 00CE 0000              nop
 00D0                   .dbline 56
 00D0 0000              nop
 00D2                   .dbline 56
 00D2 0000              nop
 00D4                   .dbline 56
 00D4 0000              nop
 00D6                   .dbline 56
 00D6 0000              nop
 00D8                   .dbline 56
 00D8 0000              nop
 00DA                   .dbline 56
 00DA 0000              nop
 00DC                   .dbline 56
 00DC 0000              nop
 00DE                   .dbline 57
 00DE           ;     LCD_CODE_P |= (BIT(LCD_RW) | BIT(LCD_RD) | BIT(LCD_CD) | BIT(LCD_CE));
 00DE 85B1              in R24,0x5
 00E0 8F60              ori R24,15
 00E2 85B9              out 0x5,R24
 00E4                   .dbline -2
 00E4           L12:
 00E4                   .dbline 0 ; func end
 00E4 0895              ret
 00E6                   .dbsym r lcd_code 16 c
 00E6                   .dbend
 00E6                   .dbfunc e lcd_wc3 _lcd_wc3 fV
 00E6           ;      lcd_data2 -> y+4
 00E6           ;      lcd_data1 -> R22
 00E6           ;       lcd_code -> R20
                        .even
 00E6           _lcd_wc3::
 00E6 00D0              rcall push_gset2
 00E8 622F              mov R22,R18
 00EA 402F              mov R20,R16
 00EC                   .dbline -1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -