?? ds18b20.lst
字號(hào):
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
//以下重復(fù)定義用于端口的定義,如用戶需要針對(duì)自用的設(shè)計(jì)選擇端口時(shí),可以更改
//以下宏定義中的定義即可
//.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的驅(qū)動(dòng)程序需要修改CPU主頻,為了讓用戶設(shè)用DS18B20 的API函數(shù)后,能
//恢復(fù)到原來的系統(tǒng)時(shí)鐘、CPU主頻設(shè)置,用戶可以在下面的常量R_SystemClock中定義
//用戶設(shè)計(jì)需要的值
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);
// 實(shí)現(xiàn)功能: 在49MHz的主頻下的uS延時(shí)程序
// 入口參數(shù): 需要延時(shí)的時(shí)長(zhǎng)(以u(píng)S為單位)
// 出口參數(shù): 無
//======================================================
.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);
// 實(shí)現(xiàn)功能: 在49MHz的主頻下的uS延時(shí)程序
// 入口參數(shù): 需要延時(shí)的時(shí)長(zhǎng)(以u(píng)S為單位)
// 出口參數(shù): 無
//======================================================
.PUBLIC _F_18B20_Delay1
0000A349 09 93 00 80 r1=DQ; //將端口b15設(shè)置成帶數(shù)據(jù)緩存器的高電平輸出
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: //延時(shí)750ms用來完成溫度轉(zhuǎn)換
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);
// 實(shí)現(xiàn)功能: 將CPU主頻設(shè)置為49MHz,為的是在時(shí)序控制時(shí)
// 可以獲取到較精確的延時(shí)
// 入口參數(shù): 無
// 出口參數(shù): 無
//======================================================
.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);
// 實(shí)現(xiàn)功能: 恢復(fù)系統(tǒng)及CPU主頻,而至于恢復(fù)為多少,則
// 由前面定義的變量R_SystemClock的值確定,用
// 戶可根據(jù)各自的程序設(shè)計(jì)需求進(jìn)行改動(dòng)
// 入口參數(shù): 無
// 出口參數(shù): 無
//======================================================
.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);
// 實(shí)現(xiàn)功能: 端口初始化子程序
// 入口參數(shù): 無
// 出口參數(shù): 無
//======================================================
.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
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -