📄 putchar.lst
字号:
C51 COMPILER V7.01 PUTCHAR 08/31/2007 13:59:14 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE PUTCHAR
OBJECT MODULE PLACED IN .\PUTCHAR.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE C:\Keil\C51\LIB\PUTCHAR.C BROWSE DEBUG OBJECTEXTEND LISTINCLUDE PRINT(.\PUT
-CHAR.lst) OBJECT(.\PUTCHAR.obj)
stmt 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 <reg51.h>
1 =1 /*--------------------------------------------------------------------------
2 =1 REG51.H
3 =1
4 =1 Header file for generic 80C51 and 80C31 microcontroller.
5 =1 Copyright (c) 1988-2001 Keil Elektronik GmbH and Keil Software, Inc.
6 =1 All rights reserved.
7 =1 --------------------------------------------------------------------------*/
8 =1
9 =1 /* BYTE Register */
10 =1 sfr P0 = 0x80;
11 =1 sfr P1 = 0x90;
12 =1 sfr P2 = 0xA0;
13 =1 sfr P3 = 0xB0;
14 =1 sfr PSW = 0xD0;
15 =1 sfr ACC = 0xE0;
16 =1 sfr B = 0xF0;
17 =1 sfr SP = 0x81;
18 =1 sfr DPL = 0x82;
19 =1 sfr DPH = 0x83;
20 =1 sfr PCON = 0x87;
21 =1 sfr TCON = 0x88;
22 =1 sfr TMOD = 0x89;
23 =1 sfr TL0 = 0x8A;
24 =1 sfr TL1 = 0x8B;
25 =1 sfr TH0 = 0x8C;
26 =1 sfr TH1 = 0x8D;
27 =1 sfr IE = 0xA8;
28 =1 sfr IP = 0xB8;
29 =1 sfr SCON = 0x98;
30 =1 sfr SBUF = 0x99;
31 =1
32 =1
33 =1 /* BIT Register */
34 =1 /* PSW */
35 =1 sbit CY = 0xD7;
36 =1 sbit AC = 0xD6;
C51 COMPILER V7.01 PUTCHAR 08/31/2007 13:59:14 PAGE 2
37 =1 sbit F0 = 0xD5;
38 =1 sbit RS1 = 0xD4;
39 =1 sbit RS0 = 0xD3;
40 =1 sbit OV = 0xD2;
41 =1 sbit P = 0xD0;
42 =1
43 =1 /* TCON */
44 =1 sbit TF1 = 0x8F;
45 =1 sbit TR1 = 0x8E;
46 =1 sbit TF0 = 0x8D;
47 =1 sbit TR0 = 0x8C;
48 =1 sbit IE1 = 0x8B;
49 =1 sbit IT1 = 0x8A;
50 =1 sbit IE0 = 0x89;
51 =1 sbit IT0 = 0x88;
52 =1
53 =1 /* IE */
54 =1 sbit EA = 0xAF;
55 =1 sbit ES = 0xAC;
56 =1 sbit ET1 = 0xAB;
57 =1 sbit EX1 = 0xAA;
58 =1 sbit ET0 = 0xA9;
59 =1 sbit EX0 = 0xA8;
60 =1
61 =1 /* IP */
62 =1 sbit PS = 0xBC;
63 =1 sbit PT1 = 0xBB;
64 =1 sbit PX1 = 0xBA;
65 =1 sbit PT0 = 0xB9;
66 =1 sbit PX0 = 0xB8;
67 =1
68 =1 /* P3 */
69 =1 sbit RD = 0xB7;
70 =1 sbit WR = 0xB6;
71 =1 sbit T1 = 0xB5;
72 =1 sbit T0 = 0xB4;
73 =1 sbit INT1 = 0xB3;
74 =1 sbit INT0 = 0xB2;
75 =1 sbit TXD = 0xB1;
76 =1 sbit RXD = 0xB0;
77 =1
78 =1 /* SCON */
79 =1 sbit SM0 = 0x9F;
80 =1 sbit SM1 = 0x9E;
81 =1 sbit SM2 = 0x9D;
82 =1 sbit REN = 0x9C;
83 =1 sbit TB8 = 0x9B;
84 =1 sbit RB8 = 0x9A;
85 =1 sbit TI = 0x99;
86 =1 sbit RI = 0x98;
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') {
C51 COMPILER V7.01 PUTCHAR 08/31/2007 13:59:14 PAGE 3
31 2 if (RI) {
32 3 if (SBUF == XOFF) {
33 4 do {
34 5 RI = 0;
35 5 while (!RI);
36 5 }
37 4 while (SBUF != XON);
38 4 RI = 0;
39 4 }
40 3 }
41 2 while (!TI);
42 2 TI = 0;
43 2 SBUF = 0x0d; /* output CR */
44 2 }
45 1 if (RI) {
46 2 if (SBUF == XOFF) {
47 3 do {
48 4 RI = 0;
49 4 while (!RI);
50 4 }
51 3 while (SBUF != XON);
52 3 RI = 0;
53 3 }
54 2 }
55 1 while (!TI);
56 1 TI = 0;
57 1 return (SBUF = 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 (!TI);
TI = 0;
SBUF = 0x0d; /* output CR */
}
while (!TI);
TI = 0;
return (SBUF = c);
}
/*
* putchar (mini version): outputs charcter only
*/
char putchar (char c) {
while (!TI);
TI = 0;
return (SBUF = c);
}
#endif
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 61 ----
C51 COMPILER V7.01 PUTCHAR 08/31/2007 13:59:14 PAGE 4
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 + -