📄 trime+key.src
字号:
; .\Trime+Key.SRC generated from: Trime+Key.c
; COMPILER INVOKED BY:
; D:\电子软件\Keil8.02\C51\BIN\C51.EXE Trime+Key.c BROWSE DEBUG OBJECTEXTEND SRC(.\Trime+Key.SRC)
$NOMOD51
NAME TRIME_KEY
P0 DATA 080H
P1 DATA 090H
P2 DATA 0A0H
P3 DATA 0B0H
AC BIT 0D0H.6
T0 BIT 0B0H.4
T1 BIT 0B0H.5
EA BIT 0A8H.7
T2 BIT 090H.0
IE DATA 0A8H
P0_0 BIT 080H.0
P1_0 BIT 090H.0
P0_1 BIT 080H.1
FL BIT 0D0H.1
P2_0 BIT 0A0H.0
P1_1 BIT 090H.1
P0_2 BIT 080H.2
P3_0 BIT 0B0H.0
P2_1 BIT 0A0H.1
P1_2 BIT 090H.2
P0_3 BIT 080H.3
P3_1 BIT 0B0H.1
P2_2 BIT 0A0H.2
P1_3 BIT 090H.3
P0_4 BIT 080H.4
P3_2 BIT 0B0H.2
P2_3 BIT 0A0H.3
P1_4 BIT 090H.4
P0_5 BIT 080H.5
EXF2 BIT 0C8H.6
RD BIT 0B0H.7
P3_3 BIT 0B0H.3
P2_4 BIT 0A0H.4
P1_5 BIT 090H.5
P0_6 BIT 080H.6
P3_4 BIT 0B0H.4
P2_5 BIT 0A0H.5
P1_6 BIT 090H.6
P0_7 BIT 080H.7
P3_5 BIT 0B0H.5
ES BIT 0A8H.4
P2_6 BIT 0A0H.6
P1_7 BIT 090H.7
P3_6 BIT 0B0H.6
P2_7 BIT 0A0H.7
IP DATA 0B8H
P3_7 BIT 0B0H.7
RI BIT 098H.0
CY BIT 0D0H.7
INT0 BIT 0B0H.2
INT1 BIT 0B0H.3
TI BIT 098H.1
RCAP2H DATA 0CBH
PS BIT 0B8H.4
SP DATA 081H
T2EX BIT 090H.1
OV BIT 0D0H.2
RCAP2L DATA 0CAH
C_T2 BIT 0C8H.1
WR BIT 0B0H.6
RCLK BIT 0C8H.5
TCLK BIT 0C8H.4
SBUF DATA 099H
PCON DATA 087H
SCON DATA 098H
TMOD DATA 089H
TCON DATA 088H
IE0 BIT 088H.1
IE1 BIT 088H.3
B DATA 0F0H
CP_RL2 BIT 0C8H.0
ACC DATA 0E0H
ET0 BIT 0A8H.1
ET1 BIT 0A8H.3
TF0 BIT 088H.5
ET2 BIT 0A8H.5
TF1 BIT 088H.7
TF2 BIT 0C8H.7
RB8 BIT 098H.2
TH0 DATA 08CH
EX0 BIT 0A8H.0
IT0 BIT 088H.0
TH1 DATA 08DH
EX1 BIT 0A8H.2
TB8 BIT 098H.3
IT1 BIT 088H.2
TH2 DATA 0CDH
P BIT 0D0H.0
SM0 BIT 098H.7
TL0 DATA 08AH
SM1 BIT 098H.6
TL1 DATA 08BH
SM2 BIT 098H.5
TL2 DATA 0CCH
PT0 BIT 0B8H.1
RS0 BIT 0D0H.3
PT1 BIT 0B8H.3
RS1 BIT 0D0H.4
PT2 BIT 0B8H.5
TR0 BIT 088H.4
TR1 BIT 088H.6
TR2 BIT 0C8H.2
PX0 BIT 0B8H.0
PX1 BIT 0B8H.2
DPH DATA 083H
DPL DATA 082H
EXEN2 BIT 0C8H.3
REN BIT 098H.4
T2MOD DATA 0C9H
T2CON DATA 0C8H
RXD BIT 0B0H.0
TXD BIT 0B0H.1
F0 BIT 0D0H.5
PSW DATA 0D0H
?PR?V2ToV?TRIME_KEY SEGMENT CODE
?PR?InitDS1820?TRIME_KEY SEGMENT CODE
?PR?_Write_Data?TRIME_KEY SEGMENT CODE
?DT?_Write_Data?TRIME_KEY SEGMENT DATA OVERLAYABLE
?PR?WriteDS1820?TRIME_KEY SEGMENT CODE
?DT?WriteDS1820?TRIME_KEY SEGMENT DATA OVERLAYABLE
?PR?ReadTM?TRIME_KEY SEGMENT CODE
?DT?ReadTM?TRIME_KEY SEGMENT DATA OVERLAYABLE
?PR?ReadDS1820?TRIME_KEY SEGMENT CODE
?PR?main?TRIME_KEY SEGMENT CODE
?PR?KeyAndDis_Time0?TRIME_KEY SEGMENT CODE
?CO?TRIME_KEY SEGMENT CODE
?DT?TRIME_KEY SEGMENT DATA
?BA?TRIME_KEY SEGMENT DATA BITADDRESSABLE
EXTRN CODE (_Delay_6n5_8us)
EXTRN CODE (LED_Display)
EXTRN DATA (?LED_Display?BYTE)
EXTRN BIT (?LED_Display?BIT)
EXTRN CODE (BCD_ASCII)
EXTRN CODE (_Delay_100ms)
EXTRN CODE (_Delay_1ms)
EXTRN CODE (?C?SCDIV)
EXTRN CODE (?C_STARTUP)
PUBLIC KeySETDowning
PUBLIC LEDTF
PUBLIC PowTF
PUBLIC SetTF
PUBLIC KeyTF
PUBLIC KeySETDown
PUBLIC DS1820ON
PUBLIC KeyAndDis_Time0
PUBLIC main
PUBLIC ReadDS1820
PUBLIC ReadTM
PUBLIC WriteDS1820
PUBLIC _Write_Data
PUBLIC InitDS1820
PUBLIC V2ToV
DSEG AT 026H
TMSetV: DS 1
DSEG AT 027H
TMRomV: DS 1
DSEG AT 028H
THV: DS 1
DSEG AT 029H
TLV: DS 1
RSEG ?DT?ReadTM?TRIME_KEY
?ReadTM?BYTE:
i?445: DS 1
ORG 1
TM_DATA?446: DS 1
RSEG ?DT?_Write_Data?TRIME_KEY
?_Write_Data?BYTE:
i?241: DS 1
ORG 1
DATA_T?242: DS 1
RSEG ?DT?WriteDS1820?TRIME_KEY
?WriteDS1820?BYTE:
TM_H?343: DS 1
ORG 1
TM_L?344: DS 1
RSEG ?DT?TRIME_KEY
KeyV: DS 1
IntNum2: DS 1
IntNum3: DS 1
Sign: DS 1
IntNum4: DS 2
IntNum5: DS 2
KSDNum: DS 1
TempKeyV: DS 1
LED_Three: DS 1
LED_One: DS 1
IntNum: DS 1
LED_Two: DS 1
TMV: DS 1
RSEG ?BA?TRIME_KEY
StateREG: DS 1
DS1820ON EQU (StateREG+0).0
KeySETDown EQU (StateREG+0).2
KeyTF EQU (StateREG+0).4
SetTF EQU (StateREG+0).1
PowTF EQU (StateREG+0).3
LEDTF EQU (StateREG+0).6
KeySETDowning EQU (StateREG+0).5
RSEG ?CO?TRIME_KEY
?SC_0:
DB '-' ,'-' ,'_' ,'_' ,'O' ,'F' ,'F' ,'_' ,'_' ,'-'
DB '2' ,'0' ,'0' ,'7' ,'_' ,'6' ,'_' ,'2' ,'3' ,'_'
DB '_' ,'-' ,'-' ,000H
?SC_24:
DB '-' ,'-' ,'_' ,'_' ,'O' ,'P' ,'E' ,'N' ,'_' ,'_'
DB '-' ,'-' ,'_' ,'3' ,'4' ,'0' ,'8' ,'_' ,'Y' ,'O'
DB 'U' ,'J' ,'J' ,'Y' ,'Y' ,'_' ,'-' ,'-' ,000H
?SC_53:
DB '-' ,'-' ,'_' ,'_' ,'N' ,'O' ,'-' ,'S' ,'E' ,'N'
DB 'S' ,'O' ,'R' ,'_' ,'_' ,'-' ,'-' ,000H
; /*=============================================
; 温度控制器
;
; 广州工程职业技术学院
; 传感器课程设计
;
; 指导老师: 冯伟
; 作者: GIT-3408-YOUJJYY (方畅,曹文荣,梁锐权)
; 时间: 2007-4-25
;
; 温度传感器用单总线DS18B20
; CPU为AT89S52,三个按键(UP,DOWN,SET)
; 温度调节上限为125度,下限为-55度(本程序只能用于单只18B20)
;
; ================================================*/
; #include <at89x52.h>
; #include <intrins.h>
; #include <LED_Display.h>
;
; /*--------用于按键可位寻址的状态寄存器-----------*/
; static unsigned char bdata StateREG;
; sbit DS1820ON=StateREG^0; //DS18B20是否存在
; sbit SetTF=StateREG^1; //是否是在温度设置状态
; sbit KeySETDown=StateREG^2; //"1"为已按过SET键,"0"为没按过SET按
; sbit PowTF=StateREG^3; //电源标识("0"为开电源,"1"为关电源)
; sbit KeyTF=StateREG^4; //"0"为按键允许,"1"为不允许
; sbit KeySETDowning=StateREG^5; //SET是否正在按下
; sbit LEDTF=StateREG^6; //开机LOG标志位
;
; static unsigned char bdata TLV _at_ 0x0029; //温度变量高低位
; static unsigned char bdata THV _at_ 0x0028;
; static signed char TMV; //转换后的温度值
; static unsigned char KeyV,TempKeyV; //键值
; static signed char TMRomV _at_ 0x0027; //高温度限制
; static signed char TMSetV _at_ 0x0026; //温度设定值
; static unsigned char KSDNum; //SET键连按时的采集次数
; static unsigned char IntNum,IntNum2,IntNum3;//中断发生次数(IntNum用于SET长按检测,IntNum2用于设定状态时LED闪烁,IntNum用于连按其他键)
; static unsigned int IntNum4,IntNum5;
; static signed char Sign; //负号标识
; static unsigned char LED_One,LED_Two,LED_Three;
; /*------------------------------------------
; 数值转换
; -------------------------------------------*/
; void V2ToV(void)
RSEG ?PR?V2ToV?TRIME_KEY
V2ToV:
USING 0
; SOURCE LINE # 44
; {
; SOURCE LINE # 45
; TLV>>=4;
; SOURCE LINE # 46
MOV A,TLV
SWAP A
ANL A,#0FH
MOV TLV,A
; THV<<=4; //读出的高低位数值移位
; SOURCE LINE # 47
MOV A,THV
SWAP A
ANL A,#0F0H
MOV THV,A
; TMV=TLV|THV; //合并高低位放入TM为实际温度值
; SOURCE LINE # 48
ORL A,TLV
MOV TMV,A
; Sign=0;
; SOURCE LINE # 49
CLR A
MOV Sign,A
; if(SetTF||!Key_SET)Sign=TMSetV>>7; //取符号
; SOURCE LINE # 50
JB SetTF,?C0002
JB P3_4,?C0001
?C0002:
MOV A,TMSetV
MOV R0,#07H
?C0080:
MOV C,ACC.7
RRC A
DJNZ R0,?C0080
MOV Sign,A
SJMP ?C0003
?C0001:
; else Sign=TMV>>7;
; SOURCE LINE # 51
MOV A,TMV
MOV R0,#07H
?C0081:
MOV C,ACC.7
RRC A
DJNZ R0,?C0081
MOV Sign,A
?C0003:
; if(Sign)
; SOURCE LINE # 52
MOV A,Sign
JZ ?C0004
; {
; SOURCE LINE # 53
; if(SetTF||!Key_SET)
; SOURCE LINE # 54
JB SetTF,?C0006
JB P3_4,?C0005
?C0006:
; {
; SOURCE LINE # 55
; LED_One=(~(TMSetV-1))/100; //SET状态下显示设定值
; SOURCE LINE # 56
MOV A,TMSetV
; LED_Two=((~(TMSetV-1))-LED_One*100)/10;
; SOURCE LINE # 57
; LED_Three=(~(TMSetV-1))-LED_One*100-LED_Two*10;
; SOURCE LINE # 58
; }
; SOURCE LINE # 59
SJMP ?C0084
?C0005:
; else
; {
; SOURCE LINE # 61
; LED_One=(~(TMV-1))/100; //转换百位数值
; SOURCE LINE # 62
MOV A,TMV
?C0084:
DEC A
CPL A
MOV R7,A
MOV B,#064H
LCALL ?C?SCDIV
MOV LED_One,A
; LED_Two=((~(TMV-1))-LED_One*100)/10;
; SOURCE LINE # 63
MOV B,#064H
MUL AB
MOV R6,A
CLR C
MOV A,R7
SUBB A,R6
; LED_Three=(~(TMV-1))-LED_One*100-LED_Two*10;
; SOURCE LINE # 64
; }
; SOURCE LINE # 65
; }
; SOURCE LINE # 66
SJMP ?C0086
?C0004:
; else
; {
; SOURCE LINE # 68
; if(SetTF||!Key_SET)
; SOURCE LINE # 69
JB SetTF,?C0010
JB P3_4,?C0009
?C0010:
; {
; SOURCE LINE # 70
; LED_One=TMSetV/100; //SET状态下显示设定值
; SOURCE LINE # 71
MOV A,TMSetV
MOV B,#064H
LCALL ?C?SCDIV
MOV LED_One,A
; LED_Two=(TMSetV-LED_One*100)/10;
; SOURCE LINE # 72
MOV B,#064H
MUL AB
MOV R7,A
CLR C
MOV A,TMSetV
SUBB A,R7
?C0085:
; LED_Three=TMSetV-LED_One*100-LED_Two*10;
; SOURCE LINE # 73
; }
; SOURCE LINE # 74
SJMP ?C0086
?C0009:
; else
; {
; SOURCE LINE # 76
; LED_One=TMV/100; //转换百位数值
; SOURCE LINE # 77
MOV A,TMV
MOV B,#064H
LCALL ?C?SCDIV
MOV LED_One,A
; LED_Two=(TMV-LED_One*100)/10;
; SOURCE LINE # 78
MOV B,#064H
MUL AB
MOV R7,A
CLR C
MOV A,TMV
SUBB A,R7
?C0086:
MOV R7,A
MOV B,#0AH
DIV AB
MOV LED_Two,A
; LED_Three=TMV-LED_One*100-LED_Two*10;
; SOURCE LINE # 79
MOV B,#0AH
MUL AB
MOV R6,A
CLR C
MOV A,R7
SUBB A,R6
MOV LED_Three,A
; }
; SOURCE LINE # 80
; }
; SOURCE LINE # 81
?C0008:
; //======转换LED字段=======
; if(LED_One)LED_Two=BCD_ASCII[LED_Two+1]; //超过百时十位的处理
; SOURCE LINE # 83
MOV A,LED_One
JZ ?C0012
SJMP ?C0087
?C0012:
; else
; {
; SOURCE LINE # 85
; if(LED_Two==0)LED_Two=BCD_ASCII[0];
; SOURCE LINE # 86
MOV A,LED_Two
JNZ ?C0014
MOV DPTR,#BCD_ASCII
SJMP ?C0088
?C0014:
; else LED_Two=BCD_ASCII[LED_Two+1];
; SOURCE LINE # 87
?C0087:
MOV A,LED_Two
MOV DPTR,#BCD_ASCII+01H
?C0088:
MOVC A,@A+DPTR
MOV LED_Two,A
; }
; SOURCE LINE # 88
?C0013:
; if(Sign)LED_One=0xf7;
; SOURCE LINE # 89
MOV A,Sign
JZ ?C0016
MOV LED_One,#0F7H
SJMP ?C0017
?C0016:
; else
; {
; SOURCE LINE # 91
; if(LED_One==0)LED_One=BCD_ASCII[0];
; SOURCE LINE # 92
MOV A,LED_One
JNZ ?C0018
MOV DPTR,#BCD_ASCII
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -