网站标志
导航菜单
当前日期时间
当前时间:
购物车
购物车中有 0 件商品 去结算 我的订单
商品搜索
商品搜索:
文章正文
单片机与电脑串口通信控制,附带遥控控制
作者:管理员    发布于:2015-08-02 16:43:07    文字:【】【】【
 /****** 单片机接收电脑串口发出的指令并执行相应动作。同时,也接收无线遥控发出的信号,并执行动作**************/
 #include <REG51.H>
 #define uchar unsigned char
 #define uint unsigned int
 uchar code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数码管编码,预留    
uchar code ACT[4]={0xfe,0xfd,0xfb,0xf7};//数码管显示相关,预留
/*************************************************************/
uchar code as[]=" shoudao zhiling :";
 uchar a=0x30,b;
 sbit  D1=P2^3;
 sbit  D2=P2^4;   
 //****************************************************
 void init(void)   
 {
    
 TMOD=0x20;   
 TH1=0xfd;   
 TL1=0xfd;   
 SCON=0x50;   
 TR1=1;  
 ES=1;   
 EA=1;
 }  
 //************************
 void delay(uint k) 
 {   
 uint data i,j; 
  for(i=0;i<k;i++)
  {  
  for(j=0;j<121;j++){;} 
  }  
 }
 //**************************************
 void main(void)   
 {
 uchar i,temp;
 P2=0xff;
 delay(3000);/******因为单片机上电后IO脚成高电平状态,所以延时一下,下面把需要的引脚清0******、
P1=0x00;
 D1=0;//要控制的引脚,清0.防止上电动作后不能复原
D2=0;
 init(); 
     while(1)
     {
  if(P1!=0x00)   //无线遥控接收脚状态扫描
 {delay(10);
  if(P1!=0x00)
     temp=P1;
  }
  
  switch(temp )//遥控接收处理
 {
  case 0x01:D1=1;break;
  case 0x02:D1=0;break;
  case 0x04:D2=1;break;
  case 0x08:D2=0;break;
  default:break;
  } 
  switch(b)//串口接收数据处理
 
 {
  case 0x31:D1=1;break;
  case 0x32:D1=0;break;
  case 0x33:D2=1;break;
  case 0x34:D2=0;break;
  case 0x35:D1=0;D2=0;break;
  default:break;
  }
      delay(1);
   if(RI) 
   {
   RI=0;i=0;
   while(as[i]!=''){SBUF=as[i];while(!TI);TI=0;i++;} //串口发送数据
  SBUF=b;while(!TI);TI=0;   //回应串口指令内容
  EA=1;
   }
     }    
 } 
 //*****************************************
 void serial_serve(void) interrupt 4 //串口中断
{    
a=SBUF;
 b=a; 
 EA=0;  
 }
浏览 (57) | 评论 (0) | 评分(0) | 支持(0) | 反对(0) | 发布人:管理员
将本文加入收藏夹
新闻详情
脚注栏目
|
脚注信息
机电工程网(C) 2015-2020 All Rights Reserved.    联系我们