打印

谁看下我写的程序,为啥上位机发送命令,单片机没有反应??

[复制链接]
1390|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我是胖子|  楼主 | 2013-8-2 23:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
# include<reg52.h>
# include<HL_1.h>

unsigned char a[10];
unsigned char flag = 0, count = 0;
unsigned char code TABLE[30] = "hello, what do you want to do?";


void Init(void)
{
        TMOD = 0x20;
        TH1 = 0xfd;
        TL1 = 0xfd;
        TR1 = 1;
        REN = 1;
        SM0 = 0;
        SM1 = 1;
//        EA = 1;
//        ES = 1;
}

void Switch_K1(void)
{
        char c;//控制数组字符位置

        if(!K1)
        {
                delay(50);
                if(!K1)
                {
                        for(c=0;c<30;++c)
                        {
                                SBUF = TABLE[c];
                                while(!TI);
                                TI = 0;
                        }       
                }
        }
}

void Control(void)
{
        if(a[0]=='m')
        {
                if(a[1]=='1')
                {
                        WE = 1;
                        P0 = 0xfe;
                        WE = 0;
                       
                        DU = 1;
                        P0 = 0xff;
                        DU = 0;
                       
                        count = 0;       
                }
                         
                if(a[1]=='2')
                {
                        WE = 1;
                        P0 = 0xfd;
                        WE = 0;
                       
                        DU = 1;
                        P0 = 0xff;
                        DU = 0;
                       
                        count = 0;       
                }

                if(a[1]=='3')
                {
                        WE = 1;
                        P0 = 0xfb;
                        WE = 0;
                       
                        DU = 1;
                        P0 = 0xff;
                        DU = 0;
                       
                        count = 0;
                }

                if(a[1]=='4')
                {
                        WE = 1;
                        P0 = 0xf7;
                        WE = 0;
                       
                        DU = 1;
                        P0 = 0xff;
                        DU = 0;
                       
                        count = 0;       
                }
        }
        if(a[0]=='L')
        {
                if(a[1]=='1')
                {
                        P1 = 0xff;
                        LED0 = 0;
                       
                        count = 0;       
                }
       
                if(a[1]=='2')
                {
                        P1 = 0xff;
                        LED1 = 0;
                       
                        count = 0;       
                }
       
                if(a[1]=='3')
                {
                        P1 = 0xff;
                        LED2 = 0;
                       
                        count = 0;       
                }
       
                if(a[1]=='4')
                {
                        P1 = 0xff;
                        LED3 = 0;
                       
                        count = 0;
                }
        }
        if(a[0]=='b'&&a[1]=='e'&&a[2]=='e'&&a[3]=='r')
        {
                P1 = 0xff;
                FM = 0;
                delay(1000);
                FM = 1;
               
                count = 0;
        }
               
}

void main()
{
        unsigned int j;
        Init();
        while(1)
        {       
                RI = 0;
                Switch_K1();
                Control();
                for(j=0;j<5000;j++)
                {
                        if(RI&&(SBUF>47&&SBUF<123))
                        {       
                                a[count] = SBUF;
                                count++;
                        }
                }
        }
}
这是题目
程序3.按下k1,向上位机发送“hello, what do you want to do?”。
      用上位机软件输入m1,则m1数码管全亮,其他位灭。m2-m4与此相同
      用上位机软件输入L1,则L1全亮,其他位灭。L2-L4与此相同
      用上位机软件输入beer,蜂鸣器响1s
      输入其它不起作用。     

注:上位机软件就是串口调试小助手

相关帖子

沙发
hua-2012| | 2013-8-3 10:10 | 只看该作者
RI==0,if循环进不去

使用特权

评论回复
板凳
dirtwillfly| | 2013-8-3 12:22 | 只看该作者
这是老师布置的作业题吧?

使用特权

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

本版积分规则

6

主题

12

帖子

0

粉丝