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

📄 ds18b20.txt

📁 在mdk下面实现对于ds18b20的控制
💻 TXT
📖 第 1 页 / 共 2 页
字号:
000244  e3a04000          MOV      r4,#0
;;;194      s3c2410_gpio_cfgpin(CFG_OUT);
000248  e3a00001          MOV      r0,#1
00024c  ebfffffe          BL       s3c2410_gpio_cfgpin
;;;195      s3c2410_gpio_pullup(0);
000250  e3a00000          MOV      r0,#0
000254  ebfffffe          BL       s3c2410_gpio_pullup
;;;196      for(i=0; i<8; i++)
000258  e3a03000          MOV      r3,#0
00025c  ea000013          B        |L1.688|
                  |L1.608|
;;;197        { 
;;;198    	  data >>= 1;
000260  e1a040c4          ASR      r4,r4,#1
;;;199    	  s3c2410_gpio_cfgpin(CFG_OUT);
000264  e3a00001          MOV      r0,#1
000268  ebfffffe          BL       s3c2410_gpio_cfgpin
;;;200    	  //s3c2410_gpio_setpin(1);
;;;201    	  //udelay(6);
;;;202          s3c2410_gpio_setpin(0);
00026c  e3a00000          MOV      r0,#0
000270  ebfffffe          BL       s3c2410_gpio_setpin
;;;203          i = i;
000274  e1a00000          MOV      r0,r0
;;;204          s3c2410_gpio_setpin(1);
000278  e3a00001          MOV      r0,#1
00027c  ebfffffe          BL       s3c2410_gpio_setpin
;;;205    	  i = i; 
000280  e1a00000          MOV      r0,r0
;;;206          s3c2410_gpio_cfgpin(CFG_IN);  
000284  e3a00000          MOV      r0,#0
000288  ebfffffe          BL       s3c2410_gpio_cfgpin
;;;207          if(s3c2410_gpio_getpin(DQ))
00028c  e3a00b02          MOV      r0,#0x800
000290  ebfffffe          BL       s3c2410_gpio_getpin
000294  e3500000          CMP      r0,#0
000298  0a000001          BEQ      |L1.676|
;;;208        		data |= 0x80;
00029c  e3844080          ORR      r4,r4,#0x80
0002a0  ea000000          B        |L1.680|
                  |L1.676|
;;;209    	  else
;;;210    	  		data &= 0x7f;
0002a4  e204407f          AND      r4,r4,#0x7f
                  |L1.680|
0002a8  e2830001          ADD      r0,r3,#1              ;196
0002ac  e20030ff          AND      r3,r0,#0xff           ;196
                  |L1.688|
0002b0  e3530008          CMP      r3,#8                 ;196
0002b4  baffffe9          BLT      |L1.608|
;;;211        //  udelay(2);
;;;212          //s3c2410_gpio_cfgpin(CFG_OUT);
;;;213          //s3c2410_gpio_pullup(0);
;;;214          //s3c2410_gpio_setpin(1);
;;;215          //
;;;216        }	
;;;217      udelay(2);
0002b8  e3a00002          MOV      r0,#2
0002bc  ebfffffe          BL       udelay
;;;218     // s3c2410_gpio_cfgpin(CFG_OUT);
;;;219     // s3c2410_gpio_pullup(0);
;;;220     // s3c2410_gpio_setpin(1);
;;;221      return data;
0002c0  e1a00004          MOV      r0,r4
0002c4  e8bd4010          POP      {r4,lr}
;;;222    }
0002c8  e12fff1e          BX       lr
;;;223    						  
                          ENDP

                  temperature_test PROC
;;;233    void temperature_test() 
;;;234    { 
0002cc  e92d5fff          PUSH     {r0-r12,lr}
;;;235    	unsigned int a = 0, b = 0,t = 0;
0002d0  e3a04000          MOV      r4,#0
0002d4  e3a05000          MOV      r5,#0
0002d8  e3a06000          MOV      r6,#0
;;;236    	float tt;
;;;237    	int temp = 0,ret,i;
0002dc  e3a07000          MOV      r7,#0
;;;238    	uart_printf(" Temperature Test!\n");
0002e0  e28f0f72          ADR      r0,|L1.1200|
0002e4  ebfffffe          BL       uart_printf
;;;239    	s3c2410_gpio_cfgpin(CFG_OUT);
0002e8  e3a00001          MOV      r0,#1
0002ec  ebfffffe          BL       s3c2410_gpio_cfgpin
;;;240    	iic_init_8led();
0002f0  ebfffffe          BL       iic_init_8led
;;;241    	do{ 
0002f4  e1a00000          MOV      r0,r0
                  |L1.760|
;;;242    		ret = ds18b20_reset();
0002f8  ebfffffe          BL       ds18b20_reset
0002fc  e1a08000          MOV      r8,r0
;;;243    		if (ret == -1) 
000300  e3780001          CMN      r8,#1
000304  1a000001          BNE      |L1.784|
;;;244    			return ;
;;;245    		write_byte(0xcc);
;;;246    		write_byte(0x44);
;;;247    		udelay(1000*800);
;;;248    		ds18b20_reset();
;;;249    		write_byte(0xcc);
;;;250    		write_byte(0xbe);
;;;251    
;;;252    		a = read_byte();
;;;253    		b = read_byte(); 
;;;254    				
;;;255    		t = b;
;;;256    		t <<= 8;
;;;257    		t = t | a;
;;;258    
;;;259    		tt = t * 0.0625;
;;;260       		tt = tt * 1 + 0.5; //放大10倍输出并四舍五入
;;;261    		uart_printf(" The current temperature is: %5.4fC\r",tt);
;;;262    		temp = (int)tt;
;;;263    		iic_write_8led(0x70, 0x10, f_szDigital[(temp%10)]);	 //0
;;;264    		iic_write_8led(0x70, 0x11, f_szDigital[temp/10]);
;;;265    		if (temp >= Warning)
;;;266    		{	 		
;;;267    			for(i = 0; i < 10; i++ )
;;;268    			{ 	
;;;269    				iic_write_8led(0x70, 0x12, f_szDigital[8]);
;;;270    				beep_on_off(temp);
;;;271    				udelay(1000);
;;;272    				iic_write_8led(0x70, 0x12, f_szDigital[0]);
;;;273    				beep_on_off(temp);
;;;274    				udelay(1000);
;;;275    			}
;;;276    		}
;;;277    	}while(1); 
;;;278    } 
000308  e8bd5fff          POP      {r0-r12,lr}
00030c  e12fff1e          BX       lr
                  |L1.784|
000310  e3a000cc          MOV      r0,#0xcc              ;245
000314  ebfffffe          BL       write_byte
000318  e3a00044          MOV      r0,#0x44              ;246
00031c  ebfffffe          BL       write_byte
000320  e59f019c          LDR      r0,|L1.1220|
000324  ebfffffe          BL       udelay
000328  ebfffffe          BL       ds18b20_reset
00032c  e3a000cc          MOV      r0,#0xcc              ;249
000330  ebfffffe          BL       write_byte
000334  e3a000be          MOV      r0,#0xbe              ;250
000338  ebfffffe          BL       write_byte
00033c  ebfffffe          BL       read_byte
000340  e1a04000          MOV      r4,r0                 ;252
000344  ebfffffe          BL       read_byte
000348  e1a05000          MOV      r5,r0                 ;253
00034c  e1a06005          MOV      r6,r5                 ;255
000350  e1a05006          MOV      r5,r6                 ;256
000354  e1a06406          LSL      r6,r6,#8              ;256
000358  e1866004          ORR      r6,r6,r4              ;257
00035c  e1a00006          MOV      r0,r6                 ;259
000360  ebfffffe          BL       __aeabi_ui2d
000364  e58d0008          STR      r0,[sp,#8]            ;259
000368  e58d100c          STR      r1,[sp,#0xc]          ;259
00036c  e28f0f55          ADR      r0,|L1.1224|
000370  e890000c          LDM      r0,{r2,r3}            ;259
000374  e59d0008          LDR      r0,[sp,#8]            ;259
000378  ebfffffe          BL       __aeabi_dmul
00037c  e88d0003          STM      sp,{r0,r1}            ;259
000380  ebfffffe          BL       __aeabi_d2f
000384  e1a0a000          MOV      r10,r0                ;259
000388  e3a015fe          MOV      r1,#0x3f800000        ;260
00038c  e1a0000a          MOV      r0,r10                ;260
000390  ebfffffe          BL       __aeabi_fmul
000394  e1a0b000          MOV      r11,r0                ;260
000398  ebfffffe          BL       __aeabi_f2d
00039c  e58d0008          STR      r0,[sp,#8]            ;260
0003a0  e58d100c          STR      r1,[sp,#0xc]          ;260
0003a4  e28f0f49          ADR      r0,|L1.1232|
0003a8  e890000c          LDM      r0,{r2,r3}            ;260
0003ac  e59d0008          LDR      r0,[sp,#8]            ;260
0003b0  ebfffffe          BL       __aeabi_dadd
0003b4  e88d0003          STM      sp,{r0,r1}            ;260
0003b8  ebfffffe          BL       __aeabi_d2f
0003bc  e1a0a000          MOV      r10,r0                ;260
0003c0  e1a0000a          MOV      r0,r10                ;261
0003c4  ebfffffe          BL       __aeabi_f2d
0003c8  e58d0008          STR      r0,[sp,#8]            ;261
0003cc  e58d100c          STR      r1,[sp,#0xc]          ;261
0003d0  e1a03001          MOV      r3,r1                 ;261
0003d4  e1a02000          MOV      r2,r0                 ;261
0003d8  e28f00f8          ADR      r0,|L1.1240|
0003dc  ebfffffe          BL       uart_printf
0003e0  e1a0000a          MOV      r0,r10                ;262
0003e4  ebfffffe          BL       __aeabi_f2iz
0003e8  e1a07000          MOV      r7,r0                 ;262
0003ec  e3a0100a          MOV      r1,#0xa               ;263
0003f0  e1a00007          MOV      r0,r7                 ;263
0003f4  ebfffffe          BL       __aeabi_idivmod
0003f8  e59f0100          LDR      r0,|L1.1280|
0003fc  e7d0b001          LDRB     r11,[r0,r1]           ;263
000400  e1a0200b          MOV      r2,r11                ;263
000404  e3a01010          MOV      r1,#0x10              ;263
000408  e3a00070          MOV      r0,#0x70              ;263
00040c  ebfffffe          BL       iic_write_8led
000410  e3a0100a          MOV      r1,#0xa               ;264
000414  e1a00007          MOV      r0,r7                 ;264
000418  ebfffffe          BL       __aeabi_idivmod
00041c  e59f10dc          LDR      r1,|L1.1280|
000420  e7d1b000          LDRB     r11,[r1,r0]           ;264
000424  e1a0200b          MOV      r2,r11                ;264
000428  e3a01011          MOV      r1,#0x11              ;264
00042c  e3a00070          MOV      r0,#0x70              ;264
000430  ebfffffe          BL       iic_write_8led
000434  e357001e          CMP      r7,#0x1e              ;265
000438  ba000016          BLT      |L1.1176|
00043c  e3a09000          MOV      r9,#0                 ;267
000440  ea000012          B        |L1.1168|
                  |L1.1092|
000444  e59f00b4          LDR      r0,|L1.1280|
000448  e5d02008          LDRB     r2,[r0,#8]            ;269  ; f_szDigital
00044c  e3a01012          MOV      r1,#0x12              ;269
000450  e3a00070          MOV      r0,#0x70              ;269
000454  ebfffffe          BL       iic_write_8led
000458  e1a00007          MOV      r0,r7                 ;270
00045c  ebfffffe          BL       beep_on_off
000460  e3a00ffa          MOV      r0,#0x3e8             ;271
000464  ebfffffe          BL       udelay
000468  e59f0090          LDR      r0,|L1.1280|
00046c  e5d02000          LDRB     r2,[r0,#0]            ;272  ; f_szDigital
000470  e3a01012          MOV      r1,#0x12              ;272
000474  e3a00070          MOV      r0,#0x70              ;272
000478  ebfffffe          BL       iic_write_8led
00047c  e1a00007          MOV      r0,r7                 ;273
000480  ebfffffe          BL       beep_on_off
000484  e3a00ffa          MOV      r0,#0x3e8             ;274
000488  ebfffffe          BL       udelay
00048c  e2899001          ADD      r9,r9,#1              ;267
                  |L1.1168|
000490  e359000a          CMP      r9,#0xa               ;267
000494  baffffea          BLT      |L1.1092|
                  |L1.1176|
000498  eaffff96          B        |L1.760|
                  |L1.1180|
00049c  21140000          DCD      0x21140000
                  |L1.1184|
0004a0  00002710          DCD      0x00002710
                  |L1.1188|
0004a4  0000f7ff          DCD      0x0000f7ff
                  |L1.1192|
0004a8  20457272          DCB      " Err"
0004ac  6f720a00          DCB      "or\n\0"
                  |L1.1200|
0004b0  2054656d          DCB      " Tem"
0004b4  70657261          DCB      "pera"
0004b8  74757265          DCB      "ture"
0004bc  20546573          DCB      " Tes"
0004c0  74210a00          DCB      "t!\n\0"
                  |L1.1220|
0004c4  000c3500          DCD      0x000c3500
                  |L1.1224|
0004c8  00000000
0004cc  3fb00000          DCFD     0x3fb0000000000000 ; 0.0625
                  |L1.1232|
0004d0  00000000
0004d4  3fe00000          DCFD     0x3fe0000000000000 ; 0.5
                  |L1.1240|
0004d8  20546865          DCB      " The"
0004dc  20637572          DCB      " cur"
0004e0  72656e74          DCB      "rent"
0004e4  2074656d          DCB      " tem"
0004e8  70657261          DCB      "pera"
0004ec  74757265          DCB      "ture"
0004f0  2069733a          DCB      " is:"
0004f4  2025352e          DCB      " %5."
0004f8  3466430d          DCB      "4fC\r"
0004fc  00000000          DCB      "\0\0\0\0"
                  |L1.1280|
000500  00000000          DCD      f_szDigital
                          ENDP


                          AREA ||.data||, DATA, ALIGN=0

                  f_szDigital
000000  fc60daf2          DCB      0xfc,0x60,0xda,0xf2
000004  66b6bee0          DCB      0x66,0xb6,0xbe,0xe0
000008  fef6              DCB      0xfe,0xf6

⌨️ 快捷键说明

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