?? zhjbjdj.src
字號:
; .\zhjbjdj.SRC generated from: zhjbjdj.c
$NOMOD51
NAME ZHJBJDJ
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
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
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
PS BIT 0B8H.4
SP DATA 081H
OV BIT 0D0H.2
WR BIT 0B0H.6
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
ACC DATA 0E0H
ET0 BIT 0A8H.1
ET1 BIT 0A8H.3
TF0 BIT 088H.5
ET2 BIT 0A8H.5
TF1 BIT 088H.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
P BIT 0D0H.0
SM0 BIT 098H.7
TL0 DATA 08AH
SM1 BIT 098H.6
TL1 DATA 08BH
SM2 BIT 098H.5
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
PX0 BIT 0B8H.0
PX1 BIT 0B8H.2
DPH DATA 083H
DPL DATA 082H
REN BIT 098H.4
RXD BIT 0B0H.0
TXD BIT 0B0H.1
F0 BIT 0D0H.5
PSW DATA 0D0H
?PR?init?ZHJBJDJ SEGMENT CODE
?PR?servial?ZHJBJDJ SEGMENT CODE
?PR?time0?ZHJBJDJ SEGMENT CODE
?PR?main?ZHJBJDJ SEGMENT CODE
?C_INITSEG SEGMENT CODE
?CO?ZHJBJDJ SEGMENT CODE
?DT?ZHJBJDJ SEGMENT DATA
EXTRN CODE (?C_STARTUP)
PUBLIC Addr
PUBLIC Speed
PUBLIC TimeL
PUBLIC TimeH
PUBLIC Start_f
PUBLIC Start_steptimes
PUBLIC Ibsuffix
PUBLIC Iasuffix
PUBLIC Command
PUBLIC Step_Num
PUBLIC Start_stepnum
PUBLIC IAB
PUBLIC main
PUBLIC time0
PUBLIC servial
PUBLIC init
RSEG ?DT?ZHJBJDJ
Start_stepnum: DS 1
Step_Num: DS 1
Command: DS 1
Iasuffix: DS 2
Ibsuffix: DS 2
Start_steptimes: DS 1
Start_f: DS 1
TimeH: DS 4
TimeL: DS 4
Speed: DS 1
Addr: DS 1
RSEG ?CO?ZHJBJDJ
IAB:
DB 000H
DB 003H
DB 006H
DB 009H
DB 00CH
DB 010H
DB 013H
DB 016H
DB 019H
DB 01CH
DB 01FH
DB 022H
DB 025H
DB 028H
DB 02BH
DB 02EH
DB 031H
DB 033H
DB 036H
DB 039H
DB 03CH
DB 03FH
DB 041H
DB 044H
DB 047H
DB 049H
DB 04CH
DB 04EH
DB 051H
DB 053H
DB 055H
DB 058H
DB 05AH
DB 05CH
DB 05EH
DB 060H
DB 062H
DB 064H
DB 066H
DB 068H
DB 06AH
DB 06BH
DB 06DH
DB 06FH
DB 070H
DB 071H
DB 073H
DB 074H
DB 075H
DB 076H
DB 078H
DB 079H
DB 07AH
DB 07AH
DB 07BH
DB 07CH
DB 07DH
DB 07DH
DB 07EH
DB 07EH
DB 07EH
DB 07FH
DB 07FH
DB 07FH
DB 07FH
DB 07FH
DB 07FH
DB 07FH
DB 07EH
DB 07EH
DB 07EH
DB 07DH
DB 07DH
DB 07CH
DB 07BH
DB 07AH
DB 07AH
DB 079H
DB 078H
DB 076H
DB 075H
DB 074H
DB 073H
DB 071H
DB 070H
DB 06FH
DB 06DH
DB 06BH
DB 06AH
DB 068H
DB 066H
DB 064H
DB 062H
DB 060H
DB 05EH
DB 05CH
DB 05AH
DB 058H
DB 055H
DB 053H
DB 051H
DB 04EH
DB 04CH
DB 049H
DB 047H
DB 044H
DB 041H
DB 03FH
DB 03CH
DB 039H
DB 036H
DB 033H
DB 031H
DB 02EH
DB 02BH
DB 028H
DB 025H
DB 022H
DB 01FH
DB 01CH
DB 019H
DB 016H
DB 013H
DB 010H
DB 00CH
DB 009H
DB 006H
DB 003H
DB 000H
DB 083H
DB 086H
DB 089H
DB 08CH
DB 090H
DB 093H
DB 096H
DB 099H
DB 09CH
DB 09FH
DB 0A2H
DB 0A5H
DB 0A8H
DB 0ABH
DB 0AEH
DB 0B1H
DB 0B3H
DB 0B6H
DB 0B9H
DB 0BCH
DB 0BFH
DB 0C1H
DB 0C4H
DB 0C7H
DB 0C9H
DB 0CCH
DB 0CEH
DB 0D1H
DB 0D3H
DB 0D5H
DB 0D8H
DB 0DAH
DB 0DCH
DB 0DEH
DB 0E0H
DB 0E2H
DB 0E4H
DB 0E6H
DB 0E8H
DB 0EAH
DB 0EBH
DB 0EDH
DB 0EFH
DB 0F0H
DB 0F1H
DB 0F3H
DB 0F4H
DB 0F5H
DB 0F6H
DB 0F8H
DB 0F9H
DB 0FAH
DB 0FAH
DB 0FBH
DB 0FCH
DB 0FDH
DB 0FDH
DB 0FEH
DB 0FEH
DB 0FEH
DB 0FFH
DB 0FFH
DB 0FFH
DB 0FFH
DB 0FFH
DB 0FFH
DB 0FFH
DB 0FEH
DB 0FEH
DB 0FEH
DB 0FDH
DB 0FDH
DB 0FCH
DB 0FBH
DB 0FAH
DB 0FAH
DB 0F9H
DB 0F8H
DB 0F6H
DB 0F5H
DB 0F4H
DB 0F3H
DB 0F1H
DB 0F0H
DB 0EFH
DB 0EDH
DB 0EBH
DB 0EAH
DB 0E8H
DB 0E6H
DB 0E4H
DB 0E2H
DB 0E0H
DB 0DEH
DB 0DCH
DB 0DAH
DB 0D8H
DB 0D5H
DB 0D3H
DB 0D1H
DB 0CEH
DB 0CCH
DB 0C9H
DB 0C7H
DB 0C4H
DB 0C1H
DB 0BFH
DB 0BCH
DB 0B9H
DB 0B6H
DB 0B3H
DB 0B1H
DB 0AEH
DB 0ABH
DB 0A8H
DB 0A5H
DB 0A2H
DB 09FH
DB 09CH
DB 099H
DB 096H
DB 093H
DB 090H
DB 08CH
DB 089H
DB 086H
DB 083H
RSEG ?C_INITSEG
DB 001H
DB Command
DB 000H
DB 001H
DB Step_Num
DB 000H
DB 001H
DB Speed
DB 000H
DB 001H
DB Addr
DB 004H
DB 001H
DB Start_f
DB 000H
DB 001H
DB Start_stepnum
DB 002H
DB 001H
DB Start_steptimes
DB 00AH
DB 002H
DB Iasuffix
DW 00000H
DB 002H
DB Ibsuffix
DW 00000H
DB 004H
DB TimeH
DB 000H,000H,000H,000H ; long
DB 004H
DB TimeL
DB 000H,000H,000H,000H ; long
; /*旋轉適粘度計步進電機驅動程序晶振24MHZ*/
;
; #include <at89x51.h>
; #include <absacc.h>
; #include <intrins.h>
;
; #define DA1 XBYTE[0x8000]//定義硬件地址
; #define DA2 XBYTE[0x8100]
; #define LEVEL1 XBYTE[0x8200]
; #define LEVEL2 XBYTE[0x8300]
;
; unsigned char Command=0,Step_Num=0,Speed=0,Addr=4,Start_f=0,Start_stepnum=2,Start_steptimes=10;
; int Iasuffix=0,Ibsuffix=0;
; long int TimeH=0,TimeL=0;
;
; unsigned char code IAB[256]={0,3,6,9,12,16,19,22,25,28,31,34,37,40,43,46
; ,49,51,54,57,60,63,65,68,71,73,76,78,81,83,85,88,90,92,94,96,98,100,102
; ,104,106,107,109,111,112,113,115,116,117,118,120,121,122,122,123,124,125
; ,125,126,126,126,127,127,127,127,127,127,127,126,126,126,125,125,124,123
; ,122,122,121,120,118,117,116,115,113,112,111,109,107,106,104,102,100,98
; ,96,94,92,90,88,85,83,81,78,76,73,71,68,65,63,60,57,54,51,49,46,43,40,37
; ,34,31,28,25,22,19,16,12,9,6,3,0,131,134,137,140,144,147,150,153,156,159
; ,162,165,168,171,174,177,179,182,185,188,191,193,196,199,201,204,206,209
; ,211,213,216,218,220,222,224,226,228,230,232,234,235,237,239,240,241,243
; ,244,245,246,248,249,250,250,251,252,253,253,254,254,254,255,255,255,255
; ,255,255,255,254,254,254,253,253,252,251,250,250,249,248,246,245,244,243
; ,241,240,239,237,235,234,232,230,228,226,224,222,220,218,216,213,211,209
; ,206,204,201,199,196,193,191,188,185,182,179,177,174,171,168,165,162,159
; ,156,153,150,147,144,140,137,134,131};
;
; void init(void)
RSEG ?PR?init?ZHJBJDJ
init:
; SOURCE LINE # 31
; {
; SOURCE LINE # 32
; TMOD|=0x21;//初始化T1及串口,波特率9600,24M時鐘
; SOURCE LINE # 33
ORL TMOD,#021H
; SCON=0xf0;//T1為16位計數器
; SOURCE LINE # 34
MOV SCON,#0F0H
; PCON|=0x80;
; SOURCE LINE # 35
ORL PCON,#080H
; TH1=0xf3;
; SOURCE LINE # 36
MOV TH1,#0F3H
; TL1=0xf3;
; SOURCE LINE # 37
MOV TL1,#0F3H
; TR1=1;
; SOURCE LINE # 38
SETB TR1
; TR0=0;
; SOURCE LINE # 39
CLR TR0
; ES=1;
; SOURCE LINE # 40
SETB ES
; EA=1;
; SOURCE LINE # 41
SETB EA
; RI=0;
; SOURCE LINE # 42
CLR RI
; TI=0;
; SOURCE LINE # 43
CLR TI
; }
; SOURCE LINE # 44
RET
; END OF init
CSEG AT 00023H
LJMP servial
;
; void servial(void) interrupt 4 using 3
RSEG ?PR?servial?ZHJBJDJ
USING 3
servial:
PUSH ACC
PUSH PSW
; SOURCE LINE # 46
; {
; if (RI==1)
; SOURCE LINE # 48
JNB RI,?C0012
; {
; SOURCE LINE # 49
; RI=0;
; SOURCE LINE # 50
CLR RI
; if (SM2==1&&SBUF==Addr)
; SOURCE LINE # 51
JNB SM2,?C0003
MOV A,SBUF
CJNE A,Addr,?C0003
; {SM2=0;TB8=1;SBUF=Addr;
; SOURCE LINE # 52
CLR SM2
SETB TB8
MOV SBUF,Addr
?C0004:
; while (TI!=1);
; SOURCE LINE # 53
JNB TI,?C0004
?C0005:
; TI=0;
; SOURCE LINE # 54
CLR TI
; }
; SOURCE LINE # 55
SJMP ?C0012
?C0003:
; else
; {if(SM2==0&&SBUF==0xff&&RB8==1) SM2=1;
; SOURCE LINE # 57
JB SM2,?C0007
MOV A,SBUF
CJNE A,#0FFH,?C0007
JNB RB8,?C0007
SETB SM2
SJMP ?C0012
?C0007:
; else if (SM2==0&&RB8==0)
; SOURCE LINE # 58
JB SM2,?C0012
JB RB8,?C0012
; {Command=SBUF;
; SOURCE LINE # 59
MOV Command,SBUF
; TB8=1;
; SOURCE LINE # 60
SETB TB8
; SBUF=Command;
; SOURCE LINE # 61
MOV SBUF,Command
?C0010:
; while (TI!=1);
; SOURCE LINE # 62
JNB TI,?C0010
?C0011:
; TI=0;
; SOURCE LINE # 63
CLR TI
; }
; SOURCE LINE # 64
; }
; SOURCE LINE # 65
; }
; SOURCE LINE # 66
; }
; SOURCE LINE # 67
?C0012:
POP PSW
POP ACC
RETI
; END OF servial
CSEG AT 0000BH
LJMP time0
;
; void time0(void) interrupt 1 using 1
RSEG ?PR?time0?ZHJBJDJ
USING 1
time0:
PUSH ACC
PUSH DPH
PUSH DPL
PUSH PSW
USING 1
MOV PSW,#08H
; SOURCE LINE # 69
; {
; EA=0;
; SOURCE LINE # 71
CLR EA
; TH0=TimeH;
; SOURCE LINE # 72
MOV TH0,TimeH+03H
; TL0=TimeL;
; SOURCE LINE # 73
MOV TL0,TimeL+03H
; TR0=1;
; SOURCE LINE # 74
SETB TR0
; run:if (Start_f==0)
; SOURCE LINE # 75
?time0?run:
MOV A,Start_f
JNZ ?C0014
; {
; SOURCE LINE # 76
; DA1=IAB[Iasuffix];
; SOURCE LINE # 77
MOV A,Iasuffix+01H
MOV DPTR,#IAB
MOVC A,@A+DPTR
MOV DPTR,#08000H
MOVX @DPTR,A
; DA2=IAB[Ibsuffix];
; SOURCE LINE # 78
MOV A,Ibsuffix+01H
MOV DPTR,#IAB
MOVC A,@A+DPTR
MOV DPTR,#08100H
MOVX @DPTR,A
;
; Iasuffix+=Step_Num;
; SOURCE LINE # 80
MOV R7,Step_Num
MOV R6,#00H
MOV A,R7
ADD A,Iasuffix+01H
MOV Iasuffix+01H,A
MOV A,R6
ADDC A,Iasuffix
MOV Iasuffix,A
; Ibsuffix+=Step_Num;
; SOURCE LINE # 81
MOV A,R7
ADD A,Ibsuffix+01H
MOV Ibsuffix+01H,A
MOV A,R6
ADDC A,Ibsuffix
MOV Ibsuffix,A
;
; if (Iasuffix>255)Iasuffix=0;
; SOURCE LINE # 83
SETB C
MOV A,Iasuffix+01H
SUBB A,#0FFH
MOV A,Iasuffix
XRL A,#080H
SUBB A,#080H
JC ?C0015
MOV Iasuffix,#00H
MOV Iasuffix+01H,#00H
?C0015:
; if (Ibsuffix>255)Ibsuffix=0;
; SOURCE LINE # 84
SETB C
MOV A,Ibsuffix+01H
SUBB A,#0FFH
MOV A,Ibsuffix
XRL A,#080H
SUBB A,#080H
JC ?C0017
MOV Ibsuffix,#00H
MOV Ibsuffix+01H,#00H
;
; }
; SOURCE LINE # 86
SJMP ?C0017
?C0014:
; else
; {DA1=IAB[Iasuffix];
; SOURCE LINE # 88
MOV A,Iasuffix+01H
MOV DPTR,#IAB
MOVC A,@A+DPTR
MOV DPTR,#08000H
MOVX @DPTR,A
; DA2=IAB[Ibsuffix];
; SOURCE LINE # 89
MOV A,Ibsuffix+01H
MOV DPTR,#IAB
MOVC A,@A+DPTR
MOV DPTR,#08100H
MOVX @DPTR,A
;
; Iasuffix+=Start_stepnum;
; SOURCE LINE # 91
MOV R7,Start_stepnum
MOV R6,#00H
MOV A,R7
ADD A,Iasuffix+01H
MOV Iasuffix+01H,A
MOV A,R6
ADDC A,Iasuffix
MOV Iasuffix,A
; Ibsuffix+=Start_stepnum;
; SOURCE LINE # 92
MOV A,R7
ADD A,Ibsuffix+01H
MOV Ibsuffix+01H,A
MOV A,R6
ADDC A,Ibsuffix
MOV Ibsuffix,A
;
; if (Iasuffix>255)Iasuffix=0;
; SOURCE LINE # 94
SETB C
MOV A,Iasuffix+01H
SUBB A,#0FFH
MOV A,Iasuffix
XRL A,#080H
SUBB A,#080H
JC ?C0018
MOV Iasuffix,#00H
MOV Iasuffix+01H,#00H
?C0018:
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -