📄 board_type.lst
字号:
C51 COMPILER V7.50 BOARD_TYPE 03/10/2006 16:35:30 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE BOARD_TYPE
OBJECT MODULE PLACED IN board_type.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE board_type.c LARGE OPTIMIZE(9,SIZE) BROWSE NOAREGS DEBUG OBJECTEXTEND
line level source
1 #include <REG54.H>
2 #include "rc7820.h"
3 #include "rc7860.h"
4 #include "f2rc7820.h"
5 #include "f2rc7860.h"
6 #include "cmd_para_save.h"
7 #include "rc7860.h"
8 #include "ep1k50.h"
9
10 extern void init_7820(void);
11 extern void init_7860(void);
12 extern void init_se0111(unsigned char slot);
13 extern void init_se0121(unsigned char slot);
14 extern unsigned char se0111_reg_rd(unsigned char Haddr,unsigned char Laddr,unsigned char slot);
15 extern void se0111_reg_wr(unsigned char Haddr,unsigned char Laddr,unsigned char value,unsigned char slot);
16 extern unsigned char se0121_reg_rd(unsigned char Laddr,unsigned char slot);
17 extern void se0121_reg_wr(unsigned char Laddr,unsigned char value,unsigned char slot);
18 extern void init_se0121(unsigned char slot);
19 extern void f2_rc7820(void);
20 extern unsigned char f2rc7820_rd(unsigned char f2addr) large reentrant;
21 extern void f2rc7820_wr(unsigned char f2addr,unsigned char value) large reentrant;
22 extern void f2_rc7860(void);
23 extern unsigned char f2rc7860_rd(unsigned int f2addr) large reentrant;
24 extern void f2rc7860_wr(unsigned int f2addr,unsigned char value) large reentrant;
25 extern void reset_f2rc7860(void);
26 extern void SetResRdyTbl(unsigned char prio) large reentrant;
27 extern unsigned char GetResRdyTbl(unsigned char prio) large reentrant;
28 extern unsigned char xdata tx_buf[];
29 extern unsigned char xdata tx_buf_pointer;
30 extern bit tx_done;
31 extern unsigned long int xdata commandid;
32 unsigned char xdata start_flg[4] = {1,1,1,1}; //查询单盘是否初始化标志位
33 unsigned char xdata start_flg_EOS[4] = {1,1,1,1};
34 unsigned char xdata board_flg[4] = {0,0,0,0}; //是否调用单盘初始化函数标志位
35 unsigned char xdata hold_board[4] = {0,0,0,0}; //单盘保持标志,防止单盘抖动用
36
37 extern unsigned char xdata lparray2m[3][21];
38 extern unsigned char xdata lparray_EOS[3];
39 extern unsigned char xdata EB_2M[3][21];
40 extern unsigned long int xdata REI_2M[3][21];
41 extern unsigned long int xdata REI_2M_15min[3][21];
42 extern unsigned int xdata PJC_2M[3][21];
43 extern unsigned int xdata PJC_2M_15min[3][21];
44 extern unsigned int xdata NJC_2M[3][21];
45 extern unsigned int xdata NJC_2M_15min[3][21];
46 extern unsigned char xdata lparrayf[4];
47 extern unsigned int xdata B1[4];
48 extern unsigned int xdata B2[4];
49 extern unsigned long int xdata REI_MS[4];
50 extern unsigned long int xdata REI_MS_15min[4];
51 extern unsigned int xdata B3[4];
52 extern unsigned long int xdata REI_HP[4];
53 extern unsigned long int xdata REI_HP_15min[4];
54 extern unsigned int xdata OFS[4];
55 extern unsigned int xdata OFS_15min[4];
C51 COMPILER V7.50 BOARD_TYPE 03/10/2006 16:35:30 PAGE 2
56 extern unsigned int xdata PJC_HP[4];
57 extern unsigned int xdata PJC_HP_15min[4];
58 extern unsigned int xdata NJC_HP[4];
59 extern unsigned int xdata NJC_HP_15min[4];
60 extern unsigned char xdata timeslot_2M[3][21];
61
62 unsigned char xdata board_type[4][2] = {{4,4},{1,0},{2,0},{3,0}}; //定义插盘类型数组,第一位表示槽号,第二
-位表示盘号
63
64 unsigned char get_board_type(struct cmd_para_save *get_board){
65 1 //C30读取槽位中的插盘类型
66 1 unsigned char xdata boardid;
67 1 unsigned char xdata return_value;
68 1
69 1 boardid = get_board -> board_num;
70 1
71 1 switch (boardid){
72 2 case 1: P1 = 0x20;
73 2 return_value = XBYTE[0xA400];
74 2 P1 = 0xFF;
75 2 if (return_value == 0x51){
76 3 return_value = 2; //查到插盘为AMB(2M盘)
77 3 }
78 2 else if (return_value == 0x57){
79 3 return_value = 3;
80 3 }
81 2 else return_value = 0;
82 2 break;
83 2 case 2: P1 = 0x60;
84 2 return_value = XBYTE[0xA400];
85 2 P1 = 0xFF;
86 2 if (return_value == 0x51){
87 3 return_value = 2; //查到插盘为AMB(2M盘)
88 3 }
89 2 else if (return_value == 0x57){
90 3 return_value = 3;
91 3 }
92 2 else return_value = 0;
93 2 break;
94 2 case 3: P1 = 0x40;
95 2 return_value = XBYTE[0xA400];
96 2 P1 = 0xFF;
97 2 if (return_value == 0x51){
98 3 return_value = 2; //查到插盘为AMB(2M盘)
99 3 }
100 2 else if (return_value == 0x57){
101 3 return_value = 3;
102 3 }
103 2 else return_value = 0;
104 2 break;
105 2 case 4: P1 = 0x10;
106 2 return_value = XBYTE[0xB000];
107 2 P1 = 0xFF;
108 2 if (return_value == 0x55){
109 3 return_value = 4; //查到插盘为OTB-1
110 3 }
111 2 else return_value = 0;
112 2 break;
113 2 default: return_value = 6;
114 2 break;
115 2 }
116 1 if (!GetResRdyTbl(13))
C51 COMPILER V7.50 BOARD_TYPE 03/10/2006 16:35:30 PAGE 3
117 1 SetResRdyTbl(13);
118 1 return (return_value);
119 1 }
120
121
122 void report_board_type(unsigned char value){
123 1 //C30回应函数
124 1 tx_buf[0] = '$';
125 1 tx_buf[1] = '2';
126 1 tx_buf[2] = '1';
127 1 tx_buf[3] = 0x43;
128 1 tx_buf[4] = 0x33;
129 1 tx_buf[5] = 0x30;
130 1 tx_buf[6] = '0';
131 1 tx_buf[7] = '0';
132 1 tx_buf[8] = '0';
133 1 tx_buf[9] = '2';
134 1 if (value == 6){
135 2 tx_buf[10] = '2';
136 2 }
137 1 else tx_buf[10] = '0';
138 1 tx_buf[11] = value + 0x30;
139 1 tx_buf[12] = '*';
140 1 tx_buf_pointer = 0;
141 1 while(tx_buf[tx_buf_pointer] != '*'){
142 2 SBUF = tx_buf[tx_buf_pointer];
143 2 while(tx_done == 0);
144 2 tx_done = 0;
145 2 tx_buf_pointer++;
146 2 }
147 1 SBUF = tx_buf[tx_buf_pointer]; //发送最后一个字符'*'
148 1 while(tx_done == 0);
149 1 tx_done = 0;
150 1 }
151
152
153 unsigned char get_board_state(struct cmd_para_save *get_board){
154 1 //C31读取槽位中的插盘状态
155 1 unsigned char xdata boardid;
156 1 unsigned char xdata return_value;
157 1
158 1 boardid = get_board -> board_num;
159 1
160 1 switch (boardid){
161 2 case 1: P1 = 0x20;
162 2 return_value = XBYTE[0xA400];
163 2 P1 = 0xFF;
164 2 if (return_value == 0x51){
165 3 return_value = 1; //查到插盘为AMB(2M盘)
166 3 }
167 2 else if (return_value == 0x57){
168 3 return_value = 1; //查到插盘为EOS
169 3 }
170 2 else return_value = 2;
171 2 break;
172 2 case 2: P1 = 0x60;
173 2 return_value = XBYTE[0xA400];
174 2 P1 = 0xFF;
175 2 if (return_value == 0x51){
176 3 return_value = 1; //查到插盘为AMB(2M盘)
177 3 }
178 2 else if (return_value == 0x57){
C51 COMPILER V7.50 BOARD_TYPE 03/10/2006 16:35:30 PAGE 4
179 3 return_value = 1; //查到插盘为EOS
180 3 }
181 2 else return_value = 2;
182 2 break;
183 2 case 3: P1 = 0x40;
184 2 return_value = XBYTE[0xA400];
185 2 P1 = 0xFF;
186 2 if (return_value == 0x51){
187 3 return_value = 1; //查到插盘为AMB(2M盘)
188 3 }
189 2 else if (return_value == 0x57){
190 3 return_value = 1; //查到插盘为EOS
191 3 }
192 2 else return_value = 2;
193 2 break;
194 2 case 4: P1 = 0x10;
195 2 return_value = XBYTE[0xB000];
196 2 P1 = 0xFF;
197 2 if (return_value == 0xAA){
198 3 return_value = 1; //查到插盘为OTB-1
199 3 }
200 2 else return_value = 2;
201 2 break;
202 2 default: return_value = 3;
203 2 break;
204 2 }
205 1 if (!GetResRdyTbl(14))
206 1 SetResRdyTbl(14);
207 1 return (return_value);
208 1 }
209
210
211 void report_board_state(unsigned char value){
212 1 //C31回应函数
213 1 tx_buf[0] = '$';
214 1 tx_buf[1] = '2';
215 1 tx_buf[2] = '1';
216 1 tx_buf[3] = 0x43;
217 1 tx_buf[4] = 0x33;
218 1 tx_buf[5] = 0x31;
219 1 tx_buf[6] = '0';
220 1 tx_buf[7] = '0';
221 1 tx_buf[8] = '0';
222 1 tx_buf[9] = '2';
223 1 if (value == 3){
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -