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

📄 zdsmjp.lis

📁 AVR单片机C语言编程及应用实例 适合初学者的学习研究 其中包含Atmega16中文资料及Protel部分电路图
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 013A E0E0              ldi R30,0
 013C 7E07              cpc R23,R30
 013E 09F4              brne X32
 0140 3CC0              xjmp L39
 0142           X32:
 0142           X15:
 0142 6B3D              cpi R22,219
 0144 E0E0              ldi R30,0
 0146 7E07              cpc R23,R30
 0148 81F1              breq L35
 014A           X16:
 014A 6D3D              cpi R22,221
 014C E0E0              ldi R30,0
 014E 7E07              cpc R23,R30
 0150 21F1              breq L31
 0152           X17:
 0152 6E3D              cpi R22,222
 0154 E0E0              ldi R30,0
 0156 7E07              cpc R23,R30
 0158 C1F0              breq L27
 015A           X18:
 015A 673D              cpi R22,215
 015C E0E0              ldi R30,0
 015E 7E07              cpc R23,R30
 0160 0CF4              brge X33
 0162 31C0              xjmp L23
 0164           X33:
 0164           X19:
 0164           L44:
 0164 673E              cpi R22,231
 0166 E0E0              ldi R30,0
 0168 7E07              cpc R23,R30
 016A 29F1              breq L38
 016C           X20:
 016C 6B3E              cpi R22,235
 016E E0E0              ldi R30,0
 0170 7E07              cpc R23,R30
 0172 C9F0              breq L34
 0174           X21:
 0174 6D3E              cpi R22,237
 0176 E0E0              ldi R30,0
 0178 7E07              cpc R23,R30
 017A 69F0              breq L30
 017C           X22:
 017C 6E3E              cpi R22,238
 017E E0E0              ldi R30,0
 0180 7E07              cpc R23,R30
 0182 09F0              breq L26
 0184           X23:
 0184 20C0              xjmp L23
 0186           L26:
 0186                   .dbline 73
 0186           ;               {
 0186           ;        case 0xEE:
 0186           ;                       key=0x0;
 0186 4427              clr R20
 0188                   .dbline 74
 0188           ;                       break;
 0188 21C0              xjmp L16
 018A           L27:
 018A                   .dbline 76
 018A           ;          case 0xDE:
 018A           ;                       key=0x1;
 018A 41E0              ldi R20,1
 018C                   .dbline 77
 018C           ;                       break; 
 018C 1FC0              xjmp L16
 018E           L28:
 018E                   .dbline 79
 018E           ;          case 0xBE:
 018E           ;                       key=0x2;
 018E 42E0              ldi R20,2
 0190                   .dbline 80
 0190           ;                       break;
 0190 1DC0              xjmp L16
 0192           L29:
 0192                   .dbline 82
 0192           ;          case 0x7E:
 0192           ;                       key=0x3;
 0192 43E0              ldi R20,3
 0194                   .dbline 83
 0194           ;                       break;
 0194 1BC0              xjmp L16
 0196           L30:
 0196                   .dbline 85
 0196           ;          case 0xED:
 0196           ;                       key=0x4;
 0196 44E0              ldi R20,4
 0198                   .dbline 86
 0198           ;                       break;
 0198 19C0              xjmp L16
 019A           L31:
 019A                   .dbline 88
 019A           ;          case 0xDD:
 019A           ;                       key=0x5;
 019A 45E0              ldi R20,5
 019C                   .dbline 89
 019C           ;                       break;
 019C 17C0              xjmp L16
 019E           L32:
 019E                   .dbline 91
 019E           ;          case 0xBD:
 019E           ;                       key=0x6;
 019E 46E0              ldi R20,6
 01A0                   .dbline 92
 01A0           ;                       break;
 01A0 15C0              xjmp L16
 01A2           L33:
 01A2                   .dbline 94
 01A2           ;          case 0x7D:
 01A2           ;                       key=0x7;
 01A2 47E0              ldi R20,7
 01A4                   .dbline 95
 01A4           ;                       break;
 01A4 13C0              xjmp L16
 01A6           L34:
 01A6                   .dbline 97
 01A6           ;          case 0xEB:
 01A6           ;                       key=0x8;
 01A6 48E0              ldi R20,8
 01A8                   .dbline 98
 01A8           ;                       break;
 01A8 11C0              xjmp L16
 01AA           L35:
 01AA                   .dbline 100
 01AA           ;          case 0xDB:
 01AA           ;                       key=0x9;
 01AA 49E0              ldi R20,9
 01AC                   .dbline 101
 01AC           ;                       break;
 01AC 0FC0              xjmp L16
 01AE           L36:
 01AE                   .dbline 103
 01AE           ;          case 0xBB:
 01AE           ;                       key=0xA;
 01AE 4AE0              ldi R20,10
 01B0                   .dbline 104
 01B0           ;                       break;
 01B0 0DC0              xjmp L16
 01B2           L37:
 01B2                   .dbline 106
 01B2           ;          case 0x7B:
 01B2           ;                       key=0xB;
 01B2 4BE0              ldi R20,11
 01B4                   .dbline 107
 01B4           ;                       break;
 01B4 0BC0              xjmp L16
 01B6           L38:
 01B6                   .dbline 109
 01B6           ;          case 0xE7:
 01B6           ;                       key=0xC;
 01B6 4CE0              ldi R20,12
 01B8                   .dbline 110
 01B8           ;                       break;
 01B8 09C0              xjmp L16
 01BA           L39:
 01BA                   .dbline 112
 01BA           ;          case 0xD7:
 01BA           ;                       key=0xD;
 01BA 4DE0              ldi R20,13
 01BC                   .dbline 113
 01BC           ;                       break;
 01BC 07C0              xjmp L16
 01BE           L40:
 01BE                   .dbline 115
 01BE           ;          case 0xB7:
 01BE           ;                       key=0xE;
 01BE 4EE0              ldi R20,14
 01C0                   .dbline 116
 01C0           ;                       break;
 01C0 05C0              xjmp L16
 01C2           L41:
 01C2                   .dbline 118
 01C2           ;          case 0x77:
 01C2           ;                       key=0xF;
 01C2 4FE0              ldi R20,15
 01C4                   .dbline 119
 01C4           ;                       break;
 01C4 03C0              xjmp L16
 01C6           L23:
 01C6                   .dbline 121
 01C6           ;          default:
 01C6           ;               key=16;         
 01C6 40E1              ldi R20,16
 01C8                   .dbline 122
 01C8           ;               }
 01C8                   .dbline 123
 01C8           ;        }
 01C8 01C0              xjmp L16
 01CA           L15:
 01CA                   .dbline 125
 01CA           ;        else
 01CA           ;        {
 01CA                   .dbline 126
 01CA           ;           key=16;
 01CA 40E1              ldi R20,16
 01CC                   .dbline 127
 01CC           ;        }
 01CC           L16:
 01CC                   .dbline 128
 01CC           ;        return key;
 01CC 042F              mov R16,R20
 01CE                   .dbline -2
 01CE           L14:
 01CE                   .dbline 0 ; func end
 01CE 0C940000          xjmp pop_xgsetF00C
 01D2                   .dbsym r j 10 c
 01D2                   .dbsym r key 20 c
 01D2                   .dbsym r i 22 c
 01D2                   .dbend
 01D2                   .dbfunc e miao _miao fV
                        .even
 01D2           _miao::
 01D2 0A92              st -y,R0
 01D4 1A92              st -y,R1
 01D6 2A92              st -y,R2
 01D8 3A92              st -y,R3
 01DA 4A92              st -y,R4
 01DC 5A92              st -y,R5
 01DE 6A92              st -y,R6
 01E0 7A92              st -y,R7
 01E2 8A92              st -y,R8
 01E4 9A92              st -y,R9
 01E6 0A93              st -y,R16
 01E8 1A93              st -y,R17
 01EA 2A93              st -y,R18
 01EC 3A93              st -y,R19
 01EE 8A93              st -y,R24
 01F0 9A93              st -y,R25
 01F2 AA93              st -y,R26
 01F4 BA93              st -y,R27
 01F6 EA93              st -y,R30
 01F8 FA93              st -y,R31
 01FA 0FB6              in R0,0x3f
 01FC 0A92              st -y,R0
 01FE                   .dbline -1
 01FE                   .dbline 131
 01FE           ; }
 01FE           ; void miao()
 01FE           ; {
 01FE                   .dbline 132
 01FE           ;     if(num==60)
 01FE 80910000          lds R24,_num
 0202 8C33              cpi R24,60
 0204 19F4              brne L46
 0206           X34:
 0206                   .dbline 133
 0206           ;          num=0;
 0206 2224              clr R2
 0208 20920000          sts _num,R2
 020C           L46:
 020C                   .dbline 134
 020C           ;         num++;
 020C 80910000          lds R24,_num
 0210 8F5F              subi R24,255    ; addi 1
 0212 80930000          sts _num,R24
 0216                   .dbline 135
 0216           ;       TCNT1H=0X85;
 0216 85E8              ldi R24,133
 0218 8DBD              out 0x2d,R24
 021A                   .dbline 136
 021A           ;       TCNT1L=0XED; 
 021A 8DEE              ldi R24,237
 021C 8CBD              out 0x2c,R24
 021E                   .dbline 137
 021E           ;                  if(key_press())
 021E 29DF              xcall _key_press
 0220 0023              tst R16
 0222 19F0              breq L48
 0224           X35:
 0224                   .dbline 138
 0224           ;          {
 0224                   .dbline 139
 0224           ;             l=key_scan();
 0224 37DF              xcall _key_scan
 0226 00930000          sts _l,R16
 022A                   .dbline 141
 022A           ;                 //show(l,3);
 022A           ;          } 
 022A           L48:
 022A                   .dbline -2
 022A           L45:
 022A                   .dbline 0 ; func end
 022A 0990              ld R0,y+
 022C 0FBE              out 0x3f,R0
 022E F991              ld R31,y+
 0230 E991              ld R30,y+
 0232 B991              ld R27,y+
 0234 A991              ld R26,y+
 0236 9991              ld R25,y+
 0238 8991              ld R24,y+
 023A 3991              ld R19,y+
 023C 2991              ld R18,y+
 023E 1991              ld R17,y+
 0240 0991              ld R16,y+
 0242 9990              ld R9,y+
 0244 8990              ld R8,y+
 0246 7990              ld R7,y+
 0248 6990              ld R6,y+
 024A 5990              ld R5,y+
 024C 4990              ld R4,y+
 024E 3990              ld R3,y+
 0250 2990              ld R2,y+
 0252 1990              ld R1,y+
 0254 0990              ld R0,y+
 0256 1895              reti
 0258                   .dbend
 0258                   .dbfunc e main _main fV
                        .even
 0258           _main::
 0258                   .dbline -1
 0258                   .dbline 144
 0258           ; }
 0258           ; void main()
 0258           ; {
 0258                   .dbline 145
 0258           ;     DDRB=0XFF;
 0258 8FEF              ldi R24,255
 025A 87BB              out 0x17,R24
 025C                   .dbline 146
 025C           ;       DDRA|=0X18;//573锁存端
 025C 8AB3              in R24,0x1a
 025E 8861              ori R24,24
 0260 8ABB              out 0x1a,R24
 0262                   .dbline 148
 0262           ;       
 0262           ;       TCCR1B=0X04;//T/C1控制寄存器B
 0262 84E0              ldi R24,4
 0264 8EBD              out 0x2e,R24
 0266                   .dbline 149
 0266           ;       TCNT1H=0X85;//计数寄存器(高位)
 0266 85E8              ldi R24,133
 0268 8DBD              out 0x2d,R24
 026A                   .dbline 150
 026A           ;       TCNT1L=0XED;//计数寄存器(低位)
 026A 8DEE              ldi R24,237
 026C 8CBD              out 0x2c,R24
 026E                   .dbline 151
 026E           ;       TIMSK|=BIT(2);//T/C1中断屏蔽寄存器
 026E 89B7              in R24,0x39
 0270 8460              ori R24,4
 0272 89BF              out 0x39,R24
 0274                   .dbline 152
 0274           ;       SREG|=BIT(7);//总中断
 0274 7894              bset 7
 0276 12C0              xjmp L52
 0278           L51:
 0278                   .dbline 155
 0278           ;       
 0278           ;       while(1)
 0278           ;       {
 0278                   .dbline 156
 0278           ;           show(num/10,1);
 0278 21E0              ldi R18,1
 027A 1AE0              ldi R17,10
 027C 00910000          lds R16,_num
 0280 0E940000          xcall div8u
 0284 D2DE              xcall _show
 0286                   .dbline 157
 0286           ;               show(num%10,0);
 0286 2227              clr R18
 0288 1AE0              ldi R17,10
 028A 00910000          lds R16,_num
 028E 0E940000          xcall mod8u
 0292 CBDE              xcall _show
 0294                   .dbline 158
 0294           ;               show(l,3);
 0294 23E0              ldi R18,3
 0296 00910000          lds R16,_l
 029A C7DE              xcall _show
 029C                   .dbline 159
 029C           ;       }
 029C           L52:
 029C                   .dbline 154
 029C EDCF              xjmp L51
 029E           X36:
 029E                   .dbline -2
 029E           L50:
 029E                   .dbline 0 ; func end
 029E 0895              ret
 02A0                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\中断扫描键盘\zdsmjp.c
 0000           _l::
 0000                   .blkb 1
 0001                   .dbsym e l _l c
 0001           ; }

⌨️ 快捷键说明

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