標(biāo)題: 串口發(fā)送字符成功后有什么提示嗎? [打印本頁]

作者: 藍(lán)琪    時間: 2018-10-27 16:20
標(biāo)題: 串口發(fā)送字符成功后有什么提示嗎?
在論壇下了個串口控制LED燈的程序試了下,沒成功,不知道是程序問題還是字符沒成功發(fā)送,發(fā)送字符成功后有什么提示嗎?
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint  unsigned int
uchar PuZh[36] = "廣州匯承信息科技有限公司www*hc01*com";
//--定義使用的IO--//
sbit LED=P2^0;

//--聲明全局函數(shù)--//   
void UsartConfiguration();
void Delay_1ms(uint i);

/********************************************************************
* 名稱 : Com_Int()
* 功能 : 串口中斷子函數(shù)
* 輸入 : 無 * 輸出 : 無
***********************************************************************/
void Com_Int(void) interrupt 4
{
uchar i;
  uchar receive_data;

  EA = 0;

  if(RI == 1) //當(dāng)硬件接收到一個數(shù)據(jù)時,RI會置位
{   
  RI = 0;
  receive_data = SBUF;//接收到的數(shù)據(jù)

  if(receive_data == '1')  
  {
    LED =1;//接收到1亮燈
  }
  else
  {
    LED =0; //其他情況燈滅
  }

}

  for(i=0; i<36; i++)
  {
   SBUF = PuZh;   //將要發(fā)送的數(shù)據(jù)放入到發(fā)送寄存器
   while(!TI);      //等待發(fā)送數(shù)據(jù)完成
   TI=0;           //清除發(fā)送完成標(biāo)志位
   Delay_1ms(1);
  }
  EA = 1;
}
/*******************************************************************************
* 函 數(shù) 名       : main
* 函數(shù)功能     : 主函數(shù)
* 輸    入       : 無
* 輸    出       : 無
*******************************************************************************/
void main()
{
UsartConfiguration();//初始化串口

while(1);
}

/*******************************************************************************
* 函 數(shù) 名       : UsartConfiguration()
* 函數(shù)功能     : 設(shè)置串口
* 輸    入       : 無
* 輸    出       : 無
*******************************************************************************/
void UsartConfiguration()
{
SCON=0X50;   //設(shè)置為工作方式1,8位數(shù)據(jù),可變波特率
TMOD=0X20;   //設(shè)置計數(shù)器工作方式2
PCON=0X00;   //波特率不加倍
TH1=0XFd;      //計數(shù)器初始值設(shè)置,9600@11.0592MHz
TL1=0XFd;
TR1=1;     //打開計數(shù)器
ES = 1;         //開串口中斷
EA = 1;         //開總中斷
}

/********************************************************************
* 名稱 : Delay_1ms()
* 功能 : 延時子程序,延時時間為 1ms
* x * 輸入 : x (延時一毫秒的個數(shù))
* 輸出 : 無
***********************************************************************/
void Delay_1ms(uint i)//1ms延時
{
  uchar x,j;

  for(j=0;j<i;j++)
    for(x=0;x<=148;x++);
}


QQ截圖20181027161417.png (30.99 KB, 下載次數(shù): 45)

QQ截圖20181027161417.png

作者: 藍(lán)琪    時間: 2018-10-27 22:56
弄好了,原來是接線接錯了




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1