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

📄 serial.txt

📁 工厂环境污染控制数据采集器
💻 TXT
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 939] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o.\obj\serial.o --depend=.\obj\serial.d --device=DARMP --apcs=interwork -O0 -IC:\Keil305\ARM\INC\Philips --omf_browse=.\obj\serial.crf Serial.c]
                          ARM

                          AREA ||.text||, CODE, READONLY, ALIGN=2

                  init_serial PROC
;;;20        /* Configure UART1 for 115200 baud. */
;;;21        PINSEL0 &= ~0xC0000000;
000000  e59f00cc          LDR      r0,|L1.212|
000004  e5900000          LDR      r0,[r0,#0]
000008  e3c00103          BIC      r0,r0,#0xc0000000
00000c  e59f10c0          LDR      r1,|L1.212|
000010  e5810000          STR      r0,[r1,#0]
;;;22        PINSEL0 |=  0x40000000;                   /* Enable TxD1 pin              */
000014  e1a00001          MOV      r0,r1
000018  e5900000          LDR      r0,[r0,#0]
00001c  e3800101          ORR      r0,r0,#0x40000000
000020  e5810000          STR      r0,[r1,#0]
;;;23        PINSEL1 &= ~0x00000003;
000024  e1a00001          MOV      r0,r1
000028  e5900004          LDR      r0,[r0,#4]
00002c  e3c00003          BIC      r0,r0,#3
000030  e5810004          STR      r0,[r1,#4]
;;;24        PINSEL1 |=  0x00000001;                   /* Enable RxD1 pin              */
000034  e1a00001          MOV      r0,r1
000038  e5900004          LDR      r0,[r0,#4]
00003c  e3800001          ORR      r0,r0,#1
000040  e5810004          STR      r0,[r1,#4]
;;;25     
;;;26        U1LCR = 0x83;                             /* 8 bits, no Parity, 1 Stop bit*/
000044  e3a00083          MOV      r0,#0x83
000048  e2411907          SUB      r1,r1,#0x1c000
00004c  e581000c          STR      r0,[r1,#0xc]
;;;27        U1DLL = 3;                                /* for 12MHz PCLK Clock         */
000050  e3a00003          MOV      r0,#3
000054  e5810000          STR      r0,[r1,#0]
;;;28        U1FDR = 0x67;                             /* Fractional Divider           */
000058  e3a00067          MOV      r0,#0x67
00005c  e5810028          STR      r0,[r1,#0x28]
;;;29        U1LCR = 0x03;                             /* DLAB = 0                     */
000060  e3a00003          MOV      r0,#3
000064  e581000c          STR      r0,[r1,#0xc]
;;;30     }
000068  e12fff1e          BX       lr
;;;31     
                          ENDP

                  sendchar PROC
;;;35     int sendchar (int ch) {
;;;36        if (ch == '\n') {
00006c  e350000a          CMP      r0,#0xa
000070  1a000007          BNE      |L1.148|
;;;37           while (!(U1LSR & 0x20));
000074  e1a00000          MOV      r0,r0
                  |L1.120|
000078  e59f1058          LDR      r1,|L1.216|
00007c  e5911014          LDR      r1,[r1,#0x14]
000080  e3110020          TST      r1,#0x20
000084  0afffffb          BEQ      |L1.120|
;;;38           U1THR = '\r';
000088  e3a0100d          MOV      r1,#0xd
00008c  e59f2044          LDR      r2,|L1.216|
000090  e5821000          STR      r1,[r2,#0]
                  |L1.148|
;;;39        }
;;;40        while (!(U1LSR & 0x20));
000094  e1a00000          MOV      r0,r0
                  |L1.152|
000098  e59f1038          LDR      r1,|L1.216|
00009c  e5911014          LDR      r1,[r1,#0x14]
0000a0  e3110020          TST      r1,#0x20
0000a4  0afffffb          BEQ      |L1.152|
;;;41        return (U1THR = ch);
0000a8  e59f1028          LDR      r1,|L1.216|
0000ac  e5810000          STR      r0,[r1,#0]
;;;42     }
0000b0  e12fff1e          BX       lr
;;;43     
                          ENDP

                  getkey PROC
;;;47     int getkey (void) {
;;;48        while (!(U1LSR & 0x01));
0000b4  e1a00000          MOV      r0,r0
                  |L1.184|
0000b8  e59f0018          LDR      r0,|L1.216|
0000bc  e5900014          LDR      r0,[r0,#0x14]
0000c0  e3100001          TST      r0,#1
0000c4  0afffffb          BEQ      |L1.184|
;;;49        return (U1RBR);
0000c8  e59f0008          LDR      r0,|L1.216|
0000cc  e5900000          LDR      r0,[r0,#0]
;;;50     }
0000d0  e12fff1e          BX       lr
;;;51     
                          ENDP

                  |L1.212|
0000d4  e002c000          DCD      0xe002c000
                  |L1.216|
0000d8  e0010000          DCD      0xe0010000

⌨️ 快捷键说明

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