📄 main.lst
字号:
C51 COMPILER V4.01, MAIN 28/12/04 13:14:22 PAGE 1
DOS C51 COMPILER V4.01, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN C:\DTMF3\MAIN.OBJ
COMPILER INVOKED BY: C:\COMP51\C51.EXE C:\DTMF3\MAIN.C DB SB OE
stmt level source
1 #include <reg51.h>
2 #include <MODBUSCR.H>
3 typedef unsigned char BYTE;
4
5 sbit WDI = P3^4;
6 sbit PFO = P3^5;
7 sbit Light=P1^2;
8 sbit V_cont=P3^7;
9
10
11 bit mark_data;
12 BYTE SBUFlen, rxdata[7]; //接收数据缓存1
13 void slavetr_int(void) interrupt 4 using 1
14 {
15 1 if (RI)
16 1 {
17 2 if (SBUFlen == 0 && SBUF == 0x7e)
18 2 SBUFlen ++;
19 2 else if (SBUFlen == 1 && SBUF == rxdata[0])
20 2 SBUFlen ++;
21 2 else if (SBUFlen == 8)
22 2 {
23 3 if (SBUF != 0xaa)
24 3 SBUFlen = 0;
25 3 else if (!make_crc_rbank_1(rxdata, 7))
*** WARNING 259 IN LINE 25 OF C:\DTMF3\MAIN.C: 'parameter': pointer: different mspace
26 3 {
27 4 mark_data = 1;
28 4 SBUFlen ++;
29 4 }
30 3 else SBUFlen = 0;
31 3 }
32 2 else if (SBUFlen == 9)
33 2 0; //no action
34 2 else if (SBUFlen > 1)
35 2 {
36 3 rxdata[SBUFlen - 1] = SBUF; //SBUFlen:1-5为数据,6,7为CRC校验。
37 3 SBUFlen ++;
38 3 }
39 2 RI = 0;
40 2 }
41 1 return;
42 1 }
43
44 #define AppendCRC(dataBlock, num) { make_crc_rbank_0((dataBlock), (num)); (dataBlock)[(num)] = (byte)crc;
-(dataBlock)[(num)+1] = crc >> 8;}
45
46 BYTE tx[24]="\x01\x11\x11"; //发送数据缓存
47 void send_data(BYTE data *temp, BYTE num)
48 {
49 1 EA = 0; //关中断;
50 1 AppendCRC(temp, num);
*** WARNING 259 IN LINE 50 OF C:\DTMF3\MAIN.C: 'parameter': pointer: different mspace
51 1 num += 2;
52 1
53 1 SBUF = 0X7E; while(TI == 0); TI = 0;
54 1 while (num --)
55 1 {
56 2 SBUF = *temp ++;
C51 COMPILER V4.01, MAIN 28/12/04 13:14:22 PAGE 2
57 2 while(TI == 0); TI=0;
58 2 }
59 1 SBUF = 0XAA; while(TI == 0); TI = 0;
60 1 EA = 1; //开中断;
61 1 }
62
63 void main()
64 {
65 1 bit dec_mark,dec_ok;
66 1 BYTE order_ok,act_ok; //接收数据存
67 1 BYTE i,dec_num,order_type,adc_step;
68 1 int count;
69 1
70 1 mark_data = 0; SBUFlen = 0;
71 1 tx[0] = rxdata[0] = 0x01;
72 1
73 1 /*串口232初始化*/
74 1 TMOD = 0x20;
75 1 TL1 = 0xfd;
76 1 TH1 = 0xfd;
77 1 SCON = 0x50;
78 1 PCON = 0x00;
79 1 TR1= 1;
80 1 ES = 1; //使用串口中断;
81 1 EA = 1; //开中断;
82 1 dec_mark = 0; order_ok = 0x00;
83 1 act_ok = 0xFF; dec_num = 0x00;
84 1 send_data(tx, 3); //串口发数据
85 1 Light = !Light;
86 1 while(1) //进入循环
87 1 {
88 2 WDI = !WDI;
89 2
90 2 if (mark_data == 1)
91 2 {
92 3 switch (rxdata[1])
93 3 {
94 4 case 0xEE: //数据请求指令
95 4 {
96 5 if (rxdata[2] == 0xEE)
97 5 {
98 6 tx[1] = 0xEE; tx[2] = 0x0A;
99 6 send_data(tx, 18); //串口发数据
100 6 }
101 5 } break;
102 4 case 0xB9: //确认减压后保压指令
103 4 {
104 5 tx[1] = 0xC4; tx[2] = rxdata[2]; tx[3] = 0xFF;
105 5 send_data(tx, 4); //串口发确认未执行保压
106 5 if(rxdata[2] == 0x11) V_cont=1;
107 5 else if(rxdata[2] == 0x22) V_cont=0;
108 5 } break;
109 4 default: break;
110 4 }
111 3 SBUFlen = 0; mark_data = 0;
112 3 }
113 2
114 2 if (PFO == 0) //低压报警
115 2 {
116 3 tx[1] = 0xE7; tx[2] = 0xD8; tx[3] = 0xD8;
117 3 send_data(tx, 4); //串口发请求低压报警
118 3 }
119 2
120 2 if (count > 12000)
121 2 {
122 3 count = 0;
C51 COMPILER V4.01, MAIN 28/12/04 13:14:22 PAGE 3
123 3 Light = !Light;
124 3 }
125 2 count ++;
126 2 }
127 1 }
128
C51 COMPILER V4.01, MAIN 28/12/04 13:14:22 PAGE 4
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
T0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B4H 1
AC . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D6H 1
T1 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B5H 1
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
rxdata . . . . . . . . . . . . . . . . PUBLIC DATA ARRAY 0000H 7
_send_data . . . . . . . . . . . . . . PUBLIC CODE PROC ----- -----
temp . . . . . . . . . . . . . . . . AUTO DATA PTR 0000H 1
num. . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0001H 1
RD . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B7H 1
ES . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ACH 1
RI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0098H 1
_make_crc_rbank_0. . . . . . . . . . . EXTERN CODE PROC ----- -----
INT0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B2H 1
CY . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D7H 1
_make_crc_rbank_1. . . . . . . . . . . EXTERN CODE PROC ----- -----
TI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0099H 1
INT1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B3H 1
PS . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BCH 1
OV . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D2H 1
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC ----- -----
dec_mark . . . . . . . . . . . . . . AUTO DATA BIT 0000H 1
dec_ok . . . . . . . . . . . . . . . AUTO DATA BIT 0001H 1
order_ok . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
act_ok . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0001H 1
i. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0002H 1
dec_num. . . . . . . . . . . . . . . AUTO DATA U_CHAR 0003H 1
order_type . . . . . . . . . . . . . AUTO DATA U_CHAR 0004H 1
adc_step . . . . . . . . . . . . . . AUTO DATA U_CHAR 0005H 1
count. . . . . . . . . . . . . . . . AUTO DATA INT 0006H 2
WR . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B6H 1
mark_data. . . . . . . . . . . . . . . PUBLIC DATA BIT 0000H 1
SBUF . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0099H 1
PCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0087H 1
slavetr_int. . . . . . . . . . . . . . PUBLIC CODE PROC ----- -----
SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1
BYTE . . . . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1
TMOD . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0089H 1
byte . . . . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1
crc. . . . . . . . . . . . . . . . . . EXTERN DATA U_INT ----- 2
word . . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2
IE0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0089H 1
IE1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008BH 1
ET0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A9H 1
ET1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ABH 1
TF0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008DH 1
TF1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008FH 1
RB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009AH 1
EX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A8H 1
IT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0088H 1
TH1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008DH 1
TB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009BH 1
EX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AAH 1
IT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008AH 1
P. . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D0H 1
SM0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009FH 1
SM1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009EH 1
TL1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008BH 1
SM2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009DH 1
PT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B9H 1
C51 COMPILER V4.01, MAIN 28/12/04 13:14:22 PAGE 5
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
PT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BBH 1
RS0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D3H 1
TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1
RS1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D4H 1
TR1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008EH 1
PX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B8H 1
PX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BAH 1
WDI. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B4H 1
PFO. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B5H 1
REN. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009CH 1
tx . . . . . . . . . . . . . . . . . . PUBLIC DATA ARRAY 0007H 24
V_cont . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B7H 1
RXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B0H 1
TXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B1H 1
SBUFlen. . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 001FH 1
F0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D5H 1
Light. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0092H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 365 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 32 10
IDATA SIZE = ---- ----
BIT SIZE = 1 2
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 2 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -