📄 serial.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -