t.c
来自「KEILC51程序实例和配套硬件目标板,很详细,程序有注释」· C语言 代码 · 共 41 行
C
41 行
#include <reg51.h>
#define COUNT 10 /* 定义发送缓冲区大小 */
#define NODE_ADDR 64 /* 定义目的节点地址 */
unsigned char buffer[COUNT]; /* 定义发送缓冲区 */
int pointer; /* 定义当前位置指针 */
main() {
/* 发送缓冲区初始化 */
while(pointer<COUNT) {
buffer[pointer]='A'+pointer;
pointer++;
}
/* 初始化串行口和波特率发生器 */
SCON=0xc0;
TMOD=0x20;
TH1=0xfd;
TR1=1;
ET1=0;
ES=1;
EA=1;
pointer=-1;
/* 发送地址帧 */
TB8=1;
SBUF=NODE_ADDR;
/* 等待全部数据帧发送完毕 */
while(pointer<COUNT);
/* ...... */
}
/* 发送中断服务函数 */
void send(void) interrupt 4 using 3 {
/* 清发送中断标志并修改发送缓冲区当前位置指针 */
TI=0;
pointer++;
/* 如果全部数据发送完毕则返回, 否则发送一帧数据 */
if(pointer>=COUNT) return;
else {
TB8=0; /* 设置数据帧标志 */
SBUF=buffer[pointer]; /* 启动发送 */
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?