⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sbuf串口输出4.c

📁 这是一款用于游戏的程序
💻 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 + -