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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11969|回復: 15
收起左側

51單片計算機串口開發詳解

  [復制鏈接]
ID:70941 發表于 2014-12-26 00:00 | 顯示全部樓層 |閱讀模式
一.51單片計算機串口結構圖如下:


二. SCON 是一個特殊功能寄存器說明:
         用以設定串行口的工作方式、接收/發送控制以及設置狀態標志


        各位功能如下:
        SM0和SM1 為工作方式選擇位
   

        SM2,多機通信控制位,主要用于方式2和方式3。當接收機的SM2=1時可以利用收到的RB8來控制是否激活RI(RB8=0時不激活RI,收到的信息丟棄;RB8=1時收到的數據進入SBUF,并激活RI,進而在中斷服務中將數據從SBUF讀走)。當SM2=0時,不論收到的RB8為0和1,均可以使收到的數據進入SBUF,并激活RI(即此時RB8不具有控制RI激活的功能)。通過控制SM2,可以實現多機通信。
在方式0時,SM2必須是0。在方式1時,若SM2=1,則只有接收到有效停止位時,RI才置1。
        REN,允許串行接收位。由軟件置REN=1,則啟動串行口接收數據;若軟件置REN=0,則禁止接收。
        TB8,在方式2或方式3中,是發送數據的第九位,可以用軟件規定其作用。可以用作數據的奇偶校驗位,或在多機通信中,作為地址幀/數據幀的標志位。
在方式0和方式1中,該位未用。
        RB8,在方式2或方式3中,是接收到數據的第九位,作為奇偶校驗位或地址幀/數據幀的標志位。在方式1時,若SM2=0,則RB8是接收到的停止位。
        TI,發送中斷標志位。在方式0時,當串行發送第8位數據結束時,或在其它方式,串行發送停止位的開始時,由內部硬件使TI置1,向CPU發中斷申請。在中斷服務程序中,必須用軟件將其清0,取消此中斷申請。
        RI,接收中斷標志位。在方式0時,當串行接收第8位數據結束時,或在其它方式,串行接收停止位的中間時,由內部硬件使RI置1,向CPU發中斷申請。也必須在中斷服務程序中,用軟件將其清0,取消此中斷申請。

三.串口開發例程,下面程式實現向單片機發關信息后,它收完后再返回送回來。

#include<reg52.h>
unsigned  char flag,a;
void main()
{

   TMOD=0x20; //設置定時器1為工作方式2,串口是靠在、定時器工作的
   TH1=0xfd;
   TL1 =0xfd; //裝串口初值,設置串口波特率9600,計算出來的
   TR1=1;//打開定時器

   REN=1;  // 打開串口允許位
   SM0=0;
   SM1=1;//設置串口工作方式1
   EA=1;  //打開總中斷
   ES=1;  //打開串口中斷
   
   while(1)
   {
        if (RI==1)  //這個是用來讀取到P1口
       {
         RI=0;
         P1=SBUF:
       }


        if(flag==1)   //表明串口收到的數據可以用來發送
        {
          ES=0;  //防止TI進入串口中斷關串口中斷
          flag=0;
          SBUF=a; //向發送SBUF送a
          while(!TI); //等待 發送結束。未發送結束之前T1一直是0
          TI=0;      // 通過軟件將TI置0防止中斷后進入中斷服務程序
          ES=1;
         }
   }
}
void ser() interrupt 4  
{
   RI=0;
   P1=SBUF;
   a=SBUF;
   flag=1;
}

附:max232芯片接線圖

max 232 內部合并了MC1488和MC1489能夠實現TTL電平和232電平的雙向轉換


除了232接口外還有其它的接口,都有自己不同的特性



           RS-485是一點對多點的通信接口,一般采用雙絞線的結構。普通的PC機一般不帶RS485接口,因此要使用RS-232C/RS-485轉換器。對于單片機可以通過芯片MAX485來完成TTL/RS-485的電平轉換。在計算機和單片機組成的RS-485通信系統中,下位機由單片機系統組成,上位機為普通的PC機,負責監視下位機的運行狀態,并對其狀態信息進行集中處理,以圖文方式顯示下位機的工作狀態以及工業現場被控設備的工作狀況。系統中各節點(包括上位機)的識別是通過設置不同的站地址來實現的。

回復

使用道具 舉報

ID:60673 發表于 2014-12-27 22:21 | 顯示全部樓層
值得擁有
回復

使用道具 舉報

ID:71354 發表于 2014-12-30 11:45 | 顯示全部樓層
很詳細的資料,謝謝分享
回復

使用道具 舉報

ID:71354 發表于 2014-12-30 11:51 | 顯示全部樓層
經過驗證,程序可用
回復

使用道具 舉報

ID:11942 發表于 2015-1-7 13:14 | 顯示全部樓層
詳細的資料,謝謝
回復

使用道具 舉報

ID:28571 發表于 2015-4-16 20:28 | 顯示全部樓層
好東西,學習一下,謝謝!
回復

使用道具 舉報

ID:79943 發表于 2015-5-15 10:22 | 顯示全部樓層
    SM2,多機通信控制位,主要用于方式2和方式3。當接收機的SM2=1時可以利用收到的RB8來控制是否激活RI(RB8=0時不激活RI,收到的信息丟棄;RB8=1時收到的數據進入SBUF,并激活RI,進而在中斷服務中將數據從SBUF讀走)。當SM2=0時,不論收到的RB8為0和1,均可以使收到的數據進入SBUF,并激活RI(即此時RB8不具有控制RI激活的功能)。通過控制SM2,可以實現多機通信。
在方式0時,SM2必須是0。在方式1時,若SM2=1,則只有接收到有效停止位時,RI才置1。
        REN,允許串行接收位。由軟件置REN=1,則啟動串行口接收數據;若軟件置REN=0,則禁止接收。
        TB8,在方式2或方式3中,是發送數據的第九位,可以用軟件規定其作用。可以用作數據的奇偶校驗位,或在多機通信中,作為地址幀/數據幀的標志位。
在方式0和方式1中,該位未用。
        RB8,在方式2或方式3中,是接收到數據的第九位,作為奇偶校驗位或地址幀/數據幀的標志位。在方式1時,若SM2=0,則RB8是接收到的停止位。
        TI,發送中斷標志位。在方式0時,當串行發送第8位數據結束時,或在其它方式,串行發送停止位的開始時,由內部硬件使TI置1,向CPU發中斷申請。在中斷服務程序中,必須用軟件將其清0,取消此中斷申請。
        RI,接收中斷標志位。在方式0時,當串行接收第8位數據結束時,或在其它方式,串行接收停止位的中間時,由內部硬件使RI置1,向CPU發中斷申請。也必須在中斷服務程序中,用軟件將其清0,取消此中斷申請。
回復

使用道具 舉報

8#
無效樓層,該帖已經被刪除
ID:89610 發表于 2015-12-24 11:45 | 顯示全部樓層
很好的帖子
回復

使用道具 舉報

ID:74145 發表于 2016-3-17 23:11 | 顯示全部樓層
很好的帖子   幫助很大
回復

使用道具 舉報

ID:109441 發表于 2016-3-18 00:34 | 顯示全部樓層
很好的帖子   幫助很大很好的帖子   幫助很大
回復

使用道具 舉報

ID:135676 發表于 2016-9-1 15:11 | 顯示全部樓層
我用這個程序在我的實驗板上調試,可以通過,但燒入單片機運行,串口無顯示,為何?
回復

使用道具 舉報

ID:3802 發表于 2019-1-25 10:52 | 顯示全部樓層
值得擁有
回復

使用道具 舉報

ID:860602 發表于 2021-1-9 21:07 | 顯示全部樓層
RS-485還要在終端接120歐姆電阻,防止信號反射
回復

使用道具 舉報

ID:299193 發表于 2021-2-17 15:50 | 顯示全部樓層
真是個好貼,我正好在學習,謝謝!
回復

使用道具 舉報

ID:513213 發表于 2021-2-20 23:20 | 顯示全部樓層
很詳細的資料,謝謝分享
回復

使用道具 舉報

ID:47634 發表于 2021-2-22 10:44 | 顯示全部樓層
感謝樓主,很好的學習資料
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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