📄 tcmain.ls1
字号:
124 ?PR?Delay_10ms?TCMAIN SEGMENT CODE
125 ?PR?Delay_4s?TCMAIN SEGMENT CODE
126 ?CO?TCMAIN SEGMENT CODE
127 ?DT?TCMAIN SEGMENT DATA
128 ?BA?TCMAIN SEGMENT DATA BITADDRESSABLE
129 EXTRN CODE (?C_STARTUP)
130 EXTRN CODE (?C?SCDIV)
131 PUBLIC PowTF
132 PUBLIC SetTF
133 PUBLIC KeyTF
134 PUBLIC KeySETDown
135 PUBLIC DS1820ON
136 PUBLIC LEDDis
137 PUBLIC Delay_4s
138 PUBLIC Delay_10ms
139 PUBLIC Delay_110
140 PUBLIC Delay_510
141 PUBLIC ReadDS1820
142 PUBLIC WriteDS1820
143 PUBLIC TMERDS1820
144 PUBLIC TMREDS1820
145 PUBLIC TMWDS1820
146 PUBLIC TMRDS1820
147 PUBLIC TMVDS1820
148 PUBLIC ROMDS1820
149 PUBLIC InitDS1820
150 PUBLIC V2ToV
151 PUBLIC KeyAndDis_Time0
152 PUBLIC timer_1
153 PUBLIC int_1
154 PUBLIC int_0
155 PUBLIC main
156
---- 157 DSEG AT 026H
0026 158 TMSetV: DS 1
159
---- 160 DSEG AT 027H
0027 161 TMRomV: DS 1
162
---- 163 DSEG AT 028H
0028 164 THV: DS 1
165
---- 166 DSEG AT 029H
0029 167 TLV: DS 1
168
---- 169 RSEG ?DT?TCMAIN
0000 170 KeyV: DS 1
0001 171 IntNum2: DS 1
0002 172 IntNum3: DS 1
0003 173 Sign: DS 1
0004 174 KSDNum: DS 1
0005 175 TempKeyV: DS 1
0006 176 LED_Three: DS 1
0007 177 LED_One: DS 1
0008 178 T10Stimes0: DS 1
0009 179 T10Stimes1: DS 1
000A 180 INTF0: DS 1
000B 181 INTF1: DS 1
000C 182 LED_Two: DS 1
000D 183 TMV: DS 1
184
---- 185 RSEG ?BA?TCMAIN
0000 186 StateREG: DS 1
0000 187 DS1820ON EQU (StateREG+0).0
0002 188 KeySETDown EQU (StateREG+0).2
0004 189 KeyTF EQU (StateREG+0).4
A51 MACRO ASSEMBLER TCMAIN 01/06/2008 17:24:20 PAGE 4
0001 190 SetTF EQU (StateREG+0).1
0003 191 PowTF EQU (StateREG+0).3
192
---- 193 RSEG ?CO?TCMAIN
0000 194 LEDDis:
0000 C0 195 DB 0C0H
0001 F9 196 DB 0F9H
0002 A4 197 DB 0A4H
0003 B0 198 DB 0B0H
0004 99 199 DB 099H
0005 92 200 DB 092H
0006 82 201 DB 082H
0007 F8 202 DB 0F8H
0008 80 203 DB 080H
0009 90 204 DB 090H
000A FF 205 DB 0FFH
000B BF 206 DB 0BFH
207
208 ; /*-------------------------------
209 ; 温度控制器
210 ; 显示为三个共阳极LED
211 ; 温度传感器用单总线DS18B20
212 ; CPU为89C51,三个按键,分别为UP,DOWN,SET
213 ; 2个检测,
214 ; 温度调节上限为125度,下限为-55度
215 ; -------------------------------*/
216 ;
217 ; #include <AT89X51.H>
218 ; #include <intrins.h>
219 ; #define Key_ONE p3_2 //检测1路
220 ; #define Key_TWO p3_3 //检测2路
221 ; #define Key_UP P3_4 //上调温度
222 ; #define Key_DOWN P3_5 //下调温度
223 ; #define Key_SET P3_6 //设定键(温度设定,长按开电源)
224 ; #define RelayOutPort P1_5 //继电器输出(加温)
225 ; #define RelayOutfan P1_6 //继电器输出(风扇)
226 ; #define RelayOutsignal P1_7 //给节电器信号
227 ; #define LEDPort P0 //LED控制口
228 ; #define LEDOneC P2_0 //LED DS1控制(百位)
229 ; #define LEDTwoC P2_1 //LED DS2控制(十位)
230 ; #define LEDThreeC P2_2 //LED DS3控制(个位)
231 ; #define LEDhigh P1_0 //LED高温指示灯
232 ; #define LEDlow P1_1 //LED低温指示灯
233 ; #define LEDmalfunction P1_2 //LED故障指示灯
234 ; #define TMPort P3_0 //DS1820 DataPort温度
235 ;
236 ; unsigned char code LEDDis[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xBF}
; //0-9的LED笔划,0xFF为空,0xF7为负号
237 ;
238 ; static unsigned char bdata StateREG; //可位寻址的状态寄存器
239 ; sbit DS1820ON = StateREG^0; //DS1820是否存在
240 ; sbit SetTF = StateREG^1; //是否是在温度设置状态
241 ; sbit KeySETDown = StateREG^2; //是否已按过SET键标识
242 ; sbit PowTF = StateREG^3; //电源标识
243 ; sbit KeyTF = StateREG^4; //键盘是否允许
244 ;
245 ; //sbit KeySETDowning = StateREG^5; //SET是否正在按下
246 ; static unsigned char bdata TLV _at_ 0x0029; //温度变量高低位
247 ; static unsigned char bdata THV _at_ 0x0028;
248 ; static signed char TMV; //转换后的温度值
249 ; static unsigned char KeyV,TempKeyV; //键值
250 ; static signed char TMRomV _at_ 0x0027; //高温限制
251 ; static signed char TMSetV _at_ 0x0026; //温度设定值
252 ; static unsigned char KSDNum; //SET键连按时的采集次数
253 ; static unsigned char IntNum2,IntNum3; //中断发生次数,IntNum用于SET长按检测
,IntNum2用于设定状态时LED闪烁
A51 MACRO ASSEMBLER TCMAIN 01/06/2008 17:24:20 PAGE 5
254 ; static signed char LED_One,LED_Two,LED_Three; //LED的显示位 LED_One为十位,LED_Two
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -