📄 serial.lst
字号:
C51 COMPILER V7.08 SERIAL 08/17/2006 14:22:15 PAGE 1
C51 COMPILER V7.08, COMPILATION OF MODULE SERIAL
OBJECT MODULE PLACED IN .\output\serial.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE serial.c OMF2 BROWSE DEBUG OBJECT(.\output\serial.obj)
line level source
1 //========================================================
2 //深圳奥特迅电力设备有限公司
3 //电池监控系统用无线传输模块
4 //文件名:serial.h
5 //描述:串口操作
6 //By:Andylee 2006-6-13
7 //anssett@163.com
8 //=========================================================
9 #include<battery.h>
10 //#include<serial.h>
11 //unsigned char TxBuf[TxBuf_Len]; //发送缓冲区
12 //unsigned char RxBuf[RxBuf_Len]; //接收缓冲区
13 //unsigned char *toTxBuf,*fromTxBuf,*toRxBuf,*fromRxBuf;//fifo 指针
14 //bit TIflag=1;
15 //================================================================
16 //函数功能:串口初始化
17 //filename:InitSerial()
18 //input:none
19 //output:none
20 //================================================================
21 void InitSerial(void)
22 {
23 1
24 1
25 1 TH1 = 243; // 19200@16MHz (when T1M=1 and SMOD=1)
26 1 CKCON |= 0x10; // T1M=1 (/4 timer clock)
27 1 PCON = 0x80; // SMOD=1 (double baud rate)
28 1 SCON = 0x52; // Serial mode1, enable receiver
29 1 TMOD = 0x20; // Timer1 8bit auto reload
30 1 TR1 = 1; // Start timer1
31 1
32 1 ES = 0;
33 1 EA=1;
34 1
35 1
36 1
37 1 }
38 //================================================================
39 //函数功能:串口缓冲区初始化
40 //filename:InitSerialBuffer()
41 //input:none
42 //output:none
43 //================================================================
44 /*void InitSerialBuffer(void)
45 {
46 toTxBuf=TxBuf;
47 fromTxBuf=TxBuf;
48 toRxBuf=RxBuf;
49 fromRxBuf=RxBuf;
50 ES=1;
51 }/*
52 //================================================================
53 //函数功能:串口中断服务程序
54 //filename:SerialIsr()
55 //input:none
C51 COMPILER V7.08 SERIAL 08/17/2006 14:22:15 PAGE 2
56 //output:none
57 //================================================================
58 /*void SerialIsr(void) interrupt 4
59 { unsigned char *temp;
60 if(TI)
61 {
62 TI=0;
63 if(toTxBuf==fromTxBuf) //发送缓冲区为空
64 {
65 TIflag=1;
66 return;
67 }
68 SBUF=*fromTxBuf++; //取数指针指向下一单元
69 if(fromTxBuf==TxBuf+TxBuf_Len) //指向缓冲区开头
70 fromTxBuf=TxBuf;
71 }
72 if(RI)
73 {
74 RI=0;
75 temp=toRxBuf;
76 if(temp==RxBuf+RxBuf_Len)
77 temp=RxBuf; //指向缓冲区开头
78 if(++temp==fromRxBuf) //接收缓冲区为满
79 return;
80 *toRxBuf=SBUF;
81 toRxBuf=temp;
82 }
83 }*/
84 void UartISR (void) interrupt 4 using 2
85 {
86 1 // unsigned char temp;
87 1
88 1 EA = 0;
89 1 if(RI)
90 1 {/*
91 2 temp = SBUF;
92 2 if(temp == '@')
93 2 {
94 2 Rx.Buf[0] = '@';
95 2 Rx.Counter = 1;
96 2 }
97 2 else if(temp == '*')
98 2 {
99 2 Rx.Buf[Rx.Counter] = temp;
100 2 Rx.Buf[Rx.Counter + 1] = '\0';
101 2 Rx.NewData = 1;
102 2 }
103 2 else if(Rx.Counter < 39){
104 2 Rx.Buf[Rx.Counter] = temp;
105 2 Rx.Counter += 1;
106 2 }*/
107 2 RI = 0;
108 2 }
109 1 if(TI)
110 1 {
111 2 TI = 0;
112 2 }
113 1 EA = 1;
114 1 }
115 //================================================================
116 //函数功能:从串口缓冲区读取一个字节的数据
117 //filename:L_getch()
C51 COMPILER V7.08 SERIAL 08/17/2006 14:22:15 PAGE 3
118 //input:ch 指针指向读出的地址
119 //output:none
120 //================================================================
121 /*bit L_getch(unsigned char *ch) //从串口缓冲区读1字节数据
122 {
123 if(toRxBuf==fromRxBuf)
124 {ES=1;return 0;} //RxBuf Empty
125 *ch=*fromRxBuf;
126 fromRxBuf++;
127 if(fromRxBuf==RxBuf+RxBuf_Len)
128 fromRxBuf=RxBuf;
129 return 1;
130 } */
131 //================================================================
132 //函数功能:打印一个字符(向发送缓冲区写入一个字符)
133 //filename:PrintChar()
134 //input:ch char变量
135 //output:none
136 //================================================================
137
138 //================================================================
139 //函数功能:显示ASII
140 //filename:PrintChar()
141 //input:ch char变量
142 //output:none
143 //================================================================
144 /*void PrintCh(unsigned char ch)
145 {
146 if(ch>=0&&ch<=9) ch=ch+'0';
147 else ch=ch+'A'-10;
148 PrintChar(ch);
149 }*/
150 //================================================================
151 //函数功能:以十六进制格式显示1个字节数据
152 //filename:insidePrintByte()
153 //input:Byte char变量
154 //output:none
155 //================================================================
156 /*void insidePrintByte(unsigned char Byte)
157 {
158 unsigned char c;
159 c=Byte;
160 c=c>>4;
161 PrintCh(c);
162 c=Byte;
163 c=c&0x0F;
164 PrintCh(c);
165 }*/
166 //================================================================
167 //函数功能:以十六进制格式显示1个字节数据
168 //filename:PrintByte()
169 //input:Byte char变量
170 //output:none
171 //================================================================
172 /*void PrintByte(unsigned char Byte) //以十六进制格式显示1个字节数据
173 {
174 EA=0;
175 insidePrintByte(Byte);
176 EA=1;
177 }*/
178 //================================================================
179 //函数功能:以十六进制格式显示1个字数据
C51 COMPILER V7.08 SERIAL 08/17/2006 14:22:15 PAGE 4
180 //filename:insidePrintWord()
181 //input:Word int变量
182 //output:none
183 //================================================================
184 /*void insidePrintWord(unsigned int Word)
185 {
186 insidePrintByte(Word>>8);
187 insidePrintByte(Word&0xFF);
188 }*/
189 //================================================================
190 //函数功能:以十六进制格式显示1个字数据
191 //filename:PrintWord()
192 //input:Word int变量
193 //output:none
194 //================================================================
195 /*void PrintWord(unsigned int Word)
196 {
197 EA=0;
198 insidePrintWord(Word);
199 EA=1;
200 } */
201 //================================================================
202 //函数功能:以十六进制格式显示1个长字数据
203 //filename:PrintLong()
204 //input:Long0Word Long变量
205 //output:none
206 //================================================================
207 /*void PrintLong(unsigned long LongWord)
208 {
209 EA=0;
210 insidePrintWord(LongWord>>16);
211 insidePrintWord(LongWord&0xFFFF);
212 EA=1;
213 } */
214 //================================================================
215 //函数功能:显示字符串
216 //filename:PrintStr()
217 //input:char *str
218 //output:none
219 //================================================================
220 /*
221 void PrintStr(unsigned char *str)
222 {
223 int i;
224 unsigned char j;
225 unsigned char ch;
226
227 EA=0;
228 for(i=0;i<MaxStrLen;i++){
229 ch=*(str+i);
230 if(ch=='\0') break;
231 else if(ch=='\n'){PrintChar(10);PrintChar(13);}
232 else if(ch=='\t'){
233 for(j=0;j<TABNum;j++)
234 PrintChar(' ');
235 }
236 else PrintChar(ch);
237 }
238 EA=1;
239 } */
C51 COMPILER V7.08 SERIAL 08/17/2006 14:22:15 PAGE 5
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 40 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
EDATA SIZE = ---- ----
HDATA SIZE = ---- ----
XDATA CONST SIZE = ---- ----
FAR CONST SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -