📄 ds18b20-lcd1602-温度控制.lst
字号:
04E9 74C0 804 MOV A,#0C0H ;设置 LCD 的第二行地址
04EB B107 805 CALL WCOM
04ED E4 806 FILL: CLR A ;填入字符
04EE 93 807 MOVC A,@A+DPTR ;由信息区取出字符
04EF B40001 808 CJNE A,#0,LC1 ;判断是否为结束码
04F2 22 809 RET
04F3 B114 810 LC1: CALL WDATA ;写入数据
04F5 A3 811 INC DPTR ;指针加1
04F6 80F5 812 JMP FILL ;继续填入字符
04F8 22 813 RET
814 ;===============================================
815 ;清除一行 LCD 的字符
816 ;输入一行空格,来替代原显示字符
817 ;===============================================
04F9 818 CLR_LINE: ;清除该行 LCD 的字符
A51 MACRO ASSEMBLER DS18B20_LCD1602_温禵縚制 12/20/2006 22:01:59 PAGE 14
04F9 7818 819 MOV R0,#24
04FB 7420 820 CL1: MOV A,#' '
04FD B114 821 CALL WDATA
04FF D8FA 822 DJNZ R0,CL1
0501 22 823 RET
0502 7FFA 824 DE: MOV R7,#250 ;延时 500 微秒
0504 DFFE 825 DJNZ R7,$
0506 22 826 RET
827 ;===============================================
828 ;命令写入子程序
829 ;RS=L,RW=L,D0-D7=指令码,E=高脉冲
830 ;以8位控制方式将命令写至LCD
831 ;===============================================
0507 832 WCOM:
0507 F580 833 MOV P0,A ;写入命令
0509 C2A0 834 CLR LCD_RS
050B C2A1 835 CLR LCD_RW
050D D2A2 836 SETB LCD_EN
050F B141 837 ACALL DELAY1
0511 C2A2 838 CLR LCD_EN
0513 22 839 RET
840 ;===============================================
841 ;数据写入子程序
842 ;RS=H,RW=L,D0-D7=指令码,E=高脉冲
843 ;以8位控制方式将数据写至LCD
844 ;===============================================
0514 845 WDATA:
0514 F580 846 MOV P0,A ;写入数据
0516 D2A0 847 SETB LCD_RS
0518 C2A1 848 CLR LCD_RW
051A D2A2 849 SETB LCD_EN
051C B102 850 CALL DE
051E C2A2 851 CLR LCD_EN
0520 B102 852 CALL DE
0522 22 853 RET
854 ;===============================================
855 ;蜂鸣器响一声子程序
856 ;P3.7=0,蜂鸣器响
857 ;===============================================
0523 858 BEEP_BL:
0523 7E64 859 MOV R6,#100
0525 B130 860 BL2: CALL DEX1
0527 B2B7 861 CPL BEEP ;对 P3.7 取反
0529 DEFA 862 DJNZ R6,BL2
052B 7D0A 863 MOV R5,#10
052D B136 864 CALL DELAY
052F 22 865 RET
0530 7FB4 866 DEX1: MOV R7,#180
0532 00 867 DE2: NOP
0533 DFFD 868 DJNZ R7,DE2
0535 22 869 RET
0536 870 DELAY: ;(R5)*延时10MS
0536 7E32 871 MOV R6,#50
0538 7F64 872 DL1: MOV R7,#100
053A DFFE 873 DJNZ R7,$
053C DEFA 874 DJNZ R6,DL1
053E DDF6 875 DJNZ R5,DELAY
0540 22 876 RET
877 ;==============================================
878 ;延时 5ms 子程序
879 ;==============================================
0541 880 DELAY1: ;延时5MS
0541 7E19 881 MOV R6,#25
0543 7F64 882 DL2: MOV R7,#100
0545 DFFE 883 DJNZ R7,$
0547 DEFA 884 DJNZ R6,DL2
A51 MACRO ASSEMBLER DS18B20_LCD1602_温禵縚制 12/20/2006 22:01:59 PAGE 15
0549 22 885 RET
886 ;==============================================
887 END ;结束
A51 MACRO ASSEMBLER DS18B20_LCD1602_温禵縚制 12/20/2006 22:01:59 PAGE 16
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
AS0. . . . . . . . C ADDR 00F4H A
AS00 . . . . . . . C ADDR 00FEH A
ASJ01. . . . . . . C ADDR 013AH A
ASJ011 . . . . . . C ADDR 0148H A
ASJ02. . . . . . . C ADDR 0150H A
ASJ021 . . . . . . C ADDR 015EH A
ASJ022 . . . . . . C ADDR 0166H A
ASJ03. . . . . . . C ADDR 016AH A
ASZ01. . . . . . . C ADDR 0103H A
ASZ011 . . . . . . C ADDR 0112H A
ASZ02. . . . . . . C ADDR 011AH A
ASZ021 . . . . . . C ADDR 0129H A
ASZ03. . . . . . . C ADDR 0131H A
B. . . . . . . . . D ADDR 00F0H A
BBJJ1. . . . . . . C ADDR 0205H A
BBJJ2. . . . . . . C ADDR 03D7H A
BBJJ3. . . . . . . C ADDR 01ECH A
BEEP . . . . . . . B ADDR 00B0H.7 A
BEEP_BL. . . . . . C ADDR 0523H A
BJ1. . . . . . . . C ADDR 020DH A
BJ2. . . . . . . . C ADDR 03DFH A
BJ3. . . . . . . . C ADDR 01F4H A
BJ4. . . . . . . . C ADDR 01F6H A
BJ5. . . . . . . . C ADDR 01F8H A
BL2. . . . . . . . C ADDR 0525H A
CHULI1 . . . . . . C ADDR 01A5H A
CHULI10. . . . . . C ADDR 01B0H A
CHULI11. . . . . . C ADDR 01BCH A
CHULI2 . . . . . . C ADDR 01BDH A
CHULI20. . . . . . C ADDR 01C8H A
CHULI21. . . . . . C ADDR 01D2H A
CL1. . . . . . . . C ADDR 04FBH A
CLEAR. . . . . . . C ADDR 0039H A
CLR_LINE . . . . . C ADDR 04F9H A
CLR_TWO2 . . . . . C ADDR 01D3H A
CONV . . . . . . . C ADDR 0435H A
CONV0. . . . . . . C ADDR 0454H A
CONV1. . . . . . . C ADDR 0457H A
CONV2. . . . . . . C ADDR 046EH A
CONV3. . . . . . . C ADDR 0470H A
CONV4. . . . . . . C ADDR 0476H A
CONVTEMP . . . . . C ADDR 0344H A
CY . . . . . . . . B ADDR 00D0H.7 A
DATE_LINE. . . . . B ADDR 00B0H.3 A
DE . . . . . . . . C ADDR 0502H A
DE2. . . . . . . . C ADDR 0532H A
DELAY. . . . . . . C ADDR 0536H A
DELAY1 . . . . . . C ADDR 0541H A
DEX1 . . . . . . . C ADDR 0530H A
DL1. . . . . . . . C ADDR 0538H A
DL2. . . . . . . . C ADDR 0543H A
D_DATA . . . . . . C ADDR 02E9H A
FILL . . . . . . . C ADDR 04EDH A
FLAG1. . . . . . . B ADDR 0020H.0 A
FLAG2. . . . . . . B ADDR 0020H.2 A
FLAG3. . . . . . . B ADDR 0020H.3 A
FLAG4. . . . . . . B ADDR 0020H.4 A
HEX2BCD1 . . . . . C ADDR 0391H A
IE . . . . . . . . D ADDR 00A8H A
A51 MACRO ASSEMBLER DS18B20_LCD1602_温禵縚制 12/20/2006 22:01:59 PAGE 17
INIT_LCD . . . . . C ADDR 04B5H A
INT_END. . . . . . C ADDR 008FH A
INT_T0 . . . . . . C ADDR 0079H A
K1 . . . . . . . . B ADDR 0090H.4 A
K2 . . . . . . . . B ADDR 0090H.5 A
K3 . . . . . . . . B ADDR 0090H.6 A
K4 . . . . . . . . B ADDR 0090H.7 A
KEY_UD . . . . . . B ADDR 0020H.1 A
LC1. . . . . . . . C ADDR 04F3H A
LCDP1. . . . . . . C ADDR 0494H A
LCDP2. . . . . . . C ADDR 04A1H A
LCD_EN . . . . . . B ADDR 00A0H.2 A
LCD_PRINT. . . . . C ADDR 04D4H A
LCD_RS . . . . . . B ADDR 00A0H.0 A
LCD_RW . . . . . . B ADDR 00A0H.1 A
LCD_X. . . . . . . N NUMB 002FH A
LINE1. . . . . . . C ADDR 04D7H A
LINE2. . . . . . . C ADDR 04E3H A
LOOK_ALARM . . . . C ADDR 039FH A
MAIN . . . . . . . C ADDR 0030H A
MENU_ERROR . . . . C ADDR 0240H A
MENU_OK. . . . . . C ADDR 020FH A
M_ALAX1. . . . . . C ADDR 00D0H A
M_ALAX2. . . . . . C ADDR 03BDH A
M_ERROR1 . . . . . C ADDR 024FH A
M_ERROR2 . . . . . C ADDR 0260H A
M_OK1. . . . . . . C ADDR 021EH A
M_OK2. . . . . . . C ADDR 022FH A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . D ADDR 00A0H A
P3 . . . . . . . . D ADDR 00B0H A
PROC_END . . . . . C ADDR 00CFH A
PROC_K1. . . . . . C ADDR 00ACH A
PROC_K2. . . . . . C ADDR 00C1H A
PROC_K4. . . . . . C ADDR 00C5H A
PROC_KEY . . . . . C ADDR 0094H A
PSW. . . . . . . . D ADDR 00D0H A
RE00 . . . . . . . C ADDR 0321H A
RE01 . . . . . . . C ADDR 0323H A
READ_E2. . . . . . C ADDR 02CAH A
READ_TEMP. . . . . C ADDR 0309H A
RELAY. . . . . . . B ADDR 0090H.3 A
RESET. . . . . . . C ADDR 0271H A
RESET_A1 . . . . . C ADDR 00E1H A
RESET_A2 . . . . . C ADDR 0175H A
RESET_ALARM. . . . C ADDR 016DH A
RE_18B20 . . . . . C ADDR 029DH A
RE_18B20A. . . . . C ADDR 02A1H A
SET_ALARM. . . . . C ADDR 00F2H A
SET_LCD. . . . . . C ADDR 04AEH A
SHOW_DIG2. . . . . C ADDR 048CH A
SHOW_DIG2H . . . . C ADDR 03E1H A
SHOW_DIG2H1. . . . C ADDR 03ECH A
SHOW_DIG2H2. . . . C AD
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -