📄 project.lst
字号:
(0306) {
(0307) return(true);
01C8 E001 LDI R16,1
01C9 C001 RJMP 0x01CB
(0308) }
(0309) return(false);
01CA 2700 CLR R16
01CB 9508 RET
(0310) }
(0311)
(0312) //********************************************************************
(0313) // Function : SciBuffer_Rx_Reset
(0314) // Input : ptr-pointer to SCI Buffer
(0315) // Output : none
(0316) // Description : Reset RX Buffer Length to zero
(0317) //********************************************************************
(0318) void SciBuffer_Rx_Reset(struct SCI_Buffer *ptr)
(0319) {
(0320) ptr->bRxLength = 0;
_SciBuffer_Rx_Reset:
ptr --> R16
01CC 2422 CLR R2
01CD 01F8 MOVW R30,R16
01CE 8220 STD Z+0,R2
(0321) }
01CF 9508 RET
(0322)
(0323) //********************************************************************
(0324) // Function : SciBuffer_Tx_Reset
(0325) // Input : ptr-pointer to SCI Buffer
(0326) // Output : none
(0327) // Description : Reset TX Buffer Length to zero
(0328) //********************************************************************
(0329) void SciBuffer_Tx_Reset(struct SCI_Buffer *ptr)
(0330) {
(0331) ptr->bTxLength = 0;
_SciBuffer_Tx_Reset:
ptr --> R16
01D0 2422 CLR R2
01D1 01F8 MOVW R30,R16
01D2 8221 STD Z+1,R2
(0332) ptr->bTxBufferLength = 0;
01D3 01F8 MOVW R30,R16
01D4 8222 STD Z+2,R2
(0333) }
01D5 9508 RET
(0334)
(0335) //********************************************************************
(0336) // Function : SciBuffer_Tx_Inc
(0337) // Input : ptr-pointer to SCI Buffer
(0338) // Output : none
(0339) // Description : Increase TX Buffer Length
(0340) //********************************************************************
(0341) void SciBuffer_Tx_Inc(struct SCI_Buffer *ptr)
(0342) {
(0343) ptr->bTxLength++;
_SciBuffer_Tx_Inc:
ptr --> R16
01D6 01C8 MOVW R24,R16
01D7 9601 ADIW R24,1
01D8 01FC MOVW R30,R24
01D9 8180 LDD R24,Z+0
01DA 5F8F SUBI R24,0xFF
01DB 8380 STD Z+0,R24
(0344) }
01DC 9508 RET
_UART_WRITE_DATA:
ptr --> R20
01DD 940E06FB CALL push_gset1
01DF 01A8 MOVW R20,R16
(0345)
(0346) //********************************************************************
(0347) // Function : UART_WRITE_DATA
(0348) // Input : ptr-pointer to SCI Buffer
(0349) // Output : none
(0350) // Description : Send the firstIncrease TX Buffer Length
(0351) //********************************************************************
(0352) void UART_WRITE_DATA(struct SCI_Buffer *ptr)
(0353) {
(0354) UART_TX_DATA(ptr->bTxBuffer[0]);
01E0 01FA MOVW R30,R20
01E1 A905 LDD R16,Z+53
01E2 DF51 RCALL _UART_TX_DATA
(0355) SciBuffer_Tx_Inc(ptr);
01E3 018A MOVW R16,R20
01E4 DFF1 RCALL _SciBuffer_Tx_Inc
(0356) Enable_UART_TX_INT();
01E5 DF48 RCALL _Enable_UART_TX_INT
(0357) }
01E6 940E06FE CALL pop_gset1
01E8 9508 RET
(0358)
(0359) //********************************************************************
(0360) // Function : C1Command
(0361) // Input : none
(0362) // Output : none
(0363) // Description : C1
(0364) //********************************************************************
(0365) void C1Command(void)
(0366) {
(0367) static INT8U bCount = 0;
(0368) bCount++;
_C1Command:
01E9 91800063 LDS R24,0x63
01EB 5F8F SUBI R24,0xFF
01EC 93800063 STS 0x63,R24
(0369) if(bCount & 0x01)
01EE FF80 SBRS R24,0
01EF C003 RJMP 0x01F3
(0370) {
(0371) Buzzer_ON();
01F0 940E00CD CALL _Buzzer_ON
(0372) }
01F2 C002 RJMP 0x01F5
(0373) else
(0374) {
(0375) Buzzer_OFF();
01F3 940E00CF CALL _Buzzer_OFF
(0376) }
(0377) }
01F5 9508 RET
_C2Command:
bChar --> Y+0
01F6 9723 SBIW R28,3
(0378)
(0379) //********************************************************************
(0380) // Function : C2Command
(0381) // Input : none
(0382) // Output : none
(0383) // Description : C2,MM
(0384) //********************************************************************
(0385) void C2Command(void)
(0386) {
(0387) INT8U bChar[3];
(0388) bChar[0] = stSciBuffer.bRxBuffer[2];
01F7 90200121 LDS R2,__idata_end+1
01F9 8228 STD Y+0,R2
(0389) bChar[1] = stSciBuffer.bRxBuffer[3] - '0';
01FA 91800122 LDS R24,__idata_end+2
01FC 5380 SUBI R24,0x30
01FD 8389 STD Y+1,R24
(0390) bChar[2] = stSciBuffer.bRxBuffer[4] - '0';
01FE 91800123 LDS R24,__idata_end+3
0200 5380 SUBI R24,0x30
0201 838A STD Y+2,R24
(0391) if((bChar[0] == ',') && (bChar[1] <= 9) && (bChar[2] <= 9))
0202 8188 LDD R24,Y+0
0203 328C CPI R24,0x2C
0204 F471 BNE 0x0213
0205 E089 LDI R24,0x9
0206 8029 LDD R2,Y+1
0207 1582 CP R24,R2
0208 F050 BCS 0x0213
0209 802A LDD R2,Y+2
020A 1582 CP R24,R2
020B F038 BCS 0x0213
(0392) {
(0393) sSet_Buzzer_Count(bChar[1] * 10 + bChar[2]);
020C 8029 LDD R2,Y+1
020D E08A LDI R24,0xA
020E 9D82 MUL R24,R2
020F 2D00 MOV R16,R0
0210 802A LDD R2,Y+2
0211 0D02 ADD R16,R2
0212 DF06 RCALL _sSet_Buzzer_Count
(0394) }
(0395) }
0213 9623 ADIW R28,3
0214 9508 RET
(0396)
(0397) //********************************************************************
(0398) // Function : D1Command
(0399) // Input : none
(0400) // Output : none
(0401) // Description : D1
(0402) //********************************************************************
(0403) void D1Command(void)
(0404) {
(0405) SciBuffer_Tx_In(&stSciBuffer,'I');
_D1Command:
0215 E429 LDI R18,0x49
0216 E10C LDI R16,0x1C
0217 E011 LDI R17,1
0218 DF86 RCALL _SciBuffer_Tx_In
(0406) SciBuffer_Tx_In(&stSciBuffer,' ');
0219 E220 LDI R18,0x20
021A E10C LDI R16,0x1C
021B E011 LDI R17,1
021C DF82 RCALL _SciBuffer_Tx_In
(0407) SciBuffer_Tx_In(&stSciBuffer,'L');
021D E42C LDI R18,0x4C
021E E10C LDI R16,0x1C
021F E011 LDI R17,1
0220 DF7E RCALL _SciBuffer_Tx_In
(0408) SciBuffer_Tx_In(&stSciBuffer,'O');
0221 E42F LDI R18,0x4F
0222 E10C LDI R16,0x1C
0223 E011 LDI R17,1
0224 DF7A RCALL _SciBuffer_Tx_In
(0409) SciBuffer_Tx_In(&stSciBuffer,'V');
0225 E526 LDI R18,0x56
0226 E10C LDI R16,0x1C
0227 E011 LDI R17,1
0228 DF76 RCALL _SciBuffer_Tx_In
(0410) SciBuffer_Tx_In(&stSciBuffer,'E');
0229 E425 LDI R18,0x45
022A E10C LDI R16,0x1C
022B E011 LDI R17,1
022C DF72 RCALL _SciBuffer_Tx_In
(0411) SciBuffer_Tx_In(&stSciBuffer,' ');
022D E220 LDI R18,0x20
022E E10C LDI R16,0x1C
022F E011 LDI R17,1
0230 DF6E RCALL _SciBuffer_Tx_In
(0412) SciBuffer_Tx_In(&stSciBuffer,'Y');
0231 E529 LDI R18,0x59
0232 E10C LDI R16,0x1C
0233 E011 LDI R17,1
0234 DF6A RCALL _SciBuffer_Tx_In
(0413) SciBuffer_Tx_In(&stSciBuffer,'O');
0235 E42F LDI R18,0x4F
0236 E10C LDI R16,0x1C
0237 E011 LDI R17,1
0238 DF66 RCALL _SciBuffer_Tx_In
(0414) SciBuffer_Tx_In(&stSciBuffer,'U');
0239 E525 LDI R18,0x55
023A E10C LDI R16,0x1C
023B E011 LDI R17,1
023C DF62 RCALL _SciBuffer_Tx_In
(0415) SciBuffer_Tx_In(&stSciBuffer,' ');
023D E220 LDI R18,0x20
023E E10C LDI R16,0x1C
023F E011 LDI R17,1
0240 DF5E RCALL _SciBuffer_Tx_In
(0416) SciBuffer_Tx_In(&stSciBuffer,'!');
0241 E221 LDI R18,0x21
0242 E10C LDI R16,0x1C
0243 E011 LDI R17,1
0244 DF5A RCALL _SciBuffer_Tx_In
(0417) SciBuffer_Tx_In(&stSciBuffer,'\n');
0245 E02A LDI R18,0xA
0246 E10C LDI R16,0x1C
0247 E011 LDI R17,1
0248 DF56 RCALL _SciBuffer_Tx_In
(0418)
(0419) UART_WRITE_DATA(&stSciBuffer);
0249 E10C LDI R16,0x1C
024A E011 LDI R17,1
(0420) }
024B CF91 RJMP _UART_WRITE_DATA
_D2Command:
dwTest --> Y+4
024C 940E0712 CALL push_gset2
024E 9728 SBIW R28,0x8
(0421)
(0422) //********************************************************************
(0423) // Function : D2Command
(0424) // Input : none
(0425) // Output : none
(0426) // Description : D2
(0427) //********************************************************************
(0428) void D2Command(void)
(0429) {
(0430) INT32U dwTest = 0xFFFFFFFF; //4294967295
024F EF4F LDI R20,0xFF
0250 EF5F LDI R21,0xFF
0251 EF6F LDI R22,0xFF
0252 EF7F LDI R23,0xFF
0253 01FE MOVW R30,R28
0254 8344 STD Z+4,R20
0255 8355 STD Z+5,R21
0256 8366 STD Z+6,R22
0257 8377 STD Z+7,R23
(0431)
(0432) sDataToNumber(dwTest,10,&stSciBuffer);
0258 E18C LDI R24,0x1C
0259 E091 LDI R25,1
025A 839B STD Y+3,R25
025B 838A STD Y+2,R24
025C E08A LDI R24,0xA
025D 8388 STD Y+0,R24
025E 01FE MOVW R30,R28
025F 8104 LDD R16,Z+4
0260 8115 LDD R17,Z+5
0261 8126 LDD R18,Z+6
0262 8137 LDD R19,Z+7
0263 D3B7 RCALL _sDataToNumber
(0433) SciBuffer_Tx_In(&stSciBuffer,' ');
0264 E220 LDI R18,0x20
0265 E10C LDI R16,0x1C
0266 E011 LDI R17,1
0267 DF37 RCALL _SciBuffer_Tx_In
(0434)
(0435) sDataToNumber(dwTest,4,&stSciBuffer);
0268 E18C LDI R24,0x1C
0269 E091 LDI R25,1
026A 839B STD Y+3,R25
026B 838A STD Y+2,R24
026C E084 LDI R24,4
026D 8388 STD Y+0,R24
026E 01FE MOVW R30,R28
026F 8104 LDD R16,Z+4
0270 8115 LDD R17,Z+5
0271 8126 LDD R18,Z+6
0272 8137 LDD R19,Z+7
0273 D3A7 RCALL _sDataToNumber
(0436) SciBuffer_Tx_In(&stSciBuffer,' ');
0274 E220 LDI R18,0x20
0275 E10C LDI R16,0x1C
0276 E011 LDI R17,1
0277 DF27 RCALL _SciBuffer_Tx_In
(0437)
(0438) sDataToNumber(dwTest,2,&stSciBuffer);
0278 E18C LDI R24,0x1C
0279 E091 LDI R25,1
027A 839B STD Y+3,R25
027B 838A STD Y+2,R24
027C E082 LDI R24,2
027D 8388 STD Y+0,R24
027E 01FE MOVW R30,R28
027F 8104 LDD R16,Z+4
0280 8115 LDD R17,Z+5
0281 8126 LDD R18,Z+6
0282 8137 LDD R19,Z+7
0283 D397 RCALL _sDataToNumber
(0439) SciBuffer_Tx_In(&stSciBuffer,' ');
0284 E220 LDI R18,0x20
0285 E10C LDI R16,0x1C
0286 E011 LDI R17,1
0287 DF17 RCALL _SciBuffer_Tx_In
(0440)
(0441) sDataToNumber(dwTest,1,&stSciBuffer);
0288 E18C LDI R24,0x1C
0289 E091 LDI R25,1
028A 839B STD Y+3,R25
028B 838A STD Y+2,R24
028C E081 LDI R24,1
028D 8388 STD Y+0,R24
028E 01FE MOVW R30,R28
028F 8104 LDD R16,Z+4
0290 8115 LDD R17,Z+5
0291 8126 LDD R18,Z+6
0292 8137 LDD R19,Z+7
0293 D387 RCALL _sDataToNumber
(0442) SciBuffer_Tx_In(&stSciBuffer,'\n');
0294 E02A LDI R18,0xA
0295 E10C LDI R16,0x1C
0296 E011 LDI R17,1
0297 DF07 RCALL _SciBuffer_Tx_In
(0443)
(0444) UART_WRITE_DATA(&stSciBuffer);
0298 E10C LDI R16,0x1C
0299 E011 LDI R17,1
029A DF42 RCALL _UART_WRITE_DATA
(0445) }
029B 9628 ADIW R28,0x8
029C 940E06F5 CALL pop_gset2
029E 9508 RET
_D3Command:
dwTest --> Y+4
029F 940E0712 CALL push_gset2
02A1 9728 SBIW R28,0x8
(0446)
(0447) //********************************************************************
(0448) // Function : D3Command
(0449) // Input : none
(0450) // Output : none
(0451) // Description : D3
(0452) //********************************************************************
(0453) void D3Command(void)
(0454) {
(0455) INT32U dwTest = 0x12345678;
02A2 E748 LDI R20,0x78
02A3 E556 LDI R21,0x56
02A4 E364 LDI R22,0x34
02A5 E172 LDI R23,0x12
02A6 01FE MOVW R30,R28
02A7 8344 STD Z+4,R20
02A8 8355 STD Z+5,R21
02A9 8366 STD Z+6,R22
02AA 8377 STD Z+7,R23
(0456)
(0457) sDataToChar(dwTest,8,&stSciBuffer);
02AB E18C LDI R24,0x1C
02AC E091 LDI R25,1
02AD 839B STD Y+3,R25
02AE 838A STD Y+2,R24
02AF E088 LDI R24,0x8
02B0 8388 STD Y+0,R24
02B1 01FE MOVW R30,R28
02B2 8104 LDD R16,Z+4
02B3 8115 LDD R17,Z+5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -