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

📄 ds18b20.lst

📁 温度传感器ds18b20的操作代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
Sunplus u'nSP Assembler - Ver. 1.14.3.1
              Listing File Has Been Relocated
                            	.DEFINE           P_IOA_Dir                   0x7002
                            	.DEFINE           P_IOA_Attrib               0x7003
                            	.DEFINE           P_IOA_Latch                     0x7004
                            	.DEFINE           P_IOB_Data                0x7005
                            	.DEFINE           P_IOB_Buffer              0x7006
                            	.DEFINE           P_IOB_Dir                   0x7007
                            	.DEFINE           P_IOB_Attrib               0x7008
                            	.DEFINE           P_SystemClock           0x7013
                            	.DEFINE           P_TimerA_Data           0x700A
                            	.DEFINE           P_TimerA_Ctrl           0x700B
                            	.DEFINE           P_INT_Ctrl              0x7010
                            	.DEFINE           P_INT_Clear             0x7011
                            	.DEFINE           P_Watchdog_Clear        0x7012
                            	//以下重复定义用于端口的定义,如用户需要针对自用的设计选择端口时,可以更改
                            	//以下宏定义中的定义即可
                            	//.DEFINE Port_Data        P_IOB_Data
                            	//.DEFINE Port_Buffer      P_IOB_Buffer
                            	//.DEFINE Port_Dir         P_IOB_Dir
                            	//.DEFINE Port_Attrib      P_IOB_Attrib
                            	.DEFINE DQ               0x8000
                            	//由于DS18B20的驱动程序需要修改CPU主频,为了让用户设用DS18B20 的API函数后,能
                            	//恢复到原来的系统时钟、CPU主频设置,用户可以在下面的常量R_SystemClock中定义
                            	//用户设计需要的值
0000A33B                    	.DATA
                            	R_SystemClock:
0000A33B 18 00              	.DW 0x0018                                //buffer of save the system clock
                            	
                            	//======================================================
                            	// 汇编格式: _F_18B20_Delay
                            	// C格式:        void F_18B20_Delay(unsigned int Timers);
                            	// 实现功能: 在49MHz的主频下的uS延时程序
                            	// 入口参数: 需要延时的时长(以uS为单位)
                            	// 出口参数: 无
                            	//======================================================      
                            	.PUBLIC _F_18B20_Delay
                            	_F_18B20_Delay:
                            	  //      cmp r1,1
                            	  //      jna Delay_Exit
                            	//Delay_Loop:
                            	  //      nop
                            	  //      nop
                            	 //      nop
                            	  //      nop
                            	  //      nop
                            	  //      nop
                            	  //      nop
                            	 //      nop
                            	 //      nop
                            	 //       nop
                            	 //       r1-=1
                            	 //       jnz Delay_Loop
                            	//Delay_Exit:
                            	 //       retf
0000A33C 09 93 26 FC        	       r1=0xfc26;
0000A33E 19 D3 0A 70        	       [P_TimerA_Data]=r1;
0000A340 4C 92              	       r1=0x000c;
0000A341 19 D3 0B 70        	       [P_TimerA_Ctrl]=r1;
0000A343 09 93 00 54        	       r1=0x5400;
0000A345 19 D3 10 70        	       [P_INT_Ctrl]=r1;
0000A347 41 F1              	       int IRQ;
0000A348 90 9A              	       retf;
                            	//======================================================
                            	// 汇编格式: _F_18B20_Delay1
                            	// C格式:        void F_18B20_Delay1(unsigned int Timers);
                            	// 实现功能: 在49MHz的主频下的uS延时程序
                            	// 入口参数: 需要延时的时长(以uS为单位)
                            	// 出口参数: 无
                            	//======================================================      
                            	 .PUBLIC _F_18B20_Delay1
0000A349 09 93 00 80        	       r1=DQ;                        //将端口b15设置成带数据缓存器的高电平输出
0000A34B 19 D3 08 70        	      [P_IOB_Attrib]=r1;
0000A34D 19 D3 07 70        	      [P_IOB_Dir]= r1 ;
0000A34F 19 D3 05 70        	      [P_IOB_Data] = r1;            
                            	_F_18B20_Delay1:                    //延时750ms用来完成温度转换
0000A351 0A 95 F8 02        	       r2=760
                            	Delay:
0000A353 09 93 E8 03        	       r1=1000
                            	Delay_Loop1:
0000A355 00 EE              	         nop
0000A356 00 EE              	         nop
0000A357 00 EE              	         nop
0000A358 00 EE              	         nop
0000A359 00 EE              	         nop
0000A35A 00 EE              	         nop
0000A35B 00 EE              	         nop
0000A35C 00 EE              	         nop
0000A35D 00 EE              	         nop
0000A35E 00 EE              	         nop      
0000A35F 41 22              	      r1-=1
0000A360 41 42              	      cmp r1,1 
0000A361 4D 1E              	      jnb Delay_Loop1
0000A362 41 24              	      r2-=1
0000A363 41 44              	      cmp r2,1
0000A364 52 1E              	      jnb Delay
0000A365 90 9A              	      retf
                            	               
                            	//======================================================
                            	// 汇编格式: _F_18B20_SetSystemCLK
                            	// C格式:     void   F_18B20_SetSystemCLK(void);
                            	// 实现功能: 将CPU主频设置为49MHz,为的是在时序控制时
                            	//                                     可以获取到较精确的延时
                            	// 入口参数: 无
                            	// 出口参数: 无
                            	//======================================================
                            	.PUBLIC _F_18B20_SetSystemCLK
                            	_F_18B20_SetSystemCLK:
0000A366 09 93 88 00        	        r1 = 0x88
0000A368 19 D3 13 70        	        [P_SystemClock] = r1                 //set system clock upto 49MHz
0000A36A 90 9A              	        retf
                            	        
                            	//======================================================
                            	// 汇编格式: _F_18B20_RsuSystemCLK
                            	// C格式:        void F_18B20_RsuSystemCLK(void);
                            	// 实现功能: 恢复系统及CPU主频,而至于恢复为多少,则
                            	//            由前面定义的变量R_SystemClock的值确定,用
                            	//            户可根据各自的程序设计需求进行改动
                            	// 入口参数: 无
                            	// 出口参数: 无
                            	//======================================================
                            	.PUBLIC _F_18B20_RsuSystemCLK
                            	_F_18B20_RsuSystemCLK:
0000A36B 11 93 3B A3        	        r1 = [R_SystemClock]
0000A36D 19 D3 13 70        	        [P_SystemClock] = r1
0000A36F 90 9A              	        retf
                            	
                            	//======================================================
                            	// 汇编格式: _F_18B20_Initial_IO
                            	// C格式:        void F_18B20_Initial_IO(void);
                            	// 实现功能: 端口初始化子程序
                            	// 入口参数: 无
                            	// 出口参数: 无
                            	//======================================================
                            	.PUBLIC _F_18B20_Initial_IO              
                            	_F_18B20_Initial_IO:               //端口初始化将b15口作为悬浮式输入
0000A370 09 93 00 80        	        r1=DQ;
0000A372 19 D3 08 70        	        [P_IOB_Attrib]=r1;
0000A374 40 92              	        r1=0x0000;
0000A375 19 D3 05 70        	        [P_IOB_Data] = r1;
0000A377 19 D3 07 70        	        [P_IOB_Dir]= r1  
0000A379 90 9A              	        retf
                            	
                            	//======================================================
                            	// 汇编格式: _F_18B20_Reset

⌨️ 快捷键说明

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