📄 sbuf串口输出4.c
字号:
////////////////////////////////////////////////////////////////
//程序名称:采用SBUF串口输入4 //
//程序功能:PC机与单片机通讯内容都定义为空格加16个字, //
// PC机先发送后接收,单片机程序循环进行 //
// 单片机先接收后发送集p0和p2口状态。 //
// 单片机发送时先输出一个空格,后面接续P0和p2口状态 //
// 单片机接收时先判断有无空格,空格后的16个字为信息 //
// 若为预先定义内容,则LED灯闪烁,表示收发成功。 //
//运行环境:时钟频率11.0592MHz,机器周期约为1uS //
// 波特率1200,无校验位,数据8位,停止位1位 //
//程序状态:该程序编译通过,硬件系统部分测试。 //
// 采用串口调试助手V2.2调试通过 //
//完成日期:2007,06,19 //
////////////////////////////////////////////////////////////////
#include<reg51.h>
//#include<stdio.h>
#define uchar unsigned char
sbit P1_0=P1^0;
sbit P0_0=P0^0;
sbit P0_1=P0^1;
sbit P0_2=P0^2;
sbit P0_3=P0^3;
sbit P0_4=P0^4;
sbit P0_5=P0^5;
sbit P0_6=P0^6;
sbit P0_7=P0^7;
uchar idata tdata[9]={" "};
uchar idata wdata[12]={"01 abcdefgh"};
void main(void)
{ //程序初始化
unsigned int a; //定义变量a为int类型
// uchar k;
SCON=0x50; //串口方式1,允许接收
PCON=0x00;
TMOD=0x20; //定时器1定时方式2
TCON=0x40; //设定时器1开始计数
TH1 = 0xE8; //11.0592MHz 1200波特率
TL1 = 0xE8; //11.0592MHz 1200波特率
TI=1; //串口发送
TR1=1; //启动定时器1
while(1)
{
P0=0xFF; //
P1=P0; //P1输出(检查P0之状态)
/* if(P0_0==1)
{
SBUF=tdata[0];
while(TI!=1); //
TI=0;
}*/
SBUF=wdata[2];
while(TI!=1);
TI=0;
if(P0_0==1)
{
SBUF=wdata[1];
while(TI!=1);
TI=0;
}
else
{
SBUF=wdata[0];
while(TI!=1);
TI=0;
}
if(P0_1==1)
{
SBUF=wdata[1];
while(TI!=1);
TI=0;
}
else
{
SBUF=wdata[0];
while(TI!=1);
TI=0;
}
if(P0_2==1)
{
SBUF=wdata[1];
while(TI!=1);
TI=0;
}
else
{
SBUF=wdata[0];
while(TI!=1);
TI=0;
}
if(P0_3==1)
{
SBUF=wdata[1];
while(TI!=1);
TI=0;
}
else
{
SBUF=wdata[0];
while(TI!=1);
TI=0;
}
if(P0_4==1)
{
SBUF=wdata[1];
while(TI!=1);
TI=0;
}
else
{
SBUF=wdata[0];
while(TI!=1);
TI=0;
}
if(P0_5==1)
{
SBUF=wdata[1];
while(TI!=1);
TI=0;
}
else
{
SBUF=wdata[0];
while(TI!=1);
TI=0;
}
if(P0_6==1)
{
SBUF=wdata[1];
while(TI!=1);
TI=0;
}
else
{
SBUF=wdata[0];
while(TI!=1);
TI=0;
}
if(P0_7==1)
{
SBUF=wdata[1];
while(TI!=1);
TI=0;
}
else
{
SBUF=wdata[0];
while(TI!=1);
TI=0;
}
for (a=0; a<25000; a++); //
P1_0 = 0; //点亮LED
for (a=0; a<25000; a++); //
P1_0 = 1; //熄灭LED
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -