📄 时钟温度显示.lst
字号:
A51 MACRO ASSEMBLER 时钟温度显示 10/14/2004 16:10:32 PAGE 1
MACRO ASSEMBLER A51 V1.08
OBJECT MODULE PLACED IN 时钟温度显示.OBJ
ASSEMBLER INVOKED BY: H:\MEDWIN\A51.EXE 时钟温度显示.ASM DB
LOC OBJ LINE SOURCE
1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2 ;21h,22h为读取温度暂存空间,2b-28为温度实际值百,十,个,小数值
3 ;p1.0-DAT为1812数据线。P2-DATDB为液晶的数据口,
4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
00A0 5 DATDB EQU P2
0021 6 TEMPL EQU 21H
0022 7 TEMPH EQU 22H
00B5 8 RS BIT P3.5
00B6 9 RW BIT P3.6
00B7 10 E BIT P3.7
0000 11 FLAG BIT 00H
0090 12 DAT BIT P1.0
13
14 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
15
16 ;; 中断入口程序 ;;
17
18 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0000 19 ORG 0000H
0000 012C 20 AJMP START
0003 21 ORG 0003H
0003 32 22 RETI
000B 23 ORG 000BH
000B 02005A 24 LJMP INTT0
0013 25 ORG 0013H
0013 32 26 RETI
001B 27 ORG 001BH
001B 32 28 RETI
0023 29 ORG 0023H
0023 32 30 RETI
002B 31 ORG 002BH
002B 32 32 RETI
33 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
34
35 ;; 主 程 序 ;;
36
37 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
002C 7830 38 START: MOV R0, #30H
002E 7F3C 39 MOV R7, #3CH
0030 752000 40 MOV 20H, #00H
0033 7600 41 CLEARDISP: MOV @R0, #00H
0035 08 42 INC R0
0036 DFFB 43 DJNZ R7, CLEARDISP
0038 753A0A 44 MOV 3AH, #0AH
003B 758911 45 MOV TMOD, #11H
003E 758AB0 46 MOV TL0, #0B0H
0041 758CFE 47 MOV TH0, #0FEH
0044 D2AF 48 SETB EA
0046 D2A9 49 SETB ET0
0048 D28C 50 SETB TR0
004A 7C14 51 MOV R4, #14H
004C 120282 52 CALL INITIAL; 启动显示
004F 1202C7 53 CALL CLS; 清屏
0052 1200BD 54 START1: LCALL TEMP; 温度
0055 120189 55 LCALL DISPLAY1;显示
0058 80F8 56 SJMP START1
57 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
58
A51 MACRO ASSEMBLER 时钟温度显示 10/14/2004 16:10:32 PAGE 2
59 ;; 1秒定时 程 序 ;;
60
61 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
005A C0E0 62 INTT0: PUSH ACC
005C C0D0 63 PUSH PSW
005E C000 64 PUSH 00H
0060 C2A9 65 CLR ET0
0062 C28C 66 CLR TR0
0064 74B7 67 MOV A, #0B7H ;中断同步修正
0066 258A 68 ADD A, TL0
0068 F58A 69 MOV TL0, A
006A 743C 70 MOV A, #3CH
006C 258C 71 ADD A, TH0
006E F58C 72 MOV TH0, A
0070 D28C 73 SETB TR0
0072 DC29 74 DJNZ R4, OUTT0
0074 7C14 75 ADDSS: MOV R4, #14H
0076 7831 76 MOV R0, #31H
0078 11A6 77 ACALL ADD1
007A EA 78 MOV A, R2
007B C3 79 CLR C
007C B46000 80 CJNE A, #60H,ADDMM
007F 401C 81 ADDMM: JC OUTT0
0081 11B8 82 ACALL CLR0
0083 7833 83 MOV R0,#33H
0085 11A6 84 ACALL ADD1
0087 EA 85 MOV A,R2
0088 C3 86 CLR C
0089 B46000 87 CJNE A,#60H,ADDHH
008C 400F 88 ADDHH: JC OUTT0
008E 11B8 89 ACALL CLR0
0090 7835 90 MOV R0,#35H
0092 11A6 91 ACALL ADD1
0094 EA 92 MOV A,R2
0095 C3 93 CLR C
0096 B42400 94 CJNE A,#24H,HOUR
0099 4002 95 HOUR: JC OUTT0
009B 11B8 96 ACALL CLR0
009D D000 97 OUTT0: POP 00H
009F D0D0 98 POP PSW
00A1 D0E0 99 POP ACC
00A3 D2A9 100 SETB ET0
00A5 32 101 RETI
102 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
103
104 ;; 加1程序 ;;
105
106 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
00A6 E6 107 ADD1: MOV A, @R0
00A7 18 108 DEC R0
00A8 C4 109 SWAP A
00A9 46 110 ORL A,@R0
00AA 2401 111 ADD A,#01H
00AC D4 112 DA A
00AD FA 113 MOV R2,A
00AE 540F 114 ANL A,#0FH
00B0 F6 115 MOV @R0,A
00B1 EA 116 MOV A,R2
00B2 08 117 INC R0
00B3 C4 118 SWAP A
00B4 540F 119 ANL A,#0FH
00B6 F6 120 MOV @R0,A
00B7 22 121 RET
122 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
123
124 ;; 清零程序 ;;
A51 MACRO ASSEMBLER 时钟温度显示 10/14/2004 16:10:32 PAGE 3
125
126 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
00B8 E4 127 CLR0: CLR A
00B9 F6 128 MOV @R0,A
00BA 18 129 DEC R0
00BB F6 130 MOV @R0,A
00BC 22 131 RET
132 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
133 ; 读取温度
134 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
00BD 1200E5 135 TEMP: LCALL RETTEMP ;;;18B20复位
00C0 74CC 136 MOV A,#0CCH; 绕过ROM
00C2 120114 137 LCALL WRITE1812
00C5 7444 138 MOV A,#44H; 调转换指令
00C7 120114 139 LCALL WRITE1812
00CA 1200E5 140 LCALL RETTEMP
00CD 74CC 141 MOV A,#0CCH; 绕过ROM
00CF 120114 142 LCALL WRITE1812
00D2 74BE 143 MOV A,#0BEH;发读存储器指令
00D4 120114 144 LCALL WRITE1812
00D7 12012C 145 LCALL READ1812
00DA F521 146 mov TEMPL,a
00DC 12012C 147 lcall read1812
00DF F522 148 mov TEMPH,a
00E1 120147 149 LCALL TRANNUM
00E4 22 150 ret
151 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
152 ; 1812复位子程序
153 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
00E5 7FFA 154 RETTEMP:MOV R7,#250
00E7 D290 155 SETB DAT
00E9 00 156 NOP
00EA 00 157 NOP
00EB C290 158 CLR DAT
00ED DFFE 159 DJNZ R7,$
00EF 7F23 160 MOV R7, #35
00F1 D290 161 SETB DAT
00F3 DFFE 162 DJNZ R7,$
00F5 309011 163 JNB DAT,SESS
00F8 00 164 NOP
00F9 00 165 NOP
00FA 00 166 NOP
00FB 30900B 167 JNB DAT,SESS
00FE 00 168 NOP
00FF 00 169 NOP
0100 00 170 NOP
0101 309005 171 JNB DAT,SESS
0104 C200 172 CLR FLAG
0106 020111 173 JMP OUT
0109 DFFE 174 SESS: DJNZ R7,$
010B D200 175 SETB FLAG
010D 7A10 176 MOV R2,#110H
010F DAFE 177 DJNZ R2,$
0111 D290 178 OUT:SETB DAT
0113 22 179 RET
180 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
181 ; 1812写状态寄存器
182 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -