久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2426|回復: 2
打印 上一主題 下一主題
收起左側

怎么只能接收一個字節,還是16進制的

[復制鏈接]
跳轉到指定樓層
樓主
ID:242160 發表于 2018-1-4 10:42 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

#include "reg52.h"                         
#include<intrins.h>               

typedef unsigned int u16;         
typedef unsigned char u8;

sbit beep=P1^5;         
sbit a=P2^0 ;       
sbit LSA=P2^2;       
sbit LSB=P2^3;
sbit LSC=P2^4;

//串口發送用到的變量
u8 transmit[4];
u8 count_fs=0;
u8 code smgduan[10]={
        0x3f,   //0
        0x06,          //1
        0x5b,        //2
        0x4f,        //3
        0x66,        //4
        0x6d,          //5
        0x7d,        //6
        0x07,        //7
        0x7f,        //8
        0x6f,        //9
} ;

void delay(u16 i)
{
        while(i--);                  //延時函數,i=1時,大約延時10us
}




//串口初始化程序
void UART_Init()
{
        TMOD=TMOD&0x0f|0x20; //設置定時器1,工作方式2
        TH1=0XFD; //定時器1賦初值,0xf3代表串口波特率是2400
        TL1=0XFD;

        SM0=0;        //設定串口工作方式1
        SM1=1;
        REN=1; //允許串口接收

        ES=0; //開串口中斷
        EA=1; //開總中斷

        TR1=1; //啟動定時器1
}
void main()
{       

   u16 d,n=0,w=0,flag=0,L0=0,L1=0,L2=0,L3=0;
        UART_Init();
        TMOD|=0X01;                //  01定時  04計數  選擇為定時器0模式,工作方式1,僅用TR0打開啟動。

        TH0=0X3C;                //給定時器賦初值,定時1ms   
        TL0=0XB0;                                                    
       
        TR0=1;                        //打開定時器

         if(w==0)
        {        if(a==1)
                {       
                delay(100);
                if(a==1)
                {
              L0++;
                  //以下程序是將下位機的震動的次數通過串口傳給藍牙
                //在這里,通訊協議為: L3 L2 L1 L0 一共4個字節
                        transmit[0]=L3;
                        transmit[1]=L2;
                        transmit[2]=L1;
                        transmit[3]=L0;
                        count_fs=0;
                        SBUF=transmit[count_fs];//在這里發送數組的第一個字節給串口
                        count_fs++;      


                 while(1)
       {
           if(L0==10)
                {
                        L0=0;
                        L1++;
                }
                if(L1==10)                                                          
                {
                        L1=0;
                        L2++;
                }
                if(L2==10)
                {
                        L2=0;
                        L3++;
                }
                if(L3==10)
                {
                    L3=0;
                        L0=0;L1=0;L2=0;
                }


                for(d=0;d<4;d++)
                {
                        switch(d)         
                        {
                                case(0):
                                        LSA=0;LSB=0;LSC=0;P0=smgduan[L0]; break;//顯示第0位
                                case(1):
                                        LSA=1;LSB=0;LSC=0;P0=smgduan[L1]; break;//顯示第1位
                                case(2):
                                        LSA=0;LSB=1;LSC=0;P0=smgduan[L2]; break;//顯示第2位
                                case(3):
                                        LSA=1;LSB=1;LSC=0;P0=smgduan[L3]; break;//顯示第3位
                        }
                        delay(100);
                        P0=0x00;           //消隱
                }
                       

                 
                if(a==1)
                delay(1000);
                if(a==1)                                                                       
                {
                        L0++;
                        //以下程序是將下位機的震動的次數通過串口傳給藍牙
                //在這里,通訊協議為: L3 L2 L1 L0 一共4個字節
                        transmit[0]=L3;
                        transmit[1]=L2;
                        transmit[2]=L1;
                        transmit[3]=L0;
                        count_fs=0;
                        SBUF=transmit[count_fs];//在這里發送數組的第一個字節給串口
                        count_fs++;
                }
       
       
                if(TF0==1)
        {
            TF0=0;       
                TH0=0X3C;              //重置定時常數
                TL0=0XB0;
                n++;
                if(n>200)
                {
                  n=0;
                  w=1;
                }
                if(w==1)
                a=0;
    }
               
        }
        }               
        }
                }  
                }
//串口中斷服務程序
void UART_Int() interrupt 4
{
        if(RI==1)
        {
                RI=0;
       
        }
        else   //產生發送中斷          TI=1
        {
                TI=0;
                if(count_fs!=4)   //利用串口中斷發送數組中的第2個字節到第6個字節給串口
                {
                        SBUF=transmit[count_fs];
                        count_fs++;
                }
        }
}                       
       


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:97438 發表于 2018-1-4 15:03 | 只看該作者
你這程序寫得有點亂額~還有,你這個程序單片機發送,并沒有接收~你要實現什么功能?可以一起討論一下。
回復

使用道具 舉報

板凳
ID:242160 發表于 2018-1-5 14:18 | 只看該作者
luoluoluo136 發表于 2018-1-4 15:03
你這程序寫得有點亂額~還有,你這個程序單片機發送,并沒有接收~你要實現什么功能?可以一起討論一下。

只需要發送就行,用手機通過藍牙模塊進行接收,想要通過藍牙用手機接收到單片機數碼管顯示的數字,現在接收到的是16進制,并且只接受一個字節
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产日韩一区二区 | 亚洲一区二区在线视频 | 国产h在线 | 欧美中文字幕在线观看 | 99久视频| 精品伊人久久 | 伦理二区 | 中文字幕av网站 | 在线观看免费福利 | 亚洲综合电影 | 亚洲狠狠爱 | 日本中文在线视频 | 国内自拍视频在线观看 | 午夜精品久久久久久久久久久久久 | 国产精品乱码一区二区三区 | 国产激情视频在线免费观看 | 日韩av免费看 | 国产乱码精品一区二区三区忘忧草 | 黄色网址在线免费观看 | 国产伦精品一区二区三区高清 | 高清人人天天夜夜曰狠狠狠狠 | 开操网| 精品精品视频 | 国产日韩视频在线 | 国精品一区二区 | 成年视频在线观看 | 国产成人精品一区二 | 久久99深爱久久99精品 | 成人精品一区亚洲午夜久久久 | 2018国产大陆天天弄 | 国产91丝袜在线18 | 日本不卡一区二区三区 | 久久国色 | 一道本不卡 | 午夜爽爽爽男女免费观看 | 国产91av视频在线观看 | 一二三区视频 | 天天操天天玩 | 久久久久免费精品国产小说色大师 | 91免费电影 | 色综合久久天天综合网 |