欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 15854|回復: 30
收起左側

Rs485通信單片機C程序

  [復制鏈接]
ID:208133 發表于 2017-6-5 18:54 | 顯示全部樓層 |閱讀模式
Rs485通信單片機源程序如下:
  1. /*******************************************************************************
  2. *  標題:                  RS485串口通信試驗(接受與發送)                         *
  3. *                                                                                                                                                            *
  4. *  1.通過本例程了解串口的基本原理及使用 ,理解并掌握對串口進行初始化                            *
  5. *                                                                                                                                                                *
  6. *  2.請使用串口調試助手(Baud 4800、數據位8、停止位1、效驗位無)做為上位機(發送)數據和(接受)數據,
  7. *    請在字符串輸入框中輸入字符和數字(HEX),按發送按鈕。觀看接受窗顯示情況.也可以用自動循環發送。
  8. *
  9. *  3.試驗RS485需要用RS232轉485的轉換頭。開板A對485轉換頭A  B對應485轉換頭B.接法大家可以參考原理圖。
  10. *                                                                                       *
  11. * 請學員認真消化本例程,學會用C語言操作串口和485的實現                              *
  12. ********************************************************************************/

  13. #include <REG52.H>
  14. #include <stdio.h>

  15. sbit RS485E=P3^7;   //定義485的使能腳
  16. bit SendFlag;
  17. unsigned int ReData,SenData;

  18. /**************************************
  19.             延時程序
  20. **************************************/
  21. void delay(unsigned char i)
  22. {
  23.         unsigned char j;
  24.         for(i; i > 0; i--)
  25.                 for(j = 200; j > 0; j--);
  26. }


  27. void main (void) {


  28.         SCON = 0x50;      //REN=1允許串行接受狀態,串口工作模式1                             
  29.             TMOD|= 0x20;      //定時器工作方式2                    
  30.                 PCON|= 0x80;                                                         
  31.                 TH1  = 0xFd;     //baud*2  /* reload value 19200、數據位8、停止位1。效驗位無 (11.0592)   
  32.                 //TH1 = 0xF3;         // //baud*2  /*  波特率4800、數據位8、停止位1。效驗位無 (12M)
  33.             TL1 = 0xF3;      
  34.                 TR1  = 1;                                                            
  35.                 ES   = 1;        //開串口中斷                  
  36.                 EA   = 1;        // 開總中斷
  37.        
  38.            // IE = 0x0;
  39.    
  40.         while(1)
  41.     {
  42.        
  43.           if (SendFlag==1)    // max485(半雙工通信) RE/DE定義 RE=0為接受狀態  DE=1為發送狀態(參考MAX485芯片管腳)
  44.              {   RS485E=1;           //                              RS5485E=0為接收狀態  RS5485E=1為發送狀態
  45.               SBUF=SenData;           //發送數據
  46.                   delay(50);
  47.        }
  48.          else
  49.           {

  50.               RS485E=0;              //接收狀態
  51.           }

  52. }

  53. }

  54. /****************************************************
  55.                串口中斷程序
  56. ******************************************************/
  57. void ser_int (void) interrupt 4 using 1
  58. {
  59. if(TI == 1)
  60. {
  61.         TI = 0;
  62.         SendFlag = 0;
  63. }
  64. ……………………

  65. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
C程序.zip (17.23 KB, 下載次數: 384)


評分

參與人數 3黑幣 +6 收起 理由
gsr64 + 1 很給力!
黃釗 + 1
154462859 + 4 贊一個!

查看全部評分

回復

使用道具 舉報

ID:47286 發表于 2017-6-5 21:00 | 顯示全部樓層
不用做發送標記來改變485芯片的狀態 上電后485的控制端置低 一直出于接收狀態 發送函數里置高 發送完畢拉低就行了
回復

使用道具 舉報

ID:208410 發表于 2017-6-6 14:53 | 顯示全部樓層
好東西,謝謝樓主!!!!!!!!!!!
回復

使用道具 舉報

ID:234694 發表于 2017-11-10 21:56 | 顯示全部樓層
犀利啊。多謝樓主分享!
回復

使用道具 舉報

ID:273288 發表于 2018-1-8 16:17 | 顯示全部樓層
想來學習一下
回復

使用道具 舉報

ID:277300 發表于 2018-1-18 11:11 | 顯示全部樓層
學習學習
回復

使用道具 舉報

ID:277300 發表于 2018-1-18 11:12 | 顯示全部樓層
想來學習一下
回復

使用道具 舉報

ID:295094 發表于 2018-3-21 16:24 來自觸屏版 | 顯示全部樓層
485地址從哪設置
回復

使用道具 舉報

ID:297486 發表于 2018-3-26 20:25 | 顯示全部樓層
學習了
回復

使用道具 舉報

ID:297647 發表于 2018-3-27 10:13 | 顯示全部樓層
下載試試看吧
回復

使用道具 舉報

ID:70953 發表于 2018-5-7 23:28 | 顯示全部樓層
這個程序是由問題的。我測試的時候,232傳輸數據是沒有問題的。但是利用485,發現返回數據是有規律的錯誤,而且,超過兩個字節后,最后一個字節自動改為00,請問各位可有這個問題。
回復

使用道具 舉報

ID:329256 發表于 2018-5-14 00:29 | 顯示全部樓層
tzcl 發表于 2018-5-7 23:28
這個程序是由問題的。我測試的時候,232傳輸數據是沒有問題的。但是利用485,發現返回數據是有規律的錯誤, ...

我的單片機板子推薦程序也是這樣,但是返回的信號一直是00,發送數據也不是返回的發送數據值,似乎像隨機數,被淹沒在大片的00中,很快就沖沒了
回復

使用道具 舉報

ID:228452 發表于 2018-5-16 05:03 | 顯示全部樓層
SBUF=SenData; //send data
                  Delay(50);
This will depend on baud rate
回復

使用道具 舉報

ID:156682 發表于 2018-5-16 23:20 | 顯示全部樓層
非常感謝,非常感謝
回復

使用道具 舉報

ID:306032 發表于 2018-5-21 20:31 | 顯示全部樓層
感謝感謝
回復

使用道具 舉報

ID:338503 發表于 2018-7-21 08:23 | 顯示全部樓層

RE: Rs485通信單片機C程序

非常感謝
回復

使用道具 舉報

ID:137447 發表于 2018-8-15 17:55 | 顯示全部樓層
感謝分享
回復

使用道具 舉報

ID:389650 發表于 2018-8-24 17:30 | 顯示全部樓層
簡單易懂!適合小白白啊!還有發現51黑好多資料!!!那,我就注冊了一個
回復

使用道具 舉報

ID:392042 發表于 2018-11-17 17:43 | 顯示全部樓層
學習了,好東西!!
回復

使用道具 舉報

ID:428400 發表于 2018-11-17 20:17 | 顯示全部樓層
有使用過的朋友嗎
回復

使用道具 舉報

ID:439307 發表于 2018-12-4 19:04 | 顯示全部樓層
可以,這個非常的合適
回復

使用道具 舉報

ID:439307 發表于 2018-12-4 19:17 | 顯示全部樓層
這個非常的給力
回復

使用道具 舉報

ID:164746 發表于 2018-12-22 20:50 | 顯示全部樓層
正在弄485   學習一下
回復

使用道具 舉報

ID:421260 發表于 2018-12-23 08:48 | 顯示全部樓層
把  delay(50); 改為 while(SendFlag ==1).
回復

使用道具 舉報

ID:47652 發表于 2018-12-26 05:56 | 顯示全部樓層
收藏!謝謝分享!
回復

使用道具 舉報

ID:9727 發表于 2019-1-29 10:38 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

ID:627463 發表于 2019-10-29 22:48 | 顯示全部樓層
請問一直收不到數據是怎么回事
回復

使用道具 舉報

ID:627463 發表于 2019-10-29 22:50 | 顯示全部樓層
程序很清晰!!!
回復

使用道具 舉報

ID:641019 發表于 2019-11-13 10:46 | 顯示全部樓層
好東西,就是下載要money
回復

使用道具 舉報

ID:674198 發表于 2020-4-10 09:13 | 顯示全部樓層
下載下來試試
回復

使用道具 舉報

ID:371606 發表于 2020-10-10 22:25 | 顯示全部樓層
使用很方便
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表