首页 > 其他 > 51单片机与PC串口通信程序及硬件电路图

51单片机与PC串口通信程序及硬件电路图

来源:互联网发布者:刘德华河北分华 更新时间: 2020/11/14

#include
#define BUFFERLEGTH 10
//-----------------------------------------------------------------
void UART_init(); //串口初始化函数
void COM_send(void); //串口发送函数
char str;
char j;
//-------------------------------------------------------------------
void main(void)
{
unsigned char i;
UART_init();
j=0; //初始化串口
for(i = 0;i < 10 ;i++)
{
COM_send(); //首先发送一次数据作为测试用

};

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!="\0";point++) //连续发送二十位数据 //把缓存区的数据都发送到串口
{
SBUF=str;
while(!TI);
TI=0;
//str="\0";
}

}
//--------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
// 函数名称: com_interrup()串口接收中断处理函数
// 函数功能: 接收包括起始位"S"在内的十位数据到数据缓冲区
//--------------------------------------------------------------------------------------------------
void com_interrupt(void) interrupt 4 using 3
{
unsigned char RECEIVR_buffer;
bit flag=1;
if(RI) //处理接收中断
{
RI=0; //清除中断标志位
RECEIVR_buffer=SBUF; //接收串口数据
str=SBUF;
if (RECEIVR_buffer == "$")
{ ES=0;
str="\0";
SCON =0x40; //接收不允许
COM_send(); //发送数据
ES=1;
j=0;
flag=0;
SCON=0x50; //接收允许
}
if(flag)
j++;
}
}

提问/讨论

这里还没有内容,您有什么问题吗?

我要提问/讨论

推荐帖子 最新更新时间:2026-03-23 00:43

闲置的山寨的JLINK或者ulink2
本人愿意用开发板换取。或者直接用RMB换取。。。。。 有意者可以直接给15928776296发短信,或者与1005450581联系。。。。。。。。。。。 闲置的山寨的JLINK或者ulink2 简板的才40多元 现在都很便宜,值得换么 哦。一直以为很贵。因为之前同学买
 shilaike淘e淘
菜鸟求助:M3系列USB模拟串口问题
我正在学习LM3S3748的例程,usb_dev_serial。程序里面,将USB_UART_BASE定义为UART0_BASE或UART1_BASE,另外,例程在于上位机通信的过程中,将原本属于UART的中断向量定义成了USBUARTIntHandler,并以此来完成上位机
 guguo2010微控制器 MCU
请问大虾,ti官方例程里面有句话,不清楚意义,有没有人帮忙解释一下?
// // Return control to the boot loader. This is a call to the SVC // handler in the boot loader. // (*((void (*)(void))(*(unsig
 zxq6微控制器 MCU
协调器如何获得从节点的mac地址
我打算做zigbee和以太网的网关,用cc2430芯片,想知道zigbee协调器如何才能得知发过信息来的从节点的mac地址,是有相关的函数可以调用么,另外想问zigbee协议是否包含arp层 协调器如何获得从节点的mac地址 协调器广播一下,终端回复后从数据包中提取,具体参看数据
 liverpoola9无线连接
新手买什么开发板好好啊?
刚开始入门FPGA,不知道买什么开发板好?是论坛的EE板子还是DE0呢? 新手买什么开发板好好啊? EE的板子现在很完善了,文档也都有了,初学相当给力; De0的nano也很好,只是价格稍贵了点。 不错,顶起来!
 awfiiqnqtdFPGA/CPLD
救人一命胜造七级浮屠!!!
兄弟姐妹们:请教个 问题,PIC18F4580片内EEPROM的读写问题 我是看着单片机的DATASHEET上面的汇编写的读写程序,把它改成C就不行了,。。。。 程序如下: #include #pragma config OSC = HS #pragma c
 yanjianguoMicrochip MCU

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

EEWORLD 电路图 站点相关: 下载中心 Datasheet 参考设计

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved