admin 管理员组

文章数量: 887021


2024年1月25日发(作者:forever young)

(完整版)c51单片机从串口接收发送字符串

c51单片机从串口接收发送字符串

#include 〈reg52。h>

#define uchar unsigned char

#define uint unsigned int

uchar data table[10]; //暂存数组,可以将10改为你需要的数值

/***********************************************

串行口初始化波特率9600,定时器1,工作方式2 *************************************************/

void serial_init(void)

{

TMOD=0x20;//计时器1作为比特率发生器,方式2

TH1=0xfd;

TL1=0xfd; //装入初值

TR1=1;//计时中断允许

SM0=0;

SM1=1;//串行口工作于方式2

ES=1;//串行口中断允许

REN=1;//接收允许

EA=1;// 总中断允许

}

/********************* **************************

串行口传送数据

传送显示数组各字符给计算机

*************************************************/

void send(uchar *dis)

while(*dis!='0’)

SBUF=*dis;

dis++;

while(!TI);

TI=0; //软件请发送中断

}

void main()

{

serial_init();//初始化

while(SBUF!=0x0d);//计算机键盘按下回车键,则开始将接收到的数据回传给计算机

send(table);

/***********************************************

串行中断服务函数

单片机接收数据,存入table数组

(完整版)c51单片机从串口接收发送字符串

*************************************************/

void serial() interrupt 4

{

int i;

ES=0; //关串口中断

table[i++]=SBUF;//命令存到命令数组

RI=0; //软件清除接收中断

ES=1;//开串口中断

已经通过proteus仿真如下


本文标签: 接收 中断 数组 单片机 发送