打印

51 读取 io口状态,并通过串口发送,程序出错,求助

[复制链接]
2185|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mylovepzq|  楼主 | 2011-8-11 10:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <reg51.h>
//-----------------------------------------------------------------
void UART_init();                //串口初始化函数
void COM_send(void);             //串口发送函数

//-------------------------------------------------------------------
void main(void)
{
UART_init();        //初始化串口
COM_send();

while(1);
}

//-------------------------------------------------------------
void COM_send(void)
{
   char point;
  
    SBUF=p0;
    while(!TI);
    TI=0;
   
   
}
//--------------------------------------------------------------

void UART_init()
{
                      //初始化串行口和波特率发生器
SCON =0x40;           //选择串口工作方式1,不允许接收
TMOD =0x20;           //定时器1工作在方式2,定时器0工作在方式1
TH1 =0xfA;            //
PCON = 0x80;          //速度加倍
TR1 =1;               //启动定时器T1
ET1 =0;
ES=1;                 //允许串行口中断
PS=1;                 //设计串行口中断优先级
EA =0;                //单片机中断允许
}


编译不通过显示
1.C(28): error C202: 'p0': undefined identifier

相关帖子

沙发
wyq0305| | 2011-8-11 10:50 | 只看该作者
我编译的时候,没有出错诶

使用特权

评论回复
板凳
shangdie| | 2011-8-11 11:25 | 只看该作者
P0  P大写  不是小写

使用特权

评论回复
地板
mylovepzq|  楼主 | 2011-8-11 11:41 | 只看该作者
p0大写后可以编译正常,为什么没有输出啊
#include <reg51.h>

//-----------------------------------------------------------------
void UART_init();                //串口初始化函数
void COM_send(void);             //串口发送函数


//-------------------------------------------------------------------
void main(void)
{
        UART_init();        //初始化串口
        COM_send();

        P0=0XFF;

        while(1);
}


//-------------------------------------------------------------

void COM_send(void)
{
  
    SBUF=P0;
    while(!TI);
    TI=0;
   
   
}
//--------------------------------------------------------------


void UART_init()
{
                      //初始化串行口和波特率发生器
SCON =0x40;           //选择串口工作方式1,不允许接收
TMOD =0x20;           //定时器1工作在方式2,定时器0工作在方式1
TH1 =0xfA;            //
PCON = 0x80;          //速度加倍
TR1 =1;               //启动定时器T1
ET1 =0;
ES=1;                 //允许串行口中断
PS=1;                 //设计串行口中断优先级
EA =0;                //单片机中断允许
}

使用特权

评论回复
5
mylovepzq|  楼主 | 2011-8-11 11:43 | 只看该作者
本帖最后由 mylovepzq 于 2011-8-11 11:44 编辑

我把P0口全部拉高了啊,为什么读不到p0口的状态,不晓得搞了
我这个代码的作用就是想要它把io口的状态随时通过串口发送给计算机

使用特权

评论回复
6
shangdie| | 2011-8-12 08:27 | 只看该作者
你的串口初始化没看见波特率的设置

使用特权

评论回复
7
375606426| | 2011-8-12 14:00 | 只看该作者
不知道呀

使用特权

评论回复
8
mylovepzq|  楼主 | 2011-8-12 15:09 | 只看该作者
那为什么,读不出P0的值啊,读出8个1或8个0也好啊

使用特权

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

本版积分规则

0

主题

88

帖子

1

粉丝