发新帖我要提问
123
返回列表
打印

51单片机串口收发字符串求助

[复制链接]
楼主: stcome
手机看帖
扫描二维码
随时随地手机跟帖
41
stcome|  楼主 | 2012-9-24 21:58 | 只看该作者 回帖奖励 |倒序浏览
呵呵,我的程序完成了,谢谢各位
程序如下:
#include <reg52.h>
#include <string.h>
#include <stdio.h>


#define uchar unsigned char
#define uint unsigned int

#define BUF_LEN 50

sbit dula = P2 ^ 6;
sbit wela = P2 ^ 7;

uchar inbuf[BUF_LEN];
uchar innbuf[] = "strong";

uchar flag, count = 0 ,clean;

void init();

void main()
{

     
        for(clean=0; clean < BUF_LEN; clean++ )
                        inbuf[clean] = '\0';
                        init();
                          
    while (1)
    {
                       
        if (flag == 1)
        {
            flag = 0;

                        if(strcmp(inbuf,"openled1")==0)
                        {
                                P1 = 0XFE; ES = 0;TI = 1; printf("led1 on ok\n"); TI = 0; ES = 1;
                        }

                        else if(strcmp(inbuf,"openled2")==0)
                        {
                                P1 = 0XFD; ES = 0;TI = 1; printf("led2 on ok\n"); TI = 0; ES = 1;
                        }

                        else if(strcmp(inbuf,"openled3")==0)
                        {
                                P1 = 0XFB; ES = 0;TI = 1; printf("led3 on ok\n"); TI = 0; ES = 1;
                        }

                        else if(strcmp(inbuf,"openled4")==0)
                        {
                                P1 = 0XF7; ES = 0;TI = 1; printf("led4 on ok\n"); TI = 0; ES = 1;
                        }
                        else if(strcmp(inbuf,"openled5")==0)
                        {
                                P1 = 0XEF; ES = 0;TI = 1; printf("led5 on ok\n"); TI = 0; ES = 1;
                        }

                        else if(strcmp(inbuf,"openled6")==0)
                        {
                                P1 = 0XDF; ES = 0;TI = 1; printf("led6 on ok\n"); TI = 0; ES = 1;
                        }
                        else
                        {
                                P1 = 0X00; ES = 0;TI = 1; printf("%s,ERROR\n",inbuf); TI = 0; ES = 1;
                        }

               
                    
                        for(clean=0; clean < BUF_LEN; clean++ )
                        inbuf[clean] = '\0';
                       
        }
               
    }
}

void init()
{
    TMOD = 0x20;  
    TH1 = 0xfd;   
    TL1 = 0xfd;        
    SCON = 0X50;
        TR1 = 1;            
    ES = 1;      
    EA = 1;     
}

void ser() interrupt 4
{
    uchar ch;

    if (RI)
    {
        RI = 0;
        count++;
        ch = SBUF;
        inbuf[count - 1] = ch;
        if (ch == '\#')
        {
                        inbuf[count-1]= '\0';
            count = 0;
            flag = 1;
                       

        }

    }
}

使用特权

评论回复
42
1014603705| | 2012-9-25 22:10 | 只看该作者
学习了

使用特权

评论回复
43
alaic123| | 2012-12-21 09:41 | 只看该作者
学习 最近在学这块 字符串比较接收

使用特权

评论回复
44
carverzhang| | 2016-2-18 16:56 | 只看该作者
楼主是好人

使用特权

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

本版积分规则