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

📄 child.lis

📁 一个单片机的完整开发程序AVR的
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 00CA           ;       mod=addr;
 00CA 6C2D              mov R22,R12
 00CC                   .dbline 84
 00CC           ;       for(i=0;i<6;i++)
 00CC 4427              clr R20
 00CE 0FC0              xjmp L36
 00D0           L33:
 00D0                   .dbline 85
 00D0           ;       {       
 00D0                   .dbline 86
 00D0           ;               if((mod&0x01)==0x01)
 00D0 862F              mov R24,R22
 00D2 8170              andi R24,1
 00D4 8130              cpi R24,1
 00D6 11F4              brne L37
 00D8                   .dbline 87
 00D8           ;                       set_data;
 00D8 C39A              sbi 0x18,3
 00DA 01C0              xjmp L38
 00DC           L37:
 00DC                   .dbline 89
 00DC           ;               else
 00DC           ;                       clr_data;
 00DC C398              cbi 0x18,3
 00DE           L38:
 00DE                   .dbline 90
 00DE C498              cbi 0x18,4
 00E0                   .dbline 91
 00E0 08E0              ldi R16,8
 00E2 8EDF              xcall _delay_us
 00E4                   .dbline 92
 00E4 C49A              sbi 0x18,4
 00E6                   .dbline 93
 00E6 6695              lsr R22
 00E8                   .dbline 94
 00E8 08E0              ldi R16,8
 00EA 8ADF              xcall _delay_us
 00EC                   .dbline 95
 00EC           L34:
 00EC                   .dbline 84
 00EC 4395              inc R20
 00EE           L36:
 00EE                   .dbline 84
 00EE 4630              cpi R20,6
 00F0 78F3              brlo L33
 00F2                   .dbline 97
 00F2           ;               clr_wr;
 00F2           ;               delay_us(8);
 00F2           ;               set_wr;
 00F2           ;               mod=mod>>1;
 00F2           ;               delay_us(8);
 00F2           ;       }
 00F2           ;               
 00F2           ;       mod=data;
 00F2 6A2D              mov R22,R10
 00F4                   .dbline 98
 00F4           ;       for(i=0;i<8;i++)
 00F4 4427              clr R20
 00F6 0FC0              xjmp L42
 00F8           L39:
 00F8                   .dbline 99
 00F8           ;       {   
 00F8                   .dbline 100
 00F8           ;               if((mod&0x01)==0x01)
 00F8 862F              mov R24,R22
 00FA 8170              andi R24,1
 00FC 8130              cpi R24,1
 00FE 11F4              brne L43
 0100                   .dbline 101
 0100           ;                       set_data;
 0100 C39A              sbi 0x18,3
 0102 01C0              xjmp L44
 0104           L43:
 0104                   .dbline 103
 0104           ;               else
 0104           ;                       clr_data;
 0104 C398              cbi 0x18,3
 0106           L44:
 0106                   .dbline 104
 0106 C498              cbi 0x18,4
 0108                   .dbline 105
 0108 08E0              ldi R16,8
 010A 7ADF              xcall _delay_us
 010C                   .dbline 106
 010C C49A              sbi 0x18,4
 010E                   .dbline 107
 010E 6695              lsr R22
 0110                   .dbline 108
 0110 08E0              ldi R16,8
 0112 76DF              xcall _delay_us
 0114                   .dbline 109
 0114           L40:
 0114                   .dbline 98
 0114 4395              inc R20
 0116           L42:
 0116                   .dbline 98
 0116 4830              cpi R20,8
 0118 78F3              brlo L39
 011A                   .dbline 110
 011A           ;               clr_wr;
 011A           ;               delay_us(8);
 011A           ;               set_wr;
 011A           ;               mod=mod>>1;
 011A           ;               delay_us(8);
 011A           ;        }
 011A           ;               set_cs;
 011A 979A              sbi 0x12,7
 011C                   .dbline -2
 011C                   .dbline 111
 011C           ; }
 011C           L26:
 011C 0E940000          xcall pop_gset4
 0120                   .dbline 0 ; func end
 0120 0895              ret
 0122                   .dbsym r i 20 c
 0122                   .dbsym r mod 22 c
 0122                   .dbsym r data 10 c
 0122                   .dbsym r addr 12 c
 0122                   .dbend
 0122                   .dbfunc e init_lcd _init_lcd fV
                        .even
 0122           _init_lcd::
 0122                   .dbline -1
 0122                   .dbline 114
 0122           ; //initialize the lcd.
 0122           ; void init_lcd(void)
 0122           ; {
 0122                   .dbline 115
 0122           ;        send_cmd(0x18);
 0122 08E1              ldi R16,24
 0124 89DF              xcall _send_cmd
 0126                   .dbline 116
 0126           ;        send_cmd(0x01);
 0126 01E0              ldi R16,1
 0128 87DF              xcall _send_cmd
 012A                   .dbline 117
 012A           ;        send_cmd(0x03);
 012A 03E0              ldi R16,3
 012C 85DF              xcall _send_cmd
 012E                   .dbline 118
 012E           ;        send_cmd(0x29);
 012E 09E2              ldi R16,41
 0130                   .dbline -2
 0130                   .dbline 119
 0130           ; }
 0130           L45:
 0130                   .dbline 0 ; func end
 0130 83CF              xjmp _send_cmd
 0132                   .dbend
 0132                   .dbfunc e display _display fV
 0132           ;              i -> R20
 0132           ;              k -> R22
 0132           ;           data -> R10
                        .even
 0132           _display::
 0132 0E940000          xcall push_gset3
 0136 A02E              mov R10,R16
 0138                   .dbline -1
 0138                   .dbline 122
 0138           ; //display full screen or clear the screen.
 0138           ; void display(unsigned char data)
 0138           ; {
 0138                   .dbline 124
 0138           ;       unsigned char i,k;
 0138           ;       k=0;
 0138 6627              clr R22
 013A                   .dbline 125
 013A           ;       for(i=0;i<16;i++)
 013A 4427              clr R20
 013C 06C0              xjmp L50
 013E           L47:
 013E                   .dbline 126
 013E                   .dbline 127
 013E 2A2D              mov R18,R10
 0140 062F              mov R16,R22
 0142 AADF              xcall _send_data
 0144                   .dbline 128
 0144 6395              inc R22
 0146                   .dbline 129
 0146 6395              inc R22
 0148                   .dbline 130
 0148           L48:
 0148                   .dbline 125
 0148 4395              inc R20
 014A           L50:
 014A                   .dbline 125
 014A 4031              cpi R20,16
 014C C0F3              brlo L47
 014E                   .dbline -2
 014E                   .dbline 131
 014E           ;       {
 014E           ;               send_data(k,data);
 014E           ;               k++;
 014E           ;               k++;
 014E           ;       }
 014E           ; }
 014E           L46:
 014E 0E940000          xcall pop_gset3
 0152                   .dbline 0 ; func end
 0152 0895              ret
 0154                   .dbsym r i 20 c
 0154                   .dbsym r k 22 c
 0154                   .dbsym r data 10 c
 0154                   .dbend
 0154                   .dbfunc e key_scan _key_scan fc
 0154           ;        key_num -> R22
 0154           ;            key -> R20
                        .even
 0154           _key_scan::
 0154 0E940000          xcall push_gset3
 0158                   .dbline -1
 0158                   .dbline 134
 0158           ; 
 0158           ; unsigned char key_scan(void)
 0158           ; {
 0158                   .dbline 136
 0158           ;  unsigned char key,key_num;
 0158           ;  key_num=0;
 0158 6627              clr R22
 015A                   .dbline 137
 015A           ;  DDRC=0x77;
 015A 87E7              ldi R24,119
 015C 84BB              out 0x14,R24
 015E                   .dbline 138
 015E           ;  DDRB|=BIT(PB5);
 015E BD9A              sbi 0x17,5
 0160                   .dbline 139
 0160           ;  DDRD=0x97;
 0160 87E9              ldi R24,151
 0162 81BB              out 0x11,R24
 0164                   .dbline 140
 0164           ;  PORTB&=~BIT(PB5);
 0164 C598              cbi 0x18,5
 0166                   .dbline 141
 0166           ;  PORTC|=BIT(PC0);
 0166 A89A              sbi 0x15,0
 0168                   .dbline 142
 0168           ;  PORTC|=BIT(PC1);
 0168 A99A              sbi 0x15,1
 016A                   .dbline 143
 016A           ;  _NOP();
 016A 0000              nop
 016C                   .dbline 144
 016C           ;  _NOP();
 016C 0000              nop
 016E                   .dbline 145
 016E           ;  key=((PIND&0x68)>>3);
 016E 40B3              in R20,0x10
 0170 4876              andi R20,104
 0172 4695              lsr R20
 0174 4695              lsr R20
 0176 4695              lsr R20
 0178                   .dbline 146
 0178           ;  if(key!=0x0D)
 0178 4D30              cpi R20,13
 017A 09F4              brne X3
 017C 32C0              xjmp L52
 017E           X3:
 017E                   .dbline 147
 017E           ;  {
 017E                   .dbline 148
 017E           ;       delay_ms(40);
 017E 08E2              ldi R16,40
 0180 47DF              xcall _delay_ms
 0182                   .dbline 149
 0182           ;       key=((PIND&0x68)>>3);
 0182 40B3              in R20,0x10
 0184 4876              andi R20,104
 0186 4695              lsr R20
 0188 4695              lsr R20
 018A 4695              lsr R20
 018C                   .dbline 150
 018C           ;       if(key!=0x0D)
 018C 4D30              cpi R20,13
 018E 49F1              breq L54
 0190                   .dbline 151
 0190           ;       {
 0190                   .dbline 152
 0190           ;          switch(key)
 0190 A42E              mov R10,R20
 0192 BB24              clr R11
 0194 C501              movw R24,R10
 0196 8530              cpi R24,5
 0198 E0E0              ldi R30,0
 019A 9E07              cpc R25,R30
 019C 91F0              breq L61
 019E 8530              cpi R24,5
 01A0 E0E0              ldi R30,0
 01A2 9E07              cpc R25,R30
 01A4 7CF0              brlt L57
 01A6           L62:
 01A6 C501              movw R24,R10
 01A8 8930              cpi R24,9
 01AA E0E0              ldi R30,0
 01AC 9E07              cpc R25,R30
 01AE 39F0              breq L60
 01B0 8C30              cpi R24,12
 01B2 E0E0              ldi R30,0
 01B4 9E07              cpc R25,R30
 01B6 09F0              breq L59
 01B8 05C0              xjmp L57
 01BA           X0:
 01BA                   .dbline 153
 01BA           ;          {
 01BA           L59:
 01BA                   .dbline 154
 01BA           ;            case 0x0C: key_num=1;break;
 01BA 61E0              ldi R22,1
 01BC                   .dbline 154
 01BC 03C0              xjmp L57
 01BE           L60:
 01BE                   .dbline 155
 01BE           ;                case 0x09: key_num=2;break;
 01BE 62E0              ldi R22,2
 01C0                   .dbline 155
 01C0 01C0              xjmp L57

⌨️ 快捷键说明

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