📄 18b202114.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 939] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o".\NOR FLASH\18b202114.o" --depend=".\NOR FLASH\18b202114.d" --device=DARMSS9 --apcs=interwork -O0 -I..\Common\Inc -I.\Include -IC:\Keil\ARM\INC\Samsung --omf_browse=".\NOR FLASH\18b202114.crf" "C:\Documents and Settings\Caijunyu\桌面\MDK\Temperature_Test\Source\18b202114.c"]
ARM
AREA ||.text||, CODE, READONLY, ALIGN=2
udelay PROC
;;;36 int i;
;;;37 for(i=0; i < num;i++);
000000 e3a01000 MOV r1,#0
000004 ea000000 B |L1.12|
|L1.8|
000008 e2811001 ADD r1,r1,#1
|L1.12|
00000c e1510000 CMP r1,r0
000010 bafffffc BLT |L1.8|
;;;38 }
000014 e12fff1e BX lr
;;;39 /*********************************************************************************************
ENDP
s3c2410_gpio_cfgpin PROC
;;;49 {
;;;50 if(state == CFG_IN)
000018 e3500000 CMP r0,#0
00001c 1a000005 BNE |L1.56|
;;;51 rGPECON = (rGPECON & 0xff3fffff) | 0x00000000; //set GE11
000020 e3a01456 MOV r1,#0x56000000
000024 e5911040 LDR r1,[r1,#0x40]
000028 e3c11503 BIC r1,r1,#0xc00000
00002c e3a02456 MOV r2,#0x56000000
000030 e5821040 STR r1,[r2,#0x40]
000034 ea000005 B |L1.80|
|L1.56|
;;;52 else
;;;53 rGPECON = (rGPECON & 0xff3fffff) | 0x00400000; //set GE11
000038 e3a01456 MOV r1,#0x56000000
00003c e5911040 LDR r1,[r1,#0x40]
000040 e3c11503 BIC r1,r1,#0xc00000
000044 e3811501 ORR r1,r1,#0x400000
000048 e3a02456 MOV r2,#0x56000000
00004c e5821040 STR r1,[r2,#0x40]
|L1.80|
;;;54
;;;55 }
000050 e12fff1e BX lr
;;;56 /*********************************************************************************************
ENDP
s3c2410_gpio_pullup PROC
;;;66 {
;;;67 if(state == 0)
000054 e3500000 CMP r0,#0
000058 1a000006 BNE |L1.120|
;;;68 rGPEUP = rGPEUP & 0xf7ff;
00005c e3a01456 MOV r1,#0x56000000
000060 e5911048 LDR r1,[r1,#0x48]
000064 e59f234c LDR r2,|L1.952|
000068 e0011002 AND r1,r1,r2
00006c e3a02456 MOV r2,#0x56000000
000070 e5821048 STR r1,[r2,#0x48]
000074 ea000004 B |L1.140|
|L1.120|
;;;69 else
;;;70 rGPEUP = rGPEUP | 0x0800;
000078 e3a01456 MOV r1,#0x56000000
00007c e5911048 LDR r1,[r1,#0x48]
000080 e3811b02 ORR r1,r1,#0x800
000084 e3a02456 MOV r2,#0x56000000
000088 e5821048 STR r1,[r2,#0x48]
|L1.140|
;;;71 }
00008c e12fff1e BX lr
;;;72 /*********************************************************************************************
ENDP
s3c2410_gpio_setpin PROC
;;;81 {
;;;82 if(bit == 0)
000090 e3500000 CMP r0,#0
000094 1a000006 BNE |L1.180|
;;;83 rGPEDAT = rGPEDAT & 0xf7ff;
000098 e3a01456 MOV r1,#0x56000000
00009c e5911044 LDR r1,[r1,#0x44]
0000a0 e59f2310 LDR r2,|L1.952|
0000a4 e0011002 AND r1,r1,r2
0000a8 e3a02456 MOV r2,#0x56000000
0000ac e5821044 STR r1,[r2,#0x44]
0000b0 ea000004 B |L1.200|
|L1.180|
;;;84 else
;;;85 rGPEDAT = rGPEDAT | 0x0800;
0000b4 e3a01456 MOV r1,#0x56000000
0000b8 e5911044 LDR r1,[r1,#0x44]
0000bc e3811b02 ORR r1,r1,#0x800
0000c0 e3a02456 MOV r2,#0x56000000
0000c4 e5821044 STR r1,[r2,#0x44]
|L1.200|
;;;86
;;;87 }
0000c8 e12fff1e BX lr
;;;88 /*********************************************************************************************
ENDP
s3c2410_gpio_getpin PROC
;;;97 int s3c2410_gpio_getpin(int dq)
;;;98 {
0000cc e1a01000 MOV r1,r0
;;;99 if((rGPEDAT & 0x0800) == 0x0)
0000d0 e3a00456 MOV r0,#0x56000000
0000d4 e5900044 LDR r0,[r0,#0x44]
0000d8 e3100b02 TST r0,#0x800
0000dc 1a000001 BNE |L1.232|
;;;100 return 0;
0000e0 e3a00000 MOV r0,#0
|L1.228|
;;;101 else
;;;102 return 1;
;;;103 }
0000e4 e12fff1e BX lr
|L1.232|
0000e8 e3a00001 MOV r0,#1 ;102
0000ec eafffffc B |L1.228|
;;;104 /*********************************************************************************************
ENDP
ds18b20_reset PROC
;;;113 int ds18b20_reset(void) //ds18b20复位,返回0成功,返回1失败
;;;114 {
0000f0 e92d4010 PUSH {r4,lr}
;;;115 int ret;
;;;116 s3c2410_gpio_cfgpin(CFG_OUT);
0000f4 e3a00001 MOV r0,#1
0000f8 ebfffffe BL s3c2410_gpio_cfgpin
;;;117 s3c2410_gpio_pullup(0);
0000fc e3a00000 MOV r0,#0
000100 ebfffffe BL s3c2410_gpio_pullup
;;;118 s3c2410_gpio_setpin(0); //拉低数据线电平
000104 e3a00000 MOV r0,#0
000108 ebfffffe BL s3c2410_gpio_setpin
;;;119 udelay(300); //精确延时480us-960us
00010c e3a00f4b MOV r0,#0x12c
000110 ebfffffe BL udelay
;;;120 s3c2410_gpio_setpin(1); //拉高电平
000114 e3a00001 MOV r0,#1
000118 ebfffffe BL s3c2410_gpio_setpin
;;;121 udelay(25); //精确延时15us-60us
00011c e3a00019 MOV r0,#0x19
000120 ebfffffe BL udelay
;;;122 s3c2410_gpio_cfgpin(CFG_IN);
000124 e3a00000 MOV r0,#0
000128 ebfffffe BL s3c2410_gpio_cfgpin
;;;123 ret = s3c2410_gpio_getpin(DQ);
00012c e3a00b02 MOV r0,#0x800
000130 ebfffffe BL s3c2410_gpio_getpin
000134 e1a04000 MOV r4,r0
;;;124 if(ret)
000138 e3540000 CMP r4,#0
00013c 0a000004 BEQ |L1.340|
;;;125 {
;;;126 uart_printf("err\n");
000140 e28f0f9d ADR r0,|L1.956|
000144 ebfffffe BL uart_printf
;;;127 return -1;
000148 e3e00000 MVN r0,#0
|L1.332|
00014c e8bd4010 POP {r4,lr}
;;;128 }
;;;129 else
;;;130 {
;;;131 // uart_printf("OK!");
;;;132 udelay(40);
;;;133 }
;;;134 return ret;
;;;135 }
000150 e12fff1e BX lr
|L1.340|
000154 e3a00028 MOV r0,#0x28 ;132
000158 ebfffffe BL udelay
00015c e1a00004 MOV r0,r4 ;134
000160 eafffff9 B |L1.332|
;;;136
ENDP
write_byte PROC
;;;146 void write_byte(unsigned char data)//向18b20写一个字节
;;;147 {
000164 e92d4010 PUSH {r4,lr}
000168 e1a03000 MOV r3,r0
;;;148 char i = 0;
00016c e3a04000 MOV r4,#0
;;;149 s3c2410_gpio_cfgpin(CFG_OUT);
000170 e3a00001 MOV r0,#1
000174 ebfffffe BL s3c2410_gpio_cfgpin
;;;150 s3c2410_gpio_pullup(0);
000178 e3a00000 MOV r0,#0
00017c ebfffffe BL s3c2410_gpio_pullup
;;;151 for(i=0; i<8; i++){
000180 e1a00000 MOV r0,r0
000184 ea00000d B |L1.448|
|L1.392|
;;;152 s3c2410_gpio_setpin(1);
000188 e3a00001 MOV r0,#1
00018c ebfffffe BL s3c2410_gpio_setpin
;;;153 i = i;
000190 e1a00000 MOV r0,r0
;;;154 s3c2410_gpio_setpin(0);
000194 e3a00000 MOV r0,#0
000198 ebfffffe BL s3c2410_gpio_setpin
;;;155 //udelay(2);
;;;156 udelay(1);
00019c e3a00001 MOV r0,#1
0001a0 ebfffffe BL udelay
;;;157 s3c2410_gpio_setpin(data&0x01);
0001a4 e2030001 AND r0,r3,#1
0001a8 ebfffffe BL s3c2410_gpio_setpin
;;;158 udelay(25);
0001ac e3a00019 MOV r0,#0x19
0001b0 ebfffffe BL udelay
;;;159 data >>= 1;
0001b4 e1a030c3 ASR r3,r3,#1
0001b8 e2840001 ADD r0,r4,#1 ;151
0001bc e20040ff AND r4,r0,#0xff ;151
|L1.448|
0001c0 e3540008 CMP r4,#8 ;151
0001c4 baffffef BLT |L1.392|
;;;160 }
;;;161 s3c2410_gpio_setpin(1);
0001c8 e3a00001 MOV r0,#1
0001cc ebfffffe BL s3c2410_gpio_setpin
;;;162 }
0001d0 e8bd4010 POP {r4,lr}
0001d4 e12fff1e BX lr
;;;163 /*********************************************************************************************
ENDP
read_byte PROC
;;;172 unsigned char read_byte(void)//从18b20读一个字节
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -