首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

该程序上载后,单片机为什么从一开始就不停发重复的数据给PC

2012-08-19 
该程序下载后,单片机为什么从一开始就不停发重复的数据给PC?#include reg51.h#define FOSC 35000000L#de

该程序下载后,单片机为什么从一开始就不停发重复的数据给PC?
#include <reg51.h>
#define FOSC 35000000L
#define BUAD (256-FOSC/32/9600)
sfr AUXR=0x8e;
unsigned char a;

void uart_init() //串口初始化
{
  SCON=0x50; //方式1,波特率可变
 
  PCON=0x00;

  AUXR=0x40; //定时器1工作模式1T

  EA=1;

  ES=1;

  TMOD=0x20;

  TH1=BUAD;

  TL1=BUAD;

  TR1=1;
}

void main()
{
  uart_init();

  while(1);
}

void uart_int() interrupt 4
{
  if(RI)
  {
RI=0;

a=SBUF;
}
 
SBUF=a+1;

  while(!TI);

  TI=0;

  SBUF=a+2; //貌似是这句话引起的,但我不知道原因
}

[解决办法]
可能是没有清除中断标志。
[解决办法]
额,楼主的代码好像有问题的嘛。为什么void uart_int() interrupt 4这个函数好像没有被调用??
[解决办法]
看看 manual, 记得 如果写入“发送缓冲,自动设置发送中断标志”

热点排行
Bad Request.