标题: stc15F204ea模拟串口 [打印本页]

作者: qiancuit    时间: 2012-5-14 20:44
标题: stc15F204ea模拟串口

小弟今天第一次模拟串口,程序如下:其实就是第8.1章的例程,但是我将其下载下去后,串口输入0x55后 没有输出。我在STC-ISP中设置也是设置的11.0592MHz,波特率9600,为什么没有呢?

#include "reg51.h"
typedef unsigned char BYTE;
typedef unsigned WORD;
typedef bit BOOL; 
#define BAUD  0xFE80         /* 9600bps@11.0592MHz           */
sfr AUXR = 0x8E;
sbit RXB = P3^0;          /* 定义串口TX RX端口           */
sbit TXB = P3^1;

BYTE TBUF,RBUF;
BYTE TDAT,RDAT;
BYTE TCNT,RCNT;
BYTE TBIT,RBIT;
BOOL TING,RING;
BOOL TEND,REND;

BYTE t,r;
BYTE buf[16];

void UART_INIT()
{
 TING = 0;
 RING = 0;
 TEND = 1;
 REND = 0;
 TCNT = 0;
 RCNT = 0;
}
void main()
{
 TMOD = 0x00;       /* 定时器0 16位自动装置模式         */
 AUXR = 0x80;       /* 定时器0工作在1T模式          */
 TL0 = BAUD;
 TH0 = BAUD >> 8;         /* 初始化定时器0,并设置自动装置的值      */
 TR0 = 1;            /* 定时器0开始启动           */
 ET0 = 1;            /* 使能定时器0中断           */
 PT0 = 1;            /* 设置定时器0中断优先级         */
 EA = 1;             /* 开全局中断            */
 UART_INIT();            /* 串口初始化            */
 while(1)
 {
 

  if(REND)
  {
     REND = 0;
   buf[r++ & 0x0f] = RBUF;
  }
  if(TEND)
  {
   if(t != r)
   {
    TEND = 0;
    TBUF = buf[t++ & 0x0f];
    TING = 1;
   }
  }

 }
}

void tm0() interrupt 1 using 1
{
 if(RING)
 {
  if(--RCNT == 0)
  {
   RCNT =3;
   if(--RBIT == 0)
   {
    RBUF = RDAT;
    RING = 0;
    REND = 1;
   }
   else
   {
    RDAT >>=1;
    if(RXB)RDAT |= 0x80;
   }
  }
 }
 else if(!RXB)
 {
  RING = 1;
  RCNT = 4;
  RBIT = 9;
 }
 if(--TCNT == 0)
 {
  TCNT = 3;
  if(TING)
  {
   if(TBIT == 0)
   {
    TXB = 0;
    TDAT = TBUF;
    TBIT = 9;
   }
   else
   {
    TDAT >>= 1;
    if(--TBIT ==0)
    {
     TXB = 1;
     TING = 0;
     TEND = 1;
    }
    else
    {
     TXB =CY;
    }
   }
  }

 }
}

 

 

 


作者: qiancuit    时间: 2012-5-14 20:45
希望各位大侠帮忙解决,万分感谢!
作者: qiancuit    时间: 2012-5-14 21:08
感谢各位大侠!
作者: cykong1991    时间: 2016-9-24 16:47
qiancuit 发表于 2012-5-14 20:45
**** 作者被禁止或删除 内容自动屏蔽 ****

楼主,这个问题我也遇到过,在keil C51里面的把memory model设为small就可以正常运行了
作者: wis98    时间: 2017-8-4 10:30
分享是种美德




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1