📄 putchar.lst
字号:
C51 COMPILER V8.02 PUTCHAR 08/31/2007 16:12:19 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE PUTCHAR
OBJECT MODULE PLACED IN .\PUTCHAR.obj
COMPILER INVOKED BY: E:\programfiles\Keil51\C51\BIN\C51.EXE ..\..\..\keil\MyProgramLibray\C8051F020\PUTCHAR.C LARGE BROW
-SE INCDIR(..\..\..\keil\MyProgramLibray;..\..\..\keil\MyProgramLibray\C8051F020;..\..\..\keil\MyProgramLibray\JHD657;..\
-..\..\keil\MyProgramLibray\PDIUSB) DEBUG OBJECTEXTEND PRINT(.\PUTCHAR.lst) OBJECT(.\PUTCHAR.obj)
line level source
1 /***********************************************************************/
2 /* This file is part of the C51 Compiler package */
3 /* Copyright KEIL ELEKTRONIK GmbH 1990 - 2002 */
4 /***********************************************************************/
5 /* */
6 /* PUTCHAR.C: This routine is the general character output of C51. */
7 /* You may add this file to a uVision2 project. */
8 /* */
9 /* To translate this file use C51 with the following invocation: */
10 /* C51 PUTCHAR.C <memory model> */
11 /* */
12 /* To link the modified PUTCHAR.OBJ file to your application use the */
13 /* following Lx51 invocation: */
14 /* Lx51 <your object file list>, PUTCHAR.OBJ <controls> */
15 /* */
16 /***********************************************************************/
17
18 #include <c8051f020.h>
19
20 #define XON 0x11
21 #define XOFF 0x13
22
23
24 /*
25 * putchar (full version): expands '\n' into CR LF and handles
26 * XON/XOFF (Ctrl+S/Ctrl+Q) protocol
27 */
28 char putchar (char c) {
29 1
30 1 if (c == '\n') {
31 2 if (RI0) {
32 3 if (SBUF0 == XOFF) {
33 4 do {
34 5 RI0 = 0;
35 5 while (!RI0);
36 5 }
37 4 while (SBUF0 != XON);
38 4 RI0 = 0;
39 4 }
40 3 }
41 2 while (!TI0);
42 2 TI0 = 0;
43 2 SBUF0 = 0x0d; /* output CR */
44 2 }
45 1 if (RI0) {
46 2 if (SBUF0 == XOFF) {
47 3 do {
48 4 RI0 = 0;
49 4 while (!RI0);
50 4 }
51 3 while (SBUF0 != XON);
52 3 RI0 = 0;
53 3 }
C51 COMPILER V8.02 PUTCHAR 08/31/2007 16:12:19 PAGE 2
54 2 }
55 1 while (!TI0);
56 1 TI0 = 0;
57 1 return (SBUF0 = c);
58 1 }
59
60
61
62 #if 0 // comment out versions below
/*
* putchar (basic version): expands '\n' into CR LF
*/
char putchar (char c) {
if (c == '\n') {
while (!TI0);
TI0 = 0;
SBUF0 = 0x0d; /* output CR */
}
while (!TI0);
TI0 = 0;
return (SBUF0 = c);
}
/*
* putchar (mini version): outputs charcter only
*/
char putchar (char c) {
while (!TI0);
TI0 = 0;
return (SBUF0 = c);
}
#endif
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 61 ----
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 + -