📄 serial.c
字号:
#include "STC89C58.h"
#include "TG01R.h"
#include <intrins.h>
#include "string.h"
/*-------------------------------------------------------------------------------------------
函数原型: void InitUart(void)
参数说明: 无
返回值: 无
说明: 用于初始化串口
-------------------------------------------------------------------------------------------*/
void InitUart(void) {
SCON = 0x50; //串口工作方式1
TMOD |= 0x20; //T1,初值自动重装
TH1 = 0xf3; //波特率4800bps @ 24M
TL1 = 0xf3;
TR1 = 1; //开始计数
IE |= 0x90; //开放串口中断
}
/*-------------------------------------------------------------------------------------------
函数原型: void Uart_Send_Char(uchar SendChar)
参数说明: 发送的字符
返回值: 无
说明: 用于向串口发送单个字符
-------------------------------------------------------------------------------------------*/
void Uart_Send_Char(uchar SendChar) {
SBUF=SendChar;
while(TI==0);TI=0;
}
void Uart_Send_EChar(uchar SendChar) {
TB8=Parity_Check(Even,SendChar);
SBUF=SendChar;
while(TI==0);TI=0;
}
/*-------------------------------------------------------------------------------------------
函数原型: void Uart_Send_Str(char *SendDataBuf)
参数说明: 发送字符串的头地址
返回值: 无
说明: 用于向串口发送字符串
-------------------------------------------------------------------------------------------*/
void Uart_Send_Str(uchar *SendDataBuf) {
uchar i;
uchar idata Len;
i=0;
Len=strlen(SendDataBuf); //获取发送字符串的长度Len
do {
SBUF=*(SendDataBuf+i); //发送Len个字符
while(TI==0);TI=0;
}while(++i<Len);
}
/*-------------------------------------------------------------------------------------------
函数原型: void Uart_Send_Str(uchar *SendDataBuf,uchar Len)
参数说明: *SendDataBuf:发送字符串的头地址
Len :发送字符串的个数
返回值: 无
说明: 用于向串口发送字符串
-------------------------------------------------------------------------------------------*/
void Uart_Send_Stra(uchar *SendDataBuf,uchar Len) {
uchar i;
i=0;
do {
SBUF=*(SendDataBuf+i); //发送Len个字符
while(TI==0);TI=0;
}while(++i<Len);
}
/*
void Uart_Rcv_Str(char *RcvDataBuf) {
uchar i,TempData;
i=0;
do {
while(RI==0);RI=0;
TempData=SBUF;
if(TempData=='/') {
break;
}
*(RcvDataBuf+i)=TempData;
i++;
} while(1);
}
*/
/*-------------------------------------------------------------------------------------------
函数原型: void Uart_SingleStep(void)
参数说明: 串口控制单步执行函数
返回值: 无
说明: 用于通过串口控制单步执行,到此函数时停止,通过串口接收到space符时继续向下执行
-------------------------------------------------------------------------------------------*/
void Uart_SingleStep(void) {
char TempData;
do {
while(RI==0);RI=0;
TempData=SBUF;
}while(TempData!=0x20);
}
/*-------------------------------------------------------------------------------------------
函数原型: InitCPU(void)
参数说明: MCU初始化
返回值: 无
说明: MCU初始化,开放外部中断0,初始化串口
-------------------------------------------------------------------------------------------*/
void InitCPU(void)
{
EA =1; //开放中断
IT0 =1; //外部中断0低电平触发
EX0 =1; //外部中断0使能
PX0 =1; //外部中断0高优先级
InitUart(); //初始化串口
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -