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

📄 mcu_uart.c

📁 基于at89c51单片机的mp3 mp3播放实验资料及代码
💻 C
字号:
/*  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()  //   Baud rate 9600
{  
//Using the T1 as Baud Rate Generater.
    CKCON |=0x04;
	TMOD = 0x20;
	TH1  = 0xf5;
	TL1  = 0xf5;
	SCON = 0x50;
	PCON = PCON|0x80;
	TR1  = 1;

//Using Internal Baud Rate Generater.
/*
    CKCON |=0x10;
	SCON = 0x50;
	PCON = PCON|0x80;
	BRL  = 0xbf;
	BDRCON |=0x0c; //TBCK=1,RBCK=1
	BDRCON |=0x02; //SPD=1
	BDRCON |=0x10; //BRR=1,enable BRG 
*/
} 


char uart_getch()
{
	 while (!RI);
	 RI = 0;
	 return SBUF;
}
/*
void uart_putch(char ch)
{
	 SBUF = ch;
	 while (!TI);
	 TI = 0;	
}

*/

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;
	while (*ct != '\0')
	{
		if (*ct == '%')
		{	
			if (*(ct + 1) == 'x')              
			  {
				ct += 2;
				SBUF = hex[cb/16];
				while (!TI);
				TI = 0;
				SBUF = hex[cb%16];
				while (!TI);
				TI = 0;
				continue;
			  }
			if (*(ct + 1) == 'd')              
			  {
				ct += 2;
				if(cb/100)
				   {SBUF = cb/100+0x30;
					while (!TI);
				    TI = 0;}
				if(cb/10)
				   {SBUF = (cb%100)/10+0x30;
					while (!TI);
				    TI = 0;}
				SBUF = cb%10+0x30;
				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++;
	}
}

void printuf16x(char *str, unsigned int cb) 
{
	char *ct = str;
	while (*ct != '\0')
	{
		if (*ct == '%')
		{	
			if (*(ct + 1) == 'x')              
			  {
				ct += 2;
				SBUF = hex[cb>>12];
				while (!TI);
				TI = 0;
				SBUF = hex[(cb&0x0f00)>>8];
				while (!TI);
				TI = 0;
				SBUF = hex[(cb&0x00f0)>>4];
				while (!TI);
				TI = 0;
				SBUF = hex[cb&0x000f];
				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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -