serial.c

来自「用51单片机开发的GSM报警程序」· C语言 代码 · 共 71 行

C
71
字号
#include <REG51.h>



#define uchar_code unsigned char code
#define uchar unsigned char 
#define SELInt_on() ES=1       //串行口中断允许
#define SELInt_off() ES=0      //串行口中断禁止

void Ser_Init(void)
{
	TMOD=0x20;             //定时器1为8位自动加载
	TH1=0xfd;              //波特率为9600
	TL1=0xfd;
	TR1=1;                //启动定时器
	SCON|=0x50;
	PCON&=0x7f;           //波特率为1倍
	ES=1;                 //串行口中断允许
	EX0=1;              // INT0中断开
	IT0=1;              // INT0下降沿触发(为0则为低电平触发)
	EA=1;                  //总中断打开
}

void Ser_TxDchar(uchar ch)     // 串口发送字符
{
	SELInt_off();
	TI=0;
 	SBUF=ch;
 	while(!TI);
 	TI=0;
	SELInt_on();
}



void Ser_TXDstring(uchar *p,uchar lenth)  //串口发送字符串
{
	while(lenth--)
	Ser_TxDchar(*p++);
}

/*
Ser_Revchar(void)        //串口接收字符
{
	SELInt_off();
	if(RI==1)
	RI=0;
	return SBUF;
	SELInt_on();
}

Ser_Revsting(void)
{
	Rev_Buf[Rev_count++]=Ser_Revchar();
}

*/
/*
void Ser_Rev(void) interrupt 4 using 1//中断接收
{
	SELInt_off();
  	RI=0;
	Rev_Buf[Rev_count++]=SBUF;
	if(Rev_count=Rev_BufSIZE)
	{
		Rev_count=0;
	}
	SELInt_on();
}
*/

⌨️ 快捷键说明

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