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

📄 inwear.txt

📁 uc/os在lpc2100系列的KEIL模板 uc/os在lpc2100系列的real view模板 uc/os在lpc210X系列的real view模板
💻 TXT
📖 第 1 页 / 共 5 页
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 934] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o.\rvmdk\inwear.o --depend=.\rvmdk\inwear.d --device=DARMP --apcs=interwork -O1 -I. -I..\BSP -I..\..\..\..\uCOS-II\Ports\ARM\Generic\RealView -I..\..\..\..\uCOS-II\Source -I..\..\..\..\uC-CPU -I..\..\..\..\uC-CPU\ARM\RealView -I..\..\..\..\uC-LIB -I..\..\..\..\uC-TCPIP\IF -I..\..\..\..\uC-TCPIP\IF\Ether -I..\..\..\..\uC-TCPIP\NIC\ETHER\LPC2378 -I..\..\..\..\uC-TCPIP\NIC\ETHER\PHY -I..\..\..\..\uC-TCPIP\NIC\ETHER\PHY\DP83848 -I..\..\..\..\uC-TCPIP\OS\uCOS-II -I..\..\..\..\uC-TCPIP\Source -I..\..\..\..\uC-LCD\Source -I..\..\..\..\uC-Probe\Target\Communication\Generic\Source -I..\..\..\..\uC-Probe\Target\Communication\Generic\RS-232\Source -I..\..\..\..\uC-Probe\Target\Communication\Generic\TCPIP\Source -I..\..\..\..\uC-Probe\Target\Plugins\uCOS-II -Ie:\Keil_ARM\ARM\INC\Philips -D__IN_CHIP --omf_browse=.\rvmdk\inwear.crf inwear.c]
                          ARM

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

                  LCD_WRI PROC
;;;17     void  LCD_WRI(uint8 dat)
;;;18     {  uint8  i;
000000  e92d4030          PUSH     {r4,r5,lr}
;;;19        uint8  temp;
;;;20        
;;;21        IOCLR = LCD_CS;			    // LCD_CS = 0
000004  e59f3458          LDR      r3,|L1.1124|
000008  e3a04202          MOV      r4,#0x20000000
00000c  e583400c          STR      r4,[r3,#0xc]
;;;22        IOSET = LCD_CS;	            // LCD_CS = 1
000010  e5834004          STR      r4,[r3,#4]
;;;23        temp = 0xf8;
000014  e3a020f8          MOV      r2,#0xf8
;;;24        for(i=0; i<8; i++)			// 发送8位数据
000018  e3a01000          MOV      r1,#0
00001c  e3a0e040          MOV      lr,#0x40
000020  e3a0c010          MOV      r12,#0x10
                  |L1.36|
;;;25        {  
;;;26        	  IOCLR = LCD_CLK;			// LCD_CLK = 0
000024  e583c00c          STR      r12,[r3,#0xc]
;;;27     	  if( (temp&0x80)!=0 ) IOSET = LCD_DATA;
000028  e3120080          TST      r2,#0x80
00002c  0a000001          BEQ      |L1.56|
000030  e583e004          STR      lr,[r3,#4]
000034  ea000000          B        |L1.60|
                  |L1.56|
;;;28             else IOSET = LCD_DATA;
000038  e583e004          STR      lr,[r3,#4]
                  |L1.60|
;;;29           temp <<= 1;
00003c  e1a02c82          LSL      r2,r2,#25
000040  e1a02c22          LSR      r2,r2,#24
;;;30           IOSET = LCD_CLK;			// LCD_CLK = 1
000044  e583c004          STR      r12,[r3,#4]
000048  e2811001          ADD      r1,r1,#1              ;24
00004c  e20110ff          AND      r1,r1,#0xff           ;24
000050  e3510008          CMP      r1,#8                 ;24
000054  3afffff2          BCC      |L1.36|
;;;31        }
;;;32        temp = dat & 0xf0;
000058  e20020f0          AND      r2,r0,#0xf0
;;;33        for(i=0; i<8; i++)			// 发送8位数据
00005c  e3a01000          MOV      r1,#0
                  |L1.96|
;;;34        {  
;;;35        	  IOCLR = LCD_CLK;			// LCD_CLK = 0
000060  e583c00c          STR      r12,[r3,#0xc]
;;;36     	  if( (temp&0x80)!=0 ) IOSET = LCD_DATA;
000064  e3120080          TST      r2,#0x80
000068  0a000001          BEQ      |L1.116|
00006c  e583e004          STR      lr,[r3,#4]
000070  ea000000          B        |L1.120|
                  |L1.116|
;;;37             else IOCLR = LCD_DATA;
000074  e583e00c          STR      lr,[r3,#0xc]
                  |L1.120|
;;;38           temp <<= 1;
000078  e1a02c82          LSL      r2,r2,#25
00007c  e1a02c22          LSR      r2,r2,#24
;;;39           IOSET = LCD_CLK;			// LCD_CLK = 1
000080  e583c004          STR      r12,[r3,#4]
000084  e2811001          ADD      r1,r1,#1              ;33
000088  e20110ff          AND      r1,r1,#0xff           ;33
00008c  e3510008          CMP      r1,#8                 ;33
000090  3afffff2          BCC      |L1.96|
;;;40        }
;;;41        temp = (dat << 4) & 0xf0; 
000094  e3a010f0          MOV      r1,#0xf0
000098  e0011200          AND      r1,r1,r0,LSL #4
;;;42        for(i=0; i<8; i++)			// 发送8位数据
00009c  e3a00000          MOV      r0,#0
                  |L1.160|
;;;43        {  
;;;44        	  IOCLR = LCD_CLK;			// LCD_CLK = 0
0000a0  e583c00c          STR      r12,[r3,#0xc]
;;;45     	  if( (temp&0x80)!=0 ) IOSET = LCD_DATA;
0000a4  e3110080          TST      r1,#0x80
0000a8  0a000001          BEQ      |L1.180|
0000ac  e583e004          STR      lr,[r3,#4]
0000b0  ea000000          B        |L1.184|
                  |L1.180|
;;;46             else IOCLR = LCD_DATA;
0000b4  e583e00c          STR      lr,[r3,#0xc]
                  |L1.184|
;;;47           temp <<= 1;
0000b8  e1a01c81          LSL      r1,r1,#25
0000bc  e1a01c21          LSR      r1,r1,#24
;;;48           IOSET = LCD_CLK;			// LCD_CLK = 1
0000c0  e583c004          STR      r12,[r3,#4]
0000c4  e2800001          ADD      r0,r0,#1              ;42
0000c8  e20000ff          AND      r0,r0,#0xff           ;42
0000cc  e3500008          CMP      r0,#8                 ;42
0000d0  3afffff2          BCC      |L1.160|
;;;49        }
;;;50        IOCLR = LCD_CLK;			// LCD_CLK = 0
0000d4  e583c00c          STR      r12,[r3,#0xc]
;;;51     
;;;52        IOCLR = LCD_CS;			    // SPI_CS =  0,输出显示数据
0000d8  e583400c          STR      r4,[r3,#0xc]
;;;53     }
0000dc  e8bd4030          POP      {r4,r5,lr}
0000e0  e12fff1e          BX       lr
;;;54     
                          ENDP

                  LCD_WRD PROC
;;;57     void  LCD_WRD(uint8 dat)
;;;58     {  uint8  i;
0000e4  e92d4030          PUSH     {r4,r5,lr}
;;;59        uint8  temp;
;;;60        
;;;61        IOCLR = LCD_CS;			    // LCD_CS = 0
0000e8  e59f3374          LDR      r3,|L1.1124|
0000ec  e3a04202          MOV      r4,#0x20000000
0000f0  e583400c          STR      r4,[r3,#0xc]
;;;62        IOSET = LCD_CS;	            // LCD_CS = 1
0000f4  e5834004          STR      r4,[r3,#4]
;;;63        temp = 0xfa;
0000f8  e3a020fa          MOV      r2,#0xfa
;;;64        for(i=0; i<8; i++)			// 发送8位数据
0000fc  e3a01000          MOV      r1,#0
000100  e3a0e040          MOV      lr,#0x40
000104  e3a0c010          MOV      r12,#0x10
                  |L1.264|
;;;65        {  
;;;66        	  IOCLR = LCD_CLK;			// LCD_CLK = 0
000108  e583c00c          STR      r12,[r3,#0xc]
;;;67     	  if( (temp&0x80)!=0 ) IOSET = LCD_DATA;
00010c  e3120080          TST      r2,#0x80
000110  0a000001          BEQ      |L1.284|
000114  e583e004          STR      lr,[r3,#4]
000118  ea000000          B        |L1.288|
                  |L1.284|
;;;68             else IOCLR = LCD_DATA;
00011c  e583e00c          STR      lr,[r3,#0xc]
                  |L1.288|
;;;69           temp <<= 1;
000120  e1a02c82          LSL      r2,r2,#25
000124  e1a02c22          LSR      r2,r2,#24
;;;70           IOSET = LCD_CLK;			// LCD_CLK = 1
000128  e583c004          STR      r12,[r3,#4]
00012c  e2811001          ADD      r1,r1,#1              ;64
000130  e20110ff          AND      r1,r1,#0xff           ;64
000134  e3510008          CMP      r1,#8                 ;64
000138  3afffff2          BCC      |L1.264|
;;;71        }
;;;72        temp = dat & 0xf0;
00013c  e20020f0          AND      r2,r0,#0xf0
;;;73        for(i=0; i<8; i++)			// 发送8位数据
000140  e3a01000          MOV      r1,#0
                  |L1.324|
;;;74        {  
;;;75        	  IOCLR = LCD_CLK;			// LCD_CLK = 0
000144  e583c00c          STR      r12,[r3,#0xc]
;;;76     	  if( (temp&0x80)!=0 ) IOSET = LCD_DATA;
000148  e3120080          TST      r2,#0x80
00014c  0a000001          BEQ      |L1.344|
000150  e583e004          STR      lr,[r3,#4]
000154  ea000000          B        |L1.348|
                  |L1.344|
;;;77             else IOCLR = LCD_DATA;
000158  e583e00c          STR      lr,[r3,#0xc]
                  |L1.348|
;;;78           temp <<= 1;
00015c  e1a02c82          LSL      r2,r2,#25
000160  e1a02c22          LSR      r2,r2,#24
;;;79           IOSET = LCD_CLK;			// LCD_CLK = 1
000164  e583c004          STR      r12,[r3,#4]
000168  e2811001          ADD      r1,r1,#1              ;73
00016c  e20110ff          AND      r1,r1,#0xff           ;73
000170  e3510008          CMP      r1,#8                 ;73
000174  3afffff2          BCC      |L1.324|
;;;80        }
;;;81        temp = (dat << 4) & 0xf0; 
000178  e3a010f0          MOV      r1,#0xf0
00017c  e0011200          AND      r1,r1,r0,LSL #4
;;;82        for(i=0; i<8; i++)			// 发送8位数据
000180  e3a00000          MOV      r0,#0
                  |L1.388|
;;;83        {  
;;;84        	  IOCLR = LCD_CLK;			// LCD_CLK = 0
000184  e583c00c          STR      r12,[r3,#0xc]
;;;85     	  if( (temp&0x80)!=0 ) IOSET = LCD_DATA;
000188  e3110080          TST      r1,#0x80
00018c  0a000001          BEQ      |L1.408|
000190  e583e004          STR      lr,[r3,#4]
000194  ea000000          B        |L1.412|
                  |L1.408|
;;;86             else IOCLR = LCD_DATA;
000198  e583e00c          STR      lr,[r3,#0xc]
                  |L1.412|
;;;87           temp <<= 1;
00019c  e1a01c81          LSL      r1,r1,#25
0001a0  e1a01c21          LSR      r1,r1,#24
;;;88           IOSET = LCD_CLK;			// LCD_CLK = 1
0001a4  e583c004          STR      r12,[r3,#4]
0001a8  e2800001          ADD      r0,r0,#1              ;82
0001ac  e20000ff          AND      r0,r0,#0xff           ;82
0001b0  e3500008          CMP      r0,#8                 ;82
0001b4  3afffff2          BCC      |L1.388|
;;;89        }
;;;90        IOCLR = LCD_CLK;			// LCD_CLK = 0   
0001b8  e583c00c          STR      r12,[r3,#0xc]
;;;91        IOCLR = LCD_CS;			    // LCD_CS = 0,输出显示数据
0001bc  e583400c          STR      r4,[r3,#0xc]
;;;92     }
0001c0  e8bd4030          POP      {r4,r5,lr}
0001c4  e12fff1e          BX       lr
;;;93     
                          ENDP

                  LCD_CLS PROC
;;;94     void  LCD_CLS(void)
;;;95     	{
0001c8  e92d4010          PUSH     {r4,lr}
;;;96             LCD_WRI(0x30);
0001cc  e3a00030          MOV      r0,#0x30
0001d0  ebfffffe          BL       LCD_WRI
;;;97             OSTimeDly(2);
0001d4  e3a00002          MOV      r0,#2
0001d8  ebfffffe          BL       OSTimeDly
;;;98             LCD_WRI(0x01);
0001dc  e3a00001          MOV      r0,#1
0001e0  ebfffffe          BL       LCD_WRI
;;;99             OSTimeDly(2);
0001e4  e8bd4010          POP      {r4,lr}
0001e8  e3a00002          MOV      r0,#2
0001ec  eafffffe          B        OSTimeDly
;;;100        }    
;;;101    
                          ENDP

                  LCD_INIT PROC
;;;102    void  LCD_INIT(void)
;;;103    	{
0001f0  e92d4010          PUSH     {r4,lr}
;;;104        LCD_WRI(0x30);
0001f4  e3a00030          MOV      r0,#0x30
0001f8  ebfffffe          BL       LCD_WRI
;;;105        OSTimeDly(2);
0001fc  e3a00002          MOV      r0,#2
000200  ebfffffe          BL       OSTimeDly
;;;106        LCD_WRI(0x0c);
000204  e3a0000c          MOV      r0,#0xc
000208  ebfffffe          BL       LCD_WRI
;;;107        OSTimeDly(2);
00020c  e3a00002          MOV      r0,#2
000210  ebfffffe          BL       OSTimeDly
;;;108        LCD_WRI(0x01);
000214  e3a00001          MOV      r0,#1
000218  ebfffffe          BL       LCD_WRI
;;;109        OSTimeDly(2);
00021c  e3a00002          MOV      r0,#2
000220  ebfffffe          BL       OSTimeDly
;;;110        LCD_WRI(0x06);
000224  e3a00006          MOV      r0,#6
000228  ebfffffe          BL       LCD_WRI
;;;111        OSTimeDly(2);
00022c  e8bd4010          POP      {r4,lr}
000230  e3a00002          MOV      r0,#2
000234  eafffffe          B        OSTimeDly
;;;112        }    
;;;113    
                          ENDP

⌨️ 快捷键说明

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