导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→初学者:求助!![皓月当空]

 *第8739篇: 初学者:求助!!

  
楼 主:皓月当空 2003年3月4日22:17
 初学者:求助!!
我作一个串口传数据的实验,但是单片机没有得到想要的输出,大家给看看是怎么回事,谢
谢。
pc端的程序:
#include <bios.h>
#include <stdio.h>

#define PROTOCAL 0xe3
#define PROT 0
#define TX 1
#define RX 2
#define STATUS 3
int port=1;
main()
 {
  int s=0,i=0,num=0;
  unsigned char c;
  bioscom(PROT,PROTOCAL,port);
  clrscr();
  puts("-----------------------");
  puts("RS232 COM2 <9600 N 8 1>");
  puts("-----------------------");
  while(i<=81920)
    {
     s=bioscom(STATUS,0,port)&0x10;
     if(s)
        {
         if((i%2)==0)
            num=0;
             else num=1;
         bioscom(TX,num,port);
         printf("%d      ",num);
         i++;
         }
  }
  }

单片机:
       ORG 0000H
       AJMP MAIN
       ORG 0100H
 MAIN: MOV TMOD,#20H
       MOV TL1,#0FDH
       MOV TH1,#0FDH
       SETB TR1
       MOV R2,#00H
       MOV R3,#00H

LOOPA:
LOOPB:CALL RECEIVE
      MOV P1,A
      INC R2
      CJNE R2,#0FFH,LOOPB
      INC R3
      CJNE R3,#20H,LOOPA
      RET

RECEIVE: MOV SCON,#50H
   WAIT: JNB RI,WAIT
         CLR RI
         MOV A,SBUF
         RET
我试了一下,经过max232,在单片机的rx脚上测的还是有正确的信号,但是P1口没有输出。

  
2楼:Vieirawin 2003年3月4日23:40
 这位兄台,我和你的问题差不多,只是向串口发送数据的,不过我比你菜的多的多,我连信号是多少才正常都不知道,MAX232连的对否都不清楚
  
3楼:Vieirawin 2003年3月4日23:45
 所以想请教TXD和TXD信号大概多少才算正常?
AT89C52串口发送数据自11脚TXD进MAX232的T1IN,从T1OUT出来进PC的COM
PC的串口发送数据进MAX232的R1IN,从R1OUT出来进AT89C52串口的10脚RXD.

MAX232的用法这样对吗?

  
4楼:dirty 2003年3月5日00:15
 连接正确
  
5楼:Vieirawin 2003年3月5日01:08
 如此简单的程序,我的PC串口调试竟没有任何反应?怪哉!
#include "reg51.h" //用AT89C52,开发环境Keil C51 7.0
void main(void)
{
    TMOD = 0x20; //设置?600波特率发生器T1(11.0592MHz)
    TCON = 0x00;
    SCON = 0x50; //串口工作方式1
    PCON = 0x00; //设置串口波特率9600,1位停止位,8位数据      
    TH1  = 0xFD; //设置T1初始值
    TL1  = 0xFD; //设置T1初始值
    TR1  = 1;
    while(1)
    {
        SBUF=0xAA;
        while(TI==0);
        TI=0;
    }       
}这位老兄,能否给小弟指明一条光明大道,AT89C52+MAX232+11.0592MHz晶振+2*30PF电容.
通电后竟然PC串口调试助手可一自动发送接收,即AT89C52的RXD和TXD在通VCC5V后是导通的
了!
  
6楼:smuxt1979 2003年3月5日09:44
 程序有问题
你单片机的程序有问题,1)没开串行中断。2)有死循环
  
7楼:皓月当空 2003年3月5日12:35
 V同志过谦啦,还能有比我菜的?
MAX232和pc连接应该是对的,找本书看看好多都有的。
  
8楼:皓月当空 2003年3月5日18:02
 您能帮我改一下程序吗?谢谢!!
如题,谢谢

>>>>>>对该主题发表你的看法

本主题贴数8,分页: [第1页]


[上一篇主题]:初学者:请教几个有关PCB板覆铜的问题

[下一篇主题]:闲聊:可是外面的世界很精彩,外面的世界很无奈。