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

📄 ds18b20.lst

📁 用89C51单片机,LCD1602,建成的数字温度计.
💻 LST
📖 第 1 页 / 共 3 页
字号:
0078 C4              342             swap    a;
0079 F5F0            343             mov     b,a;//
007B ED              344             mov     a,r5;
007C 54F0            345             anl     a,#0f0h;
007E C4              346             swap    a;
007F 45F0            347             orl     a,b;
0081 FE              348             mov     r6,a;//存整数部分
0082 ED              349             mov     a,r5;
0083 540F            350             anl     a,#0fh;
0085 C4              351             swap    a;
0086 FF              352             mov     r7,a;//存小数部分
0087 22              353             ret
                     354     ;==========================================================================================
                             ===
                     355     ;CRC校验
                     356     ;函数原型:bit tcrc(unsigned char data *buf,unsigned char len)
                     357     ;入口:数据首址在R7;字节数在R5中
                     358     ;出口:cy=1数据正确;ACC=0数据不正确,需重新读取数据
                     359     ;==========================================================================================
                             ===
                     360     ?PR?_tcrc?DS18B20   SEGMENT CODE 
                     361             PUBLIC  _tcrc
                     362     
----                 363     RSEG  ?PR?_tcrc?DS18B20
                     364     
                     365     
0000                 366     _tcrc:                   ;字节计数单元赋初值
0000 7A00            367             mov     r2,#0;  移位寄存器清零
0002 EF              368             mov     a,r7;
0003 F8              369             mov     r0,a;
0004 E6              370     tcrc2:  mov     a,@r0;
0005 FB              371             mov     r3,a;
0006 7E08            372             mov     r6,#8;移位次数单元赋初值
0008 6A              373     tcrc3:  xrl     a,r2;
0009 5401            374             anl     a,#01h;
000B FC              375             mov     r4,a;
000C EA              376             mov     a,r2;
000D C3              377             clr     c;
000E 13              378             rrc     a;
000F BC0102          379             cjne    r4,#1,tcrc4;结果为1进行异或操作
0012 648C            380             xrl     a,#8ch;
0014 FA              381     tcrc4:  mov     r2,a;
0015 EB              382             mov     a,r3;
0016 13              383             rrc     a;
0017 FB              384             mov     r3,a;
A51 MACRO ASSEMBLER  DS18B20                                                              04/23/2007 23:23:06 PAGE     7

0018 DEEE            385             djnz    r6,tcrc3;
001A 08              386             inc     r0;
001B DDE7            387             djnz    r5,tcrc2;
001D EA              388             mov     a,r2;
001E D3              389             setb    c;      
001F 6001            390             jz      tcrc5;
0021 C3              391             clr     c;
0022 22              392     tcrc5:  ret
                     393     ;==========================================================================================
                             ===
                     394     ;单字节BCD码转换为单字节HEX
                     395     ;入口:ACC
                     396     ;出口:ACC
                     397     ;==========================================================================================
                             ===
0023 75F00A          398     bcdh:   mov     b,#10;
0026 84              399             div     ab;
0027 ACF0            400             mov     r4,b;
0029 75F00A          401             mov     b,#10;
002C A4              402             mul     ab;
002D 2C              403             add     a,r4;
002E 22              404             ret;
                     405     ;==========================================================================================
                             ==
                     406     ;延时子程序
                     407     ;===========延时值的计算=================
                     408     ;       mov     r5,#x1; //2MC
                     409     ;loop:  mov     r6,#x2;//2MC
                     410     ;       djnz    r6,$;   //2/3MC
                     411     ;       djnz    r5,loop;//2/3MC
                     412     ;       ret             //2
                     413     ;time = x1(2/3*x2+2+2/3)/24.5;
                     414     ;========================================
                     415     ;;延时大于480u
