导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→串口通信问题,有接收没显示。请高手指点

* 92560: 串口通信问题,有接收没显示。请高手指点

   zym123 
zym123发表的帖子 

 串口通信问题,有接收没显示。请高手指点
小弟初学单片机,想用AT89C51和计算机通信。程序用c语言,用keil软件仿真正常。但烧到单片机中与计算机通信时,串口调试助手显示有收到数据,但在接收区里没有示。请高手指点。程序想实现功能:P3.2,P3.3接K1,K2。当K1按下时发送0X31,当K2按下时发送0X50。P1接8个灯,当接到不同数据是亮不同的等。程序如下:
#include "reg51.h"
#include "string.h"
#define uchar unsigned char

sbit P10=P1^0;
sbit P11=P1^1;
sbit P12=P1^2;
sbit P13=P1^3;
sbit P14=P1^4;
sbit P15=P1^5;
sbit P16=P1^6;
sbit P17=P1^7;
sbit P00=P0^0;

void SendData(uchar Dat)
{SBUF=Dat;
while(!TI); 
TI=0;
}

void mDelay(unsigned int DelayTime)  //延时
{unsigned char j=0;
for(;DelayTime>  0;DelayTime--)
{for(j=0;j  <125;j++)
{;}
}
}

uchar Key()
{uchar Kvalue;
P3|=0x3e;             //中间4位置高电平
if((Kvalue=P3|0xe3)!=0xff)
{ mDelay(10);
if((Kvalue=P3|0xe3)!=0xff)
{ for(;;)
if((P3|0xe3)==0xff)
return(Kvalue);
}
}
return(0);
}

void Serial() interrupt 4
{if(RI)
{unsigned char ch;
ch=SBUF;
switch(ch)
{case 0x31:P10=0;
           mDelay(3000);
     P10=1;
     break;
 case 0x32:P11=0;
           mDelay(3000);
     P11=1;
     break;
 case 0x33:P12=0;
           mDelay(3000);
     P12=1;
     break;
 case 0x34:P13=0;
           mDelay(3000);
     P13=1;
     break;
 case 0x35:P14=0;
           mDelay(3000);
     P14=1;
     break;
 case 0x36:P15=0;
           mDelay(3000);
     P15=1;
     break;
 case 0x37:P16=0;
           mDelay(3000);
     P16=1;
         break;
 case 0x38:P17=0;
           mDelay(3000);
     P17=1;
     break;
 case 0x39:P00=0;
           mDelay(3000);
           P00=1;
           break;
}
RI=0;
}
}

void main()
{uchar Keyvalue;
P1=0xff;
SCON=0x50;
TMOD=0x20;
TCON=0x40;
TH1=0xfd;
TL1=0xfd;
PCON=0x80;
RI=0;
TI=0;
TR1=1;
EA=1;
ES=1;
REN=1;

for(;;)
{if(Keyvalue=Key())
{if((Keyvalue|0xfb)!=0xff) //k1按下
SendData(0x31);
if((Keyvalue|0xf7)!=0xff)  //k2按下
SendData(0x50);
}
}
}

发表时间:2006年5月6日12:22:07

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:出售EPSON150-II打印机驱动C51和硬件电路我有EPSON150-II打印机驱动C51源程序
[下一篇帖子]:求学哪位哥哥能告诉我端口地址如何确定? psen全称是什么[外语] 片选与选通的区别