📄 putchar.lst
字号:
C51 COMPILER V7.02b PUTCHAR 08/27/2008 10:59:05 PAGE 1
C51 COMPILER V7.02b, COMPILATION OF MODULE PUTCHAR
OBJECT MODULE PLACED IN PUTCHAR.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe PUTCHAR.C DB OE
stmt level source
1 /*串口1通信底层函数*/
2 #include <c8051f020.h> // SFR declarations
3
4 #define XON 0x11
5 #define XOFF 0x13
6
7
8 /*
9 * putchar (full version): expands '\n' into CR LF and handles
10 * XON/XOFF (Ctrl+S/Ctrl+Q) protocol
11 */
12 char putchar (char c) {
13 1
14 1 if (c == '\n') {
15 2 if ((SCON1&0X1)==0X1) {
16 3 if (SBUF1 == XOFF) {
17 4 do {
18 5 SCON1&=~0X1;
19 5 while ((SCON1&0X1)!=0X1);
20 5 }
21 4 while (SBUF1 != XON);
22 4 SCON1&=~0X1;
23 4 }
24 3 }
25 2 while ((SCON1&0X2)!=0X2);
26 2 SCON1&=~0X2;
27 2 SBUF1 = 0x0d; /* output CR */
28 2 }
29 1 if ((SCON1&0X1)==0X1) {
30 2 if (SBUF1 == XOFF) {
31 3 do {
32 4 SCON1&=~0X1;
33 4 while ((SCON1&0X1)!=0X1);
34 4 }
35 3 while (SBUF1 != XON);
36 3 SCON1&=~0X1;
37 3 }
38 2 }
39 1 while ((SCON1&0X2)!=0X2);
40 1 SCON1&=~0X2;
41 1 return (SBUF1 = c);
42 1 }
43
44
45
46 #if 0 // comment out versions below
/*
* putchar (basic version): expands '\n' into CR LF
*/
char putchar (char c) {
if (c == '\n') {
while ((SCON1&0X2)!=0X2);
SCON1&=~0X2;
SBUF1 = 0x0d; /* output CR */
C51 COMPILER V7.02b PUTCHAR 08/27/2008 10:59:05 PAGE 2
}
while ((SCON1&0X2)!=0X2);
TI = 0;
return (SBUF1 = c);
}
/*
* putchar (mini version): outputs charcter only
*/
char putchar (char c) {
while ((SCON1&0X2)!=0X2);
SCON1&=~0X2;
return (SBUF1 = c);
}
#endif
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 79 ----
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 + -