002F                 416     delay_500uS:            ;延时大于480uS
002F 7D02            417             mov     r5,#2;
0031 7E82            418     d500_1: mov     r6,#130;
0033 DEFE            419             djnz    r6,$;           
0035 DDFA            420             djnz    r5,d500_1; 
0037 22              421             ret     
                     422                     
0038                 423     delay_90uS:
0038 7D02            424             MOV     R5,#2;
003A 7E14            425     d90_1:  mov     r6,#20;
003C DEFE            426             DJNZ    R6,$;
                     427     ;       jnb     DQ,i_rett;
003E DDFA            428             djnz    R5,d90_1;
                     429     ;       ajmp    i_rett1
                     430     ;i_rett:nop
                     431     ;       clr     DQ1;
                     432      ;i_rett1: 
0040 22              433             ret
                     434             
0041                 435     delay_400uS:
0041 7D02            436             mov     r5,#2;
0043 7E64            437     d400_1: mov     r6,#100;
0045 DEFE            438             djnz    r6,$;
0047 DDFA            439             djnz    r5,d400_1;
0049 22              440             ret
                     441             
                     442             end                             
A51 MACRO ASSEMBLER  DS18B20                                                              04/23/2007 23:23:06 PAGE     8

SYMBOL TABLE LISTING
------ ----- -------


N A M E                    T Y P E  V A L U E   ATTRIBUTES

