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

📄 键盘.lis

📁 基于AVR实验平台下ATMega128芯片实习作业
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00C4 C098              cbi 0x18,0
 00C6                   .dbline 66
 00C6           ; ;;
 00C6                   .dbline 66
 00C6                   .dbline 67
 00C6           ; req;
 00C6 1E9A              sbi 0x03,6
 00C8                   .dbline 68
 00C8           ; ;;
 00C8                   .dbline 68
 00C8           L38:
 00C8                   .dbline 69
 00C8           L39:
 00C8                   .dbline 69
 00C8           ; while((PINE&0x80)==0x00);
 00C8 81B1              in R24,0x1
 00CA 8078              andi R24,128
 00CC E9F3              breq L38
 00CE                   .dbline 70
 00CE           ; cl_req;
 00CE 1E98              cbi 0x03,6
 00D0                   .dbline -2
 00D0           L34:
 00D0 0E940000          xcall pop_gset1
 00D4                   .dbline 0 ; func end
 00D4 0895              ret
 00D6                   .dbsym r p 20 pc
 00D6                   .dbsym r data 16 c
 00D6                   .dbend
 00D6                   .dbfunc e lcd_init _lcd_init fV
                        .even
 00D6           _lcd_init::
 00D6                   .dbline -1
 00D6                   .dbline 73
 00D6           ; }
 00D6           ; void lcd_init (void)
 00D6           ; {
 00D6                   .dbline 74
 00D6           ; MCUCR=MCUCR|0x80;
 00D6 85B7              in R24,0x35
 00D8 8068              ori R24,128
 00DA 85BF              out 0x35,R24
 00DC                   .dbline 75
 00DC           ; DDRB|=0x01;
 00DC B89A              sbi 0x17,0
 00DE                   .dbline 76
 00DE           ; PORTB&=0xfe;
 00DE 88B3              in R24,0x18
 00E0 8E7F              andi R24,254
 00E2 88BB              out 0x18,R24
 00E4                   .dbline 77
 00E4           ; DDRE=0x40;
 00E4 80E4              ldi R24,64
 00E6 82B9              out 0x2,R24
 00E8                   .dbline 78
 00E8           ; PORTE=0xff;
 00E8 8FEF              ldi R24,255
 00EA 83B9              out 0x3,R24
 00EC                   .dbline 79
 00EC           ; cl_reset;
 00EC AB98              cbi 0x15,3
 00EE                   .dbline 80
 00EE           ; delay(10);
 00EE 0AE0              ldi R16,10
 00F0 10E0              ldi R17,0
 00F2 86DF              xcall _delay
 00F4                   .dbline 81
 00F4           ; set_reset;
 00F4 AB9A              sbi 0x15,3
 00F6                   .dbline 82
 00F6           ; delay(10);
 00F6 0AE0              ldi R16,10
 00F8 10E0              ldi R17,0
 00FA 82DF              xcall _delay
 00FC                   .dbline 83
 00FC           ; cl_req;
 00FC 1E98              cbi 0x03,6
 00FE                   .dbline 84
 00FE           ; delay(10);
 00FE 0AE0              ldi R16,10
 0100 10E0              ldi R17,0
 0102 7EDF              xcall _delay
 0104                   .dbline -2
 0104           L41:
 0104                   .dbline 0 ; func end
 0104 0895              ret
 0106                   .dbend
 0106                   .dbfunc e lcd_clear _lcd_clear fV
                        .even
 0106           _lcd_clear::
 0106                   .dbline -1
 0106                   .dbline 87
 0106           ; }
 0106           ; void lcd_clear (void)
 0106           ; {
 0106                   .dbline 88
 0106           ; lcd_w(0xf4);
 0106 04EF              ldi R16,244
 0108 D3DF              xcall _lcd_w
 010A                   .dbline -2
 010A           L42:
 010A                   .dbline 0 ; func end
 010A 0895              ret
 010C                   .dbend
 010C                   .dbfunc e lcd_putsc _lcd_putsc fV
 010C           ;             ch -> R20,R21
 010C           ;              y -> R22
 010C           ;              x -> R10
                        .even
 010C           _lcd_putsc::
 010C 0E940000          xcall push_gset3
 0110 622F              mov R22,R18
 0112 A02E              mov R10,R16
 0114 4E81              ldd R20,y+6
 0116 5F81              ldd R21,y+7
 0118                   .dbline -1
 0118                   .dbline 93
 0118           ; }
 0118           ; 
 0118           ; 
 0118           ; void lcd_putsc (unsigned char x,unsigned char y,unsigned char *ch)
 0118           ; {
 0118                   .dbline 94
 0118           ; x+=2;
 0118 8A2D              mov R24,R10
 011A 8E5F              subi R24,254    ; addi 2
 011C A82E              mov R10,R24
 011E 1AC0              xjmp L45
 0120           L44:
 0120                   .dbline 96
 0120           ; while (*ch!=0)
 0120           ; {
 0120                   .dbline 97
 0120           ; lcd_w(0xf0);
 0120 00EF              ldi R16,240
 0122 C6DF              xcall _lcd_w
 0124                   .dbline 98
 0124           ; lcd_w(x);
 0124 0A2D              mov R16,R10
 0126 C4DF              xcall _lcd_w
 0128                   .dbline 99
 0128           ; lcd_w(y);
 0128 062F              mov R16,R22
 012A C2DF              xcall _lcd_w
 012C                   .dbline 100
 012C           ; lcd_w(*ch-0xa0);
 012C FA01              movw R30,R20
 012E 0081              ldd R16,z+0
 0130 005A              subi R16,160
 0132 BEDF              xcall _lcd_w
 0134                   .dbline 101
 0134           ; ch++;
 0134 4F5F              subi R20,255  ; offset = 1
 0136 5F4F              sbci R21,255
 0138                   .dbline 102
 0138           ; lcd_w(*ch-0xa0);
 0138 FA01              movw R30,R20
 013A 0081              ldd R16,z+0
 013C 005A              subi R16,160
 013E B8DF              xcall _lcd_w
 0140                   .dbline 103
 0140           ; ch++;
 0140 4F5F              subi R20,255  ; offset = 1
 0142 5F4F              sbci R21,255
 0144                   .dbline 104
 0144           ; if (x>=0x09)
 0144 8A2D              mov R24,R10
 0146 8930              cpi R24,9
 0148 20F0              brlo L47
 014A                   .dbline 105
 014A           ; {
 014A                   .dbline 106
 014A           ; x=2;
 014A 82E0              ldi R24,2
 014C A82E              mov R10,R24
 014E                   .dbline 107
 014E           ; y+=1;
 014E 6395              inc R22
 0150                   .dbline 108
 0150           ; }
 0150 01C0              xjmp L48
 0152           L47:
 0152                   .dbline 110
 0152           ; else 
 0152           ; x++;
 0152 A394              inc R10
 0154           L48:
 0154                   .dbline 111
 0154           L45:
 0154                   .dbline 95
 0154 FA01              movw R30,R20
 0156 2080              ldd R2,z+0
 0158 2220              tst R2
 015A 11F7              brne L44
 015C                   .dbline -2
 015C           L43:
 015C 0E940000          xcall pop_gset3
 0160                   .dbline 0 ; func end
 0160 0895              ret
 0162                   .dbsym r ch 20 pc
 0162                   .dbsym r y 22 c
 0162                   .dbsym r x 10 c
 0162                   .dbend
 0162                   .dbfunc e lcd_putsm _lcd_putsm fV
 0162           ;              i -> R20,R21
 0162           ;             ch -> R22,R23
 0162           ;              y -> R10
 0162           ;              x -> R12
                        .even
 0162           _lcd_putsm::
 0162 0E940000          xcall push_gset4
 0166 A22E              mov R10,R18
 0168 C02E              mov R12,R16
 016A 6885              ldd R22,y+8
 016C 7985              ldd R23,y+9
 016E                   .dbline -1
 016E                   .dbline 115
 016E           ; }
 016E           ; }
 016E           ; 
 016E           ; void lcd_putsm(unsigned char x,unsigned char y,unsigned char *ch)
 016E           ; {int i;
 016E                   .dbline 116
 016E           ; x+=2;
 016E 8C2D              mov R24,R12
 0170 8E5F              subi R24,254    ; addi 2
 0172 C82E              mov R12,R24
 0174 1FC0              xjmp L51
 0176           L50:
 0176                   .dbline 118
 0176           ; while (*ch!=0)
 0176           ; {
 0176                   .dbline 119
 0176           ; lcd_w(0xf0);
 0176 00EF              ldi R16,240
 0178 9BDF              xcall _lcd_w
 017A                   .dbline 120
 017A           ; lcd_w(x);
 017A 0C2D              mov R16,R12
 017C 99DF              xcall _lcd_w
 017E                   .dbline 121
 017E           ; lcd_w(y);
 017E 0A2D              mov R16,R10
 0180 97DF              xcall _lcd_w
 0182                   .dbline 122
 0182           ; lcd_w(*ch-0xa0);
 0182 FB01              movw R30,R22
 0184 0081              ldd R16,z+0
 0186 005A              subi R16,160
 0188 93DF              xcall _lcd_w
 018A                   .dbline 123
 018A           ; ch++;
 018A 6F5F              subi R22,255  ; offset = 1
 018C 7F4F              sbci R23,255
 018E                   .dbline 124
 018E           ; lcd_w(*ch-0xa0);
 018E FB01              movw R30,R22
 0190 0081              ldd R16,z+0
 0192 005A              subi R16,160
 0194 8DDF              xcall _lcd_w
 0196                   .dbline 125
 0196           ; ch++;
 0196 6F5F              subi R22,255  ; offset = 1
 0198 7F4F              sbci R23,255
 019A                   .dbline 126
 019A           ; for(i=0;i<16;i++)
 019A 4427              clr R20
 019C 5527              clr R21
 019E           L53:
 019E                   .dbline 127
 019E                   .dbline 127
 019E 08EF              ldi R16,248
 01A0 87DF              xcall _lcd_w
 01A2                   .dbline 128
 01A2 02E0              ldi R16,2
 01A4 10E0              ldi R17,0
 01A6 43DF              xcall _delay_nms
 01A8                   .dbline 128
 01A8           L54:
 01A8                   .dbline 126
 01A8 4F5F              subi R20,255  ; offset = 1
 01AA 5F4F              sbci R21,255
 01AC                   .dbline 126
 01AC 4031              cpi R20,16
 01AE E0E0              ldi R30,0
 01B0 5E07              cpc R21,R30
 01B2 ACF3              brlt L53
 01B4                   .dbline 129
 01B4           L51:
 01B4                   .dbline 117
 01B4 FB01              movw R30,R22
 01B6 2080              ldd R2,z+0
 01B8 2220              tst R2
 01BA E9F6              brne L50
 01BC                   .dbline 130
 01BC           ; {lcd_w(0xf8);
 01BC           ; delay_nms(2);}
 01BC           ; }
 01BC           ; for(i=0;i<118;i++)
 01BC 4427              clr R20
 01BE 5527              clr R21
 01C0           L57:
 01C0                   .dbline 131
 01C0                   .dbline 131
 01C0 08EF              ldi R16,248
 01C2 76DF              xcall _lcd_w
 01C4                   .dbline 132

⌨️ 快捷键说明

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