亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 一個c51的通訊子程序.txt

?? 51開發的源程序。希望對大家學習單片機有幫助。
?? TXT
字號:
用【 小 | 中 | 大 】字體瀏覽 
C51編程:一個C51的通訊子程序,大伙給批評一下.謝謝. [wander] [71次] 01-12-23 下午 03:53:33
#include <reg51.h>
#define TRUE 0xff
#define FALSE 0X00
#define uchar unsigned char

void  fasong(char character);   
uchar jieshou();
void  ssub();
void  rsub();

uchar xdata t_buff[]={'@','U','N','0','0','#'};
uchar xdata sys_info[183];
uchar xdata r_buff[20];

uchar i,Fa,Jie,Head,t0;

void fasong(char character)    /*發送一個字符*/
{
    SBUF=character;
    while(TI==0);
    TI=0;
}                            


uchar jieshou()        /*接收一個字符*/
{
    REN=1;
    RI=0;
    while(RI!=1);
    Head=SBUF;
    return(Head);
}

void ssub()        /*發送一串字符*/
{
    SM2=1;        /*發送地址碼*/
    Fa=0x00;
    while(1)
    {
        fasong(Fa);
        Jie=jieshou();
        if(Jie==Fa) break;
    }
    
    
    SM2=0;        /*發送數據碼*/
    i=0;
    t0=0;
re:
    do
    {
    
        fasong(t_buff[i]);
        t0=t0+t_buff[i];    /*計算累加和*/
     }
    while  (t_buff[i]!='#');  /*#是字符串結束標志符號*/
    fasong(t0);        /*發送累加和*/
    Jie=jieshou();        /*接收PC回送碼*/
    if(Jie==FALSE)
    {
        i=0;
        t0=0;
        goto re;
    }
}

void rsub()            /*接收一串字符*/
{
    SM2=1;            /*發送地址碼*/
    Fa=0x00;        /*是呼叫本機嗎?*/
    while(1)
    {
        Jie=jieshou();
        if (Jie==Fa) break;
    }
    fasong(Fa);        /*發送本機碼,與PC握手*/
    
    SM2=0;            /*發送數據*/
    i=0;
    t0=0;
rel:
    do
    {
    r_buff[i]=jieshou();
    t0=t0+r_buff[i];    /*求累加和*/
    }
    while(r_buff[i]!='#');  /*接收完成?*/
    jieshou();        /*接收累加和*/
    if(t0==jieshou())    /*累加和與計數相等,發送TRUE*/
        fasong(TRUE);
    else            /*否則發送FALSE,要求重發*/
    {
        fasong(FALSE);
        t0=0;
        i=0;
        goto rel;
    }
}
    
    
main()
{
TMOD=0x20;        /*定時器初始化*/
TH1=0xe6;
TL1=0Xe6;
TCON=0x40;
SCON=0xe0;        /*串口初始化,1200bps*/
EA=0;
ES=0;
ET1=0;            /*關中斷*/
if (RI==1) rsub();    /*查詢*/
if (TI==1) ssub();        
/*work();*/
}    
    
    
     

有點象流水帳, 累加和校驗不太可靠, 最好用CRC. [夜半老妖] [6次] 01-12-23 下午 04:30:18 

流水帳?什么意思?具體指正一下.謝謝.至于校驗,好像是在單片機系統中很少用CRC,好像有人這么說過.不好意思. [wander] [2次] 01-12-23 下午 04:51:48 

接收等待限時,不用while(RI!=1); [大頭小語] [5次] 01-12-23 下午 07:11:30 

Head不應該用全局變量,goto改為do{}while(...),為什么用SM2?要和PC做多機通訊嗎?比較麻煩,好象通訊方案不太對... [DarkKeeper] [3次] 01-12-23 下午 07:17:40 

在Head=SBUF;前改成while(RI==1)RI=0;不改可能收不著 [波] [4次] 01-12-23 下午 09:22:04 

呵呵,謝謝.我這兩天也在考慮這個問題,其實函數的參數傳遞,即可以使用全局變量進行傳遞,也可以使用參變量做傳遞,Head用做全局變量并不會導致錯誤,只是多占用RAM.goto語句可以改成do{} [wander] [7次] 01-12-24 上午 09:47:25 
while()語句.使用SM2只是做一個預留,以便以后采用多機通訊.通訊方案不對?這個該如何解
釋?無外乎,發地址,校驗地址,發數據,接收數據,接收累加和,校驗累加和,可否具體指點一
下?謝謝. 

這是一個好辦法,可以防止死機.謝謝. [wander] [2次] 01-12-24 上午 09:49:10 

好像開始是RI=0;然后判斷RI=1?RI=1,才可以接收的.不過有一點可能確實有問題,RI=1后,應該再一次清零.謝謝. [wander] [2次] 01-12-24 上午 09:57:35 

老兄,你的程序可能跑不起來。 [寄存器] [7次] 01-12-24 上午 10:02:31 
 主程序中必須有個while(1){},或類似的語句,否則程序一定會跑飛的,就像匯編最后
有一死等一樣。另外中斷是單片機的寶貴資源,學著用用吧,搞不懂中斷,基本上可以講
就無法理解CPU。一片沒有中斷的PIIII其性能可能還不如80286之類的CPU。 

內詳 [DarkKeeper] [8次] 01-12-24 下午 05:08:02 
#include <reg51.h>
#define TRUE 0xff
#define FALSE 0X00
#define uchar unsigned char

void  fasong(char character);   
uchar jieshou();
void  ssub();
void  rsub();

uchar xdata t_buff[]={'@','U','N','0','0','#'};
uchar xdata sys_info[183];
uchar xdata r_buff[20];

uchar i,Fa,Jie,Head,t0;

void fasong(char character)    /*發送一個字符*/
{
    SBUF=character;
    while(TI==0);
    TI=0;
}                            


uchar jieshou()        /*接收一個字符*/
{
    REN=1; /*不合適,REN為零,RI不會響應*/
    RI=0;  /*錯,第一次響應丟失*/
    while(RI!=1);
    Head=SBUF;
    return(Head);
}

void ssub()        /*發送一串字符*/
{
    SM2=1;        /*發送地址碼*/ /*錯 置位用TB9,為什么查資料*/
    Fa=0x00;
    while(1)
    {
        fasong(Fa);
        Jie=jieshou();
        if(Jie==Fa) break;
    }
    
    
    SM2=0;        /*發送數據碼*/ /*錯 置位用TB9,為什么查資料*/
    i=0;
    t0=0;
re:
    do
    {
    
        fasong(t_buff[i]);
        t0=t0+t_buff[i];    /*計算累加和*/
     }
    while  (t_buff[i]!='#');  /*#是字符串結束標志符號*/ /*不好,C字符串有結束
符,自定義不好/
    fasong(t0);        /*發送累加和*/
    Jie=jieshou();        /*接收PC回送碼*/
    if(Jie==FALSE)
    {
        i=0;
        t0=0;
        goto re;
    }
}

void rsub()            /*接收一串字符*/
{
    SM2=1;            /*發送地址碼*/ /*不合適,之前SM2為零,TI響應所有數據接受*/
    Fa=0x00;        /*是呼叫本機嗎?*/
    while(1)
    {
        Jie=jieshou();
        if (Jie==Fa) break;
    }
    fasong(Fa);        /*發送本機碼,與PC握手*/
    
    SM2=0;            /*發送數據*/
    i=0;
    t0=0;
rel:
    do
    {
    r_buff[i]=jieshou();
    t0=t0+r_buff[i];    /*求累加和*/
    }
    while(r_buff[i]!='#');  /*接收完成?*/ /*不好,C字符串有結束符,自定義不好/
    jieshou();        /*接收累加和*/
    if(t0==jieshou())    /*累加和與計數相等,發送TRUE*/
        fasong(TRUE);
    else            /*否則發送FALSE,要求重發*/
    {
        fasong(FALSE);
        t0=0;
        i=0;
        goto rel;
    }
}
    
    
main()
{
TMOD=0x20;        /*定時器初始化*/
TH1=0xe6;
TL1=0Xe6;
TCON=0x40;
SCON=0xe0;        /*串口初始化,1200bps*/
EA=0;
ES=0;
ET1=0;            /*關中斷*/
/*問題1:如果這里REN為0,RI不會響應*/
/*問題2:如果這里SM2為0,RI響應所有數據和地址*/
if (RI==1) rsub();    /*查詢*/
if (TI==1) ssub();        
/*work();*/
}   

沒有做過多機通訊,以上是個人理解,以自己實踐為準,我上次提出的是編程風格的問題,
占用空間倒不重要,還有,要用pc機做多機通訊的主機第9位處理有點麻煩,直接操作底層
可以實現查查單片機文選,你如果有興趣可以試試用WINDOWS下用奇偶校驗,置MASK(1),置
SPACE(0). 
 

 
點擊這里回復這篇貼子>>
_____________________________________________________________________________
Copyright?,C51BBS論壇 2000-2002 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品18久久久| 国产精品亚洲第一| 一区二区三区中文免费| 日本一区二区三区高清不卡 | 亚洲精品欧美激情| 国产精品萝li| 亚洲欧美成人一区二区三区| 亚洲色图欧美在线| 亚洲一区二区av电影| 天堂影院一区二区| 捆绑调教美女网站视频一区| 精品写真视频在线观看| 国产精品亚洲人在线观看| 成人综合在线观看| 色女孩综合影院| 欧美日韩免费一区二区三区视频| 欧美电影影音先锋| 久久色中文字幕| 中文字幕字幕中文在线中不卡视频| 亚洲人精品午夜| 婷婷综合五月天| 国产自产2019最新不卡| 成人精品国产福利| 欧美日韩精品一区视频| 久久综合成人精品亚洲另类欧美| 国产精品成人免费在线| 亚洲福利一二三区| 国产精品影视在线观看| 欧美色网站导航| 精品捆绑美女sm三区| 国产精品久久久久久久久动漫 | 精品久久久久久无| 17c精品麻豆一区二区免费| 性欧美疯狂xxxxbbbb| 国产一区二区成人久久免费影院| 国产精品一级二级三级| 色综合中文字幕国产 | 最新久久zyz资源站| 日韩电影免费一区| 国产成人高清视频| 欧美日韩的一区二区| 国产亚洲一区字幕| 日韩精品一二三四| caoporm超碰国产精品| 精品久久久久一区| 亚洲综合激情网| 99久久精品免费看国产免费软件| 日韩欧美国产电影| 亚洲国产精品嫩草影院| 国产aⅴ综合色| 欧美成人性战久久| 午夜欧美视频在线观看| 一本在线高清不卡dvd| 国产亚洲综合色| 国内外成人在线视频| 欧美色视频一区| 亚洲精品ww久久久久久p站| 国产精品一级在线| 26uuu国产在线精品一区二区| 午夜精品一区二区三区电影天堂 | 欧美日韩免费一区二区三区 | 色拍拍在线精品视频8848| 久久免费美女视频| 精品在线亚洲视频| 日韩免费观看高清完整版在线观看| 一区二区三区成人| 成年人午夜久久久| 中文字幕永久在线不卡| av亚洲精华国产精华精| 国产精品久久久久久久岛一牛影视| 国产乱码精品一区二区三区av| 精品成人一区二区三区四区| 免费美女久久99| 日韩欧美国产高清| 精品在线免费观看| 久久久久综合网| 国产精品一色哟哟哟| 日本一区二区免费在线观看视频 | 蜜臀av一级做a爰片久久| 欧美日韩在线免费视频| 日韩不卡一二三区| 欧美大片免费久久精品三p| 免费观看久久久4p| 久久亚洲综合色一区二区三区| 久久99精品久久久久久动态图| 日韩欧美久久久| 狠狠狠色丁香婷婷综合激情 | 99久久综合99久久综合网站| 国产日韩欧美精品在线| 国产a视频精品免费观看| 国产精品国产三级国产普通话99| 色综合色综合色综合| 一区二区三区国产豹纹内裤在线| 欧美日韩和欧美的一区二区| 亚洲va欧美va人人爽| 日韩欧美一二三| av不卡免费电影| 亚洲高清免费视频| 欧美精品一区二区久久婷婷| 成人免费va视频| 亚洲国产另类精品专区| 精品久久免费看| 色香蕉成人二区免费| 日韩在线卡一卡二| 久久久久久97三级| 色94色欧美sute亚洲线路一久| 丝瓜av网站精品一区二区| xfplay精品久久| 在线亚洲高清视频| 韩日av一区二区| 夜夜揉揉日日人人青青一国产精品| 日韩午夜av电影| 成人精品国产一区二区4080| 日本不卡视频在线| 亚洲欧美综合另类在线卡通| 日韩三级视频在线观看| 成人av影院在线| 麻豆91免费观看| 亚洲女女做受ⅹxx高潮| 精品久久一区二区| 欧美日韩综合色| 国产激情一区二区三区桃花岛亚洲| 一区二区三区四区乱视频| 日韩一级大片在线观看| 欧美伊人久久大香线蕉综合69| 国产在线不卡视频| 午夜日韩在线观看| 亚洲精选视频在线| 国产精品美女久久久久久2018| 欧美一级在线视频| 在线区一区二视频| 97久久精品人人做人人爽50路| 蜜臀91精品一区二区三区 | 美女免费视频一区| 亚洲亚洲人成综合网络| 国产精品天干天干在线综合| 日韩午夜中文字幕| 538在线一区二区精品国产| 色悠久久久久综合欧美99| 丁香啪啪综合成人亚洲小说| 九九热在线视频观看这里只有精品| 亚洲欧美偷拍卡通变态| 亚洲国产精品激情在线观看| 精品国产91久久久久久久妲己 | 色综合视频在线观看| 成人午夜短视频| 国产综合一区二区| 国产馆精品极品| 国产精品99久久久久久似苏梦涵| 精品一区二区日韩| 精品一区二区在线观看| 激情欧美一区二区三区在线观看| 久久精品国产在热久久| 人禽交欧美网站| 日韩国产欧美一区二区三区| 香蕉av福利精品导航| 丝袜美腿亚洲一区| 奇米色777欧美一区二区| 久久97超碰国产精品超碰| 久久av中文字幕片| 国产真实乱子伦精品视频| 国产精品白丝jk黑袜喷水| 国产一区二区按摩在线观看| 国产经典欧美精品| 北条麻妃一区二区三区| 色综合天天综合网天天看片| 色网站国产精品| 色欧美片视频在线观看| 欧美日韩精品一区视频| 精品剧情v国产在线观看在线| 久久久另类综合| 18成人在线观看| 日本欧美在线观看| 国产999精品久久久久久| 91在线丨porny丨国产| 欧美色综合网站| 久久久青草青青国产亚洲免观| 国产亚洲精品资源在线26u| 国产精品福利一区二区三区| 亚洲一级在线观看| 精品在线观看免费| 色综合av在线| 久久影院视频免费| 亚洲免费高清视频在线| 美女网站色91| 91丨porny丨国产入口| 欧美久久婷婷综合色| 国产亚洲精品bt天堂精选| 亚洲一区二区三区国产| 韩国女主播成人在线观看| 色狠狠色狠狠综合| 久久综合九色综合久久久精品综合| 亚洲女厕所小便bbb| 理论电影国产精品| 91国内精品野花午夜精品| 精品国产髙清在线看国产毛片| 136国产福利精品导航| 精品一区二区三区在线观看| 欧美午夜电影一区| 一区二区中文字幕在线|