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

📄 sendrcvself.lst

📁 ATmega16应用例子
💻 LST
📖 第 1 页 / 共 2 页
字号:
    0112 0F40      ADD	R20,R16
(0207)     return dec;
    0113 2F04      MOV	R16,R20
    0114 9622      ADIW	R28,2
    0115 940E0220  CALL	pop_gset1
    0117 9508      RET
_converseHToD:
  dec                  --> R20
  t                    --> Y+0
  hex                  --> R20
    0118 940E021D  CALL	push_gset1
    011A 2F40      MOV	R20,R16
    011B 9722      SBIW	R28,2
(0208) }
(0209) /*--------------------------------------------------------------------
(0210) 函数全称:十六进制化为十进制
(0211) 函数功能:
(0212) 注意事项:无
(0213) 提示说明:调用converseHToD(21),return 33
(0214) 输    入:
(0215) 返    回:uint8 dec
(0216) --------------------------------------------------------------------*/
(0217) uint8 converseHToD(uint8 hex)
(0218) {
(0219)     uint8 dec;
(0220)     uint8 t[2];
(0221)     t[1]=hex/10;
    011C E01A      LDI	R17,0xA
    011D 2F04      MOV	R16,R20
    011E 940E01D4  CALL	div8u
    0120 8309      STD	Y+1,R16
(0222)     t[0]=hex%10;
    0121 E01A      LDI	R17,0xA
    0122 2F04      MOV	R16,R20
    0123 940E01D2  CALL	mod8u
    0125 8308      STD	Y+0,R16
(0223)     dec=t[1]*16+t[0];
    0126 8029      LDD	R2,Y+1
    0127 E180      LDI	R24,0x10
    0128 9D82      MUL	R24,R2
    0129 2D40      MOV	R20,R0
    012A 0F40      ADD	R20,R16
(0224)     return dec;
    012B 2F04      MOV	R16,R20
    012C 9622      ADIW	R28,2
    012D 940E0220  CALL	pop_gset1
    012F 9508      RET
FILE: E:\ProductPro\M16SD\ICCAVR\UART\SendRcvSelf\SendRcvSelf.c
(0001) //ICC-AVR application builder : 2005-6-30 17:44:36
(0002) // Target : M16
(0003) // Crystal: 7.3728Mhz
(0004) 
(0005) #include <iom16v.h>
(0006) #include "E:\ICCAVR_H\CmmICC.H"
(0007) 
(0008) #define DISP_PORT PORTA
(0009) #define DISP_DDR  DDRA
(0010) 
(0011) //UART0 initialisation
(0012) // desired baud rate: 9600
(0013) // actual: baud rate:9600 (0.0%)
(0014) // char size: 8 bit
(0015) // parity: Disabled
(0016) void uart0_init(void)
(0017) {
(0018)  UCSRB = 0x00; //disable while setting baud rate
_uart0_init:
    0130 2422      CLR	R2
    0131 B82A      OUT	0x0A,R2
(0019)  UCSRA = 0x00;
    0132 B82B      OUT	0x0B,R2
(0020)  UCSRC = 0x86;
    0133 E886      LDI	R24,0x86
    0134 BD80      OUT	0x20,R24
(0021)  UBRRL = 47; //set baud rate lo
    0135 E28F      LDI	R24,0x2F
    0136 B989      OUT	0x09,R24
(0022)  UBRRH = 0x00; //set baud rate hi
    0137 BC20      OUT	0x20,R2
(0023)  UCSRB = 0x98;
    0138 E988      LDI	R24,0x98
    0139 B98A      OUT	0x0A,R24
(0024) }
    013A 9508      RET
_uart0_rx_isr:
    013B 922A      ST	R2,-Y
    013C B62F      IN	R2,0x3F
    013D 922A      ST	R2,-Y
(0025) 
(0026) #pragma interrupt_handler uart0_rx_isr:12
(0027) void uart0_rx_isr(void)
(0028) {
(0029)  //uart has received a character in UDR
(0030)  DISP_PORT = UDR;
    013E B02C      IN	R2,0x0C
    013F BA2B      OUT	0x1B,R2
(0031) }
    0140 9029      LD	R2,Y+
    0141 BE2F      OUT	0x3F,R2
    0142 9029      LD	R2,Y+
    0143 9518      RETI
(0032) 
(0033) 
(0034) //call this routine to initialise all peripherals
(0035) void mcu_init(void)
(0036) {
(0037)  //stop errant interrupts until set up
(0038)  CLI(); //disable all interrupts
_mcu_init:
    0144 94F8      BCLR	7
(0039)  uart0_init();
    0145 DFEA      RCALL	_uart0_init
(0040)  MCUCR = 0x00;
    0146 2422      CLR	R2
    0147 BE25      OUT	0x35,R2
(0041)  GICR  = 0x00;
    0148 BE2B      OUT	0x3B,R2
(0042)  TIMSK = 0x00; //timer interrupt sources
    0149 BE29      OUT	0x39,R2
(0043)  SEI(); //re-enable interrupts
    014A 9478      BSET	7
(0044)  //all peripherals are now initialised
(0045) }
    014B 9508      RET
(0046) 
(0047) void main()
(0048) {
(0049)  uint8 counter=0;
_main:
  counter              --> R20
    014C 2744      CLR	R20
(0050)  mcu_init();
    014D DFF6      RCALL	_mcu_init
(0051) 
(0052)  DISP_DDR=0xFF;
    014E EF8F      LDI	R24,0xFF
    014F BB8A      OUT	0x1A,R24
    0150 C009      RJMP	0x015A
(0053)  
(0054)  while(1)
(0055)  {
(0056)   UDR=counter++;
    0151 2E24      MOV	R2,R20
    0152 5F4F      SUBI	R20,0xFF
    0153 B82C      OUT	0x0C,R2
(0057)    while(!(UCSRA&0x40));
    0154 9B5E      SBIS	0x0B,6
    0155 CFFE      RJMP	0x0154
(0058)       UCSRA|=0x40;
    0156 9A5E      SBI	0x0B,6
(0059)    delay50ms(4);
    0157 E004      LDI	R16,4
    0158 E010      LDI	R17,0
    0159 DF03      RCALL	_delay50ms
    015A CFF6      RJMP	0x0151
(0060)  }
(0061)  
(0062) }
FILE: <library>
    015B 9508      RET
push_arg4:
    015C 933A      ST	R19,-Y
    015D 932A      ST	R18,-Y
push_arg2:
    015E 931A      ST	R17,-Y
    015F 930A      ST	R16,-Y
    0160 9508      RET
div32u:
    0161 94E8      BCLR	6
    0162 C001      RJMP	0x0164
mod32u:
    0163 9468      BSET	6
    0164 D02F      RCALL	long_div_prolog
    0165 24CC      CLR	R12
    0166 C008      RJMP	0x016F
div32s:
    0167 94E8      BCLR	6
    0168 C001      RJMP	0x016A
mod32s:
    0169 9468      BSET	6
    016A D029      RCALL	long_div_prolog
    016B FD37      SBRC	R19,7
    016C D053      RCALL	neg_R16_R19
    016D FDB7      SBRC	R27,7
    016E D05A      RCALL	neg_R24_R27
    016F 2477      CLR	R7
    0170 2488      CLR	R8
    0171 2499      CLR	R9
    0172 24AA      CLR	R10
    0173 24BB      CLR	R11
    0174 D041      RCALL	tst_R16_R19
    0175 F0C1      BEQ	0x018E
    0176 D044      RCALL	tst_R24_R27
    0177 F0B1      BEQ	0x018E
    0178 E2E8      LDI	R30,0x28
    0179 0F00      LSL	R16
    017A 1F11      ROL	R17
    017B 1F22      ROL	R18
    017C 1F33      ROL	R19
    017D 1C77      ROL	R7
    017E 1C88      ROL	R8
    017F 1C99      ROL	R9
    0180 1CAA      ROL	R10
    0181 1CBB      ROL	R11
    0182 1688      CP	R8,R24
    0183 0699      CPC	R9,R25
    0184 06AA      CPC	R10,R26
    0185 06BB      CPC	R11,R27
    0186 F028      BCS	0x018C
    0187 1A88      SUB	R8,R24
    0188 0A99      SBC	R9,R25
    0189 0AAA      SBC	R10,R26
    018A 0ABB      SBC	R11,R27
    018B 9503      INC	R16
    018C 95EA      DEC	R30
    018D F759      BNE	0x0179
    018E F426      BRTC	0x0193
    018F 2D08      MOV	R16,R8
    0190 2D19      MOV	R17,R9
    0191 2D2A      MOV	R18,R10
    0192 2D3B      MOV	R19,R11
    0193 C013      RJMP	long_div_epilog
long_div_prolog:
    0194 927A      ST	R7,-Y
    0195 928A      ST	R8,-Y
    0196 929A      ST	R9,-Y
    0197 92AA      ST	R10,-Y
    0198 92BA      ST	R11,-Y
    0199 92CA      ST	R12,-Y
    019A 93EA      ST	R30,-Y
    019B 938A      ST	R24,-Y
    019C 939A      ST	R25,-Y
    019D 93AA      ST	R26,-Y
    019E 93BA      ST	R27,-Y
    019F 858B      LDD	R24,Y+11
    01A0 859C      LDD	R25,Y+12
    01A1 85AD      LDD	R26,Y+13
    01A2 85BE      LDD	R27,Y+14
    01A3 2EC3      MOV	R12,R19
    01A4 F00E      BRTS	0x01A6
    01A5 26CB      EOR	R12,R27
    01A6 9508      RET
long_div_epilog:
    01A7 FCC7      SBRC	R12,7
    01A8 D017      RCALL	neg_R16_R19
    01A9 91B9      LD	R27,Y+
    01AA 91A9      LD	R26,Y+
    01AB 9199      LD	R25,Y+
    01AC 9189      LD	R24,Y+
    01AD 91E9      LD	R30,Y+
    01AE 90C9      LD	R12,Y+
    01AF 90B9      LD	R11,Y+
    01B0 90A9      LD	R10,Y+
    01B1 9099      LD	R9,Y+
    01B2 9089      LD	R8,Y+
    01B3 9079      LD	R7,Y+
    01B4 9624      ADIW	R28,4
    01B5 9508      RET
tst_R16_R19:
    01B6 2FE0      MOV	R30,R16
    01B7 2BE1      OR	R30,R17
    01B8 2BE2      OR	R30,R18
    01B9 2BE3      OR	R30,R19
    01BA 9508      RET
tst_R24_R27:
    01BB 2FE8      MOV	R30,R24
    01BC 2BE9      OR	R30,R25
    01BD 2BEA      OR	R30,R26
    01BE 2BEB      OR	R30,R27
    01BF 9508      RET
neg_R16_R19:
    01C0 9500      COM	R16
    01C1 9510      COM	R17
    01C2 9520      COM	R18
    01C3 9530      COM	R19
    01C4 5F0F      SUBI	R16,0xFF
    01C5 4F1F      SBCI	R17,0xFF
    01C6 4F2F      SBCI	R18,0xFF
    01C7 4F3F      SBCI	R19,0xFF
    01C8 9508      RET
neg_R24_R27:
    01C9 9580      COM	R24
    01CA 9590      COM	R25
    01CB 95A0      COM	R26
    01CC 95B0      COM	R27
    01CD 5F8F      SUBI	R24,0xFF
    01CE 4F9F      SBCI	R25,0xFF
    01CF 4FAF      SBCI	R26,0xFF
    01D0 4FBF      SBCI	R27,0xFF
    01D1 9508      RET
mod8u:
    01D2 9468      BSET	6
    01D3 C001      RJMP	xdiv8u
div8u:
    01D4 94E8      BCLR	6
xdiv8u:
    01D5 932A      ST	R18,-Y
    01D6 92FA      ST	R15,-Y
    01D7 92EA      ST	R14,-Y
    01D8 24FF      CLR	R15
    01D9 24EE      CLR	R14
    01DA E120      LDI	R18,0x10
    01DB 0F00      LSL	R16
    01DC 1CFF      ROL	R15
    01DD 1CEE      ROL	R14
    01DE 16E1      CP	R14,R17
    01DF F010      BCS	0x01E2
    01E0 1AE1      SUB	R14,R17
    01E1 9503      INC	R16
    01E2 952A      DEC	R18
    01E3 F7B9      BNE	0x01DB
    01E4 F40E      BRTC	0x01E6
    01E5 2D0E      MOV	R16,R14
    01E6 90E9      LD	R14,Y+
    01E7 90F9      LD	R15,Y+
    01E8 9129      LD	R18,Y+
    01E9 9508      RET
empy32u:
empy32s:
    01EA 940E0240  CALL	long_prolog
    01EC 927F      PUSH	R7
    01ED 940E0259  CALL	tstzero1
    01EF F139      BEQ	0x0217
    01F0 2477      CLR	R7
    01F1 940E025F  CALL	tstzero2
    01F3 F419      BNE	0x01F7
    01F4 018C      MOVW	R16,R24
    01F5 019D      MOVW	R18,R26
    01F6 C020      RJMP	0x0217
    01F7 9F08      MUL	R16,R24
    01F8 2CB0      MOV	R11,R0
    01F9 2CA1      MOV	R10,R1
    01FA 9F28      MUL	R18,R24
    01FB 2C90      MOV	R9,R0
    01FC 2C81      MOV	R8,R1
    01FD 9F18      MUL	R17,R24
    01FE 0CA0      ADD	R10,R0
    01FF 1C91      ADC	R9,R1
    0200 1C87      ADC	R8,R7
    0201 9F09      MUL	R16,R25
    0202 0CA0      ADD	R10,R0
    0203 1C91      ADC	R9,R1
    0204 1C87      ADC	R8,R7
    0205 9F19      MUL	R17,R25
    0206 0C90      ADD	R9,R0
    0207 1C81      ADC	R8,R1
    0208 9F0A      MUL	R16,R26
    0209 0C90      ADD	R9,R0
    020A 1C81      ADC	R8,R1
    020B 9F38      MUL	R19,R24
    020C 0C80      ADD	R8,R0
    020D 9F29      MUL	R18,R25
    020E 0C80      ADD	R8,R0
    020F 9F1A      MUL	R17,R26
    0210 0C80      ADD	R8,R0
    0211 9F0B      MUL	R16,R27
    0212 0C80      ADD	R8,R0
    0213 2D0B      MOV	R16,R11
    0214 2D1A      MOV	R17,R10
    0215 2D29      MOV	R18,R9
    0216 2D38      MOV	R19,R8
    0217 907F      POP	R7
    0218 940C024E  JMP	long_epilog
pop_gset4:
    021A E0E8      LDI	R30,0x8
    021B 940C0221  JMP	pop
push_gset1:
    021D 935A      ST	R21,-Y
    021E 934A      ST	R20,-Y
    021F 9508      RET
pop_gset1:
    0220 E0E1      LDI	R30,1
pop:
    0221 9149      LD	R20,Y+
    0222 9159      LD	R21,Y+
    0223 FDE0      SBRC	R30,0
    0224 9508      RET
    0225 9169      LD	R22,Y+
    0226 9179      LD	R23,Y+
    0227 FDE1      SBRC	R30,1
    0228 9508      RET
    0229 90A9      LD	R10,Y+
    022A 90B9      LD	R11,Y+
    022B FDE2      SBRC	R30,2
    022C 9508      RET
    022D 90C9      LD	R12,Y+
    022E 90D9      LD	R13,Y+
    022F FDE3      SBRC	R30,3
    0230 9508      RET
    0231 90E9      LD	R14,Y+
    0232 90F9      LD	R15,Y+
    0233 9508      RET
push_gset2:
    0234 937A      ST	R23,-Y
    0235 936A      ST	R22,-Y
    0236 940C021D  JMP	push_gset1
push_gset3:
    0238 92BA      ST	R11,-Y
    0239 92AA      ST	R10,-Y
    023A 940C0234  JMP	push_gset2
push_gset4:
    023C 92DA      ST	R13,-Y
    023D 92CA      ST	R12,-Y
    023E 940C0238  JMP	push_gset3
long_prolog:
    0240 928A      ST	R8,-Y
    0241 929A      ST	R9,-Y
    0242 92AA      ST	R10,-Y
    0243 92BA      ST	R11,-Y
    0244 93EA      ST	R30,-Y
    0245 938A      ST	R24,-Y
    0246 939A      ST	R25,-Y
    0247 93AA      ST	R26,-Y
    0248 93BA      ST	R27,-Y
    0249 8589      LDD	R24,Y+9
    024A 859A      LDD	R25,Y+10
    024B 85AB      LDD	R26,Y+11
    024C 85BC      LDD	R27,Y+12
    024D 9508      RET
long_epilog:
    024E 91B9      LD	R27,Y+
    024F 91A9      LD	R26,Y+
    0250 9199      LD	R25,Y+
    0251 9189      LD	R24,Y+
    0252 91E9      LD	R30,Y+
    0253 90B9      LD	R11,Y+
    0254 90A9      LD	R10,Y+
    0255 9099      LD	R9,Y+
    0256 9089      LD	R8,Y+
    0257 9624      ADIW	R28,4
    0258 9508      RET
tstzero1:
    0259 27EE      CLR	R30
    025A 2BE0      OR	R30,R16
    025B 2BE1      OR	R30,R17
    025C 2BE2      OR	R30,R18
    025D 2BE3      OR	R30,R19
    025E 9508      RET
tstzero2:
    025F 27EE      CLR	R30
    0260 2BE8      OR	R30,R24
    0261 2BE9      OR	R30,R25
    0262 2BEA      OR	R30,R26
    0263 2BEB      OR	R30,R27
    0264 9508      RET

⌨️ 快捷键说明

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