?PR?RESET_DS18B20?DS18B20  C SEG    006AH       REL=UNIT
?PR?TEMP_CONVER?DS18B20 .  C SEG    000EH       REL=UNIT
?PR?_HEXTOBCD?DS18B20 . .  C SEG    0088H       REL=UNIT
?PR?_READ_ROM?DS18B20 . .  C SEG    0017H       REL=UNIT
?PR?_READ_SCRAT?DS18B20 .  C SEG    001CH       REL=UNIT
?PR?_TCRC?DS18B20 . . . .  C SEG    004AH       REL=UNIT
?PR?_WRITE_SCRAT?DS18B20.  C SEG    0019H       REL=UNIT
ACC . . . . . . . . . . .  D ADDR   00E0H   A   
B . . . . . . . . . . . .  D ADDR   00F0H   A   
BCDH. . . . . . . . . . .  C ADDR   0023H   R   SEG=?PR?_TCRC?DS18B20
C_NEXT. . . . . . . . . .  C ADDR   0066H   R   SEG=?PR?RESET_DS18B20?DS18B20
C_NEXT1 . . . . . . . . .  C ADDR   0067H   R   SEG=?PR?RESET_DS18B20?DS18B20
D400_1. . . . . . . . . .  C ADDR   0043H   R   SEG=?PR?_TCRC?DS18B20
D500_1. . . . . . . . . .  C ADDR   0031H   R   SEG=?PR?_TCRC?DS18B20
D90_1 . . . . . . . . . .  C ADDR   003AH   R   SEG=?PR?_TCRC?DS18B20
DATA_APART. . . . . . . .  C ADDR   0075H   R   SEG=?PR?_HEXTOBCD?DS18B20
DELAY_400US . . . . . . .  C ADDR   0041H   R   SEG=?PR?_TCRC?DS18B20
DELAY_500US . . . . . . .  C ADDR   002FH   R   SEG=?PR?_TCRC?DS18B20
DELAY_90US. . . . . . . .  C ADDR   0038H   R   SEG=?PR?_TCRC?DS18B20
DQ. . . . . . . . . . . .  B ADDR   00B0H.5 A   
DQ_SELECT_RESPONSES1. . .  C ADDR   005BH   R   SEG=?PR?RESET_DS18B20?DS18B20
DS18B20 . . . . . . . . .  N NUMB   -----       
EA. . . . . . . . . . . .  B ADDR   00A8H.7 A   
F0. . . . . . . . . . . .  B ADDR   00D0H.5 A   
HBCD. . . . . . . . . . .  C ADDR   0017H   R   SEG=?PR?_HEXTOBCD?DS18B20
HBCD_1. . . . . . . . . .  C ADDR   003BH   R   SEG=?PR?_HEXTOBCD?DS18B20
HBCD_2. . . . . . . . . .  C ADDR   0043H   R   SEG=?PR?_HEXTOBCD?DS18B20
HBCD_3. . . . . . . . . .  C ADDR   004DH   R   SEG=?PR?_HEXTOBCD?DS18B20
HBCD_4. . . . . . . . . .  C ADDR   0059H   R   SEG=?PR?_HEXTOBCD?DS18B20
I_RET . . . . . . . . . .  C ADDR   0013H   R   SEG=?PR?RESET_DS18B20?DS18B20
J_RET . . . . . . . . . .  C ADDR   0016H   R   SEG=?PR?RESET_DS18B20?DS18B20
NEG . . . . . . . . . . .  C ADDR   0063H   R   SEG=?PR?_HEXTOBCD?DS18B20
NEG_RET . . . . . . . . .  C ADDR   0074H   R   SEG=?PR?_HEXTOBCD?DS18B20
P0. . . . . . . . . . . .  D ADDR   0080H   A   
P3. . . . . . . . . . . .  D ADDR   00B0H   A   
PSW . . . . . . . . . . .  D ADDR   00D0H   A   
READ. . . . . . . . . . .  C ADDR   000CH   R   SEG=?PR?_READ_ROM?DS18B20
READ_BYTE . . . . . . . .  C ADDR   003BH   R   SEG=?PR?RESET_DS18B20?DS18B20
READ_LOOP . . . . . . . .  C ADDR   0040H   R   SEG=?PR?RESET_DS18B20?DS18B20
RESET_DS18B20 . . . . . .  C ADDR   0000H   R   SEG=?PR?RESET_DS18B20?DS18B20
R_SCRAT_LOOP. . . . . . .  C ADDR   0011H   R   SEG=?PR?_READ_SCRAT?DS18B20
TCRC2 . . . . . . . . . .  C ADDR   0004H   R   SEG=?PR?_TCRC?DS18B20
TCRC3 . . . . . . . . . .  C ADDR   0008H   R   SEG=?PR?_TCRC?DS18B20
TCRC4 . . . . . . . . . .  C ADDR   0014H   R   SEG=?PR?_TCRC?DS18B20
TCRC5 . . . . . . . . . .  C ADDR   0022H   R   SEG=?PR?_TCRC?DS18B20
TEMP_CONVER . . . . . . .  C ADDR   0000H   R   SEG=?PR?TEMP_CONVER?DS18B20
WRITE1. . . . . . . . . .  C ADDR   002CH   R   SEG=?PR?RESET_DS18B20?DS18B20
WRITE_BYTE. . . . . . . .  C ADDR   0019H   R   SEG=?PR?RESET_DS18B20?DS18B20
W_LOOP1 . . . . . . . . .  C ADDR   001EH   R   SEG=?PR?RESET_DS18B20?DS18B20
W_LOOP2 . . . . . . . . .  C ADDR   0034H   R   SEG=?PR?RESET_DS18B20?DS18B20
W_SCRAT_LOOP. . . . . . .  C ADDR   0011H   R   SEG=?PR?_WRITE_SCRAT?DS18B20
_HEXTOBCD . . . . . . . .  C ADDR   0000H   R   SEG=?PR?_HEXTOBCD?DS18B20
_READ_ROM . . . . . . . .  C ADDR   0000H   R   SEG=?PR?_READ_ROM?DS18B20
_READ_SCRAT . . . . . . .  C ADDR   0000H   R   SEG=?PR?_READ_SCRAT?DS18B20
_TCRC . . . . . . . . . .  C ADDR   0000H   R   SEG=?PR?_TCRC?DS18B20
_WRITE_SCRAT. . . . . . .  C ADDR   0000H   R   SEG=?PR?_WRITE_SCRAT?DS18B20


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

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