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

📄 tc_clock.lis

📁 在ICCAVR环境下做的ATMEGA128单片机实现模拟时钟
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 008C 10E0              ldi R17,0
 008E B8DF              xcall _delayUS
 0090                   .dbline 213
 0090           ;   LCDDIL;
 0090 9798              cbi 0x12,7
 0092                   .dbline 214
 0092           ;   delayUS(2);
 0092 02E0              ldi R16,2
 0094 10E0              ldi R17,0
 0096 B4DF              xcall _delayUS
 0098                   .dbline 215
 0098           ;   LCDENH;
 0098 969A              sbi 0x12,6
 009A                   .dbline 216
 009A           ;   delayUS(2);
 009A 02E0              ldi R16,2
 009C 10E0              ldi R17,0
 009E B0DF              xcall _delayUS
 00A0                   .dbline 217
 00A0           ;   PORTC=com;
 00A0 45BB              out 0x15,R20
 00A2                   .dbline 218
 00A2           ;   delayUS(2);
 00A2 02E0              ldi R16,2
 00A4 10E0              ldi R17,0
 00A6 ACDF              xcall _delayUS
 00A8                   .dbline 219
 00A8           ;   LCDENL;
 00A8 9698              cbi 0x12,6
 00AA                   .dbline -2
 00AA           L16:
 00AA 0E940000          xcall pop_gset1
 00AE                   .dbline 0 ; func end
 00AE 0895              ret
 00B0                   .dbsym r com 20 c
 00B0                   .dbend
 00B0                   .dbfunc e LCD_WRITE_ADD_CHAR _LCD_WRITE_ADD_CHAR fV
 00B0           ;              i -> R20
 00B0           ;              p -> R22
 00B0           ;              y -> R10
 00B0           ;              x -> R12
                        .even
 00B0           _LCD_WRITE_ADD_CHAR::
 00B0 0E940000          xcall push_gset4
 00B4 A22E              mov R10,R18
 00B6 C02E              mov R12,R16
 00B8 6885              ldd R22,y+8
 00BA                   .dbline -1
 00BA                   .dbline 228
 00BA           ; }
 00BA           ; /*******************************************
 00BA           ; *函数名称:LCD_WRITE_ADD_CHAR(uchar x,y ,uchar *p)
 00BA           ; *函数功能:在坐标xy处写入西文字符
 00BA           ; *入口参数:x,y 写入字符的坐标,  *p字符编码表的首地址
 00BA           ; *出口参数:无
 00BA           ; **********************************************/
 00BA           ; void    LCD_WRITE_ADD_CHAR(uchar x, uchar y, uchar  p)
 00BA           ; {
 00BA                   .dbline 230
 00BA           ;   uchar i;
 00BA           ;   x=0xb8+x*2;
 00BA 82E0              ldi R24,2
 00BC 8C9D              mul R24,R12
 00BE 802D              mov R24,R0
 00C0 8854              subi R24,72    ; addi 184
 00C2 C82E              mov R12,R24
 00C4                   .dbline 231
 00C4           ;   y=0x40+y*8;
 00C4 88E0              ldi R24,8
 00C6 8A9D              mul R24,R10
 00C8 802D              mov R24,R0
 00CA 805C              subi R24,192    ; addi 64
 00CC A82E              mov R10,R24
 00CE                   .dbline 232
 00CE           ;   LCD_WRITE_COM(x);    //x为行
 00CE 0C2D              mov R16,R12
 00D0 D8DF              xcall _LCD_WRITE_COM
 00D2                   .dbline 233
 00D2           ;   LCD_WRITE_COM(y);    // y为列
 00D2 0A2D              mov R16,R10
 00D4 D6DF              xcall _LCD_WRITE_COM
 00D6                   .dbline 234
 00D6           ;   for(i=0;i<8;i++)
 00D6 4427              clr R20
 00D8 0EC0              xjmp L21
 00DA           L18:
 00DA                   .dbline 235
 00DA                   .dbline 236
 00DA 80E1              ldi R24,16
 00DC 869F              mul R24,R22
 00DE 1001              movw R2,R0
 00E0 80E0              ldi R24,<_table
 00E2 90E0              ldi R25,>_table
 00E4 280E              add R2,R24
 00E6 391E              adc R3,R25
 00E8 E42F              mov R30,R20
 00EA FF27              clr R31
 00EC E20D              add R30,R2
 00EE F31D              adc R31,R3
 00F0 0491              lpm R16,Z
 00F2 B0DF              xcall _LCD_WRITE_DAT
 00F4                   .dbline 237
 00F4           L19:
 00F4                   .dbline 234
 00F4 4395              inc R20
 00F6           L21:
 00F6                   .dbline 234
 00F6 4830              cpi R20,8
 00F8 80F3              brlo L18
 00FA                   .dbline 238
 00FA           ;   {
 00FA           ;       LCD_WRITE_DAT(table[p][i]);     //西文字母的上半部分,由8行点构成(每行有8个点)
 00FA           ;   }
 00FA           ;    LCD_WRITE_COM(x+1);
 00FA 0C2D              mov R16,R12
 00FC 0F5F              subi R16,255    ; addi 1
 00FE C1DF              xcall _LCD_WRITE_COM
 0100                   .dbline 239
 0100           ;   LCD_WRITE_COM(y);
 0100 0A2D              mov R16,R10
 0102 BFDF              xcall _LCD_WRITE_COM
 0104                   .dbline 240
 0104           ;     for(i=0;i<8;i++)                                 //写入西文字母的下半部分
 0104 4427              clr R20
 0106 0FC0              xjmp L25
 0108           L22:
 0108                   .dbline 241
 0108                   .dbline 242
 0108 80E1              ldi R24,16
 010A 869F              mul R24,R22
 010C 1001              movw R2,R0
 010E 80E0              ldi R24,<_table
 0110 90E0              ldi R25,>_table
 0112 280E              add R2,R24
 0114 391E              adc R3,R25
 0116 E42F              mov R30,R20
 0118 FF27              clr R31
 011A 3896              adiw R30,8
 011C E20D              add R30,R2
 011E F31D              adc R31,R3
 0120 0491              lpm R16,Z
 0122 98DF              xcall _LCD_WRITE_DAT
 0124                   .dbline 243
 0124           L23:
 0124                   .dbline 240
 0124 4395              inc R20
 0126           L25:
 0126                   .dbline 240
 0126 4830              cpi R20,8
 0128 78F3              brlo L22
 012A                   .dbline -2
 012A           L17:
 012A 0E940000          xcall pop_gset4
 012E                   .dbline 0 ; func end
 012E 0895              ret
 0130                   .dbsym r i 20 c
 0130                   .dbsym r p 22 c
 0130                   .dbsym r y 10 c
 0130                   .dbsym r x 12 c
 0130                   .dbend
 0130                   .dbfunc e LCD_WRITE_ADD_CHINESE _LCD_WRITE_ADD_CHINESE fV
 0130           ;              i -> R20
 0130           ;              p -> R22
 0130           ;              y -> R10
 0130           ;              x -> R12
                        .even
 0130           _LCD_WRITE_ADD_CHINESE::
 0130 0E940000          xcall push_gset4
 0134 A22E              mov R10,R18
 0136 C02E              mov R12,R16
 0138 6885              ldd R22,y+8
 013A                   .dbline -1
 013A                   .dbline 246
 013A           ;   {
 013A           ;       LCD_WRITE_DAT(table[p][8+i]);
 013A           ;   }
 013A           ; }
 013A           ; void LCD_WRITE_ADD_CHINESE(uchar x,uchar y,uchar p)
 013A           ; {
 013A                   .dbline 248
 013A           ;    uchar i;
 013A           ;   x=0xb8+x*2;
 013A 82E0              ldi R24,2
 013C 8C9D              mul R24,R12
 013E 802D              mov R24,R0
 0140 8854              subi R24,72    ; addi 184
 0142 C82E              mov R12,R24
 0144                   .dbline 249
 0144           ;   y=0x40+y*8;
 0144 88E0              ldi R24,8
 0146 8A9D              mul R24,R10
 0148 802D              mov R24,R0
 014A 805C              subi R24,192    ; addi 64
 014C A82E              mov R10,R24
 014E                   .dbline 250
 014E           ;   LCD_WRITE_COM(x);
 014E 0C2D              mov R16,R12
 0150 98DF              xcall _LCD_WRITE_COM
 0152                   .dbline 251
 0152           ;   LCD_WRITE_COM(y);
 0152 0A2D              mov R16,R10
 0154 96DF              xcall _LCD_WRITE_COM
 0156                   .dbline 252
 0156           ;   for(i=0;i<16;i++)
 0156 4427              clr R20
 0158 11C0              xjmp L30
 015A           L27:
 015A                   .dbline 253
 015A                   .dbline 254
 015A 82E0              ldi R24,2
 015C 869F              mul R24,R22
 015E 102D              mov R17,R0
 0160 00E1              ldi R16,16
 0162 0102              muls R16,R17
 0164 80E0              ldi R24,<_Tab_Chinesepoem
 0166 90E0              ldi R25,>_Tab_Chinesepoem
 0168 1001              movw R2,R0
 016A 280E              add R2,R24
 016C 391E              adc R3,R25
 016E E42F              mov R30,R20
 0170 FF27              clr R31
 0172 E20D              add R30,R2
 0174 F31D              adc R31,R3
 0176 0491              lpm R16,Z
 0178 6DDF              xcall _LCD_WRITE_DAT
 017A                   .dbline 255
 017A           L28:
 017A                   .dbline 252
 017A 4395              inc R20
 017C           L30:
 017C                   .dbline 252
 017C 4031              cpi R20,16
 017E 68F3              brlo L27
 0180                   .dbline 256
 0180           ;   {
 0180           ;       LCD_WRITE_DAT(Tab_Chinesepoem[2*p][i]);  
 0180           ;   }
 0180           ;    LCD_WRITE_COM(x+1);
 0180 0C2D              mov R16,R12
 0182 0F5F              subi R16,255    ; addi 1
 0184 7EDF              xcall _LCD_WRITE_COM
 0186                   .dbline 257
 0186           ;   LCD_WRITE_COM(y);
 0186 0A2D              mov R16,R10
 0188 7CDF              xcall _LCD_WRITE_COM
 018A                   .dbline 258
 018A           ;     for(i=0;i<16;i++)
 018A 4427              clr R20
 018C 11C0              xjmp L34
 018E           L31:
 018E                   .dbline 259
 018E                   .dbline 260
 018E 82E0              ldi R24,2
 0190 869F              mul R24,R22
 0192 102D              mov R17,R0
 0194 00E1              ldi R16,16
 0196 0102              muls R16,R17
 0198 80E0              ldi R24,<_Tab_Chinesepoem+16
 019A 90E0              ldi R25,>_Tab_Chinesepoem+16
 019C 1001              movw R2,R0
 019E 280E              add R2,R24
 01A0 391E              adc R3,R25
 01A2 E42F              mov R30,R20
 01A4 FF27              clr R31
 01A6 E20D              add R30,R2
 01A8 F31D              adc R31,R3
 01AA 0491              lpm R16,Z
 01AC 53DF              xcall _LCD_WRITE_DAT
 01AE                   .dbline 261
 01AE           L32:
 01AE                   .dbline 258
 01AE 4395              inc R20
 01B0           L34:
 01B0                   .dbline 258
 01B0 4031              cpi R20,16
 01B2 68F3              brlo L31
 01B4                   .dbline -2
 01B4           L26:
 01B4 0E940000          xcall pop_gset4
 01B8                   .dbline 0 ; func end
 01B8 0895              ret
 01BA                   .dbsym r i 20 c
 01BA                   .dbsym r p 22 c
 01BA                   .dbsym r y 10 c
 01BA                   .dbsym r x 12 c
 01BA                   .dbend
 01BA                   .dbfunc e LCD_WRITE_PICTURE _LCD_WRITE_PICTURE fV
 01BA           ;              a -> <dead>
 01BA           ;              k -> R20
 01BA           ;              i -> R22
 01BA           ;              j -> R10
                        .even
 01BA           _LCD_WRITE_PICTURE::
 01BA 0E940000          xcall push_gset3
 01BE                   .dbline -1
 01BE                   .dbline 274
 01BE           ;   {
 01BE           ;       LCD_WRITE_DAT(Tab_Chinesepoem[2*p+1][i]);
 01BE           ;   }
 01BE           ; }
 01BE           ; 
 01BE           ; /********************************************************
 01BE           ; *函数名称:LCD_WRITE_PICTURE()
 01BE           ; *函数功能:在LCD液晶屏上显示图片‘南华大学电气工程学院’
 01BE           ; *函数引用了字模软件生成的字模表Tab_pic2[][16]
 01BE           ; *其取模方式为  :从第一列开始向下取8个点作为一个字节
 01B

⌨️ 快捷键说明

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