📄 sio.lst
字号:
C51 COMPILER V7.20 SIO 11/18/2004 17:33:51 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE SIO
OBJECT MODULE PLACED IN D:\TEST\TV\SIO.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\TEST\TV\SIO.C DB SB OE
line level source
1 #include <REG52.H>
2 #include <extern.h>
3 #include <constant.h>
4 #include <function.h>
5
6 //功能:先设置帧首和帧尾,然后计算校验和,再把buf_sio缓冲区中的数据发送出去
7 //
8 //
9 void SioTransmit()
10 {
11 1 unsigned char i;
12 1 buf_sio[13]=SIO_CMD_HEAD;
13 1 buf_sio[1] =buf_sio[12];
14 1 buf_sio[1] +=buf_sio[11];
15 1 buf_sio[1] +=buf_sio[10];
16 1 buf_sio[1] +=buf_sio[9];
17 1 buf_sio[1] +=buf_sio[8];
18 1 buf_sio[1] +=buf_sio[7];
19 1 buf_sio[1] +=buf_sio[6];
20 1 buf_sio[1] +=buf_sio[5];
21 1 buf_sio[1] +=buf_sio[4];
22 1 buf_sio[1] +=buf_sio[3];
23 1 buf_sio[1] +=buf_sio[2];
24 1 buf_sio[1] =~buf_sio[1];
25 1 buf_sio[1] +=1;
26 1 buf_sio[0] =SIO_CMD_END;
27 1
28 1 i=SIO_BUF_LEN-1;
29 1 ES=0;
30 1 do
31 1 {
32 2 SBUF=buf_sio[i];
33 2 while(!TI);
34 2 TI=0;
35 2 }while(i--);
36 1 ES=1;
37 1 }
38
39
40 //功能:清除缓冲区的数据,使其全0
41 //buf:缓冲区地址
42 //num:缓冲区大小
43 void ClearBuffer(unsigned char *buf,unsigned char num)
44 {
45 1 while(num)
46 1 {
47 2 *buf=0x00;
48 2 buf++;
49 2 num--;
50 2 }
51 1 }
52
53
54
55 //功能:设置发送缓冲区
C51 COMPILER V7.20 SIO 11/18/2004 17:33:51 PAGE 2
56 //cFlagSuccess:串口数据帧中的命令字
57 //
58 void SetSuccessFlag(unsigned char cFlagSuccess)
59 {
60 1 buf_sio[12] =cFlagSuccess;
61 1 buf_sio[11] =0x00;
62 1 buf_sio[10] =0x00;
63 1 buf_sio[9] =0x00;
64 1 buf_sio[8] =0x00;
65 1 buf_sio[7] =0x00;
66 1 buf_sio[6] =0x00;
67 1 buf_sio[5] =0x00;
68 1 buf_sio[4] =0x00;
69 1 buf_sio[3] =0x00;
70 1 buf_sio[2] =0x00;
71 1 }
72
73
74 //功能:发送指定的EEPROM数据
75 //addr:eeprom首地址
76 //num:读取的eeprom数据数量
77 void UploadEeprom(unsigned char addr,unsigned char num)
78 {
79 1 // buf_sio[11]=addr;
80 1 // buf_sio[10]=num;
81 1 ClearBuffer(buf_eeprom,8);
82 1 ReadEEPROM(addr,buf_eeprom,num);
83 1 buf_sio[9]=buf_eeprom[0];
84 1 buf_sio[8]=buf_eeprom[1];
85 1 buf_sio[7]=buf_eeprom[2];
86 1 buf_sio[6]=buf_eeprom[3];
87 1 buf_sio[5]=buf_eeprom[4];
88 1 buf_sio[4]=buf_eeprom[5];
89 1 buf_sio[3]=buf_eeprom[6];
90 1 buf_sio[2]=buf_eeprom[7];
91 1 SioTransmit();
92 1 }
93
94
95
96 //功能:通过串口写EEPROM
97 //
98 //
99 void DownloadEeprom(void)
100 {
101 1 buf_eeprom[0]=buf_sio[9];
102 1 buf_eeprom[1]=buf_sio[8];
103 1 buf_eeprom[2]=buf_sio[7];
104 1 buf_eeprom[3]=buf_sio[6];
105 1 buf_eeprom[4]=buf_sio[5];
106 1 buf_eeprom[5]=buf_sio[4];
107 1 buf_eeprom[6]=buf_sio[3];
108 1 buf_eeprom[7]=buf_sio[2];
109 1 if(WriteEEPROM(buf_sio[11],buf_eeprom,buf_sio[10]))
110 1 SetSuccessFlag(CMDFAILURE);
111 1 else
112 1 SetSuccessFlag(CMDSUCCESS);
113 1 SioTransmit();
114 1 }
115
116 /*
117 void UploadTV_M200TSatus(void)
C51 COMPILER V7.20 SIO 11/18/2004 17:33:51 PAGE 3
118 {
119 if(!ReadTV_M200T(buf_eeprom))
120 {
121 buf_sio[11]=buf_eeprom[0];
122 SioTransmit();
123 }
124 else
125 {
126 SetSuccessFlag(CMDFAILURE);
127 SioTransmit();
128 }
129 }
130 */
131 //-----------SIO Data Deal------------------
132
133 //功能:串口接收数据的处理
134 //
135 //
136 void DealSioData(void)
137 {
138 1 unsigned char chksum,i;
139 1
140 1 chksum=0;
141 1 for(i=SIO_BUF_LEN-2;i>0;i--)
142 1 {
143 2 chksum+=buf_sio[i];
144 2 }
145 1 if(chksum)
146 1 {
147 2 SetSuccessFlag(SUMERROR);
148 2 SioTransmit();
149 2 return;
150 2 }
151 1 switch(buf_sio[12])
152 1 {
153 2 case CMDTEST:
154 2 SioTransmit();
155 2 break;
156 2 case CMDVENDOR:
157 2 break;
158 2 case UPLOADEEPROM:
159 2 UploadEeprom(buf_sio[11],buf_sio[10]);
160 2 break;
161 2 case DOWNLOADEEPROM:
162 2 DownloadEeprom();
163 2 break;
164 2 case READTV_M200T:
165 2 //UploadTV_M200TSatus();
166 2 break;
167 2
168 2 case SETTV_M200T:
169 2 break;
170 2 case SETTVPAL:
171 2 /* for(i=0;i<buf_sio[11];i++)
172 2 {
173 2 buf_eeprom[i]=buf_sio[9-i];
174 2 }
175 2 if(!SetTVPal(buf_sio[10],buf_sio[11],buf_eeprom))
176 2 {
177 2 SetSuccessFlag(CMDSUCCESS);
178 2 SioTransmit();
179 2 }
C51 COMPILER V7.20 SIO 11/18/2004 17:33:51 PAGE 4
180 2 else
181 2 {
182 2 SetSuccessFlag(CMDFAILURE);
183 2 SioTransmit();
184 2 } */
185 2 break;
186 2 case READTVPAL:
187 2 /*if(!ReadTVPal(buf_eeprom,3))
188 2 {
189 2 buf_sio[11]=buf_eeprom[0];
190 2 buf_sio[10]=buf_eeprom[1];
191 2 buf_sio[9]=buf_eeprom[2];
192 2 SioTransmit();
193 2 }
194 2 else
195 2 {
196 2 SetSuccessFlag(CMDFAILURE);
197 2 SioTransmit();
198 2 } */
199 2 break;
200 2 default:
201 2 break;
202 2 }
203 1 }
C51 COMPILER V7.20 SIO 11/18/2004 17:33:51 PAGE 5
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P0 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0080H 1
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
SioTransmit. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
IE . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1
ES . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ACH 1
IP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B8H 1
TI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0099H 1
DealSioData. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
chksum . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
_ClearBuffer . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
buf. . . . . . . . . . . . . . . . . * REG * DATA PTR 0001H 3
num. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1
_ReadEEPROM. . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
DownloadEeprom . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
buf_eeprom . . . . . . . . . . . . . . EXTERN DATA ARRAY ----- 8
SBUF . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0099H 1
SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1
_UploadEeprom. . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
addr . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
num. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
TCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0088H 1
_WriteEEPROM . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
T2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C8H 1
_SetSuccessFlag. . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
cFlagSuccess . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
buf_sio. . . . . . . . . . . . . . . . EXTERN DATA ARRAY ----- 13
PSW. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D0H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 273 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -