如何将手机蓝牙发送的信息

2019-07-15 11:04发布

本帖最后由 b7857281 于 2017-4-30 17:02 编辑

我这个数码管只能显示0-15  我想显示0-99  可是如果我在服务程序直接写也是可以 可是我想有没有简便的方法?
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
bit flag;
uchar UART_data;
uchar NUM;
sbit dula=P2^6;
sbit wela=P2^7;
sbit LED1=P1^1;
uchar code table[]="I get ";
uchar code SMG_Dula[]={
0x3f,0x06,0x5b,0x4f,
//0   1    2    3
0x66,0x6d,0x7d,0x07,
//4   5    6    7
0x7f,0x6f,0x77,0x7c,
//8   9    A    B
0x39,0x5e,0x79,0x71}; //duanxuan
void delayms(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=114;y>0;y--);
}
void Scon_init()
{
        TMOD=0X20;            //定时器1
        TH1=0XFD;                //9600波特率
        TL1=0XFD;
        TR1=1;                    //启动定时器
        REN=1;                           //启动串口
        SM0=0;                        //方式2
        SM1=1;
        EA=1;                         //打开全局中断
        ES=1;                         //打开串口中断
}
void SMG_Display(uchar num)
{
        wela=1;
        P0=0xfe;
        wela=0;
        dula=1;
        P0=SMG_Dula[num/10];
        dula=0;
        delayms(5);         

        wela=1;
        P0=0xfd;
        wela=0;
        dula=1;
        P0=SMG_Dula[num%10];
        dula=0;
        delayms(5);          
}
void main()
{
        uchar i;
        Scon_init();
        while(1)
        {         
                if(flag==1)
                {
                        ES=0;
                        LED1=~LED1;
                        for(i=0;i<6;i++)
                        {
                                SBUF=table;
                                while(!ti);
                                TI=0;
                        }
                        SBUF=UART_data;
                        while(!TI);
                        TI=0;
                        ES=1;
                        flag=0;               
                }
                SMG_Display(NUM);       
        }
}

void Scon_ser()interrupt 4
{
        UART_data=SBUF;
        RI=0;
        flag=1;
        if(UART_data == '0')  NUM=0;
        if(UART_data == '1')  NUM=1;
        if(UART_data == '2')  NUM=2;
        if(UART_data == '3')  NUM=3;
        if(UART_data == '4')  NUM=4;
        if(UART_data == '5')  NUM=5;
        if(UART_data == '6')  NUM=6;
        if(UART_data == '7')  NUM=7;
        if(UART_data == '8')  NUM=8;
        if(UART_data == '9')  NUM=9;
        if(UART_data == 'A')  NUM=10;
        if(UART_data == 'B')  NUM=11;
        if(UART_data == 'C')  NUM=12;
        if(UART_data == 'D')  NUM=13;
        if(UART_data == 'E')  NUM=14;
        if(UART_data == 'F')  NUM=15;
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。