玖玖玖视频-亚洲精品1卡2卡3卡-操欧美美女-真实国产乱子伦对白视频不卡-国产乱在线-大胸美女被吃奶爽死视频-久久亚洲美女精品国产精品-天堂在线www天堂在线-久久在精品线影院精品国产-国产又粗又长又大-欧美三级一区二区-超碰在线亚洲-天天cao在线-国产偷倩视频-亚洲啪

  • «
  • 1
  • 2
  • »
  • Pages: 1/2     Go
liuliangdt
liuliangdt
級別: 家園常客
精華主題: 0
發帖數量: 416 個
工控威望: 687 點
下載積分: 66159 分
在線時間: 1007(小時)
注冊時間: 2010-09-05
最后登錄: 2025-12-23
查看liuliangdt的 主題 / 回貼
樓主  發表于: 2014-03-04 23:02
小哥是個單片機業余愛好者,接觸單片機有幾年了。但很汗顏,水平一直還在入門口徘徊。本來想弄一個類似于多站通信的網絡結構程序玩。寫相互通信就的地方卡住了,再也寫不下去。現在跪求壇友幫忙,因為寫不下去已經幾個月沒碰單片機了。太恨了···
介紹一下通訊方案。一串信息幀有5個字節組成,主站發出一串信息幀后由對于的從站響應。因為從站要快速響應所以就設計在中斷程序里回應(回復)。問題就出在這回應的子程序。同一個子程序,在主程序里順序執行的時候和其它站是正常通訊。但要快速回應還得在中斷里執行才行。從中斷程序里發出通信信息都亂了,接收方收不到正確的信息。我已經試過了我想到可能性,但都不對。希望壇友們幫忙找出錯誤。在查錯時最好要有兩塊單片機硬件聯機,然后在它們RS-485信號處連到電腦的串口助手里看那些錯誤的字節。
如有沒講請清楚的地方待補充。
描述:解壓文件
附件: 測試字符串通訊0#主機通訊.rar (23 K) 下載次數:28
琴島工控
級別: 工控俠客
精華主題: 0
發帖數量: 414 個
工控威望: 2652 點
下載積分: 9037 分
在線時間: 381(小時)
注冊時間: 2011-11-03
最后登錄: 2025-12-06
查看琴島工控的 主題 / 回貼
1樓  發表于: 2014-03-05 13:39
先下載看看,
本帖最近評分記錄:
  • 下載積分:+5(liuliangdt) 感謝分享!
    liuliangdt
    liuliangdt
    級別: 家園常客
    精華主題: 0
    發帖數量: 416 個
    工控威望: 687 點
    下載積分: 66159 分
    在線時間: 1007(小時)
    注冊時間: 2010-09-05
    最后登錄: 2025-12-23
    查看liuliangdt的 主題 / 回貼
    2樓  發表于: 2014-03-05 15:36
    引用
    引用第1樓琴島工控于2014-03-05 13:39發表的  :
    先下載看看,




    嗯,先看看哪里有錯誤。最好在硬件上試。
    liuliangdt
    liuliangdt
    級別: 家園常客
    精華主題: 0
    發帖數量: 416 個
    工控威望: 687 點
    下載積分: 66159 分
    在線時間: 1007(小時)
    注冊時間: 2010-09-05
    最后登錄: 2025-12-23
    查看liuliangdt的 主題 / 回貼
    3樓  發表于: 2014-03-05 20:14
    為了吸引大家的關注,我得用英文回貼:Tie zi bu neng chen a!
    supermax
    級別: 工控俠客
    精華主題: 0
    發帖數量: 575 個
    工控威望: 2540 點
    下載積分: 3642 分
    在線時間: 375(小時)
    注冊時間: 2011-03-20
    最后登錄: 2021-03-26
    查看supermax的 主題 / 回貼
    4樓  發表于: 2014-03-06 07:20
    給樓主一例子,
    //--------------------------------------------------------------
    /*====================================
    *名稱:lcd_str.c
    *功能:從串口調試工具發送一字符串到單片機,在lcd1602和串口調試工具上顯示【未加入校驗】
    *作者:flying 09-2-23
    *修改:
    ======================================*/
    #include<reg51.h>
    #define uchar unsigned char
    #define uint unsigned int
    sbit lcden = P3^5;
    sbit lcdrw = P3^6;
    sbit lcdrs = P3^7;
    uchar table[10];
    uchar i, j, flag;
    void delay(uint n)
    {
            uint x,y;
            for( x = n; x > 0; x--)
                    for( y = 110; y > 0; y-- );
    }
    //lcd寫命令函數
    void lcdwrite_com( uchar com )
    {
            lcdrs = 0;
            lcdrw = 0;
            P0 = com;
            delay(5);
            lcden = 1;
            delay(5);
            lcden = 0;
    }
    //lcd寫數據
    void lcdwrite_date( uchar date )
    {
            lcdrs = 1;
            lcdrw = 0;
            P0 = date;
            delay(5);
            lcden = 1;
            delay(5);
            lcden  = 0;
    }
    //lcd初始化
    void lcd_init()
    {
            lcden = 0;
            lcdwrite_com( 0x38 );//顯示模式設置
            lcdwrite_com( 0x0e );//顯示光標
            lcdwrite_com( 0x01 );//清屏
            lcdwrite_com( 0x80 + 2 );//數據指針設置
    }
    //串口初始化
    void serial_init()
    {
            TMOD = 0x20;
            TH1 = 0xfd;         //9600赫茲
            TL1 = 0xfd;
            TR1 = 1;        //開啟時間中斷

            SCON = 0x50;//方式2
            SM2 = 1;        //可以向cpu請求中斷
            EA = 1;                //開總中斷
            ES = 1;                //開串口中斷        
    }
    void putchar( uchar ch )//發送數據
    {
            SBUF = ch;
            while( !TI );
            TI = 0;
    }
    void main()
    {
            lcd_init();
            serial_init();
            while(1)
            {        
                    delay(20);
                    while( table[j] != '\0' && flag == 1 )
                    {
                            j = j >= 10 ? 0 : j;
                            putchar( table[j] );
                            lcdwrite_date( table[j] );
                            j++;
            //                delay(10);
                    }
            }
    }
    void Serial() interrupt 4
    {
            RI = 0;
            if( SBUF != '#')//遇到#終止寫
            {
                    table = SBUF;
                    i++;
            }
            else
                    flag = 1;
    }
    本帖最近評分記錄:
  • 下載積分:+5(liuliangdt) 熱心助人!
    liuliangdt
    liuliangdt
    級別: 家園常客
    精華主題: 0
    發帖數量: 416 個
    工控威望: 687 點
    下載積分: 66159 分
    在線時間: 1007(小時)
    注冊時間: 2010-09-05
    最后登錄: 2025-12-23
    查看liuliangdt的 主題 / 回貼
    5樓  發表于: 2014-03-06 20:45
    引用
    引用第4樓supermax于2014-03-06 07:20發表的  :
    給樓主一例子,
    //--------------------------------------------------------------
    /*====================================
    *名稱:lcd_str.c
    *功能:從串口調試工具發送一字符串到單片機,在lcd1602和串口調試工具上顯示【未加入校驗】
    .......



    哥,我是菜鳥。能告訴我下面這幾句是什么意思嗎?
    /**table[j] != '\0' && flag == 1**/
    /** j = j >= 10 ? 0 : j;**/
    還有/**table = SBUF;**/,“table”不是一組嗎?
    我寫的那個例子在主程序掃描中是正常執行的。現在是不知道以后主程序會怎么寫、有多長,所以就想把通信那部分集中到中斷中來執行。到中斷后問題就來了,在對方接收到信息來判斷發送就有問題了。
    您說的校驗部分我在百度上問過了,不過汗顏我看不懂。百度知道鏈條:http://zhidao.baidu.com/question/2137614590531493588.html?quesup2&oldq=1
    supermax
    級別: 工控俠客
    精華主題: 0
    發帖數量: 575 個
    工控威望: 2540 點
    下載積分: 3642 分
    在線時間: 375(小時)
    注冊時間: 2011-03-20
    最后登錄: 2021-03-26
    查看supermax的 主題 / 回貼
    6樓  發表于: 2014-03-07 07:15
    不是一組
    supermax
    級別: 工控俠客
    精華主題: 0
    發帖數量: 575 個
    工控威望: 2540 點
    下載積分: 3642 分
    在線時間: 375(小時)
    注冊時間: 2011-03-20
    最后登錄: 2021-03-26
    查看supermax的 主題 / 回貼
    7樓  發表于: 2014-03-07 09:06
    table,,是數組,而/**table = SBUF;**/已經注釋了被屏蔽了在程序里不起作用。

    supermax
    級別: 工控俠客
    精華主題: 0
    發帖數量: 575 個
    工控威望: 2540 點
    下載積分: 3642 分
    在線時間: 375(小時)
    注冊時間: 2011-03-20
    最后登錄: 2021-03-26
    查看supermax的 主題 / 回貼
    8樓  發表于: 2014-03-07 09:15
    我的原程沒有注釋的,但你發問已經打上注釋符
    supermax
    級別: 工控俠客
    精華主題: 0
    發帖數量: 575 個
    工控威望: 2540 點
    下載積分: 3642 分
    在線時間: 375(小時)
    注冊時間: 2011-03-20
    最后登錄: 2021-03-26
    查看supermax的 主題 / 回貼
    9樓  發表于: 2014-03-07 09:17
    那幾句意思是:如果 j >= 10,,就 j = 0,
    只是把table 指向 sbuf,
    supermax
    級別: 工控俠客
    精華主題: 0
    發帖數量: 575 個
    工控威望: 2540 點
    下載積分: 3642 分
    在線時間: 375(小時)
    注冊時間: 2011-03-20
    最后登錄: 2021-03-26
    查看supermax的 主題 / 回貼
    10樓  發表于: 2014-03-07 09:21
    再有不明白你最好請教:shi2999,,我只是他手下,他真是恐怖的高手,我的一切都他教的,我也是剛入門。
    liuliangdt
    liuliangdt
    級別: 家園常客
    精華主題: 0
    發帖數量: 416 個
    工控威望: 687 點
    下載積分: 66159 分
    在線時間: 1007(小時)
    注冊時間: 2010-09-05
    最后登錄: 2025-12-23
    查看liuliangdt的 主題 / 回貼
    11樓  發表于: 2014-03-07 11:27
    引用
    引用第10樓supermax于2014-03-07 09:21發表的  :
    再有不明白你最好請教:shi2999,,我只是他手下,他真是恐怖的高手,我的一切都他教的,我也是剛入門。



    一起共勉一起學習吧!
    那兩句我那樣寫不出來。學習了。
    • «
    • 1
    • 2
    • »
    • Pages: 1/2     Go

    主站蜘蛛池模板: 4438xx亚洲五月最大丁香 | 好屌草这里只有精品 | 欧美激情图区 | 日本亲子乱子伦xxxx | 免费无码久久成人网站入口 | 91福利视频免费观看 | 久章草在线精品视频免费观看 | 亚洲综合天天夜夜久久 | 无码人妻精品一区二区三区蜜桃 | 亚洲色成人一区二区三区 | 蜜臀avwww国产天堂 | 无码少妇一区二区性色av | 亚洲中文有码字幕青青 | 国产成熟人妻换╳╳╳╳ | 无码精品日韩中文字幕 | 免费ā片在线观看 | 午夜在线播放视频 | 国产精品人人做人人爽 | 七妺福利精品导航大全 | 国产老熟女狂叫对白 | 亚洲va中文字幕无码一二三区 | 激情五月婷婷丁香 | 动漫av在线播放 | 日本免费视频 | 久久久久久网址 | 小嫩妇好紧好爽18禁视频 | 久久99免费| 国产精品久久久久久不卡盗摄 | 一夲道无码人妻精品一区二区 | 狠狠操社区 | 色偷偷激情日本亚洲一区二区 | 插插插精品亚洲一区 | 精品无人乱码一区二区三区的特点 | 国产欧美精品一区二区色综合朱莉 | 在线 | 国产精品99传媒a | 国产精品白丝喷水娇喘视频 | 亚洲九区 | 精品亚洲欧美无人区乱码 | 国产黄色免费看 | 久久久精品日韩免费观看 | 精品动漫一区二区三区 | 久操国产在线 | 18禁黄污吃奶免费看网站 | 亚洲人成色4444在线观看 | 亚洲国产欧美中文丝袜日韩 | 小罗莉极品一线天在线 | 午夜无码片在线观看影院y 日韩福利在线 | 亚洲精品色无码av试看 | 色九九九 | 亚洲成人免费 | 欧美精品免费观看二区 | 一区二区日韩视频 | 办公丝袜av一区二区三区 | 日韩福利片在线观看 | 亚洲第一综合网 | 中文字幕免费无码专区 | 国产在线无码视频一区二区三区 | 99久久国产露脸精品竹菊传媒 | 国产亚洲aⅴ在线电影 | 亚洲20p| 国产精品日韩欧美一区二区三区 | 午夜美女裸体福利视频 | 老头边吃奶边弄进去呻吟 | 97人人超碰国产精品最新o | 婷婷狠狠爱 | 91丨porny丨 | 亚洲精品久久久久久中文字幕 | 日日日日做夜夜夜夜无码 | 国产欧美一区二区精品忘忧草 | 丰满少妇人妻hd高清果冻传媒 | 国产亚洲精品97在线视频一 | 亚洲欧美日韩中文字幕一区二区三区 | 国产三级在线观看免费 | 免费观看男女性高视频 | 无翼乌工口全彩肉肉无遮挡18 | 国产亚洲美女精品久久久久 | 欧美调教视频 | 天堂av资源在线观看 | 色香五月 | 午夜精品久久久久久久久久久久 | 尤物99国产成人精品视频 | 国产免费看又黄又大又污的胸 | h网址在线观看 | 精品欧美成人一区二区不卡在线 | 国产黄色大片网站 | 伊人精品一本久久综合 | 久久特级毛片 | 免费看av毛片 | 一区二区三区久久久 | 国模冰莲大胆自慰难受 | 免费看男女做爰爽爽视频 | 999久久久免费精品国产 | 国产亚洲精品久久久久久久 | 国产性生大片免费观看性 | 亚洲香蕉伊综合在人在线观看 | 色呦呦在线观看视频 | 亚洲国产二区 | 亚洲精品一区二三区 | 中文字幕精品三级久久久 |