📄 mds-100-77e58.lst
字号:
C51 COMPILER V7.06 MDS_100_77E58 03/22/2006 19:49:08 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MDS_100_77E58
OBJECT MODULE PLACED IN MDS-100-77E58.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE MDS-100-77E58.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1
2 /***********************摩托车电子桩考车载传感器程序****************************/
3
4 /***文件名称:MDC-100-77E58 ****/
5 /***摘 要:采集场地违规信息和摩托车上的信息,然后通过数传台传输给FC机 ****/
6
7 /***当前版本:Ver1.0版 ****/
8 /***作 者:Hunter ****/
9 /***完成日期:2006年03月 ****/
10
11 /***版权所有:南京多伦科技有限公司 ****/
12
13 /*******************************************************************************/
14
15 /***场地传感器控制程序,采集考试过程中的路线信号和碰桩信号 ***/
16 /***定义车载单元为主机地址为11H,PC机的地址为12H ***/
17 /***定义场地7个传感器的地址:01H,02H,03H,04H,05H为五个警示柱地址***/
18 /***定义左右边线的传感器地址为06H,07H ***/
19
20 /************************发送数据数组定义 **************************/
21 /*** Sent_data[0]数据起始位FFH ***/
22 /*** Sent_data[1]目的地址 ***/
23 /*** Sent_data[2]原地址 ***/
24 /*** Sent_data[3]数据位碰撞与出边线编码 ***/
25 /*** Sent_data[4]数据位出发路线编码信息 ***/
26 /*** Sent_data[5]数据位回程路线编码信息 ***/
27 /*** Sent_data[6]数据位车载信息编码 ***/
28 /*** Sent_data[7]空闲位00H ***/
29 /*** Sent_data[8]空闲位00H ***/
30 /*** Sent_data[9]校验和 ***/
31 /*******************************************************************/
32
33 /************************应答数组的格式定义*************************/
34 /*** Sent_Answ[0]应答起始位FFH ***/
35 /*** Sent_Answ[1]目的地址 ***/
36 /*** Sent_Answ[2]原地址 ***/
37 /*** Sent_Answ[3]空闲位0 ***/
38 /*** Sent_Answ[4]空闲位0 ***/
39 /*** Sent_Answ[5]空闲位0 ***/
40 /*** Sent_Answ[6]空闲位0 ***/
41 /*** Sent_Answ[7]空闲位0 ***/
42 /*** Sent_Answ[8]空闲位0 ***/
43 /*** Sent_Answ[9]校验和 ***/
44 /*******************************************************************/
45
46 #include" W77E58.h"
47
48
49 unsigned char data Sent_Data_BT[10];/**定义发送数据存储数组 **/
50 unsigned char data Sent_Data_FC[10];/**定义发送数据存储数组 **/
51 unsigned char data Sent_Answ_FC[10];/**定义发送数据存储数组 **/
52
53 unsigned char data Rece_Data_BT[10];/**定义接收数据存储数组 **/
54 unsigned char data Rece_Data_FC[10];/**定义接收数据存储数组 **/
55
C51 COMPILER V7.06 MDS_100_77E58 03/22/2006 19:49:08 PAGE 2
56 void Send_UART0(unsigned char data *Sent_Buf); /**车载发送数据给蓝牙子程序**/
57 void Send_UART1(unsigned char data *Sent_Buf); /**车载发送数据给PC子程序**/
58
59 void Main_Init(); /**初始化子程序 **/
60 void WDT_Init(); /**看门狗初始化子程序**/
61 void WDT_Clr(); /**喂狗子程序**/
62
63 void SP0_ISR();/**串口0中断服务子程序**/
64 void SP1_ISR();/**串口1中断子服务程序**/
65 void TR0_ISR(); /**定时器0中断服务子程序**/
66
67 unsigned char RBT_Flag;
68 unsigned char RFC_Flag;
69 unsigned char N;
70 unsigned char RG_Flag,LF_Flag,SH_Flag; /**端口状态变化寄存器**/
71 unsigned char R_State,L_State,S_State; /**端口状态寄存器**/
72
73 /**定义场地传感器信号输入口**/
74 sbit Left_Sig=P0^1; /**定义左脚踏地标志位**/
75 sbit Right_Sig=P0^2; /**定义右脚踏地标志位**/
76 sbit Shart_Sig=P0^0; /**定义熄火标志位**/
77
78 /**定义数据接收发送指示灯**/
79 sbit FC_Rece=P2^0;
80 sbit FC_Tran=P2^1;
81 sbit BT_Rece=P2^2;
82 sbit BT_Tran=P2^3;
83
84 /**************************************************************************/
85 /** 函数名称: main() **/
86 /** 功能描述: 车载控制单元主程序,实现摩托车信号的采集和场地信号的接收; **/
87 /** 同时将信号传输给PC机。 **/
88 /** 输 入: 无 **/
89 /** 输 出: 无 **/
90
91 /** 作 者: Hunter **/
92 /** 日 期: 2006年03月 **/
93
94 /**************************************************************************/
95 /** 修 改 人: **/
96 /** 日 期: **/
97 /**************************************************************************/
98
99 main()
100 {
101 1
102 1 /**串口数据接收发送指示灯初始化**/
103 1 FC_Rece=1;
104 1 FC_Tran=1;
105 1 BT_Rece=1;
106 1 BT_Tran=1;
107 1 N=1;
108 1 /**端口状态寄存器**/
109 1 R_State=Right_Sig;
110 1 L_State=Left_Sig;
111 1 S_State=Shart_Sig;
112 1
113 1 /**端口状态变化寄存器初始化**/
114 1 RG_Flag=0;
115 1 LF_Flag=0;
116 1 SH_Flag=0;
117 1
C51 COMPILER V7.06 MDS_100_77E58 03/22/2006 19:49:08 PAGE 3
118 1 RBT_Flag=0;
119 1
120 1 Sent_Data_FC[0] = 0xFF;
121 1 Sent_Data_FC[1] = 0x12;
122 1 Sent_Data_FC[2] = 0x11;
123 1 Sent_Data_FC[3] = 0x00;
124 1 Sent_Data_FC[4] = 0x00;
125 1 Sent_Data_FC[5] = 0x00;
126 1 Sent_Data_FC[6] = 0x00;
127 1 Sent_Data_FC[7] = 0x00;
128 1 Sent_Data_FC[8] = 0x00;
129 1
130 1 Main_Init(); /**串口初始化**/
131 1
132 1 WDT_Init();/**看门狗初始化,启动看门狗**/
133 1
134 1 while(1)
135 1 {
136 2
137 2 WDT_Clr();
138 2
139 2 /**解析来自到场地的蓝牙信息,并作相应的处理**/
140 2 if(RBT_Flag == 0xFA)
141 2 {
142 3 RBT_Flag = 0x00;
143 3
144 3 Sent_Data_FC[0]=0xFF;
145 3 Sent_Data_FC[1]=0x12;
146 3 Sent_Data_FC[2]=0x11;
147 3 Sent_Data_FC[3]=Rece_Data_BT[3];
148 3 Sent_Data_FC[4]=Rece_Data_BT[4];
149 3 Sent_Data_FC[5]=Rece_Data_BT[5];
150 3 Sent_Data_FC[6]=0x00;
151 3 Sent_Data_FC[7]=0x00;
152 3 Sent_Data_FC[8]=0x00;
153 3
154 3 Send_UART1(Sent_Data_FC); /**接收场地信息正确,发送给桩考检测仪**/
155 3
156 3 Sent_Data_BT[0]=0xFF;
157 3 Sent_Data_BT[1]=Rece_Data_BT[2];
158 3 Sent_Data_BT[2]=0x11;
159 3 Sent_Data_BT[3]=0xFA;
160 3 Sent_Data_BT[4]=0x00;
161 3 Sent_Data_BT[5]=0x00;
162 3 Sent_Data_BT[6]=0x00;
163 3 Sent_Data_BT[7]=0x00;
164 3 Sent_Data_BT[8]=0x00;
165 3
166 3 Send_UART0(Sent_Data_BT);/**发送接收信号正确应答信息**/
167 3
168 3 }
169 2
170 2 else if(RBT_Flag == 0xFB)
171 2 {
172 3 RBT_Flag = 0x00;
173 3
174 3 Sent_Data_BT[0]=0xFF;
175 3 Sent_Data_BT[1]=Rece_Data_BT[2];
176 3 Sent_Data_BT[2]=0x11;
177 3 Sent_Data_BT[3]=0xFB;
178 3 Sent_Data_BT[4]=0x00;
179 3 Sent_Data_BT[5]=0x00;
C51 COMPILER V7.06 MDS_100_77E58 03/22/2006 19:49:08 PAGE 4
180 3 Sent_Data_BT[6]=0x00;
181 3 Sent_Data_BT[7]=0x00;
182 3 Sent_Data_BT[8]=0x00;
183 3
184 3 Send_UART0(Sent_Data_BT); /**接收场地错误,请求重发**/
185 3 }
186 2
187 2 else
188 2 {
189 3 Sent_Data_FC[0] = Sent_Data_FC[0];
190 3 Sent_Data_FC[1] = Sent_Data_FC[1];
191 3 Sent_Data_FC[2] = Sent_Data_FC[2];
192 3 Sent_Data_FC[3] = Sent_Data_FC[3];
193 3 Sent_Data_FC[4] = Sent_Data_FC[4];
194 3 Sent_Data_FC[5] = Sent_Data_FC[5];
195 3 Sent_Data_FC[6] = Sent_Data_FC[6];
196 3 Sent_Data_FC[7] = Sent_Data_FC[7];
197 3 Sent_Data_FC[8] = Sent_Data_FC[8]; }
198 2
199 2 /**解析来自桩考监测仪的信息,并进行处理**/
200 2 if(RFC_Flag==0xFA)
201 2 {
202 3 RFC_Flag=0x00;
203 3 Sent_Data_FC[0] = 0xFF;
204 3 Sent_Data_FC[1] = 0x12;
205 3 Sent_Data_FC[2] = 0x11;
206 3 Sent_Data_FC[3] = 0x00;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -