打印

急急急急急急 SOS 在线等答案

[复制链接]
1534|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
CCLOVEYA|  楼主 | 2010-10-24 14:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题 11.0592MHZ 51单片机 和 MAX232  

  1 MAX232我按照电路和单片机接好后 加5V后 在输出那测得是17V 不是12V 怎么会高这么多 我用的103电容网上说104和103都可以

   
2 用串口调试助手测试  
代码是我在网上找的测试程序 修改了一下  
// 单片机串行口发送/接收程序,每接收到字节即发送出去  
// 和微机相接后键入的字符回显示在屏幕上  
// 可用此程序测试  
//  
#include <reg51.h>  
#include <stdio.h>
#define XTAL 11059200 // CUP 晶振频率  
#define baudrate 9600 // 通信波特率  

void main(void)  
{  
unsigned char c;  

TMOD = 0x20; // 定时器1工作于8位自动重载模式, 用于产生波特率  
TH1=(unsigned char)(256 - (XTAL / (32L * 12L * baudrate)));  
TL1=(unsigned char)(256 - (XTAL / (32L * 12L * baudrate))); // 定时器0赋初值  

SCON = 0x50;  
PCON = 0x00;  

TR1 = 1;  
IE = 0x00; // 禁止任何中断  

while(1)  
{  
while(RI == 0);  
RI = 0;  
c = SBUF; // 从缓冲区中把接收的字符放入c中  

SBUF = c; // 要发送的字符放入缓冲区  
while(TI == 0);  
TI = 0;  
}  
pritnf("the number\n");

}

  我加入 pritnf("the number\n") 输出语句
上电后不显示the number 为什么  
在软件设置的是 9600的波特率 8位  
我分别用两个版本的助手软件 当发送时  
  其中一个 会显示 S 3 R 3  
  另一个 显示 S 0 R 0   
这表示什么啊   
是没有联机 没有数据通信  

3 用软件搜索到有时有 COM1 COM2 COM3  
有时只有 COM1 COM2  
不知道怎么确定是哪个串口

问题比较多 希望有好心人能帮我解答

相关帖子

沙发
liang7143| | 2010-10-25 11:26 | 只看该作者
程序结构有点问题~~
接收建议用中断,发送可以在主函数中进行~~
还有你的pritnf("the number\n"); 是在主循环以外的~~永远都执行不到~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

3

帖子

1

粉丝