单片机C语言程序设计: 单片机与 PC 通信

来源:本站
导读:目前正在解读《单片机C语言程序设计: 单片机与 PC 通信》的相关信息,《单片机C语言程序设计: 单片机与 PC 通信》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《单片机C语言程序设计: 单片机与 PC 通信》的详细说明。
简介:单片机可接收 PC 发送的数字字符,按下单片机的K1 键后,单片机可向 PC 发送字符串。在 Proteus 环境下完成本 实 验 时 , 需 要 安 装 Virtual Serial Port Driver 和串口调试助手。

本例缓冲100个数字字符,

缓冲满后新数字从前面开始存放(环形缓冲)。

*/

#include<reg51.h>

#defineucharunsignedchar

#defineuintunsignedint

ucharReceive_Buffer[101];//接收缓冲

ucharBuf_Index=0;

//数码管编码

//缓冲空间索引

ucharcodeDSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};

//延时

voidDelayMS(uintms)

{

uchari;

while(ms--)for(i=0;i<120;i++);

}

//主程序

voidmain()

{

uchari;

P0=0x00;

Receive_Buffer[0]=-1;

SCON=0x50;串口模式1,允许接收

TMOD=0x20;//T1工作模式2

TH1=0xfd;//波特率9600

TL1=0xfd;

PCON=0x00;波特率不倍增

EA=1;EX0=1;IT0=1;

ES=1;IP=0x01;

TR1=1;

while(1)

{

for(i=0;i<100;i++)

{//收到-1为一次显示结束

if(Receive_Buffer[i]==-1)break;

P0=DSY_CODE[Receive_Buffer[i]];

DelayMS(200);

}

DelayMS(200);

}

}

//串口接收中断函数

voidSerial_INT()interrupt4

{

ucharc;

if(RI==0)return;//关闭串口中断

ES=0;//清接收中断标志

RI=0;

c=SBUF;

if(c>='0'&&c<='9')

{//缓存新接收的每个字符,并在其后放-1为结束标志

Receive_Buffer[Buf_Index]=c-'0';

Receive_Buffer[Buf_Index+1]=-1;

Buf_Index=(Buf_Index+1)%100;

}

ES=1;

}

voidEX_INT0()interrupt0//外部中断0

{

uchar*s="这是由8051发送的字符串!rn";

uchari=0;

while(s[i]!='')

{

SBUF=s[i];

while(TI==0);

TI=0;

i++;

}

}

提醒:《单片机C语言程序设计: 单片机与 PC 通信》最后刷新时间 2024-03-14 01:05:33,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《单片机C语言程序设计: 单片机与 PC 通信》该内容的真实性请自行鉴别。