📄 inwear.txt
字号:
; 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 + -