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

📄 测试.lis

📁 ISD1720芯片实现录音,定点录音,播放,定点播放等.
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00EE A22E              mov R10,R18
 00F0 602F              mov R22,R16
 00F2                   .dbline -1
 00F2                   .dbline 185
 00F2           ; }
 00F2           ; //****************************************************
 00F2           ; /*写入显示内部带字库型的字体的位置*/
 00F2           ; //****************************************************
 00F2           ; void wezhi(uchar x,uchar y)//x为在哪一行,y是在哪一列
 00F2           ; {
 00F2                   .dbline 187
 00F2           ;  uchar p;
 00F2           ;  if(x==0) p=0x80;//第一行
 00F2 6623              tst R22
 00F4 09F4              brne L31
 00F6           X6:
 00F6                   .dbline 187
 00F6 40E8              ldi R20,128
 00F8           L31:
 00F8                   .dbline 188
 00F8           ;  if(x==1) p=0x90;//第二行
 00F8 6130              cpi R22,1
 00FA 09F4              brne L33
 00FC           X7:
 00FC                   .dbline 188
 00FC 40E9              ldi R20,144
 00FE           L33:
 00FE                   .dbline 189
 00FE           ;  if(x==2) p=0x88;//第三行
 00FE 6230              cpi R22,2
 0100 09F4              brne L35
 0102           X8:
 0102                   .dbline 189
 0102 48E8              ldi R20,136
 0104           L35:
 0104                   .dbline 190
 0104           ;  if(x==3) p=0x98;//第四行
 0104 6330              cpi R22,3
 0106 09F4              brne L37
 0108           X9:
 0108                   .dbline 190
 0108 48E9              ldi R20,152
 010A           L37:
 010A                   .dbline 191
 010A           ;  p+=y;//再加上y列
 010A 4A0D              add R20,R10
 010C                   .dbline 192
 010C           ;  writecomd(p) ;
 010C 042F              mov R16,R20
 010E C7DF              xcall _writecomd
 0110                   .dbline 193
 0110           ;  delay_ms(1);
 0110 01E0              ldi R16,1
 0112 10E0              ldi R17,0
 0114 75DF              xcall _delay_ms
 0116                   .dbline -2
 0116           L30:
 0116                   .dbline 0 ; func end
 0116 0C940000          xjmp pop_xgsetF00C
 011A                   .dbsym r p 20 c
 011A                   .dbsym r y 10 c
 011A                   .dbsym r x 22 c
 011A                   .dbend
 011A                   .dbfunc e zhiti _zhiti fV
 011A           ;           data -> R20,R21
                        .even
 011A           _zhiti::
 011A 4A93              st -y,R20
 011C 5A93              st -y,R21
 011E A801              movw R20,R16
 0120                   .dbline -1
 0120                   .dbline 199
 0120           ; }
 0120           ; //****************************************************
 0120           ; /*写入字体*/
 0120           ; //**************************************************
 0120           ; void zhiti(uchar *data)
 0120           ; {
 0120 08C0              xjmp L41
 0122           L40:
 0122                   .dbline 202
 0122           ;  
 0122           ;  while(*data!='\0')
 0122           ;   {
 0122                   .dbline 203
 0122           ;    writedata(*data);
 0122 FA01              movw R30,R20
 0124 0081              ldd R16,z+0
 0126 CEDF              xcall _writedata
 0128                   .dbline 204
 0128           ;    delay_ms(5);
 0128 05E0              ldi R16,5
 012A 10E0              ldi R17,0
 012C 69DF              xcall _delay_ms
 012E                   .dbline 205
 012E           ;    data++;
 012E 4F5F              subi R20,255  ; offset = 1
 0130 5F4F              sbci R21,255
 0132                   .dbline 206
 0132           ;   }
 0132           L41:
 0132                   .dbline 201
 0132 FA01              movw R30,R20
 0134 2080              ldd R2,z+0
 0136 2220              tst R2
 0138 A1F7              brne L40
 013A           X10:
 013A                   .dbline -2
 013A           L39:
 013A                   .dbline 0 ; func end
 013A 5991              ld R21,y+
 013C 4991              ld R20,y+
 013E 0895              ret
 0140                   .dbsym r data 20 pc
 0140                   .dbend
 0140                   .dbfunc e frist1 _frist1 fV
                        .even
 0140           _frist1::
 0140                   .dbline -1
 0140                   .dbline 212
 0140           ; }
 0140           ; //********************************************************
 0140           ; /*基本指令初始化*/
 0140           ; //*******************************************************
 0140           ; void frist1()
 0140           ; {
 0140                   .dbline 213
 0140           ;  writecomd(0x01);//清屏显示
 0140 01E0              ldi R16,1
 0142 ADDF              xcall _writecomd
 0144                   .dbline 214
 0144           ;  writecomd(0x30);//8位并口,基本指令
 0144 00E3              ldi R16,48
 0146 ABDF              xcall _writecomd
 0148                   .dbline 215
 0148           ;  delay_us(10);
 0148 0AE0              ldi R16,10
 014A 10E0              ldi R17,0
 014C 6EDF              xcall _delay_us
 014E                   .dbline 216
 014E           ;  writecomd(0x0c);//整体显示,无游标,无反百,
 014E 0CE0              ldi R16,12
 0150 A6DF              xcall _writecomd
 0152                   .dbline 217
 0152           ;  delay_us(10);
 0152 0AE0              ldi R16,10
 0154 10E0              ldi R17,0
 0156 69DF              xcall _delay_us
 0158                   .dbline 218
 0158           ;  writecomd(0x02);//地址归位
 0158 02E0              ldi R16,2
 015A A1DF              xcall _writecomd
 015C                   .dbline 219
 015C           ;  delay_us(10);
 015C 0AE0              ldi R16,10
 015E 10E0              ldi R17,0
 0160 64DF              xcall _delay_us
 0162                   .dbline 220
 0162           ;  writecomd(0x40);//设置CGRAM地址
 0162 00E4              ldi R16,64
 0164 9CDF              xcall _writecomd
 0166                   .dbline -2
 0166           L43:
 0166                   .dbline 0 ; func end
 0166 0895              ret
 0168                   .dbend
 0168                   .dbfunc e frist2 _frist2 fV
                        .even
 0168           _frist2::
 0168                   .dbline -1
 0168                   .dbline 227
 0168           ; 
 0168           ; }
 0168           ; //*****************************************************
 0168           ; /*扩充指令*/
 0168           ; //*****************************************************
 0168           ; void frist2()
 0168           ; {
 0168                   .dbline 228
 0168           ;  writecomd(0x01);//清屏显示
 0168 01E0              ldi R16,1
 016A 99DF              xcall _writecomd
 016C                   .dbline 229
 016C           ;  delay_us(10);
 016C 0AE0              ldi R16,10
 016E 10E0              ldi R17,0
 0170 5CDF              xcall _delay_us
 0172                   .dbline 230
 0172           ;  writecomd(0x36);//8位控制,扩充指令,绘图开
 0172 06E3              ldi R16,54
 0174 94DF              xcall _writecomd
 0176                   .dbline 231
 0176           ;  delay_ms(5);
 0176 05E0              ldi R16,5
 0178 10E0              ldi R17,0
 017A 42DF              xcall _delay_ms
 017C                   .dbline -2
 017C           L44:
 017C                   .dbline 0 ; func end
 017C 0895              ret
 017E                   .dbend
 017E                   .dbfunc e drwa _drwa fV
 017E           ;              k -> R22
 017E           ;         temp_y -> R10
 017E           ;         temp_x -> y+0
 017E           ;              i -> R12
 017E           ;              j -> R20
 017E           ;           data -> y+11
                        .even
 017E           _drwa::
 017E 1A93              st -y,r17
 0180 0A93              st -y,r16
 0182 0E940000          xcall push_xgsetF0FC
 0186 2197              sbiw R28,1
 0188                   .dbline -1
 0188                   .dbline 237
 0188           ; }
 0188           ; //*****************************************************
 0188           ; /*绘图程序,整页显示*/
 0188           ; //*****************************************************
 0188           ; void drwa(const uchar *data) 
 0188           ; {
 0188                   .dbline 239
 0188           ;  uchar i,j,k,temp_x,temp_y;
 0188           ;  temp_x=0x80;
 0188 80E8              ldi R24,128
 018A 8883              std y+0,R24
 018C                   .dbline 240
 018C           ;  temp_y=0x80;
 018C A82E              mov R10,R24
 018E                   .dbline 241
 018E           ;  for(i=0;i<32;i++)
 018E CC24              clr R12
 0190 17C0              xjmp L49
 0192           L46:
 0192                   .dbline 242
 0192           ;  {
 0192                   .dbline 243
 0192           ;    writecomd(temp_y++);
 0192 2A2C              mov R2,R10
 0194 822D              mov R24,R2
 0196 8F5F              subi R24,255    ; addi 1
 0198 A82E              mov R10,R24
 019A 022D              mov R16,R2
 019C 80DF              xcall _writecomd
 019E                   .dbline 244
 019E           ;    writecomd(temp_x);
 019E 0881              ldd R16,y+0
 01A0 7EDF              xcall _writecomd
 01A2                   .dbline 245
 01A2           ;    for(j=0;j<16;j++)
 01A2 4427              clr R20
 01A4 0AC0              xjmp L53
 01A6           L50:
 01A6                   .dbline 246
 01A6           ;     {
 01A6                   .dbline 247
 01A6           ;        writedata(*data);
 01A6 EB85              ldd R30,y+11
 01A8 FC85              ldd R31,y+12
 01AA 0491              lpm R16,Z
 01AC 8BDF              xcall _writedata
 01AE                   .dbline 248
 01AE           ;        data++;
 01AE 8B85              ldd R24,y+11
 01B0 9C85              ldd R25,y+12
 01B2 0196              adiw R24,1
 01B4 9C87              std y+12,R25
 01B6 8B87              std y+11,R24
 01B8                   .dbline 249
 01B8           ;       }
 01B8           L51:
 01B8                   .dbline 245
 01B8 4395              inc R20
 01BA           L53:
 01BA                   .dbline 245
 01BA 4031              cpi R20,16
 01BC A0F3              brlo L50
 01BE           X11:
 01BE                   .dbline 250
 01BE           ;   }
 01BE           L47:
 01BE                   .dbline 241
 01BE C394              inc R12
 01C0           L49:
 01C0                   .dbline 241
 01C0 8C2D              mov R24,R12
 01C2 8032              cpi R24,32
 01C4 30F3              brlo L46
 01C6           X12:
 01C6                   .dbline 251
 01C6           ;   temp_x=0x88;
 01C6 88E8              ldi R24,136
 01C8 8883              std y+0,R24
 01CA                   .dbline 252
 01CA           ;   temp_y=0x80;
 01CA 80E8              ldi R24,128
 01CC A82E              mov R10,R24
 01CE                   .dbline 253
 01CE           ;   for(i=0;i<32;i++)
 01CE CC24              clr R12
 01D0 17C0              xjmp L57
 01D2           L54:
 01D2                   .dbline 254
 01D2           ;    {
 01D2                   .dbline 255
 01D2           ;     writecomd(temp_y++);
 01D2 2A2C              mov R2,R10
 01D4 822D              mov R24,R2
 01D6 8F5F              subi R24,255    ; addi 1
 01D8 A82E              mov R10,R24
 01DA 022D              mov R16,R2
 01DC 60DF              xcall _writecomd
 01DE                   .dbline 256
 01DE           ;     writecomd(temp_x);
 01DE 0881              ldd R16,y+0
 01E0 5EDF              xcall _writecomd
 01E2                   .dbline 257
 01E2           ;     for(j=0;j<16;j++)
 01E2 4427              clr R20
 01E4 0AC0          

⌨️ 快捷键说明

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