打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
一文教你如何从0到1设计单片机PC端电路

听说今天成年人都在过六一儿童节,十八岁的烧友们能在百忙之中来看我们的干货,小编很是感动。那么话不多说干货内容刷起!

电路图

运行代码

#include

#defineBUFFERLEGTH 10

//

voidUART_init; //串口初始化函数

void COM_send(void); //串口发送函数

charstr[20];

char j;

//

void main(void)

{

unsigned char i;

UART_init;

j=0; //初始化串口

for(i = 0;i

};

while(1);

}

// 函数名称: UART_init串口初始化函数

// 函数功能: 在系统时钟为11.059MHZ时,设定串口波特率为9600bit/s

// 串口接收中断允许,发送中断禁止

void UART_init

{

//初始化串行口和波特率发生器

SCON=0x50; //选择串口工作方式1,打开接收允许

TMOD =0x20; //定时器1工作在方式2,定时器0工作在方式1

TH1 =0xfA; //实现波特率9600(系统时钟11.0592MHZ)

PCON = 0x80;

TR1 =1; //启动定时器T1

ET1 =0;

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

PS=1; //设计串行口中断优先级

EA =1; //单片机中断允许

}

void COM_send(void)

{

unsigned char point = 0;

for(point=0;str[point]!='\0';point++) //连续发送二十位数据 //把缓存区的数据都发送到串口

{

SBUF=str[point];

while(!TI);

TI=0;

//str[point]='\0';

}

}

// 函数名称: com_interrup串口接收中断处理函数

// 函数功能: 接收包括起始位'S'在内的十位数据到数据缓冲区

void com_interrupt(void)interrupt4using 3

{

unsigned char RECEIVR_buffer;

bit flag=1;

if(RI) //处理接收中断

{

RI=0; //清除中断标志位

RECEIVR_buffer=SBUF; //接收串口数据

str[j]=SBUF;

if (RECEIVR_buffer == '$')

{ES=0;

str[j]='\0';

SCON =0x40; //接收不允许

COM_send; //发送数据

ES=1;

j=0;

flag=0;

SCON=0x50; //接收允许

}

if(flag)

j++;

}

}

你是程序猿对吗?会写代码的那种?

点“阅读原文”了解更多

单片机
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
于RS-485的多机通信程序(主机端)
【六足-智能】串口调试
51单片机串口通信使用类似printf函数的两种办法
干货|单片机的指针怎么学?
要个计算机与单片机的串口通信上位机C语言程序
AVR单片机串口接收与发送程序
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服