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

📄 int_key.lst

📁 一个关于AVR单片机的例程
💻 LST
📖 第 1 页 / 共 2 页
字号:
    00D9 E042      LDI	R20,2
    00DA C006      RJMP	0x00E1
(0085)     else if((~PINB)&0x80)
    00DB B226      IN	R2,0x16
    00DC 2433      CLR	R3
    00DD 9420      COM	R2
    00DE 9430      COM	R3
    00DF FC27      SBRC	R2,7
(0086)         key_buf=3;
    00E0 E043      LDI	R20,3
(0087)  DDRB=0xf0;
    00E1 EF80      LDI	R24,0xF0
    00E2 BB87      OUT	0x17,R24
(0088)  PORTB=0x0f;
    00E3 E08F      LDI	R24,0xF
    00E4 BB88      OUT	0x18,R24
(0089)  delay100us(10);
    00E5 E00A      LDI	R16,0xA
    00E6 DF6D      RCALL	_delay100us
(0090)  if((~PINB)&0x01)
    00E7 B226      IN	R2,0x16
    00E8 2433      CLR	R3
    00E9 9420      COM	R2
    00EA 9430      COM	R3
    00EB FE20      SBRS	R2,0
    00EC C001      RJMP	0x00EE
(0091)   key_buf+=0;
    00ED C011      RJMP	0x00FF
(0092)   else if((~PINB)&0x02)
    00EE B226      IN	R2,0x16
    00EF 2433      CLR	R3
    00F0 9420      COM	R2
    00F1 9430      COM	R3
    00F2 FE21      SBRS	R2,1
    00F3 C002      RJMP	0x00F6
(0093)     key_buf+=4;
    00F4 5F4C      SUBI	R20,0xFC
    00F5 C009      RJMP	0x00FF
(0094)     else if((~PINB)&0x04)
    00F6 B226      IN	R2,0x16
    00F7 2433      CLR	R3
    00F8 9420      COM	R2
    00F9 9430      COM	R3
    00FA FE22      SBRS	R2,2
    00FB C002      RJMP	0x00FE
(0095)       key_buf+=8;
    00FC 5F48      SUBI	R20,0xF8
    00FD C001      RJMP	0x00FF
(0096)         else
(0097)         key_buf=16;
    00FE E140      LDI	R20,0x10
(0098) 	tmpi=PINB;
    00FF B366      IN	R22,0x16
(0099)  if((key_buf!=16)&&(key_buf!=10)&&(key_buf!=11))
    0100 3140      CPI	R20,0x10
    0101 F101      BEQ	0x0122
    0102 304A      CPI	R20,0xA
    0103 F0F1      BEQ	0x0122
    0104 304B      CPI	R20,0xB
    0105 F0E1      BEQ	0x0122
(0100)   {
(0101)     for(i=3;i!=0;i--)
    0106 E083      LDI	R24,3
    0107 2EA8      MOV	R10,R24
    0108 C00F      RJMP	0x0118
(0102)     {
(0103)     seg7_led_buff[i]=seg7_led_buff[i-1];//移位显示
    0109 E58F      LDI	R24,0x5F
    010A E090      LDI	R25,0
    010B 2DEA      MOV	R30,R10
    010C 27FF      CLR	R31
    010D 0FE8      ADD	R30,R24
    010E 1FF9      ADC	R31,R25
    010F 8020      LDD	R2,Z+0
    0110 E680      LDI	R24,0x60
    0111 E090      LDI	R25,0
    0112 2DEA      MOV	R30,R10
    0113 27FF      CLR	R31
    0114 0FE8      ADD	R30,R24
    0115 1FF9      ADC	R31,R25
    0116 8220      STD	Z+0,R2
    0117 94AA      DEC	R10
    0118 20AA      TST	R10
    0119 F779      BNE	0x0109
(0104)     }
(0105)     seg7_led_buff[0]=key_buf;
    011A 93400060  STS	seg7_led_buff,R20
(0106) 	tmpi=PINB;
    011C B366      IN	R22,0x16
(0107)     while((~PINB)&0x07)//按键释放检测,如不释放就一直循环
    011D B386      IN	R24,0x16
    011E 9580      COM	R24
    011F 7087      ANDI	R24,7
    0120 F7E1      BNE	0x011D
(0108)     ;
(0109)   }
    0121 C005      RJMP	0x0127
(0110)  else if(key_buf==10)
    0122 304A      CPI	R20,0xA
    0123 F409      BNE	0x0125
(0111)   ;
    0124 C002      RJMP	0x0127
(0112)  else if(key_buf==11)
    0125 304B      CPI	R20,0xB
    0126 F401      BNE	0x0127
(0113)   ;
(0114)  DDRB=0x0f;
    0127 E08F      LDI	R24,0xF
    0128 BB87      OUT	0x17,R24
(0115)  PORTB=0xf0;
    0129 EF80      LDI	R24,0xF0
    012A BB88      OUT	0x18,R24
(0116)  } //end of #2
(0117) } //end of #1 
(0118) GICR=0x40;//中断复位
    012B E480      LDI	R24,0x40
    012C BF8B      OUT	0x3B,R24
    012D 940E014B  CALL	pop_gset3
    012F 940E0184  CALL	pop_lset
    0131 9518      RETI
