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

📄 loadbit.lis

📁 ssd1325控制器液晶的驱动程序
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00FA                   .dbline 66
 00FA C601              movw R24,R12
 00FC 0196              adiw R24,1
 00FE 6C01              movw R12,R24
 0100           L27:
 0100                   .dbline 67
 0100           L24:
 0100                   .dbline 62
 0100 4F5F              subi R20,255  ; offset = 1
 0102 5F4F              sbci R21,255
 0104           L26:
 0104                   .dbline 62
 0104 4617              cp R20,R22
 0106 5707              cpc R21,R23
 0108 F0F2              brlo L23
 010A                   .dbline -2
 010A           L22:
 010A 2496              adiw R28,4
 010C 0E940000          xcall pop_gset5
 0110 2496              adiw R28,4
 0112                   .dbline 0 ; func end
 0112 0895              ret
 0114                   .dbsym r i 20 i
 0114                   .dbsym r lno 22 i
 0114                   .dbsym r hno 10 i
 0114                   .dbsym r dat 12 pc
 0114                   .dbsym r y 14 i
 0114                   .dbsym l x 14 i
 0114                   .dbend
 0114                   .dbfunc e GUI_LoadPic1 _GUI_LoadPic1 fV
 0114           ;              i -> R20,R21
 0114           ;            lno -> R22,R23
 0114           ;            hno -> R10,R11
 0114           ;            dat -> R12,R13
 0114           ;              y -> R14,R15
 0114           ;              x -> y+14
                        .even
 0114           _GUI_LoadPic1::
 0114 0E940000          xcall push_arg4
 0118 0E940000          xcall push_gset5
 011C 7901              movw R14,R18
 011E 2497              sbiw R28,4
 0120 CA88              ldd R12,y+18
 0122 DB88              ldd R13,y+19
 0124 AC88              ldd R10,y+20
 0126 BD88              ldd R11,y+21
 0128 6E89              ldd R22,y+22
 012A 7F89              ldd R23,y+23
 012C                   .dbline -1
 012C                   .dbline 85
 012C           ;    }
 012C           ; }
 012C           ; 
 012C           ; 
 012C           ; 
 012C           ; 
 012C           ; /****************************************************************************
 012C           ; * 名称:GUI_LoadPic1()
 012C           ; * 功能:输出单色图形数据,反相显示。
 012C           ; * 入口参数: x                指定显示位置,x坐标
 012C           ; *           y         指定显示位置,y坐标
 012C           ; *           dat               要输出显示的数据。
 012C           ; *           hno     要显示此行的点个数
 012C           ; *           lno     要显示此列的点个数
 012C           ; * 出口参数:无
 012C           ; * 说明:操作失败原因是指定地址超出有效范围。
 012C           ; ****************************************************************************/
 012C           ; void  GUI_LoadPic1(uint32 x, uint32 y, uint8 *dat, uint32 hno, uint32 lno)
 012C           ; {  uint32  i;
 012C                   .dbline 87
 012C           ;    
 012C           ;    GUI_ExchangeColor();                                                                       // 显示色与背景色交换
 012C 0E940000          xcall _GUI_ExchangeColor
 0130                   .dbline 88
 0130           ;    for(i=0; i<lno; i++)
 0130 4427              clr R20
 0132 5527              clr R21
 0134 1FC0              xjmp L33
 0136           L30:
 0136                   .dbline 89
 0136           ;    {  GUI_LoadLine(x, y, dat, hno);                                           // 输出一行数据
 0136                   .dbline 89
 0136 BB82              std y+3,R11
 0138 AA82              std y+2,R10
 013A D982              std y+1,R13
 013C C882              std y+0,R12
 013E 9701              movw R18,R14
 0140 0E85              ldd R16,y+14
 0142 1F85              ldd R17,y+15
 0144 5DDF              xcall _GUI_LoadLine
 0146                   .dbline 90
 0146           ;       y++;                                                                                            // 显示下一行
 0146 C701              movw R24,R14
 0148 0196              adiw R24,1
 014A 7C01              movw R14,R24
 014C                   .dbline 91
 014C           ;       dat += (hno>>3);                                                                        // 计算下一行的数据
 014C 1501              movw R2,R10
 014E 3694              lsr R3
 0150 2794              ror R2
 0152 3694              lsr R3
 0154 2794              ror R2
 0156 3694              lsr R3
 0158 2794              ror R2
 015A C20C              add R12,R2
 015C D31C              adc R13,R3
 015E                   .dbline 92
 015E           ;       if( (hno&0x07)!=0 ) dat++;
 015E C501              movw R24,R10
 0160 8770              andi R24,7
 0162 9070              andi R25,0
 0164 8030              cpi R24,0
 0166 8907              cpc R24,R25
 0168 19F0              breq L34
 016A           X2:
 016A                   .dbline 92
 016A C601              movw R24,R12
 016C 0196              adiw R24,1
 016E 6C01              movw R12,R24
 0170           L34:
 0170                   .dbline 93
 0170           L31:
 0170                   .dbline 88
 0170 4F5F              subi R20,255  ; offset = 1
 0172 5F4F              sbci R21,255
 0174           L33:
 0174                   .dbline 88
 0174 4617              cp R20,R22
 0176 5707              cpc R21,R23
 0178 F0F2              brlo L30
 017A                   .dbline 94
 017A           ;    }
 017A           ;    GUI_ExchangeColor();
 017A 0E940000          xcall _GUI_ExchangeColor
 017E                   .dbline -2
 017E           L29:
 017E 2496              adiw R28,4
 0180 0E940000          xcall pop_gset5
 0184 2496              adiw R28,4
 0186                   .dbline 0 ; func end
 0186 0895              ret
 0188                   .dbsym r i 20 i
 0188                   .dbsym r lno 22 i
 0188                   .dbsym r hno 10 i
 0188                   .dbsym r dat 12 pc
 0188                   .dbsym r y 14 i
 0188                   .dbsym l x 14 i
 0188                   .dbend
 0188                   .dbfunc e GUI_PutHZ _GUI_PutHZ fV
 0188           ;              i -> R20
 0188           ;            lno -> R22
 0188           ;            hno -> R10
 0188           ;            dat -> R12,R13
 0188           ;              y -> R14,R15
 0188           ;              x -> y+14
                        .even
 0188           _GUI_PutHZ::
 0188 0E940000          xcall push_arg4
 018C 0E940000          xcall push_gset5
 0190 7901              movw R14,R18
 0192 2497              sbiw R28,4
 0194 CA88              ldd R12,y+18
 0196 DB88              ldd R13,y+19
 0198 AC88              ldd R10,y+20
 019A 6E89              ldd R22,y+22
 019C                   .dbline -1
 019C                   .dbline 113
 019C           ;    
 019C           ; }
 019C           ; #endif
 019C           ; 
 019C           ; 
 019C           ; #if  GUI_PutHZ_EN==1
 019C           ; /****************************************************************************
 019C           ; * 名称:GUI_PutHZ()
 019C           ; * 功能:显示汉字。
 019C           ; * 入口参数: x                指定显示位置,x坐标
 019C           ; *           y         指定显示位置,y坐标
 019C           ; *           dat               要输出显示的汉字点阵数据。
 019C           ; *           hno     要显示此行的点个数
 019C           ; *           lno     要显示此列的点个数
 019C           ; * 出口参数:无
 019C           ; * 说明:操作失败原因是指定地址超出有效范围。
 019C           ; ****************************************************************************/
 019C           ; void  GUI_PutHZ(uint32 x, uint32 y, uint8 *dat, uint8 hno, uint8 lno)
 019C           ; {  uint8  i;
 019C                   .dbline 115
 019C           ; 
 019C           ;    for(i=0; i<lno; i++)
 019C 4427              clr R20
 019E 1EC0              xjmp L40
 01A0           L37:
 01A0                   .dbline 116
 01A0           ;    {  GUI_LoadLine(x, y, dat, hno);                                           // 输出一行数据
 01A0                   .dbline 116
 01A0 2A2C              mov R2,R10
 01A2 3324              clr R3
 01A4 3B82              std y+3,R3
 01A6 2A82              std y+2,R2
 01A8 D982              std y+1,R13
 01AA C882              std y+0,R12
 01AC 9701              movw R18,R14
 01AE 0E85              ldd R16,y+14
 01B0 1F85              ldd R17,y+15
 01B2 26DF              xcall _GUI_LoadLine
 01B4                   .dbline 117
 01B4           ;       y++;                                                                                            // 显示下一行
 01B4 C701              movw R24,R14
 01B6 0196              adiw R24,1
 01B8 7C01              movw R14,R24
 01BA                   .dbline 118
 01BA           ;       dat += (hno>>3);                                                                        // 计算下一行的数据
 01BA 2A2C              mov R2,R10
 01BC 3324              clr R3
 01BE 3594              asr R3
 01C0 2794              ror R2
 01C2 3594              asr R3
 01C4 2794              ror R2
 01C6 3594              asr R3
 01C8 2794              ror R2
 01CA C20C              add R12,R2
 01CC D31C              adc R13,R3
 01CE                   .dbline 119
 01CE           ;       if( (hno&0x07)!=0 ) dat++;
 01CE 8A2D              mov R24,R10
 01D0 8770              andi R24,7
 01D2 19F0              breq L41
 01D4                   .dbline 119
 01D4 C601              movw R24,R12
 01D6 0196              adiw R24,1
 01D8 6C01              movw R12,R24
 01DA           L41:
 01DA                   .dbline 120
 01DA           L38:
 01DA                   .dbline 115
 01DA 4395              inc R20
 01DC           L40:
 01DC                   .dbline 115
 01DC 4617              cp R20,R22
 01DE 00F3              brlo L37
 01E0                   .dbline -2
 01E0           L36:
 01E0 2496              adiw R28,4
 01E2 0E940000          xcall pop_gset5
 01E6 2496              adiw R28,4
 01E8                   .dbline 0 ; func end
 01E8 0895              ret
 01EA                   .dbsym r i 20 c
 01EA                   .dbsym r lno 22 c
 01EA                   .dbsym r hno 10 c
 01EA                   .dbsym r dat 12 pc
 01EA                   .dbsym r y 14 i
 01EA                   .dbsym l x 14 i
 01EA                   .dbend

⌨️ 快捷键说明

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