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

📄 uart.lis

📁 AVR单片机C语言程序设计实例精粹
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 019A           ;            ptr -> R20,R21
                        .even
 019A           _UART_WRITE_DATA::
 019A 0E940000          xcall push_gset1
 019E A801              movw R20,R16
 01A0                   .dbline -1
 01A0                   .dbline 353
 01A0           ; 
 01A0           ; //********************************************************************
 01A0           ; // Function    : UART_WRITE_DATA
 01A0           ; // Input       : ptr-pointer to SCI Buffer
 01A0           ; // Output      : none
 01A0           ; // Description : Send the firstIncrease TX Buffer Length
 01A0           ; //********************************************************************
 01A0           ; void UART_WRITE_DATA(struct SCI_Buffer *ptr)
 01A0           ; {
 01A0                   .dbline 354
 01A0           ;       UART_TX_DATA(ptr->bTxBuffer[0]);
 01A0 FA01              movw R30,R20
 01A2 05A9              ldd R16,z+53
 01A4 51DF              xcall _UART_TX_DATA
 01A6                   .dbline 355
 01A6           ;       SciBuffer_Tx_Inc(ptr);
 01A6 8A01              movw R16,R20
 01A8 F1DF              xcall _SciBuffer_Tx_Inc
 01AA                   .dbline 356
 01AA           ;       Enable_UART_TX_INT();
 01AA 48DF              xcall _Enable_UART_TX_INT
 01AC                   .dbline -2
 01AC                   .dbline 357
 01AC           ; }
 01AC           L42:
 01AC 0E940000          xcall pop_gset1
 01B0                   .dbline 0 ; func end
 01B0 0895              ret
 01B2                   .dbsym r ptr 20 pX
 01B2                   .dbend
                        .area data(ram, con, rel)
 0002                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\市电电压频率测量系统\UART.c
 0002           L44:
 0002                   .blkb 1
                        .area idata
 0002 00                .byte 0
                        .area data(ram, con, rel)
 0003                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\市电电压频率测量系统\UART.c
                        .area text(rom, con, rel)
 01B2                   .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\市电电压频率测量系统\UART.c
 01B2                   .dbfunc e C1Command _C1Command fV
 01B2                   .dbsym s bCount L44 c
                        .even
 01B2           _C1Command::
 01B2                   .dbline -1
 01B2                   .dbline 366
 01B2           ; 
 01B2           ; //********************************************************************
 01B2           ; // Function    : C1Command
 01B2           ; // Input       : none
 01B2           ; // Output      : none
 01B2           ; // Description : C1
 01B2           ; //********************************************************************
 01B2           ; void C1Command(void)
 01B2           ; {
 01B2                   .dbline 368
 01B2           ;       static INT8U bCount = 0;
 01B2           ;       bCount++;
 01B2 80910200          lds R24,L44
 01B6 8F5F              subi R24,255    ; addi 1
 01B8 80930200          sts L44,R24
 01BC                   .dbline 369
 01BC           ;       if(bCount & 0x01)
 01BC 80FF              sbrs R24,0
 01BE 03C0              rjmp L45
 01C0                   .dbline 370
 01C0           ;       {
 01C0                   .dbline 371
 01C0           ;               Buzzer_ON();
 01C0 0E940000          xcall _Buzzer_ON
 01C4                   .dbline 372
 01C4           ;       }
 01C4 02C0              xjmp L46
 01C6           L45:
 01C6                   .dbline 374
 01C6                   .dbline 375
 01C6 0E940000          xcall _Buzzer_OFF
 01CA                   .dbline 376
 01CA           L46:
 01CA                   .dbline -2
 01CA                   .dbline 377
 01CA           ;       else
 01CA           ;       {
 01CA           ;               Buzzer_OFF();
 01CA           ;       }
 01CA           ; }
 01CA           L43:
 01CA                   .dbline 0 ; func end
 01CA 0895              ret
 01CC                   .dbend
 01CC                   .dbfunc e C2Command _C2Command fV
 01CC           ;          bChar -> y+0
                        .even
 01CC           _C2Command::
 01CC 2397              sbiw R28,3
 01CE                   .dbline -1
 01CE                   .dbline 386
 01CE                   .dbline 388
 01CE 20900500          lds R2,_stSciBuffer+3+2
 01D2 2882              std y+0,R2
 01D4                   .dbline 389
 01D4 80910600          lds R24,_stSciBuffer+3+3
 01D8 8053              subi R24,48
 01DA 8983              std y+1,R24
 01DC                   .dbline 390
 01DC 80910700          lds R24,_stSciBuffer+3+4
 01E0 8053              subi R24,48
 01E2 8A83              std y+2,R24
 01E4                   .dbline 391
 01E4 8881              ldd R24,y+0
 01E6 8C32              cpi R24,44
 01E8 71F4              brne L56
 01EA 89E0              ldi R24,9
 01EC 2980              ldd R2,y+1
 01EE 8215              cp R24,R2
 01F0 50F0              brlo L56
 01F2 2A80              ldd R2,y+2
 01F4 8215              cp R24,R2
 01F6 38F0              brlo L56
 01F8                   .dbline 392
 01F8                   .dbline 393
 01F8 2980              ldd R2,y+1
 01FA 8AE0              ldi R24,10
 01FC 829D              mul R24,R2
 01FE 002D              mov R16,R0
 0200 2A80              ldd R2,y+2
 0202 020D              add R16,R2
 0204 06DF              xcall _sSet_Buzzer_Count
 0206                   .dbline 394
 0206           L56:
 0206                   .dbline -2
 0206                   .dbline 395
 0206           ; 
 0206           ; //********************************************************************
 0206           ; // Function    : C2Command
 0206           ; // Input       : none
 0206           ; // Output      : none
 0206           ; // Description : C2,MM
 0206           ; //********************************************************************
 0206           ; void C2Command(void)
 0206           ; {
 0206           ;       INT8U bChar[3];
 0206           ;       bChar[0] = stSciBuffer.bRxBuffer[2];
 0206           ;       bChar[1] = stSciBuffer.bRxBuffer[3] - '0'; 
 0206           ;       bChar[2] = stSciBuffer.bRxBuffer[4] - '0'; 
 0206           ;       if((bChar[0] == ',') && (bChar[1] <= 9) && (bChar[2] <= 9))
 0206           ;       {
 0206           ;               sSet_Buzzer_Count(bChar[1] * 10 + bChar[2]);
 0206           ;       }
 0206           ; }
 0206           L47:
 0206 2396              adiw R28,3
 0208                   .dbline 0 ; func end
 0208 0895              ret
 020A                   .dbsym l bChar 0 A[3:3]c
 020A                   .dbend
 020A                   .dbfunc e D1Command _D1Command fV
                        .even
 020A           _D1Command::
 020A                   .dbline -1
 020A                   .dbline 404
 020A           ; 
 020A           ; //********************************************************************
 020A           ; // Function    : D1Command
 020A           ; // Input       : none
 020A           ; // Output      : none
 020A           ; // Description : D1
 020A           ; //********************************************************************
 020A           ; void D1Command(void)
 020A           ; {
 020A                   .dbline 405
 020A           ;       SciBuffer_Tx_In(&stSciBuffer,'I');
 020A 29E4              ldi R18,73
 020C 00E0              ldi R16,<_stSciBuffer
 020E 10E0              ldi R17,>_stSciBuffer
 0210 86DF              xcall _SciBuffer_Tx_In
 0212                   .dbline 406
 0212           ;       SciBuffer_Tx_In(&stSciBuffer,' ');
 0212 20E2              ldi R18,32
 0214 00E0              ldi R16,<_stSciBuffer
 0216 10E0              ldi R17,>_stSciBuffer
 0218 82DF              xcall _SciBuffer_Tx_In
 021A                   .dbline 407
 021A           ;       SciBuffer_Tx_In(&stSciBuffer,'L');
 021A 2CE4              ldi R18,76
 021C 00E0              ldi R16,<_stSciBuffer
 021E 10E0              ldi R17,>_stSciBuffer
 0220 7EDF              xcall _SciBuffer_Tx_In
 0222                   .dbline 408
 0222           ;       SciBuffer_Tx_In(&stSciBuffer,'O');
 0222 2FE4              ldi R18,79
 0224 00E0              ldi R16,<_stSciBuffer
 0226 10E0              ldi R17,>_stSciBuffer
 0228 7ADF              xcall _SciBuffer_Tx_In
 022A                   .dbline 409
 022A           ;       SciBuffer_Tx_In(&stSciBuffer,'V');
 022A 26E5              ldi R18,86
 022C 00E0              ldi R16,<_stSciBuffer
 022E 10E0              ldi R17,>_stSciBuffer
 0230 76DF              xcall _SciBuffer_Tx_In
 0232                   .dbline 410
 0232           ;       SciBuffer_Tx_In(&stSciBuffer,'E');
 0232 25E4              ldi R18,69
 0234 00E0              ldi R16,<_stSciBuffer
 0236 10E0              ldi R17,>_stSciBuffer
 0238 72DF              xcall _SciBuffer_Tx_In
 023A                   .dbline 411
 023A           ;       SciBuffer_Tx_In(&stSciBuffer,' ');
 023A 20E2              ldi R18,32
 023C 00E0              ldi R16,<_stSciBuffer
 023E 10E0              ldi R17,>_stSciBuffer
 0240 6EDF              xcall _SciBuffer_Tx_In
 0242                   .dbline 412
 0242           ;       SciBuffer_Tx_In(&stSciBuffer,'Y');
 0242 29E5              ldi R18,89
 0244 00E0              ldi R16,<_stSciBuffer
 0246 10E0              ldi R17,>_stSciBuffer
 0248 6ADF              xcall _SciBuffer_Tx_In
 024A                   .dbline 413
 024A           ;       SciBuffer_Tx_In(&stSciBuffer,'O');
 024A 2FE4              ldi R18,79
 024C 00E0              ldi R16,<_stSciBuffer
 024E 10E0              ldi R17,>_stSciBuffer
 0250 66DF              xcall _SciBuffer_Tx_In
 0252                   .dbline 414
 0252           ;       SciBuffer_Tx_In(&stSciBuffer,'U');
 0252 25E5              ldi R18,85
 0254 00E0              ldi R16,<_stSciBuffer
 0256 10E0              ldi R17,>_stSciBuffer
 0258 62DF              xcall _SciBuffer_Tx_In
 025A                   .dbline 415
 025A           ;       SciBuffer_Tx_In(&stSciBuffer,' ');
 025A 20E2              ldi R18,32
 025C 00E0              ldi R16,<_stSciBuffer
 025E 10E0              ldi R17,>_stSciBuffer
 0260 5EDF              xcall _SciBuffer_Tx_In
 0262                   .dbline 416
 0262           ;       SciBuffer_Tx_In(&stSciBuffer,'!');
 0262 21E2              ldi R18,33
 0264 00E0              ldi R16,<_stSciBuffer
 0266 10E0              ldi R17,>_stSciBuffer
 0268 5ADF              xcall _SciBuffer_Tx_In
 026A                   .dbline 417
 026A           ;       SciBuffer_Tx_In(&stSciBuffer,'\n');
 026A 2AE0              ldi R18,10
 026C 00E0              ldi R16,<_stSciBuffer
 026E 10E0              ldi R17,>_stSciBuffer
 0270 56DF              xcall _SciBuffer_Tx_In
 0272                   .dbline 419
 0272           ;       
 0272           ;       UART_WRITE_DATA(&stSciBuffer);
 0272 00E0              ldi R16,<_stSciBuffer
 0274 10E0              ldi R17,>_stSciBuffer
 0276                   .dbline -2
 0276                   .dbline 420
 0276           ; }
 0276           L62:
 0276                   .dbline 0 ; func end
 0276 91CF              xjmp _UART_WRITE_DATA
 0278                   .dbend
 0278                   .dbfunc e D2Command _D2Command fV
 0278           ;         dwTest -> y+4
                        .even
 0278           _D2Command::
 0278 0E940000          xcall push_gset2
 027C 2897              sbiw R28,8
 027E                   .dbline -1
 027E                   .dbline 429
 027E           ; 
 027E           ; //********************************************************************
 027E           ; // Function    : D2Command
 027E           ; // Input       : none
 027E           ; // Output      : none
 027E           ; // Description : D2
 027E           ; //********************************************************************
 027E           ; void D2Command(void)
 027E           ; {
 027E                   .dbline 430
 027E           ;       INT32U dwTest = 0xFFFFFFFF; //4294967295
 027E 4FEF              ldi R20,255
 0280 5FEF              ldi R21,255
 0282 6FEF              ldi R22,255
 0284 7FEF              ldi R23,255
 0286 FE01              movw R30,R28
 0288 4483              std z+4,R20
 028A 5583              std z+5,R21
 028C 6683              std z+6,R22
 028E 7783              std z+7,R23
 0290                   .dbline 432
 0290           ;       
 0290           ;       sDataToNumber(dwTest,10,&stSciBuffer);
 0290 80E0              ldi R24,<_stSciBuffer
 0292 90E0              ldi R25,>_stSciBuffer
 0294 9B83              std y+3,R25
 0296 8A83              std y+2,R24
 0298 8AE0              ldi R24,10
 029A 8883              std y+0,R24
 029C FE01              movw R30,R28
 029E 0481              ldd R16,z+4
 02A0 1581              ldd R17,z+5

⌨️ 快捷键说明

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