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

📄 uart.c

📁 本人自己编写的51开发板串口通信小程序! IDE 是用的KE
💻 C
字号:
/*
**********************************************************************************************
* Project:	TK7821
* File:		uart.c
* Contents: The serial communication 
* 程序描述:把收到的数据发送回去
* 目    的:Motorola 08 系列	子程序移植到51系列MCU
* $Date: 09/07/2006   
* Writen by xudong
***********************************************************************************************
*/



#include "reg51.h"
typedef unsigned char   BYTE;  

//函数声明
void InitSerial(void);

extern unsigned char SCIRe1(unsigned char *p);  //接收1字节
extern unsigned char SCIReN(unsigned char n,unsigned char ch[]);  //接收n字节
extern void SCISend1(unsigned char o);          //发送1字节
extern void SCISendN(unsigned char n,unsigned char ch[]);         //发送n字节





//**************************中断方式*************************************

void main()
{
EA=0;                // 开中断
InitSerial();        //初始化
EA=1;                // 关中断

ES=1;               //允许串口接收中断
 
//主循环
while(1);

}


/*
**************************************************************************************
* uart初始化
*
**************************************************************************************
*/

void InitSerial(void) 
{
	TMOD=TMOD&0x0F;
	TMOD=TMOD|0x20;      //定时器1 定时方式2
	TL1=0xF8;TH1=0xF8;   //4800 15MHz fosc
		
	SCON=0x50;  //串行方式1 允许接收
	PCON=0x00;  //波特率不增倍
	TR1=1;       //启动定时器1
}





void Int1(void) interrupt 4      // interrupt 4 表示串口中断
{

   unsigned char SerialBuff[1];    //存放接收数据的数组
   unsigned char i;
	EA = 0;                      // 开中断

        //接收1个数据
        i=SCIReN(1,SerialBuff);
        //若收到数据,则发送接到的数据 
        if(i==0) SCISendN(1,SerialBuff);
	  
	EA = 1;                      // 关中断

}

⌨️ 快捷键说明

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