⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 putchar.c

📁 这是一个远程温度计 MCU: AT89S52 温度传感器: DS18B20 晶振: 12MHz 使用串口连接,在PC端使用"超级终端"打开 设置如下: 波特率: 4800 数据
💻 C
字号:
/***********************************************************************/
/*  This file is part of the C51 Compiler package                      */
/*  Copyright KEIL ELEKTRONIK GmbH 1990 - 2002                         */
/***********************************************************************/
/*                                                                     */
/*  PUTCHAR.C:  This routine is the general character output of C51.   */
/*  You may add this file to a uVision2 project.                       */
/*                                                                     */
/*  To translate this file use C51 with the following invocation:      */
/*     C51 PUTCHAR.C <memory model>                                    */
/*                                                                     */
/*  To link the modified PUTCHAR.OBJ file to your application use the  */
/*  following Lx51 invocation:                                         */
/*     Lx51 <your object file list>, PUTCHAR.OBJ <controls>            */
/*                                                                     */
/***********************************************************************/

#include <reg51.h>

#define XON  0x11
#define XOFF 0x13


/*
 * putchar (full version):  expands '\n' into CR LF and handles
 *                          XON/XOFF (Ctrl+S/Ctrl+Q) protocol
 */
char putchar(char c)
{

    if (c == '\n') {
	if (RI) {
	    if (SBUF == XOFF) {
		do {
		    RI = 0;
		    while (!RI);
		}
		while (SBUF != XON);
		RI = 0;
	    }
	}
	while (!TI);
	TI = 0;
	SBUF = 0x0d;		/* output CR  */
    }
    if (RI) {
	if (SBUF == XOFF) {
	    do {
		RI = 0;
		while (!RI);
	    }
	    while (SBUF != XON);
	    RI = 0;
	}
    }
    while (!TI);
    TI = 0;
    return (SBUF = c);
}



#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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -