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 STC的单片机是怎么一回事?
如果不使用串口中断,而直接发送,也行,但是为什么就是不对呢? TMOD|=0x20;//Timer1 16位定时器
怎么是16位定时器模式.. lusson,那应该是什么模式?那些书上就是这么写的 51波特率发生器用提TIMER1 应该用8位自动装载模式.
不过看你设置0x20应该是这个模式 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
设置错啦。用以上设置。 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码是正确的
找了好几天没查出原因。 哪位有空帮我开发一个串口RS232接收数据并显示在1604的屏上。400元
谢谢!
页:
[1]