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

📄 temperature.lst

📁 《PIC单片机应用开发典型模块》源代码及图片
💻 LST
📖 第 1 页 / 共 2 页
字号:
0084 00              117         NOP
0085 DAEE            118         DJNZ R2,WR1                 ;  如果一个字节没写完,继续写
0087 D2A2            119         SETB P2.2                    ;  拉高数据线
0089 22              120         RET
                     121     ;----------------------------------
                     122     ;读DS18B20的子程序(有具体的时序要求)
                     123     ;----------------------------------
008A                 124     READ_18200: 
A51 MACRO ASSEMBLER  TEMPERATURE                                                          06/23/2007 10:21:11 PAGE     3

                     125     ; 读DS18B20的程序,从DS18B20中读出两个字节的温度数据
008A 7C02            126         MOV R4,#2                ;  将温度高位和低位从DS18B20中读出
008C 7929            127         MOV R1,#29H              ;  低位存入29H(TEMPER_L),高位存入28H(TEMPER_H)
008E                 128     RE00:
008E 7A08            129         MOV R2,#8                ;  数据一共有8位
0090                 130     RE01:
0090 C3              131         CLR C                    ;  清除进位标志位
0091 D2A2            132         SETB P2.2                 ;  拉高数据线后,等待1微秒初始化读
0093 00              133         NOP
0094 00              134         NOP
0095 C2A2            135         CLR P2.2                  ;  拉低数据线后,保持1微秒以上使读初始化有效
0097 00              136         NOP
0098 00              137         NOP
0099 00              138         NOP
009A D2A2            139         SETB P2.2                 ;  拉高数据线后,开始读操作
009C 7B08            140         MOV R3,#8
009E                 141     RE10:
009E DBFE            142         DJNZ R3,RE10             ;  等待15微秒后,写入数据正确
00A0 A2A2            143         MOV C,P2.2               ;  将数据读入累加器
00A2 7B15            144         MOV R3,#21              
00A4                 145     RE20:
00A4 DBFE            146         DJNZ R3,RE20             ;  等待60微秒以上后,进行下一次读操作
00A6 13              147         RRC A                    ;  将累加器带进位右移
00A7 DAE7            148         DJNZ R2,RE01             ;  如果没读满一个字节,继续读取数据
00A9 F7              149         MOV @R1,A               ;  将累加器中的数据存储进地址29H中
00AA 19              150         DEC R1
00AB DCE1            151         DJNZ R4,RE00             ;  继续读取高位
00AD 22              152         RET
                     153     ;----------------------------------
                     154     ;显示子程序
                     155     ;----------------------------------
00AE                 156     DISPLAY:
00AE E529            157         MOV A,29H                  ;  将29H中的十六进制数转换成10进制
00B0 75F00A          158         MOV B,#10                   ;  10进制/10=10进制
00B3 84              159         DIV AB
00B4 F521            160         MOV B_BIT,A                ;  十位在A
00B6 85F020          161         MOV A_BIT,B                ;  个位在B
00B9 9000E0          162         MOV DPTR,#NUMTAB        ;  指定查表启始地址
00BC 7804            163         MOV R0,#4
00BE                 164     DPL1:
00BE 79FA            165         MOV R1,#250                   ;  显示1000次
00C0                 166     DPLOP: 
00C0 E520            167         MOV A,A_BIT                  ;  取个位数
00C2 93              168         MOVC A,@A+DPTR             ;  查个位数的7段代码
00C3 F580            169         MOV P0,A                      ;  送出个位的7段代码
00C5 C2A7            170         CLR P2.7                       ;  开个位显示
00C7 11DB            171         ACALL D1MS                   ;  显示1ms
00C9 D2A7            172         SETB P2.7
00CB E521            173         MOV A,B_BIT                   ;  取十位数
00CD 93              174         MOVC A,@A+DPTR              ;  查十位数的7段代码
00CE F580            175         MOV P0,A                       ;  送出十位的7段代码
00D0 C2A6            176         CLR P2.6                        ;  开十位显示
00D2 11DB            177         ACALL D1MS                    ;  显示1ms
00D4 D2A6            178         SETB P2.6
00D6 D9E8            179         DJNZ R1,DPLOP                   ;  未到100次循环,则继续
00D8 D8E4            180         DJNZ R0,DPL1                    ;   未到4个100次循环,则继续
00DA 22              181         RET
                     182     ;  1MS延时
00DB                 183     D1MS:
00DB 7F50            184         MOV R7,#80
00DD DFFE            185         DJNZ R7,$
00DF 22              186         RET
                     187     ;  实验板上的7段数码管0~9数字的共阴显示代码
00E0 3F065B4F        188     NUMTAB: DB 03FH,06H,5BH,4FH,66H,06DH,07DH,07H,07FH,06FH
00E4 666D7D07                
00E8 7F6F                    
A51 MACRO ASSEMBLER  TEMPERATURE                                                          06/23/2007 10:21:11 PAGE     4

                     189         END
A51 MACRO ASSEMBLER  TEMPERATURE                                                          06/23/2007 10:21:11 PAGE     5

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


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

A_BIT. . . . . . .  N NUMB   0020H   A   
B. . . . . . . . .  D ADDR   00F0H   A   
B_BIT. . . . . . .  N NUMB   0021H   A   
D1MS . . . . . . .  C ADDR   00DBH   A   
DISPLAY. . . . . .  C ADDR   00AEH   A   
DPL1 . . . . . . .  C ADDR   00BEH   A   
DPLOP. . . . . . .  C ADDR   00C0H   A   
FLAG1. . . . . . .  N NUMB   0038H   A   
GET_TEMPER . . . .  C ADDR   0047H   A   
INIT_1820. . . . .  C ADDR   001AH   A   
MAIN . . . . . . .  C ADDR   0000H   A   
NUMTAB . . . . . .  C ADDR   00E0H   A   
P0 . . . . . . . .  D ADDR   0080H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
P2 . . . . . . . .  D ADDR   00A0H   A   
RE00 . . . . . . .  C ADDR   008EH   A   
RE01 . . . . . . .  C ADDR   0090H   A   
RE10 . . . . . . .  C ADDR   009EH   A   
RE20 . . . . . . .  C ADDR   00A4H   A   
READ_18200 . . . .  C ADDR   008AH   A   
TEMPER_H . . . . .  N NUMB   0028H   A   
TEMPER_L . . . . .  N NUMB   0029H   A   
TSR1 . . . . . . .  C ADDR   0021H   A   
TSR2 . . . . . . .  C ADDR   002EH   A   
TSR3 . . . . . . .  C ADDR   0036H   A   
TSR4 . . . . . . .  C ADDR   003BH   A   
TSR5 . . . . . . .  C ADDR   0040H   A   
TSR6 . . . . . . .  C ADDR   0042H   A   
TSR7 . . . . . . .  C ADDR   0044H   A   
TSS2 . . . . . . .  C ADDR   0052H   A   
WR1. . . . . . . .  C ADDR   0075H   A   
WRITE_1820 . . . .  C ADDR   0072H   A   


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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