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

📄 240128.lis

📁 用ATMEGA88推动LCD240128液晶的测试程序。按config.h的定义连接AVR和LCD
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00EC                   .dbline 61
 00EC           ; }
 00EC           ; /***********************************************************************************/
 00EC           ; void lcd_wc3(unsigned char lcd_code,unsigned char lcd_data1,unsigned char lcd_data2)
 00EC           ; {
 00EC                   .dbline 62
 00EC           ;     lcd_wd(lcd_data1);
 00EC 062F              mov R16,R22
 00EE 9BDF              rcall _lcd_wd
 00F0                   .dbline 63
 00F0           ;     lcd_wd(lcd_data2);
 00F0 0C81              ldd R16,y+4
 00F2 99DF              rcall _lcd_wd
 00F4                   .dbline 64
 00F4           ;     lcd_wc(lcd_code);
 00F4 042F              mov R16,R20
 00F6 C6DF              rcall _lcd_wc
 00F8                   .dbline -2
 00F8           L16:
 00F8 00D0              rcall pop_gset2
 00FA                   .dbline 0 ; func end
 00FA 0895              ret
 00FC                   .dbsym l lcd_data2 4 c
 00FC                   .dbsym r lcd_data1 22 c
 00FC                   .dbsym r lcd_code 20 c
 00FC                   .dbend
 00FC                   .dbfunc e lcd_init _lcd_init fV
                        .even
 00FC           _lcd_init::
 00FC 2197              sbiw R28,1
 00FE                   .dbline -1
 00FE                   .dbline 68
 00FE           ; }
 00FE           ; /******************************************************************************/
 00FE           ; void lcd_init(void)
 00FE           ; {
 00FE                   .dbline 69
 00FE           ;     LCD_RES_H;
 00FE 2C9A              sbi 0x5,4
 0100                   .dbline 70
 0100           ;     LCD_RES_L;
 0100 2C98              cbi 0x5,4
 0102                   .dbline 71
 0102           ;     lcd_delay(15);
 0102 0FE0              ldi R16,15
 0104 10E0              ldi R17,0
 0106 7CDF              rcall _lcd_delay
 0108                   .dbline 72
 0108           ;     LCD_RES_H;
 0108 2C9A              sbi 0x5,4
 010A                   .dbline 73
 010A           ;     lcd_wc(0x80);          //设置显示模式为逻辑“或”模式
 010A 00E8              ldi R16,128
 010C BBDF              rcall _lcd_wc
 010E                   .dbline 74
 010E           ;     lcd_wc(0x98);          //开显示
 010E 08E9              ldi R16,152
 0110 B9DF              rcall _lcd_wc
 0112                   .dbline 75
 0112           ;     lcd_wc3(0x40,0,0);     //设置文本显示区首地址
 0112 2224              clr R2
 0114 2882              std y+0,R2
 0116 2227              clr R18
 0118 00E4              ldi R16,64
 011A E5DF              rcall _lcd_wc3
 011C                   .dbline 76
 011C           ;     lcd_wc3(0x41,30,0);    //设置文本显示区宽度
 011C 2224              clr R2
 011E 2882              std y+0,R2
 0120 2EE1              ldi R18,30
 0122 01E4              ldi R16,65
 0124 E0DF              rcall _lcd_wc3
 0126                   .dbline 77
 0126           ;     lcd_wc3(0x42,0,0);     //设置图形显示区首地址
 0126 2224              clr R2
 0128 2882              std y+0,R2
 012A 2227              clr R18
 012C 02E4              ldi R16,66
 012E DBDF              rcall _lcd_wc3
 0130                   .dbline 78
 0130           ;     lcd_wc3(0x43,30,0);    //设置图形显示区宽度
 0130 2224              clr R2
 0132 2882              std y+0,R2
 0134 2EE1              ldi R18,30
 0136 03E4              ldi R16,67
 0138 D6DF              rcall _lcd_wc3
 013A                   .dbline -2
 013A           L17:
 013A 2196              adiw R28,1
 013C                   .dbline 0 ; func end
 013C 0895              ret
 013E                   .dbend
 013E                   .dbfunc e lcd_clear _lcd_clear fV
 013E           ;              i -> R20
 013E           ;              j -> R10
 013E           ;       lcd_data -> R22
                        .even
 013E           _lcd_clear::
 013E 00D0              rcall push_gset3
 0140 602F              mov R22,R16
 0142 2197              sbiw R28,1
 0144                   .dbline -1
 0144                   .dbline 82
 0144           ; }
 0144           ; /******************************************************************************/
 0144           ; void lcd_clear(unsigned char lcd_data)
 0144           ; {
 0144                   .dbline 84
 0144           ;     unsigned char i,j;
 0144           ;     lcd_wc(0x98);                    //打开图形显示,关闭文本显示
 0144 08E9              ldi R16,152
 0146 9EDF              rcall _lcd_wc
 0148                   .dbline 85
 0148           ;     lcd_wc3(0x24,0,0);               //设置地址指针
 0148 2224              clr R2
 014A 2882              std y+0,R2
 014C 2227              clr R18
 014E 04E2              ldi R16,36
 0150 CADF              rcall _lcd_wc3
 0152                   .dbline 86
 0152           ;     lcd_wc(0xb0);                    //设置自动写数据
 0152 00EB              ldi R16,176
 0154 97DF              rcall _lcd_wc
 0156                   .dbline 87
 0156           ;     for(i=0;i<128;i++)
 0156 4427              clr R20
 0158 09C0              rjmp L22
 015A           L19:
 015A                   .dbline 88
 015A           ;     {
 015A                   .dbline 89
 015A           ;         for(j=0;j<30;j++)
 015A AA24              clr R10
 015C 03C0              rjmp L26
 015E           L23:
 015E                   .dbline 90
 015E                   .dbline 91
 015E 062F              mov R16,R22
 0160 62DF              rcall _lcd_wd
 0162                   .dbline 92
 0162           L24:
 0162                   .dbline 89
 0162 A394              inc R10
 0164           L26:
 0164                   .dbline 89
 0164 8A2D              mov R24,R10
 0166 8E31              cpi R24,30
 0168 D0F3              brlo L23
 016A                   .dbline 93
 016A           L20:
 016A                   .dbline 87
 016A 4395              inc R20
 016C           L22:
 016C                   .dbline 87
 016C 4038              cpi R20,128
 016E A8F3              brlo L19
 0170                   .dbline 94
 0170           ;         {
 0170           ;             lcd_wd(lcd_data);        //Write display data 
 0170           ;         }
 0170           ;     }                               
 0170           ;     lcd_wc(0xb2);                    //Awroff (auto reset)
 0170 02EB              ldi R16,178
 0172 88DF              rcall _lcd_wc
 0174                   .dbline -2
 0174           L18:
 0174 2196              adiw R28,1
 0176 00D0              rcall pop_gset3
 0178                   .dbline 0 ; func end
 0178 0895              ret
 017A                   .dbsym r i 20 c
 017A                   .dbsym r j 10 c
 017A                   .dbsym r lcd_data 22 c
 017A                   .dbend
 017A                   .dbfunc e lcd_print _lcd_print fV
 017A           ;       lcd_data -> y+5
 017A           ;              y -> R22
 017A           ;              x -> R20
                        .even
 017A           _lcd_print::
 017A 00D0              rcall push_gset2
 017C 622F              mov R22,R18
 017E 402F              mov R20,R16
 0180 2197              sbiw R28,1
 0182                   .dbline -1
 0182                   .dbline 98
 0182           ; }
 0182           ; /******************************************************************************/
 0182           ; void lcd_print(unsigned char x,unsigned char y,unsigned char lcd_data)
 0182           ; {
 0182                   .dbline 99
 0182           ;     lcd_wc(0x98);
 0182 08E9              ldi R16,152
 0184 7FDF              rcall _lcd_wc
 0186                   .dbline 100
 0186           ;     lcd_wc3(0x24,x,y);
 0186 6883              std y+0,R22
 0188 242F              mov R18,R20
 018A 04E2              ldi R16,36
 018C ACDF              rcall _lcd_wc3
 018E                   .dbline 101
 018E           ;     lcd_wc(0xb0);
 018E 00EB              ldi R16,176
 0190 79DF              rcall _lcd_wc
 0192                   .dbline 102
 0192           ;     lcd_wd(lcd_data);
 0192 0D81              ldd R16,y+5
 0194 48DF              rcall _lcd_wd
 0196                   .dbline 103
 0196           ;     lcd_wc(0xb2);
 0196 02EB              ldi R16,178
 0198 75DF              rcall _lcd_wc
 019A                   .dbline -2
 019A           L27:
 019A 2196              adiw R28,1
 019C 00D0              rcall pop_gset2
 019E                   .dbline 0 ; func end
 019E 0895              ret
 01A0                   .dbsym l lcd_data 5 c
 01A0                   .dbsym r y 22 c
 01A0                   .dbsym r x 20 c
 01A0                   .dbend
 01A0                   .dbfunc e lcd_print240128 _lcd_print240128 fV
 01A0           ;              i -> R20
 01A0           ;              j -> R10
 01A0           ;            str -> R22,R23
                        .even
 01A0           _lcd_print240128::
 01A0 00D0              rcall push_gset3
 01A2 B801              movw R22,R16
 01A4 2197              sbiw R28,1
 01A6                   .dbline -1
 01A6                   .dbline 107
 01A6           ; }
 01A6           ; /******************************************************************************/
 01A6           ; void lcd_print240128(cchar *str)
 01A6           ; {
 01A6                   .dbline 109
 01A6           ;     uchar i,j;
 01A6           ;     lcd_wc(0x98);
 01A6 08E9              ldi R16,152
 01A8 6DDF              rcall _lcd_wc
 01AA                   .dbline 110
 01AA           ;     lcd_wc3(0x24,0,0);
 01AA 2224              clr R2
 01AC 2882              std y+0,R2
 01AE 2227              clr R18
 01B0 04E2              ldi R16,36
 01B2 99DF              rcall _lcd_wc3
 01B4                   .dbline 111
 01B4           ;     lcd_wc(0xb0);
 01B4 00EB              ldi R16,176
 01B6 66DF              rcall _lcd_wc
 01B8                   .dbline 112
 01B8           ;     for(i=0;i<128;i++)
 01B8 4427              clr R20
 01BA 0DC0              rjmp L32
 01BC           L29:
 01BC                   .dbline 113
 01BC           ;     {
 01BC                   .dbline 114
 01BC           ;         for(j=0;j<30;j++)
 01BC AA24              clr R10
 01BE 07C0              rjmp L36
 01C0           L33:
 01C0                   .dbline 115
 01C0                   .dbline 116
 01C0 1B01              movw R2,R22
 01C2 6F5F              subi R22,255  ; offset = 1
 01C4 7F4F              sbci R23,255
 01C6 F101              movw R30,R2
 01C8 0491              lpm R16,Z
 01CA 2DDF              rcall _lcd_wd
 01CC                   .dbline 117
 01CC           L34:
 01CC                   .dbline 114
 01CC A394              inc R10
 01CE           L36:
 01CE                   .dbline 114
 01CE 8A2D              mov R24,R10
 01D0 8E31              cpi R24,30
 01D2 B0F3              brlo L33
 01D4                   .dbline 118
 01D4           L30:
 01D4                   .dbline 112
 01D4 4395              inc R20
 01D6           L32:
 01D6                   .dbline 112
 01D6 4038              cpi R20,128
 01D8 88F3              brlo L29
 01DA                   .dbline 119
 01DA           ;         {
 01DA           ;             lcd_wd(*str++);
 01DA           ;         }
 01DA           ;     }
 01DA           ;     lcd_wc(0xb2);
 01DA 02EB              ldi R16,178
 01DC 53DF              rcall _lcd_wc
 01DE                   .dbline -2
 01DE           L28:
 01DE 2196              adiw R28,1
 01E0 00D0              rcall pop_gset3
 01E2                   .dbline 0 ; func end
 01E2 0895              ret
 01E4                   .dbsym r i 20 c
 01E4                   .dbsym r j 10 c
 01E4                   .dbsym r str 22 pkc
 01E4                   .dbend

⌨️ 快捷键说明

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