(0119) }
(0120) 
(0121) void main(void)
(0122) {
(0123) DDRB=0x0f;//PB3 out
_main:
    0132 E08F      LDI	R24,0xF
    0133 BB87      OUT	0x17,R24
(0124) PORTB&=0xF8;
    0134 B388      IN	R24,0x18
    0135 7F88      ANDI	R24,0xF8
    0136 BB88      OUT	0x18,R24
(0125) PORTB|=0xF0;//PORTB置1111x000
    0137 B388      IN	R24,0x18
    0138 6F80      ORI	R24,0xF0
    0139 BB88      OUT	0x18,R24
(0126) DDRD&=0xfb;
    013A B381      IN	R24,0x11
    013B 7F8B      ANDI	R24,0xFB
    013C BB81      OUT	0x11,R24
(0127) PORTD|=(~0xfb);
    013D B382      IN	R24,0x12
    013E 6084      ORI	R24,4
    013F BB82      OUT	0x12,R24
(0128) MCUCR&=(~0x03);
    0140 B785      IN	R24,0x35
    0141 7F8C      ANDI	R24,0xFC
    0142 BF85      OUT	0x35,R24
(0129) GICR=0x40;//使能中断INT0
    0143 E480      LDI	R24,0x40
    0144 BF8B      OUT	0x3B,R24
(0130) SEI();
    0145 9478      BSET	7
(0131) seg7_led_init();
    0146 DF57      RCALL	_seg7_led_init
    0147 C001      RJMP	0x0149
(0132) while(1)
(0133) {
(0134)   seg7_led_update();//数码管扫描
FILE: <library>
    0148 DF18      RCALL	_seg7_led_update
    0149 CFFE      RJMP	0x0148
    014A 9508      RET
pop_gset3:
    014B E0E4      LDI	R30,4
    014C 940C015A  JMP	pop
push_gset5:
    014E 92FA      ST	R15,-Y
    014F 92EA      ST	R14,-Y
push_gset4:
    0150 92DA      ST	R13,-Y
    0151 92CA      ST	R12,-Y
push_gset3:
    0152 92BA      ST	R11,-Y
    0153 92AA      ST	R10,-Y
push_gset2:
    0154 937A      ST	R23,-Y
    0155 936A      ST	R22,-Y
push_gset1:
    0156 935A      ST	R21,-Y
    0157 934A      ST	R20,-Y
    0158 9508      RET
pop_gset1:
    0159 E0E1      LDI	R30,1
pop:
    015A 9149      LD	R20,Y+
    015B 9159      LD	R21,Y+
    015C FDE0      SBRC	R30,0
    015D 9508      RET
    015E 9169      LD	R22,Y+
    015F 9179      LD	R23,Y+
    0160 FDE1      SBRC	R30,1
    0161 9508      RET
    0162 90A9      LD	R10,Y+
    0163 90B9      LD	R11,Y+
    0164 FDE2      SBRC	R30,2
    0165 9508      RET
    0166 90C9      LD	R12,Y+
    0167 90D9      LD	R13,Y+
    0168 FDE3      SBRC	R30,3
    0169 9508      RET
    016A 90E9      LD	R14,Y+
    016B 90F9      LD	R15,Y+
    016C 9508      RET
push_lset:
    016D 93FA      ST	R31,-Y
    016E 93EA      ST	R30,-Y
    016F 93BA      ST	R27,-Y
    0170 93AA      ST	R26,-Y
    0171 939A      ST	R25,-Y
    0172 938A      ST	R24,-Y
    0173 933A      ST	R19,-Y
    0174 932A      ST	R18,-Y
    0175 931A      ST	R17,-Y
    0176 930A      ST	R16,-Y
    0177 929A      ST	R9,-Y
    0178 928A      ST	R8,-Y
    0179 927A      ST	R7,-Y
    017A 926A      ST	R6,-Y
    017B 925A      ST	R5,-Y
    017C 924A      ST	R4,-Y
    017D 923A      ST	R3,-Y
    017E 922A      ST	R2,-Y
    017F 921A      ST	R1,-Y
    0180 920A      ST	R0,-Y
    0181 B60F      IN	R0,0x3F
    0182 920A      ST	R0,-Y
    0183 9508      RET
pop_lset:
    0184 9009      LD	R0,Y+
    0185 BE0F      OUT	0x3F,R0
    0186 9009      LD	R0,Y+
    0187 9019      LD	R1,Y+
    0188 9029      LD	R2,Y+
    0189 9039      LD	R3,Y+
    018A 9049      LD	R4,Y+
    018B 9059      LD	R5,Y+
    018C 9069      LD	R6,Y+
    018D 9079      LD	R7,Y+
    018E 9089      LD	R8,Y+
    018F 9099      LD	R9,Y+
    0190 9109      LD	R16,Y+
    0191 9119      LD	R17,Y+
    0192 9129      LD	R18,Y+
    0193 9139      LD	R19,Y+
    0194 9189      LD	R24,Y+
    0195 9199      LD	R25,Y+
    0196 91A9      LD	R26,Y+
    0197 91B9      LD	R27,Y+
    0198 91E9      LD	R30,Y+
    0199 91F9      LD	R31,Y+
    019A 9508      RET

⌨️ 快捷键说明

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