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

📄 ds18b20-dsy.lst

📁 DS18B20+1602LCD显示温度控制
💻 LST
📖 第 1 页 / 共 4 页
字号:
                     400     ;****************************************************
023F E527            401     CONVTEMP:      MOV  A,TEMPH       ;判温度是否零下
0241 5480            402                    ANL  A,#80H
0243 6014            403                    JZ  TEMPC1         ;温度零上转
0245 C3              404                    CLR  C
0246 E526            405                    MOV  A,TEMPL       ;二进制数求补(双字节)
0248 F4              406                    CPL  A             ;取反加1
0249 2401            407                    ADD  A,#01H
024B F526            408                    MOV  TEMPL,A
024D E527            409                    MOV  A,TEMPH       ;-
024F F4              410                    CPL  A
0250 3400            411                    ADDC  A,#00H
0252 F527            412                    MOV  TEMPH,A          ;TEMPHC HI =符号位
0254 752A0B          413                    MOV  TEMPHC,#0BH
0257 8003            414                    SJMP  TEMPC11
                     415     
0259 752A0A          416     TEMPC1:        MOV  TEMPHC,#0AH     ;
025C E52A            417     TEMPC11:       MOV  A,TEMPHC
025E C4              418                    SWAP  A
025F F52A            419                    MOV  TEMPHC,A
0261 E526            420                    MOV  A,TEMPL
0263 540F            421                    ANL  A,#0FH             ;乘0.0625
0265 90029F          422                    MOV  DPTR,#TEMPDOTTAB
0268 93              423                    MOVC  A,@A+DPTR
0269 F52B            424                    MOV  TEMPLC,A            ;TEMPLC  LOW=小数部分 BCD
                     425     
026B E526            426                    MOV  A,TEMPL             ;整数部分
026D 54F0            427                    ANL  A,#0F0H
026F C4              428                    SWAP  A
0270 F526            429                    MOV  TEMPL,A
0272 E527            430                    MOV  A,TEMPH
0274 540F            431                    ANL  A,#0FH
0276 C4              432                    SWAP  A
0277 4526            433                    ORL  A,TEMPL
0279 F52C            434                    MOV  TEMP_ZH,A           ;组合后的值存入TEMP_ZH
027B 120324          435                    LCALL  HEX2BCD1
027E F526            436                    MOV  TEMPL,A
0280 54F0            437                    ANL  A,#0F0H
0282 C4              438                    SWAP  A
0283 452A            439                    ORL  A,TEMPHC            ;TEMPHC LOW = 十位数 BCD
0285 F52A            440                    MOV  TEMPHC,A
0287 E526            441                    MOV  A,TEMPL
0289 540F            442                    ANL  A,#0FH
028B C4              443                    SWAP  A                  ;TEMPLC HI = 个位数 BCD
028C 452B            444                    ORL  A,TEMPLC
028E F52B            445                    MOV  TEMPLC,A
0290 EF              446                    MOV  A,R7
0291 600B            447                    JZ  TEMPC12
0293 540F            448                    ANL  A,#0FH
0295 C4              449                    SWAP  A
0296 FF              450                    MOV  R7,A
0297 E52A            451                    MOV  A,TEMPHC            ;TEMPHC HI = 百位数 BCD
0299 540F            452                    ANL  A,#0FH
029B 4F              453                    ORL  A,R7
029C F52A            454                    MOV  TEMPHC,A
A51 MACRO ASSEMBLER  DS18B20_DSY                                                          03/29/2005 16:14:10 PAGE     8

029E 22              455     TEMPC12:       RET
                     456     ;-----------------------------------------------------------
                     457     ;  小数部分码表
                     458     ;-----------------------------------------------------------
029F 00010102        459     TEMPDOTTAB:  DB   00H,01H,01H,02H,03H,03H,04H,04H,05H,06H
02A3 03030404                
02A7 0506                    
02A9 06070808        460                  DB   06H,07H,08H,08H,09H,09H
02AD 0909                    
                     461     
                     462     ;===========================================================
                     463     
                     464     ;显示区 BCD 码温度值刷新子程序
                     465     
                     466     ;===========================================================
                     467     
02AF E52B            468     DISPBCD:      MOV  A,TEMPLC
02B1 540F            469                   ANL  A,#0FH
02B3 F570            470                   MOV  70H,A                 ;小数位
02B5 E52B            471                   MOV  A,TEMPLC
02B7 C4              472                   SWAP  A
02B8 540F            473                   ANL  A,#0FH
02BA F571            474                   MOV  71H,A                 ;个位
02BC E52A            475                   MOV  A,TEMPHC
02BE 540F            476                   ANL  A,#0FH
02C0 F572            477                   MOV  72H,A                 ;十位
02C2 E52A            478                   MOV  A,TEMPHC
02C4 C4              479                   SWAP  A
02C5 540F            480                   ANL  A,#0FH
02C7 F573            481                   MOV  73H,A                 ;百位
02C9 E52A            482                   MOV  A,TEMPHC
02CB 54F0            483                   ANL  A,#0F0H
02CD B41002          484                   CJNE  A,#010H,DISPBCD0
02D0 8010            485                   SJMP  DISPBCD2
                     486     
02D2 E52A            487     DISPBCD0:     MOV  A,TEMPHC
02D4 540F            488                   ANL  A,#0FH
02D6 700A            489                   JNZ  DISPBCD2               ;十位数是0
02D8 E52A            490                   MOV  A,TEMPHC
02DA C4              491                   SWAP  A
02DB 540F            492                   ANL  A,#0FH
02DD 75730A          493                   MOV  73H,#0AH               ;符号位不显示
02E0 F572            494                   MOV  72H,A                  ;十位数显示符号
02E2 22              495     DISPBCD2:     RET
                     496     
                     497     ;***************************************************************
                     498     
                     499     ;     温度显示子程序
                     500     
                     501     ;***************************************************************
                     502     ;显示数据在70H - 73H 单元内,用4位共阳数码管显示,P0口输出段码数据,
                     503     ;P2 口作扫描控制,每个 LED 数码管亮 2MS 时间再逐位循环。
                     504     
02E3 7970            505     DISP1:       MOV  R1,#70H             ;指向显示数据首址
02E5 7D7F            506                  MOV  R5,#7FH            ;扫描控制字初值
02E7 7580FF          507     PLAY:        MOV  P0,#0FFH
02EA ED              508                  MOV  A,R5                ;扫描字放入A
02EB F5A0            509                  MOV  P2,A
02ED E7              510                  MOV  A,@R1               ;取显示数据到A
02EE 90030D          511                  MOV  DPTR,#TAB           ;取段码表地址
02F1 93              512                  MOVC  A,@A+DPTR          ;查显示数据对应段码
02F2 F580            513                  MOV  P0,A                ;段码放入P0口
02F4 ED              514                  MOV  A,R5
02F5 20E602          515                  JB   ACC.6,LOOP5         ;小数点处理
02F8 C287            516                  CLR  P0.7
02FA 12031B          517     LOOP5:       LCALL  DL_MS              ;显示2MS
A51 MACRO ASSEMBLER  DS18B20_DSY                                                          03/29/2005 16:14:10 PAGE     9

02FD 09              518                  INC  R1                   ;指向下一个地址
02FE ED              519                  MOV  A,R5                 ;放回 R5 内
02FF 30E304          520                  JNB  ACC.3,ENDOUT        ;ACC.3=0时一次显示结束
0302 03              521                  RR  A                    ;A 中数据循环左移
0303 FD              522                  MOV  R5,A                ;放入 R5 中
0304 41E7            523                  AJMP  PLAY               ;跳回 PLAY 循环
0306 7580FF          524     ENDOUT:      MOV  P0,#0FFH            ;一次显示结束,P0口复位
0309 75A0FF          525                  MOV  P2,#0FFH            ;P2口复位
030C 22              526                  RET
                     527     
030D                 528     TAB:
030D C0F9A4B0        529      DB  0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0BFH,0C7H,89H
0311 999282F8                
0315 8090FFBF                
0319 C789                    
                     530     ;   “0"  “1" “2" “3" “4"“5"“6"“7"“8"“9"“灭" “-" “L”“H"
                     531     
031B 7E0A            532     DL_MS:      MOV  R6,#0AH         ;2MS延时程序,LED 显示程序用
031D 7F64            533     DL1:        MOV  R7,#64H
031F DFFE            534     DL2:        DJNZ  R7,DL2
0321 DEFA            535                 DJNZ  R6,DL1
0323 22              536                 RET
                     537     
                     538     ;******************************************************
                     539     ;单字节十六进制转 BCD
                     540     ;******************************************************
0324 75F064          541     HEX2BCD1:   MOV  B,#064H          
0327 84              542                 DIV  AB               
0328 FF              543                 MOV  R7,A             
0329 740A            544                 MOV  A,#0AH
032B C5F0            545                 XCH  A,B
032D 84              546                 DIV  AB               
032E C4              547                 SWAP  A
032F 45F0            548                 ORL  A,B
0331 22              549                 RET
                     550     ;===============================================
                     551     ;报警值 TH、TL 数据转换
                     552     ;===============================================
0332                 553     ALERT_TL:
0332 75790C          554                  MOV  79H,#0CH
0335 75780B          555                  MOV  78H,#0BH
0338 E529            556                  MOV  A,TEMP_TL
033A 7877            557                  MOV  R0,#77H
033C 75F064          558                  MOV  B,#064H
033F 84              559                  DIV  AB
0340 B40103          560                  CJNE  A,#01H,ALERT_TL1
0343 F6              561                  MOV  @R0,A
0344 8003            562                  JMP  ALERT_TL2
0346 740B            563     ALERT_TL1:   MOV  A,#0BH           ;显示“-”
0348 F6              564                  MOV  @R0,A
0349 740A            565     ALERT_TL2:   MOV  A,#0AH
034B C5F0            566                  XCH  A,B
034D 84              567                  DIV  AB
034E 18              568                  DEC  R0
034F F6              569                  MOV  @R0,A
0350 F57D            570                  MOV  7DH,A
0352 18              571                  DEC  R0
0353 A6F0            572                  MOV  @R0,B
0355 85F07E          573                  MOV  7EH,B
0358 22              574                  RET
                     575     ;-----------------------------------------------
0359                 576     ALERT_TH:
0359 75790D          577                  MOV  79H,#0DH
035C 75780B          578                  MOV  78H,#0BH
035F E528            579                  MOV  A,TEMP_TH
0361 7877            580                  MOV  R0,#77H
A51 MACRO ASSEMBLER  DS18B20_DSY                                                          03/29/2005 16:14:10 PAGE    10

0363 75F064          581                  MOV  B,#064H
0366 84              582                  DIV  AB
0367 B40103          583                  CJNE  A,#01H,ALERT_TH1
036A F6              584                  MOV  @R0,A
036B 8003            585                  JMP  ALERT_TH2
036D 740B            586     ALERT_TH1:   MOV  A,#0BH             ;显示“-”
036F F6              587                  MOV  @R0,A
0370 740A            588     ALERT_TH2:   MOV  A,#0AH
0372 C5F0            589                  XCH  A,B
0374 84              590                  DIV  AB
0375 18              591                  DEC  R0
0376 F6              592                  MOV  @R0,A
0377 F57D            593                  MOV  7DH,A
0379 18              594                  DEC  R0
037A A6F0            595                  MOV  @R0,B
037C 85F07E          596                  MOV  7EH,B
037F 22              597                  RET

⌨️ 快捷键说明

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