📄 eos.lst
字号:
C51 COMPILER V7.50 EOS 03/10/2006 16:35:52 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE EOS
OBJECT MODULE PLACED IN EOS.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE EOS.c LARGE OPTIMIZE(9,SIZE) BROWSE NOAREGS DEBUG OBJECTEXTEND
line level source
1 #include <reg54.h>
2 #include <stdio.h>
3 #include "se0121.h"
4 #include "cmd_para_save.h"
5
6 extern unsigned long int xdata commandid; //表示命令代码的变量
7 extern void SetResRdyTbl(unsigned char prio) large reentrant;
8 extern unsigned char se0121_reg_rd(unsigned char Laddr,unsigned char slot);
9 extern void se0121_reg_wr(unsigned char Laddr,unsigned char value,unsigned char slot);
10 extern unsigned char xdata tx_buf[];
11 extern unsigned char xdata tx_buf_pointer;
12 extern bit tx_done;
13
14 unsigned char xdata EOS_address_value = 0;
15
16 unsigned char reset_EOS(struct cmd_para_save *reset_EOS){
17 1 //C90软件复位EOS
18 1 unsigned char xdata board;
19 1 unsigned char xdata value;
20 1 unsigned char xdata return_value;
21 1
22 1 commandid = 0x00433930;
23 1 board = reset_EOS -> reset_EOS_board;
24 1 value = reset_EOS -> reset_EOS_value;
25 1
26 1 if (value == 0)
27 1 {
28 2 value = se0121_reg_rd(Eos_cortrol,board);
29 2 value |= 0x80;
30 2 se0121_reg_wr(Eos_cortrol,value,board); //先复位EOS盘的SDH接口部分
31 2 value &= 0x7F;
32 2 se0121_reg_wr(Eos_cortrol,value,board); //再恢复正常
33 2 return_value = 0;
34 2 }
35 1 else if (value == 1)
36 1 {
37 2 value = se0121_reg_rd(E_cortrol,board);
38 2 value |= 0x80;
39 2 se0121_reg_wr(E_cortrol,value,board); //先复位EOS盘的以太网接口部分
40 2 value &= 0x7F;
41 2 se0121_reg_wr(E_cortrol,value,board); //再恢复正常
42 2 return_value = 0;
43 2 }
44 1 else return_value = 2;
45 1
46 1 SetResRdyTbl(1);
47 1 return(return_value);
48 1 }
49
50
51 unsigned char set_EOS_address(struct cmd_para_save *set_EOS_address){
52 1 //C91设置发送接收端地址
53 1 unsigned char xdata board;
54 1 unsigned char xdata type;
55 1 unsigned char xdata value;
C51 COMPILER V7.50 EOS 03/10/2006 16:35:52 PAGE 2
56 1 unsigned char xdata return_value;
57 1
58 1 commandid = 0x00433931;
59 1 board = set_EOS_address -> set_address_board;
60 1 type = set_EOS_address -> set_address_type;
61 1 value = set_EOS_address -> set_address_value;
62 1
63 1 value &= 0x1F;
64 1 if (type == 0)
65 1 {
66 2 se0121_reg_wr(CA_send,value,board);
67 2 return_value = 0;
68 2 }
69 1 else if (type == 1)
70 1 {
71 2 se0121_reg_wr(CA_recv,value,board);
72 2 return_value = 0;
73 2 }
74 1 else return_value = 2;
75 1
76 1 SetResRdyTbl(1);
77 1 return(return_value);
78 1 }
79
80
81 unsigned char get_EOS_address(struct cmd_para_save *get_EOS_address){
82 1 //C92读取发送接收端地址
83 1 unsigned char xdata board;
84 1 unsigned char xdata type;
85 1 unsigned char xdata return_value;
86 1
87 1 commandid = 0x00433931;
88 1 board = get_EOS_address -> get_address_board;
89 1 type = get_EOS_address -> get_address_type;
90 1
91 1 if (type == 0)
92 1 {
93 2 EOS_address_value = se0121_reg_rd(CA_send,board);
94 2 return_value = 0;
95 2 }
96 1 else if (type == 1)
97 1 {
98 2 EOS_address_value = se0121_reg_rd(CA_recv,board);
99 2 return_value = 0;
100 2 }
101 1 else
102 1 {
103 2 EOS_address_value = 0;
104 2 return_value = 2;
105 2 }
106 1
107 1 SetResRdyTbl(33);
108 1 return(return_value);
109 1 }
110
111 void report_EOS_address(unsigned char value){
112 1 //C92回应函数
113 1 unsigned char xdata temp;
114 1
115 1 tx_buf[0] = '$';
116 1 tx_buf[1] = '2';
117 1 tx_buf[2] = '1';
C51 COMPILER V7.50 EOS 03/10/2006 16:35:52 PAGE 3
118 1 tx_buf[3] = 0x43;
119 1 tx_buf[4] = 0x39;
120 1 tx_buf[5] = 0x32;
121 1 tx_buf[6] = '0';
122 1 tx_buf[7] = '0';
123 1 tx_buf[8] = '0';
124 1 tx_buf[9] = '3';
125 1 tx_buf[10] = value + 0x30;
126 1 temp = EOS_address_value >> 4;
127 1 if (temp > 9)
128 1 tx_buf[11] = temp + 0x37;
129 1 else tx_buf[11] = temp + 0x30;
130 1 temp = EOS_address_value & 0x0F;
131 1 if (temp > 9)
132 1 tx_buf[12] = temp + 0x37;
133 1 else tx_buf[12] = temp + 0x30;
134 1 tx_buf[13] = '*';
135 1 tx_buf_pointer = 0;
136 1 while(tx_buf[tx_buf_pointer] != '*'){
137 2 SBUF = tx_buf[tx_buf_pointer];
138 2 while(tx_done == 0);
139 2 tx_done = 0;
140 2 tx_buf_pointer++;
141 2 }
142 1 SBUF = tx_buf[tx_buf_pointer]; //发送最后一个字符'*'
143 1 while(tx_done == 0);
144 1 tx_done = 0;
145 1 }
146
147 unsigned char set_search_location(struct cmd_para_save *set_EOS_search){
148 1 //C93设置监控点
149 1 unsigned char xdata board;
150 1 unsigned char xdata type;
151 1 unsigned char xdata value;
152 1 unsigned char xdata return_value;
153 1
154 1 commandid = 0x00433933;
155 1 board = set_EOS_search -> set_search_board;
156 1 type = set_EOS_search -> set_search_locate;
157 1
158 1 if (type == 0)
159 1 {
160 2 value = se0121_reg_rd(E_cortrol,board);
161 2 value &= 0xF7;
162 2 se0121_reg_wr(E_cortrol,value,board);
163 2 return_value = 0;
164 2 }
165 1 else if (type == 1)
166 1 {
167 2 value = se0121_reg_rd(E_cortrol,board);
168 2 value |= 0x08;
169 2 se0121_reg_wr(E_cortrol,value,board);
170 2 return_value = 0;
171 2 }
172 1 else return_value = 2;
173 1
174 1 SetResRdyTbl(1);
175 1 return(return_value);
176 1 }
177
178 unsigned char get_search_location(struct cmd_para_save *get_EOS_search){
179 1 //C94读取监控点
C51 COMPILER V7.50 EOS 03/10/2006 16:35:52 PAGE 4
180 1 unsigned char xdata board;
181 1 unsigned char xdata value;
182 1 unsigned char xdata return_value;
183 1
184 1 board = get_EOS_search -> get_search_board;
185 1
186 1 value = se0121_reg_rd(E_cortrol,board);
187 1 value &= 0x08;
188 1 if (value == 0)
189 1 {
190 2 return_value = 0;
191 2 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -