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

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

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

?? c51經典子程序代碼全集
?? 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一区二区三区免费野_久草精品视频
亚洲午夜国产一区99re久久| 九九九精品视频| 国产一区在线视频| 欧美午夜一区二区三区| 久久久欧美精品sm网站| 三级久久三级久久| 在线这里只有精品| 国产精品美女久久久久久| 久久se精品一区精品二区| 精品1区2区3区| 一区二区三区四区不卡视频| 丁香婷婷综合五月| 国产午夜久久久久| 精品在线一区二区三区| 91精品国产色综合久久ai换脸| 亚洲色图19p| 成人a免费在线看| 久久久不卡网国产精品二区| 精品亚洲成a人在线观看| 91精品国产色综合久久久蜜香臀| 亚洲成av人片观看| 日本韩国一区二区| 一级特黄大欧美久久久| 91性感美女视频| 亚洲丝袜另类动漫二区| 99久久er热在这里只有精品66| 亚洲国产精品二十页| 国产成人在线观看| 久久久精品一品道一区| 丁香六月综合激情| 国产精品久久久久影院| 99国产精品视频免费观看| 亚洲欧洲综合另类| 99国产精品久久久久久久久久久| 亚洲人成在线播放网站岛国| 91在线精品一区二区三区| 亚洲欧洲在线观看av| 99精品久久免费看蜜臀剧情介绍| 国产精品不卡在线观看| 91久久国产最好的精华液| 亚洲午夜精品在线| 7777女厕盗摄久久久| 久久99热狠狠色一区二区| 久久久久久夜精品精品免费| 成人午夜av在线| 亚洲精品成人悠悠色影视| 在线不卡中文字幕播放| 国产在线麻豆精品观看| 国产精品日产欧美久久久久| 色婷婷久久久久swag精品 | 亚洲国产一二三| 欧美日韩国产综合视频在线观看| 日本强好片久久久久久aaa| 久久综合网色—综合色88| 成人综合日日夜夜| 亚洲精品五月天| 日韩一区二区在线观看视频播放| 国产一区二区美女| 亚洲美女视频在线| 91精品国产入口| 成人av网址在线| 五月婷婷欧美视频| 国产欧美日韩不卡| 欧美无人高清视频在线观看| 久久99精品国产麻豆不卡| 国产精品高潮呻吟久久| 欧美精品电影在线播放| 成人蜜臀av电影| 偷拍日韩校园综合在线| 中文字幕制服丝袜一区二区三区 | 99re成人精品视频| 国产精品久久免费看| 高清不卡一区二区| 亚洲欧洲日韩在线| 国产成人在线网站| 亚洲成人动漫精品| 国产精品久久久久久亚洲毛片| 欧美亚洲自拍偷拍| 成人自拍视频在线观看| 日韩精品1区2区3区| 亚洲欧美综合另类在线卡通| 日韩午夜在线影院| 欧洲视频一区二区| 国产91在线观看| 日韩主播视频在线| 中文字幕人成不卡一区| 久久人人97超碰com| 欧美高清一级片在线| 97aⅴ精品视频一二三区| 国内成人免费视频| 日韩专区在线视频| 亚洲综合久久久久| 国产精品少妇自拍| 久久久亚洲综合| 日韩精品一区二区在线观看| 一区二区三区加勒比av| 久久一留热品黄| 一级中文字幕一区二区| 中文字幕欧美日韩一区| 久久综合九色综合久久久精品综合| 91精品国产综合久久福利软件| 成人一道本在线| 国产黄人亚洲片| 国产精品白丝jk白祙喷水网站| 日av在线不卡| 日韩国产在线观看一区| 亚洲黄色小视频| 日韩美女视频一区| 国产精品对白交换视频| 中文字幕亚洲在| 欧美—级在线免费片| 国产亚洲一二三区| 久久这里都是精品| 久久在线免费观看| 国产欧美精品一区二区色综合朱莉| 2021久久国产精品不只是精品| 日韩欧美一区电影| 欧美精品一区男女天堂| 精品国产乱码久久久久久免费| 欧美成人高清电影在线| 久久嫩草精品久久久久| 久久精品视频免费| 亚洲欧洲国产日韩| 一区二区国产视频| 日韩精品电影在线观看| 精品在线免费观看| 国产福利一区二区三区视频在线| 国产成人综合视频| 从欧美一区二区三区| 色综合久久综合| 欧美日韩成人一区| 精品国产人成亚洲区| 国产三级一区二区三区| 亚洲精品视频在线观看网站| 亚洲成av人片在线观看| 国产剧情av麻豆香蕉精品| 91在线观看成人| 欧美日韩极品在线观看一区| 精品国产乱码久久久久久老虎| 国产喷白浆一区二区三区| 亚洲欧洲制服丝袜| 秋霞电影一区二区| 成人精品国产一区二区4080| 91成人在线精品| 精品欧美乱码久久久久久| 国产精品久久久久久久久久久免费看 | 精品国产一区二区三区久久久蜜月| 久久久蜜桃精品| 一区二区免费视频| 国产麻豆视频精品| 欧美在线不卡一区| 欧美精品一区在线观看| 亚洲一区二区三区四区在线免费观看 | www.在线欧美| 欧美一区二区三区婷婷月色 | 亚洲午夜在线电影| 国产一区二区三区香蕉| 在线一区二区三区四区| 久久亚洲综合av| 亚洲一线二线三线视频| 国产一区二区成人久久免费影院| aaa国产一区| 久久久精品综合| 日韩电影在线一区二区三区| 99久久婷婷国产综合精品| 精品国产一区二区精华| 午夜a成v人精品| 91蜜桃网址入口| 国产日韩欧美不卡| 久久国产人妖系列| 欧美精品日韩一区| 一区二区三区四区在线播放| 懂色av一区二区夜夜嗨| 欧美本精品男人aⅴ天堂| 亚洲成人av资源| 色噜噜狠狠一区二区三区果冻| 久久久久久久综合| 久久国产生活片100| 5月丁香婷婷综合| 亚洲精品视频在线观看免费| 成人激情开心网| 久久久国际精品| 精彩视频一区二区| 欧美变态tickle挠乳网站| 国产一区二区三区四| 91.成人天堂一区| 午夜影院在线观看欧美| 色爱区综合激月婷婷| 中文字幕日韩一区| www.欧美.com| 国产精品无遮挡| 成人18视频日本| 亚洲国产经典视频| 粉嫩蜜臀av国产精品网站| 欧美国产日本视频| gogo大胆日本视频一区| 亚洲欧洲成人自拍| 色综合久久66| 香蕉久久夜色精品国产使用方法| 欧美亚洲日本一区|