51单片机程序问题,为何我输入1时没有反应呢?输入什么也不行

[复制链接]
1248|8
 楼主| myongk 发表于 2016-10-27 13:34 来自手机 | 显示全部楼层 |阅读模式
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char flag,a,i;
uchar code table[]="i get";
void init()
{
        TMOD=0x20;
        TH1=0xfd;
        TL1=0xfd;
        TR1=1;
        REN=1;
        SM0=0;
        SM1=1;
        EA=1;
        ES=1;

}
void main()
{
        init();
        while(1)
        {
                if(flag==1)
                {
                        ES=0;
                        for(i=0;i<6;i++)
                        {
                                SBUF=table[i];
                                while(!TI);       
                                TI=0;
                        }
               
                SBUF=a;
                while(!TI);
                TI=0;
                ES=1;
                flag=0;
                }
        }
}
void ser() interrupt 4
{
        RI=0;
        a=SBUF;
        if(a==1)
        flag=1;
}
zhangxiyi5277 发表于 2016-10-27 21:05 来自手机 | 显示全部楼层
注意字符,,a=`1`试试,,
 楼主| myongk 发表于 2016-10-28 21:33 来自手机 | 显示全部楼层
zhangxiyi5277 发表于 2016-10-27 21:05
注意字符,,a=`1`试试,,

还是不行噢 不知道为什么
cjseng 发表于 2016-10-28 22:51 | 显示全部楼层
发送的字符要写成“01”,选用16进制发送,不能写成“1”
 楼主| myongk 发表于 2016-10-29 14:14 来自手机 | 显示全部楼层
cjseng 发表于 2016-10-28 22:51
发送的字符要写成“01”,选用16进制发送,不能写成“1”

你说得没错,万分谢谢啊,不过为什么要这样呢
cjseng 发表于 2016-10-29 14:49 | 显示全部楼层
myongk 发表于 2016-10-29 14:14
你说得没错,万分谢谢啊,不过为什么要这样呢

串口调试工具就是这样做的,不能识别“1”
 楼主| myongk 发表于 2016-11-1 23:28 来自手机 | 显示全部楼层
cjseng 发表于 2016-10-29 14:49
串口调试工具就是这样做的,不能识别“1”

好,谢谢了啊
PIC16F-key 发表于 2016-11-3 09:37 | 显示全部楼层
组数不支持0或1,只支持16进制
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部