mcu_uart.c

来自「AT89C51SND1C是AT89C51核心的处理器」· C语言 代码 · 共 89 行

C
89
字号
/*  Copyright (C) 1996-2005 Brilliant Ideal Electronics. All rights reserved.
	MP3_Player+USB_Disk V3.0 Edit by JMBIE STUDIO 2005.03
*/


#include "AT89C51SND1_REG.H"
#include "MCU_UART.H"

char hex[16]  = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};

void init_uart(int fre)
{  
	if (fre == 1200)	 //only support 1200 Baud rate
	{   CKCON |=0x04;
		TMOD = 0x20;
		TH1  = 0xa9;
		TL1  = 0xa9;
		SCON = 0x50;
		PCON = PCON|0x80;
		TR1  = 1;
 	}
}


void printu(char * str)	
{	
    char *ct = str;
	while (*ct != '\0')
	{
		if (*ct == '\n')
		{
			SBUF = 13;
			while (!TI);
			TI = 0;
		}
		SBUF=*ct;
		while (!TI);
		TI = 0;
		ct++;
	}
}


void printuf(char *str, unsigned char cb) 
{
	char *ct = str;
	char cx1;
	char cx2;

	while (*ct != '\0')
	{
		if (*ct == '%')
		{	
			if (*(ct + 1) == 'x')              
			{
				ct += 2;
				cx1 = cb / 16;
				cx2 = cb % 16;
				SBUF = hex[cx1];
				while (!TI);
				TI = 0;
				SBUF = hex[cx2];
				while (!TI);
				TI = 0;
				continue;
			}
			if (*(ct + 1) == 'c')              
			{
				ct += 2;
				SBUF = cb;
				while (!TI);
				TI = 0;
				continue;
			}
			
		}
		if (*ct == '\n')
		{
			SBUF = 13;
			while (!TI);
			TI = 0;
		}
		SBUF = *ct;
		while (!TI);
		TI = 0;
		ct++;
	}
}

⌨️ 快捷键说明

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