日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

十天学会单片机Day4串行口通信

發布時間:2024/8/1 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 十天学会单片机Day4串行口通信 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?并行與串行基本通信方式

1.并行通信方式

  通常是將數據字節的各位用多條數據線同時進行傳送。

  并行通信控制簡單、傳輸速度快;由于傳輸線較多,長距離傳送時成本高且接收方的各位同時接收存在困難。 ?

2.串行通信方式

  是將數據字節分成一位一位的形式在一條傳輸線上逐個地傳送。

  串行通信傳輸線少,長距離傳送時成本低,且可以利用電話網等現成的設備,但數據的傳送控制比并行通信復雜。

3.異步串行通信方式

  異步通信是指通信的發送與接收設備使用各自的時鐘控制數據的發送和接收過程。為使雙方的收發協調,要求發送和接收設備的時鐘盡可能一致。

  異步通信是以字符(構成的幀)為單位進行傳輸,字符與字符之間的間隙(時間間隔)是任意的,但每個字符中的各位是以固定的時間傳送的,即字符之間不一定有“位間隔”的整數倍的關系,但同一字符內的各位之間的距離均為“位間隔”的整數倍。

異步通信的數據格式:

  異步通信不要求收發雙方時鐘的嚴格一致,實現容易,設備開銷較小,但每個字符要附加2~3位用于起止位,各幀之間還有間隔,因此傳輸效率不高。

4.同步串行通信方式

  同步通信時要建立發送方時鐘對接收方時鐘的直接控制,使雙方達到完全同步。此時,傳輸數據的位之間的距離均為“位間隔”的整數倍,同時傳送的字符間不留間隙,即保持位同步關系,也保持字符同步關系。發送方對接收方的同步可以通過兩種方法實現。??

  同步通信是以特定的位組合“01111110”作為幀的開始和結束標志,所傳輸的一幀數據可以是任意位。所以傳輸的效率較高,但實現的硬件設備比異步通信復雜。

面向字符的同步格式:

面向位的同步格式:

5.串行通信的制式

單工:數據傳輸僅能沿一個方向,不能實現反向傳輸。

半雙工:指數據傳輸可以沿兩個方向,但需要分時進行。

全雙工:指數據可以同時進行雙向傳輸。

6.串行通信的錯誤校驗

奇偶校驗:在發送數據時,數據位尾隨的1位為奇偶校驗位(1或0)。奇校驗時,數據中“1”的個數與校驗位“1”的個數之和應為奇數;偶校驗時,數據中“1”的個數與校驗位“1”的個數之和應為偶數。接收字符時,對“1”的個數進行校驗,若發現不一致,則說明傳輸數據過程中出現了差錯。

代碼和校驗:發送方將所發數據塊求和(或各字節異或),產生一個字節的校驗字符(校驗和)附加到數據塊末尾。接收方接收數據同時對數據塊(除校驗字節外)求和(或各字節異或),將所得的結果與發送方的“校驗和”進行比較,相符則無差錯,否則即認為傳送過程中出現了差錯。

循環冗余校驗:通過某種數學運算實現有效信息與校驗位之間的循環校驗,常用于對磁盤信息的傳輸、存儲區的完整性校驗等。這種校驗方法糾錯能力強,廣泛應用于同步通信中。

?

7.串行通信接口

RS-232

RS-232C接口規定使用25針連接器,連接器的尺寸及每個插針的排列位置都有明確的定義。(陽頭)

MAX232:把TTL電平從0V和5V轉換到3V~15V或-3V~-15V之間。

  分立元件實現RS-232電平與TTL電平轉換電路。

TXD 為低 Q3導通 PCRXD拉高(如PC用中斷接受的話會產生中斷);TXD發送高電平,Q3截止,PCRXD內部高阻,而PCTXD平時是-3~-15V,拉低PCRXD。

PC發送信號:當PCTXD為低電平,Q4截止,RXD拉高為高電平;當PCTXD變高時,Q4導通,RXD被Q4拉倒低電平。雙向轉換。

?

MAX232芯片實現RS232電平與TTL電平轉換

????

?

CH340 USB-COM轉換芯片

?

8.波特率與定時器初值的關系

比特率是每秒鐘傳輸二進制代碼的位數,單位是:位/秒(bps)。如每秒鐘傳送240個字符,而每個字符格式包含10位(1個起始位、1個停止位、8個數據位),這時的比特率為:10位×240個/秒 = 2400 bps

方式0的波特率 =? fosc/12

方式2的波特率 =(2^SMOD/64)· fosc

方式1的波特率 =(2^SMOD/32)·(T1溢出率)

方式3的波特率 =(2^SMOD/32)·(T1溢出率)

  fosc為晶振頻率。SMOD是PCON寄存器最高位。T1溢出率是定時器T1溢出的頻率。

  T1溢出率=fosc / {12 * [ 256- (TH1) ] }

方式1,在給定時器計滿溢出時,自動進入中斷服務程序,然后我們需手動再次給定時器裝初值。

方式2,當定時器計滿溢出后,單片機會自動為其裝初值,并且無須進入中斷服務程序進行任何處理。定時器溢出速率就會絕對穩定。

Eg:已知串行口通信在串口方式1下,波特率為9600bps,系統晶振頻率為11.0592MHZ,求TL1和TH1中裝入的數值?

  取SMOD=0

  9600 = (1/32)*11059200/ {12 *[256 - (X)] }

  X=253,轉換成16進制0xFD

?

9.串行口結構

有兩個物理上獨立的接收、發送緩沖器SBUF,它們占用同一地址99H ;接收器是雙緩沖結構 ;發送緩沖器,因為發送時CPU是主動的,不會產生重疊錯誤。

10.寄存器

電源管理寄存器PCON(不能位尋址)
位序號D7D6D5D4D3D2D1D0
位符號SMOD(SMOD0)(LVDF)(P0F)GF1GF0PDIDL

?

?

?

SMOD-該位與串口通信波特率有關

  SMOD=0:串口方式123時,波特率正常

  SMOD=1:串口方式123時,波特率加倍。

?

串行口控制寄存器SCON(可位尋址)
位序號D7D6D5D4D3D2D1D0
位符號SM0SM1SM2RENTB8RB8TIRI

?

?

?

?

串行口工作方式
SM0SM1方式功能說明
000同步移位寄存器方式(通常用于擴展I/O口)
01110位異步收發(8位數據),波特率可變
10211位異步收發(9位數據),波特率固定
11311位異步收發(9位數據),波特率可變

?

?

?

?

?

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,取消此中斷申請

定時器/計數器工作方式寄存器TMOD在之前已經有過5.

11.步驟

串行口工作之前,應對其進行初始化,主要是設置產生波特率的定時器1、串行口控制和中斷控制。具體步驟如下:

①確定T1的工作方式(編程TMOD寄存器) ②計算T1的初值,裝載TH1、TL1 ③啟動T1(編程TCON中的TR1位) ④確定串行口控制(編程SCON寄存器)

  ⑤串行口在中斷方式工作時,要進行中斷設置(編程IE、IP寄存器)

?

1 //串口方式1 I get X 2 #include <reg52.h> 3 unsigned char flag, a, i; 4 unsigned char code table[]="I get "; 5 6 void init() 7 { 8 TMOD = 0x20;//確定T1工作方式 自動重載8位定時器,收TR1控制 9 TH1 = 0xFD;//裝初值 10 TL1 = 0xFD; 11 TR1 = 1;//開啟定時器 12 REN = 1;//允許串行口接受 13 SM0 = 0;//方式1 14 SM1 = 1; 15 EA = 1;//中斷總開關開 16 ES = 1;//串行口中斷打開 17 } 18 19 void main() 20 { 21 init(); 22 while(1) 23 { 24 if(flag == 1) { //有接收 25 ES = 0; //串行口中斷關閉 26 for(i = 0; i < 6; i++) { 27 SBUF = table[i]; //SBUF發送寄存器I get 28 while(!TI); //發送 29 TI = 0; //發送中斷標志位清0 30 } 31 SBUF = a; //把接收到的緩存在a中的給SBUF發送 32 while(!TI); //發送 33 TI = 0; //軟件清0 34 ES = 1; //打開串行口中斷 35 flag = 0; //標志清0 36 } 37 } 38 } 39 40 void ser() interrupt 4 41 { //RI=1接收到串行口中斷 42 RI = 0; //軟件清0 43 a = SBUF; //讀取SBUF中數據存于a 44 flag = 1; //標志置1 代表有接收 45 }

?

1 //方式2 2 #include <reg52.h> 3 4 void InitUART(void) 5 { 6 TMOD = 0x20; 7 SCON = 0x50; 8 TH1 = 0xFD; 9 TL1 = TH1; 10 PCON = 0x00; 11 EA = 1; 12 ES = 1; 13 TR1 = 1; 14 } 15 16 void SendOneByte(unsigned char c) 17 { 18 SBUF = c; 19 while(!TI); 20 TI = 0; 21 } 22 23 void main(void) 24 { 25 InitUART(); 26 } 27 28 void UARTInterrupt(void) interrupt 4 29 { 30 if(RI) 31 { 32 RI = 0; 33 //add your code here! 34 } 35 else 36 TI = 0; 37 }

?

轉載于:https://www.cnblogs.com/kuotian/p/5428915.html

總結

以上是生活随笔為你收集整理的十天学会单片机Day4串行口通信的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品乱码一区二区三区 | 丁香六月激情综合 | 欧美成人生活片 | 欧美黄色精品 | 国产99自拍 | 草比网站| 亚洲免费av一区二区 | 狠狠人妻久久久久久综合 | 国产成人av一区二区 | 国产精品成人3p一区二区三区 | 成人性爱视频在线观看 | 久射久 | 午夜免费福利小视频 | 伊人色网站| 91精品国产色综合久久不卡粉嫩 | 亚洲视频精选 | 成人免费网视频 | 日本特黄视频 | 国产有码 | 国产免费一区二区三区在线观看 | 香蕉视频成人在线观看 | 精品欧美一区二区三区久久久 | 嫩草私人影院 | 嫩草www | 人人妻人人澡人人爽精品欧美一区 | 日韩中文字幕在线播放 | 超碰.com | h片在线观看视频 | av色成人| 日韩精品手机在线 | 韩国日本在线 | 亚洲日本欧美在线 | 国产男男gay体育生网站 | 特黄特色特刺激免费播放 | 国产视频在线观看网站 | 欧美性潮喷xxxxx免费视频看 | 国产精品久久久久久久久久久久久久久 | 国产又粗又硬 | 少妇视频在线播放 | 国产稀缺真实呦乱在线 | 少妇的性事hd | 韩国精品在线 | 国产乱子伦一区二区 | 亚洲综合精品在线 | 免费看黄色一级大片 | 亚洲午夜精品久久久 | 日韩美女视频在线观看 | 精品妇女一区二区三区 | 亚洲久久一区二区 | 亚洲视频二 | www.亚洲天堂.com | 国产va在线 | 成人中文视频 | 国产在线美女 | av资源站 | 九九操 | 欧美日韩成人一区二区在线观看 | 97看片网| 91ts人妖另类精品系列 | 三年中国片在线高清观看 | 精品视频一区二区三区四区 | 九九九网站 | 欧美激情电影一区二区 | 美女av片 | 亚洲美女精品 | 亚洲一区二区三区网站 | 精品伦精品一区二区三区视频密桃 | 亚洲欧美另类国产 | 欧美大片黄 | 国产a视频 | 男人日女人b视频 | 中文字幕人妻一区二区三区在线视频 | 无码gogo大胆啪啪艺术 | 国产精品一区二区无线 | 黄色片在线播放 | 男朋友是消防员第一季 | 日韩三级中文字幕 | 豆花视频在线播放 | 插插插色综合 | 亚洲综合激情另类小说区 | 超碰av人人 | 又黄又爽视频在线观看 | 人妻天天爽夜夜爽一区二区三区 | 97综合网| 国产污污网站 | 免费在线看黄网址 | 五月激情在线 | 国产中出视频 | 精品日韩制服无码久久久久久 | 麻豆成人av | 成人影片在线播放 | 97视频在线免费 | 亚洲国产综合视频 | 人与动物毛片 | 欧美成年人视频在线观看 | 一级做a爱 | 在线免费福利 | 国产尤物视频 | 国产乡下妇女做爰毛片 |