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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2014|回復: 5
收起左側

這個串口自己寫的 寫到一半不知道怎么寫了 希望有人指導下

[復制鏈接]
ID:125710 發表于 2016-11-4 23:26 | 顯示全部樓層 |閱讀模式
我想讓單片機收到1的數據后 不斷往外發送  發送格式是 AA 55 00 01 HH XX DD  其中 AA 55 是固定的  00是地址碼 01是數據類型  HH XX DD是數據位 0-7的IO口 我控制東西用的  我現在要寫一個程序 一個測試程序 HH XX DD這里有變化 HH從01開始位移 當HH=0X40的時候 HH=00  XX開始從01位移 當位移至 XX=0X40的時候 DD=0X00 DD開始位移 位移至0X40的時候 XX=0X00 地址碼+1   重復HH XX DD的步驟 然后地址碼再+1如此循環 。 寫了一點點 實在不知道怎么寫了 請教下大家
9600波特率


#include<reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
unsigned int flag,a,b,i;
unsigned char Send_data[7];
unsigned char DATA[3];
void Readdata(void)
{
unsigned char A1;
unsigned char A2;
unsigned char A3;
unsigned char A4;
unsigned char B1;
unsigned char B2;
unsigned char B3;
unsigned char B4;
        A1=0X01;
        A2=0X01;
        A3=0X01;
        A1=_crol_(A1,1);
        DATA[0]=A1;
        DATA[1]=0X10;
        DATA[2]=0X12;
}


void init() //串口配置函數,baud為波特率
{


    TMOD= 0x20;  //配置T1為模式2
    TH1 = 0XFD;
    TL1 = 0XFD;     //初值等于重載值
    TR1 = 1;       //啟動T1
    ES  = 1;       //使能串口中斷
          SM0=0;
          SM1=1;
          REN=1;
          EA=1;
          ES=1;
}



void Uart1sendData(unsigned char send_data)//數據發送
{

SBUF=Send_data;
}



void main()
{
        init();
        Readdata();

    while(1)
                {
             if(flag==1)
                        {
       ES=0;
                                if(a==1)
                                {
                                        while(1)
                                         {
       Send_data[0]=DATA[0];
                         Send_data[1]=DATA[1];
                         Send_data[2]=DATA[2];
                         
                         
               
           }
         }
                               
          while(!TI);                               
                                        TI=0;
                                 ES=1;flag=0;
      }
                                               
    }
}


void ser()interrupt 4
{
RI=0;
a=SBUF;
        flag=1;
       
}


回復

使用道具 舉報

ID:125710 發表于 2016-11-4 23:29 | 顯示全部樓層
位移1次發送一次數據出去 格式還是7個字節
回復

使用道具 舉報

ID:123289 發表于 2016-11-5 00:10 | 顯示全部樓層
需要做三件事:
第一:需要做一個緩沖區放需要發送的所有數據,設:BUF1為緩沖區。用數組也可以。
回復

使用道具 舉報

ID:123289 發表于 2016-11-5 00:11 | 顯示全部樓層
第二:需要做一個存放數據的指針,設為:P放。P放=放入數據的地址,放1個數以后就+1,開始P放=1,以后始終指向末尾,即下一個要放的位置。數據何時放不限。
回復

使用道具 舉報

ID:123289 發表于 2016-11-5 00:12 | 顯示全部樓層
第三:需要做一個發送數據的指針,設為:P發。開始P發=1,當P發<>P放,就從P發指定的位置取一個數發送出去,而后P發+1;
      當P發=P放,結束發送。
回復

使用道具 舉報

ID:123289 發表于 2016-11-5 00:28 | 顯示全部樓層
本帖最后由 yzwzfyz 于 2016-11-5 00:32 編輯

主程序中,截取部分如下,供參考:
SEND_NEXT:      MOV          A, R_TX1PC發                    ;取發送指針
                        CJNE          A, R_TX1PC放, SEND1_TX   ;與存入指針比
                        MOV           R_TX1PC發, #0                 ;相同結束,指針復位,也可不復位(循環使用)
                        MOV           R_TX1PC放, #0         
                        JMP           SEND1END                         ;結束
;發、放指針不等來此處,取一個數發送           
SEND1_TX:        MOV          A, R_TX1PC發                   ;將發送指針                        
                        MOV          DPL, A                              ;指向緩沖區地址
                        MOV          DPH, #HIGH(BUF1)            ;發送緩沖區首
                        MOVX        A, @DPTR                        ;取數
                        MOV          SBUF, A                           ;發一個字節
                        INC           R_TX1PC發                       ;下個字節
SEND1END:
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产91在线精品 | 亚洲精品久久久久久国产精华液 | 91久久久久久久久久久 | 欧美一区二区三区在线观看 | 国产日韩欧美精品 | 成人免费在线网 | 欧美 日韩 国产 成人 在线 91 | 日韩久久中文字幕 | 欧美一区二区小视频 | 日韩在线视频一区 | 一区二区不卡 | 金莲网| 国内精品久久久久久 | 超碰在线免费公开 | 一区二区三区四区在线视频 | 午夜成人在线视频 | 美女天天操 | 99久久婷婷国产综合精品首页 | 久久国产亚洲精品 | 99re6在线视频精品免费 | 精品国产一区二区三区成人影院 | 精品99爱视频在线观看 | 成人精品高清 | 最新免费黄色网址 | www.日韩 | 欧美一区二区三区精品免费 | 男人天堂网av | 欧美日韩国产一区二区 | 久久综合香蕉 | av天天澡天天爽天天av | 国产精品性做久久久久久 | 超碰8 | 久久久久久国产 | 一二区成人影院电影网 | 日韩精品久久久 | 精品一区二区三区四区五区 | 亚洲国产精品一区二区三区 | 天天曰夜夜 | 亚洲91av | 免费色网址 | 精品国产乱码久久久久久闺蜜 |