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

📄 main.c

📁 相关富士通单片机实用资料5
💻 C
字号:
/*------------------------------------------------------------------------
  MAIN.C
  - description
  - See README.TXT for project description and disclaimer.

/*----------------------------------------------------------------------*/

#include "mb90540.h"
const char welcome[200]="Welcome at FUJITSU,This is a testing route of UART1 with RS232 by Xiaoquan Tang";
char ch;

/*============================== PROCEDURES ======================================*/

void InitUart(void)
{
	/* initialize UART1 e.g. operation mode, baud rate, stop bit, data length etc. */
	/* set clockspeed as PLLX4 in start.asm */
	DDR4_D45 = 1;				 /* Make SOT1 working */
	SMR1 = 0x01;				 /* serial mode register */
	SCR1 = 0x13;				 /* serial control register */
	U1CDCR = 0x88;				 /* prescaler control register */
								 /* baud rate 9600*/
}

void Putch (char ch)         /* sends a char */
{
	while (SSR1_TDRE == 0);	/* wait for transmit buffer empty 	*/
	 SODR1 = ch;		/* put ch into buffer			*/
	/*return ch;		 return transmitted character		*/
}

char Getch(void)	/* waits for and returns incomming char 	*/
{
  unsigned ch;
	while(SSR1_RDRF == 0);	/* wait for data received  	*/
	if (SSR1_ORE || SSR1_FRE)      	/* overrun error or frame error		*/
	{
		ch = SIDR1;	/* reset error flags 		*/
		return (-1);
	}
	else
		return (SIDR1);	/* return char 			*/
}

void Puts (const char *Name2)	/* Puts a String to UART */
{
 char c;
 int i,len;
 
  len = strlen(Name2);
  for (i=0; i<len; i++) 	/* go through string */
  {
	c=(Name2[i]);			/* pick char */
	Putch (c);			/* send it out */
  }
}
/***************************************************************************/
void delay()
{
	int i,k;
	for(k=0;k<=10;k++)
	for(i=0;i<=32760;i++);
}
void main(void)
{
    /* initialize UART */
	InitUart();
	DDR2=0xff;					/*set paralleal port 2 direction register as output*/
	PDR2=0x55;					/*switch on all LED*/
	delay();					/*delay some time*/
	PDR2=0xaa;					/*switch off all LED*/
	delay();					/*delay some time*/
	PDR2=0x55;					/*swtich on all LED*/
	delay();					/*delay some time*/
	PDR2=0xff;					/*swtich off all LED*/
	
	/* Output welcome string */
	Puts(welcome);

	Putch(10);
	Putch(10);
	Putch(10);
	Putch(13);


	/* Echo received characters */
	while(1)		
	{
		ch = Getch(); 
		PDR2=~ch;		/*display ch with LED*/ 
		Putch(ch);    	
		if (ch==13)	
			Putch(10);
	}
}

⌨️ 快捷键说明

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