📄 user.lst
字号:
C51 COMPILER V7.20 USER 01/23/2006 13:26:51 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE USER
OBJECT MODULE PLACED IN user.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE user.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1
2 /*+--------------------------------------------------------------+
3 |文件名称: 实验板板串口通信程序—监测SE接口状态的工作模式 |
4 |版 本: V1.1 |
5 |制作单位: 北京鼎实创新科技公司 |
6 |版权许可: |
7 |网址: www.c-profibus.com.cn |
8 |email: tangjy@c-profibus.com.cm |
9 |日期: 2004/9 |
10 +----------------------------------------------------------------+*/
11
12 #include <d:\Keil\c51\INC\reg52.h>
13 #include <d:\Keil\c51\INC\stdio.h>
14 #define UBYTE unsigned char
15 #define UWORD unsigned int
16
17
18 /*========================================================================================================
-==========*/
19 /* 以下是输入键、指示灯等设备变量定义,用户可以越过阅读
- */
20 /*--------------------------------------------------------------------------------------------------------
-----------*/
21
22
23 sbit out0_7=P2^0; /* 定义out0_7=P2.0=P16O0,输出指示灯Q0-Q7的输出控制,见实验板原理图U16
- ------*/
24 sbit out8_15=P2^1; /* 定义out8_15=P2.1=P17O1,输出指示灯Q8-Q15的输出控制,见实验板原理图U17
- ------*/
25 sbit inled0_7=P2^2; /* 定义inled0_7=P2.2=P18IO0,输入指示灯I0-I7的输出控制,见实验板原理图U18
- ------*/
26 sbit inled8_15=P2^3; /* 定义inled8_15=P2.3=P19IO1,输入指示灯I8-I15的输出控制,见实验板原理图U19
- ------*/
27 sbit in0_7=P2^4; /* 定义in0_7=P2^4=P2.4=P12I0,输入键I0-I7的读控制,见实验板原理图U12
- ------*/
28 sbit in8_15=P2^5; /* 定义in8_15=P2^5=P2.5=P13I1,输入键I8-I15的读控制,见实验板原理图U13
- ------*/
29 sbit inadd=P2^6; /* 定义inadd=P2^6=P2.6=P20AD,PROFIBUS地址输入AD0-AD7的读控制,见实验板原理图U
-20 ------*/
30
31 sbit REQ_IT=P1^7; /* 定义REQ_IT=P1^7=P1.7=P17S_CTS,输入,连接OEM2-SE-REQ_IT,见实验板原理图CONNE
-CT-16 ---*/
32 sbit S_RTS=P1^6; /* 定义S_RTS=P1^6=P1.6=P17S_RTS,输入,连接OEM2-SE-S_RTS,见实验板原理图CONNECT
--16 ---*/
33 sbit P15RES=P1^5;
34
35
36 /************** 定义:di0_7:字节型,是输入键I0-I7当前值; **************************/
37 /************** 定义:di8_15:字节型,是输入键I8-I15当前值; **************************/
38
39 bdata UBYTE di0_7,di8_15; /* di0_7:字节型,输入键I0-I7;di8_15:字节型,输入键I8-I15 --------*/
40 sbit di0=di0_7^0; /* 定义di0=di0_7^0=输入键I0 --------*/
41 sbit di1=di0_7^1; /* 定义di1=di0_7^1=输入键I1 --------*/
42 sbit di2=di0_7^2; /* 定义di2=di0_7^2=输入键I2 --------*/
43 sbit di3=di0_7^3; /* 定义di3=di0_7^3=输入键I3 --------*/
C51 COMPILER V7.20 USER 01/23/2006 13:26:51 PAGE 2
44 sbit di4=di0_7^4; /* 定义di4=di0_7^4=输入键I4 --------*/
45 sbit di5=di0_7^5; /* 定义di5=di0_7^5=输入键I5 --------*/
46 sbit di6=di0_7^6; /* 定义di6=di0_7^6=输入键I6 --------*/
47 sbit di7=di0_7^7; /* 定义di7=di0_7^7=输入键I7 --------*/
48 sbit di8=di8_15^0; /* 定义di8=di8_15^0=输入键I8 --------*/
49 sbit di9=di8_15^1; /* 定义di9=di8_15^1=输入键I9 --------*/
50 sbit di10=di8_15^2; /* 定义di10=di8_15^2=输入键I10 --------*/
51 sbit di11=di8_15^3; /* 定义di11=di8_15^3=输入键I11 --------*/
52 sbit di12=di8_15^4; /* 定义di12=di8_15^4=输入键I12 --------*/
53 sbit di13=di8_15^5; /* 定义di13=di8_15^5=输入键I13 --------*/
54 sbit di14=di8_15^6; /* 定义di14=di8_15^6=输入键I14 --------*/
55 sbit di15=di8_15^7; /* 定义di15=di8_15^7=输入键I15 --------*/
56
57
58 /************** 定义:key0_7:字节型,是输入键I0-I7扫描读入值; **************************/
59 /************** 定义:key8_15:字节型,是输入键I8-I15扫描读入值; **************************/
60
61 bdata UBYTE key0_7,key8_15;
62 sbit key0=key0_7^0; /* 定义key0=key0_7^0=输入键I0 --------*/
63 sbit key1=key0_7^1; /* 定义key1=key0_7^1=输入键I1 --------*/
64 sbit key2=key0_7^2; /* 定义key2=key0_7^2=输入键I2 --------*/
65 sbit key3=key0_7^3; /* 定义key3=key0_7^3=输入键I3 --------*/
66 sbit key4=key0_7^4; /* 定义key4=key0_7^4=输入键I4 --------*/
67 sbit key5=key0_7^5; /* 定义key5=key0_7^5=输入键I5 --------*/
68 sbit key6=key0_7^6; /* 定义key6=key0_7^6=输入键I6 --------*/
69 sbit key7=key0_7^7; /* 定义key7=key0_7^7=输入键I7 --------*/
70 sbit key8=key8_15^0; /* 定义key8=key8_15^0=输入键I8 --------*/
71 sbit key9=key8_15^1; /* 定义key9=key8_15^1=输入键I9 --------*/
72 sbit key10=key8_15^2; /* 定义key10=key8_15^2=输入键I10 --------*/
73 sbit key11=key8_15^3; /* 定义key11=key8_15^3=输入键I11 --------*/
74 sbit key12=key8_15^4; /* 定义key12=key8_15^4=输入键I12 --------*/
75 sbit key13=key8_15^5; /* 定义key13=key8_15^5=输入键I13 --------*/
76 sbit key14=key8_15^6; /* 定义key14=key8_15^6=输入键I14 --------*/
77 sbit key15=key8_15^7; /* 定义key15=key8_15^7=输入键I15 --------*/
78
79 /************** 定义:P00-P07对应P0口的P0.0-P0.7 **************************/
80 sbit P00=P0^0;
81 sbit P01=P0^1;
82 sbit P02=P0^2;
83 sbit P03=P0^3;
84 sbit P04=P0^4;
85 sbit P05=P0^5;
86 sbit P06=P0^6;
87 sbit P07=P0^7;
88
89 /************** PP00-PP07是上面P00-P07的中间变量 **************************/
90 bdata UBYTE PP0;
91 sbit PP00=PP0^0;
92 sbit PP01=PP0^1;
93 sbit PP02=PP0^2;
94 sbit PP03=PP0^3;
95 sbit PP04=PP0^4;
96 sbit PP05=PP0^5;
97 sbit PP06=PP0^6;
98 sbit PP07=PP0^7;
99
100
101 /**** 定义:AB_status:字节型,报文类型及接口状态,见《PB-OEM2-SE产品手册》第四章、三、数据交换 *******/
102 bdata UBYTE AB_status;
103 sbit AB_sD0=AB_status^0; /**** AB_sD0=AB_status^0:用户参数更新标记 ****/
104 sbit AB_sD7=AB_status^7; /**** AB_sD7=AB_status^7:报文格式 ****/
105
C51 COMPILER V7.20 USER 01/23/2006 13:26:51 PAGE 3
106 /**** 定义:req_com:字节型,请求数据命令,见《PB-OEM2-SE产品手册》第四章、三、数据交换 *******/
107 bdata UBYTE req_com;
108 sbit req_comD0=req_com^0; /**** req_comD0=req_com^0:请求数据/参数命令 ****/
109 sbit req_comD1=req_com^1; /**** req_comD1=req_com^1:清参数命令 ****/
110
111
112 /*--------------------------------------------------------------------------------------------------------
-----------*/
113 /* 输入键、指示灯等设备变量定义完毕
- */
114 /*========================================================================================================
-==========*/
115
116
117 /*========================================================================================================
-==========*/
118 /* 以下是有关输入键、指示灯控制子程序,用户了解功能即可
- */
119 /*--------------------------------------------------------------------------------------------------------
-----------*/
120
121
122 /************************* 将V值送指示灯Q0-Q7输出****************************/
123 void steout0_7(UBYTE v)
124 {
125 1 out0_7=0;
126 1 P0=v;
127 1 P0=v;
128 1 P0=v;
129 1 P0=v;
130 1 out0_7=1;
131 1 out0_7=0;
132 1 }
133
134 /************************* 将V值送指示灯Q8-Q15输出***************************/
135 void steout8_15(UBYTE v)
136 {
137 1 out8_15=0;
138 1 P0=v;
139 1 P0=v;
140 1 P0=v;
141 1 P0=v;
142 1 out8_15=1;
143 1 out8_15=0;
144 1 }
145
146 /************************* 将V值送输入键指示灯ILED0-LIED7输出****************/
147 void steinled0_7(UBYTE v)
148 {
149 1 inled0_7=0;
150 1 P0=v;
151 1 P0=v;
152 1 P0=v;
153 1 P0=v;
154 1 inled0_7=1;
155 1 inled0_7=0;
156 1 }
157
158 /************************* 将V值送输入键指示灯ILED8-LIED15输出***************/
159 void steinled8_15(UBYTE v)
160 {
161 1 inled8_15=0;
C51 COMPILER V7.20 USER 01/23/2006 13:26:51 PAGE 4
162 1 P0=v;
163 1 P0=v;
164 1 P0=v;
165 1 P0=v;
166 1 inled8_15=1;
167 1 inled8_15=0;
168 1 }
169
170 /************************* 读PROFIBUS地址开关值****************************/
171 UBYTE rd_address()
172 {
173 1 UBYTE data x;
174 1 P0=0xff;
175 1 inadd=0;
176 1 x=P0;
177 1 x=P0;
178 1 x=P0;
179 1 x=P0;
180 1 inadd=1;
181 1 return(x);
182 1 }
183
184 /************************* 扫描一次输入键I0-115,更新一次输入键当前值*******************************/
185 /************************* 对输入键I0-I15有0-1者,当前值取反****************************************/
186 void scanin()
187 {
188 1
189 1 P0=0xff;
190 1 in0_7=0;
191 1 PP0=P0;
192 1 PP0=P0;
193 1 PP0=P0;
194 1 PP0=P0;
195 1 if (key0_7!=PP0)
196 1 {
197 2 if ((PP00==1)&&(key0==0)) { di0=~di0;};
198 2 if ((PP01==1)&&(key1==0)) { di1=~di1;};
199 2 if ((PP02==1)&&(key2==0)) { di2=~di2;};
200 2 if ((PP03==1)&&(key3==0)) { di3=~di3;};
201 2 if ((PP04==1)&&(key4==0)) { di4=~di4;};
202 2 if ((PP05==1)&&(key5==0)) { di5=~di5;};
203 2 if ((PP06==1)&&(key6==0)) { di6=~di6;};
204 2 if ((PP07==1)&&(key7==0)) { di7=~di7;};
205 2 key0_7=PP0;
206 2 };
207 1 in0_7=1;
208 1 inled0_7=0;
209 1 P0=di0_7;
210 1 P0=di0_7;
211 1 P0=di0_7;
212 1 P0=di0_7;
213 1 inled0_7=1;
214 1 inled0_7=0;
215 1
216 1 P0=0xff;
217 1 in8_15=0;
218 1 PP0=P0;
219 1 PP0=P0;
220 1 PP0=P0;
221 1 PP0=P0;
222 1 if (key8_15!=PP0)
223 1 {
C51 COMPILER V7.20 USER 01/23/2006 13:26:51 PAGE 5
224 2 if ((PP00==1)&&(key8==0)) { di8=~di8;};
225 2 if ((PP01==1)&&(key9==0)) { di9=~di9;};
226 2 if ((PP02==1)&&(key10==0)) { di10=~di10;};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -