zhangshaoyan 发表于 2010-9-11 10:54:22

STC串口接收不到有效值

使用STC的单片机怎么老是有问题啊?
#include <reg52.h>
void main(void){
        TMOD|=0x20;//Timer1 16位定时器
        SCON=0x40; //方式1 10位UART,不允许接收
        PCON&=0x7f; //波特率不加倍,SMOD=0
        TH1=0xfd; //9600
        TL1=0xfd;
        TR1=1;//启动定时器1
        //ES=0; //允许串口中断
        //ET1=1; //允许定时器1中断
        //EA=1;//开启中断
        while(1){
                TI=0;
                SBUF='a';
                while(!TI);
                TI=0;
        }
}
不断的发送'a',但收到的是一些乱码?


C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 AC C5 B1 B8 C5 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 A8 C5 B1 B8 C1 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 AC C5 B1 B8 C5 B1 A8 C5 A1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 A8 C5 B1 B8 C1 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 AC C5 B1 B8 C5 B1 A8 C5 A1 A8 C5 B1 B8 C1 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 A8 C5 B1 B8 C1 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 AC C5 B1 B8 C5 B1 A8 C5 A1 A8 C5 B1 B8 C1 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 AC C5 B1 B8 C5 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 B8 C5 B1 A8 C5 A1 A8 C5 B1 B8 C1 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 AC C5 B1 B8 C5 B1 A8 C5 A1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 A8 C5 B1 B8 C1 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 AC C5 B1 B8 C5 B1 A8 C5 A1 A8 C5 B1 B8 C1 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 A8 C5 B1 B8 C1 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 AC C5 B1 B8 C5 B1 A8 C5 A1 A8 C5 B1 B8 C1 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 AC C5 B1 B8 C5 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 AC C5 B1 B8 C5 B1 A8 C5 A1 A8 C5 B1 B8 C1 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 AC C5 B1 B8 C5 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 A8 C5 B1 B8 C1 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 AC C5 B1 B8 C5 B1 A8 C5 A1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 A8 C5 B1 B8 C1 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 AC C5 B1 B8 C5 B1 A8 C5 A1 A8 C5 B1 B8 C1 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 A8 C5 B1 B8 C1 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 AC C5 B1 B8 C5 B1 A8 C5 A1 A8 C5 B1 B8 C1 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 AC C5 B1 B8 C5 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 AC C1 B1 B8 C5 B1 A8 C5 A1 A8 C5 B1 B8 C1 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 AC C5 B1 B8 C5 B1 A8 C5 A1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 B1 AC C1 B1 A8 C5 B1 A8 C5 A1 A8

zhangshaoyan 发表于 2010-9-11 11:02:06

STC的单片机是怎么一回事?
如果不使用串口中断,而直接发送,也行,但是为什么就是不对呢?

lusson 发表于 2010-9-11 11:09:51

TMOD|=0x20;//Timer1 16位定时器


怎么是16位定时器模式..

zhangshaoyan 发表于 2010-9-11 11:26:18

lusson,那应该是什么模式?那些书上就是这么写的

lusson 发表于 2010-9-11 12:34:26

51波特率发生器用提TIMER1   应该用8位自动装载模式.

不过看你设置0x20应该是这个模式

bg8wj 发表于 2010-10-12 23:40:46

SCON= 0x50;       //SCON: serail mode 1, 8-bit UART, enable ucvr
TMOD |= 0x20;       //TMOD: timer 1, mode 2, 8-bit reload
PCON |= 0x80;       //SMOD=1;
TH1   = 0xF4;       //Baud:4800fosc=11.0592MHz
                  //Baud:9600fosc=22.1184MHz
设置错啦。用以上设置。

zzf_2010 发表于 2011-12-31 10:19:59

STC单片机发送0123456789abcdef,串口接收到的是
10 11 12 13 14 15 16 17 18 19 21 32 23 34 25 36 (7位)
90 91 92 93 94 95 96 97 98 99 A1 B2 A3 B4 A5 A6 (8位)
软件仿真单片机发送的ASCII码是正确的
找了好几天没查出原因。

2long 发表于 2011-12-31 14:01:53

哪位有空帮我开发一个串口RS232接收数据并显示在1604的屏上。400元

谢谢!
页: [1]
查看完整版本: STC串口接收不到有效值