打印

初学者 求助 单片机串口通讯

[复制链接]
1175|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
C:\Documents and Settings\21008895\桌面hi,高手些
    小弟想用AT89S52  单片机 通过232给PC 发个字符串,实际验证 的时候在PC的超级终端上什么都没有,到底是什么问题呢?:Q

程序如下:
   #include <reg51.h>
#include <string.h>
unsigned char ch;
bit read_flag=0 ;
void init_serialcom(void)//串口通信初始设定
{
        SCON =0x50;//UART为模式1,8位数据,允许接收
        TMOD|=0x20; //定时器1为模式2,8位自动重装
        PCON |= 0x80 ;//SMOD=1;
        TH1 = 0xFD ;//Baud:19200 fosc="11".0592MHz
        IE |= 0x90 ; //Enable Serial Interrupt
        TR1 = 1 ; // timer 1 run
        TI=1;
}

//向串口发送一个字符

void send_char_com( unsigned char ch)
{
        SBUF=ch;
        while(TI== 0);

        TI= 0 ;
}


//串口接收中断函数

void serial () interrupt 4 using 3
{
         if (RI)
         {
      RI = 0 ;
          ch=SBUF;
          read_flag= 1 ; //就置位取数标志
         }
}


main()

{
        init_serialcom(); //初始化串口
       
        while ( 1 )
        {
                if (read_flag)//如果取数标志已置位,就将读到的数从串口发出
                        {
                        read_flag= 0 ; //取数标志清0
                        send_char_com(ch);
                }
        }
}

相关帖子

沙发
A2000wps|  楼主 | 2014-9-26 15:21 | 只看该作者
附上图

IMG_20140926_151426.jpg (322.96 KB )

IMG_20140926_151426.jpg

使用特权

评论回复
板凳
xuyaqi| | 2014-9-26 21:23 | 只看该作者
先用示波器查明白是否有信号从串口发出,线接的正确吗,再用软件接收(串口调试,超级终端)波特率要正确。

使用特权

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

本版积分规则

14

主题

954

帖子

1

粉丝