青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

xiaoguozi's Blog
Pay it forword - 我并不覺的自豪,我所嘗試的事情都失敗了······習慣原本生活的人不容易改變,就算現狀很糟,他們也很難改變,在過程中,他們還是放棄了······他們一放棄,大家就都是輸家······讓愛傳出去,很困難,也無法預料,人們需要更細心的觀察別人,要隨時注意才能保護別人,因為他們未必知道自己要什么·····

串行接口

8051單片機的通訊方式有兩種:

并行通訊:數據的各位同時發送或接收。

串行通訊:數據一位一位順序發送或接收。

串行通訊的方式

  1. 異步通訊:它用一個起始位表示字符的開始,用停止位表示字符的結束。其每幀的格式如下:

在一幀格式中,先是一個起始位0,然后是8個數據位,規定低位在前,高位在后,接下來是奇偶校驗位(可以省略),最后是停止位1。用這種格式表示字符,則字符可以一個接一個地傳送。

在異步通訊中,CPU與外設之間必須有兩項規定,即字符格式和波特率。字符格式的規定是雙方能夠在對同一種01的串理解成同一種意義。原則上字符格式可以由通訊的雙方自由制定,但從通用、方便的角度出發,一般還是使用一些標準為好,如采用ASCII標準。

波特率即數據傳送的速率,其定義是每秒鐘傳送的二進制數的位數。例如,數據傳送的速率是120字符/s,而每個字符如上述規定包含10數位,則傳送波特率為1200波特。

  1. 同步通訊:在異步通訊中,每個字符要用起始位和停止位作為字符開始和結束的標志,占用了時間;所以在數據塊傳遞時,為了提高速度,常去掉這些標志,采用同步傳送。由于數據塊傳遞開始要用同步字符來指示,同時要求由時鐘來實現發送端與接收端之間的同步,故硬件較復雜。

 

  1. 通訊方向:在串行通訊中,把通訊接口只能發送或接收的單向傳送方法叫單工傳送;而把數據在甲乙兩機之間的雙向傳遞,稱之為雙工傳送。在雙工傳送方式中又分為半雙工傳送和全雙工傳送。半雙工傳送是兩機之間不能同時進行發送和接收,任一時該,只能發或者只能收信息。

 

8051單片機的串行接口結構

8051串行接口是一個可編程的全雙工串行通訊接口。它可用作異步通訊方式(UART),與串行傳送信息的外部設備相連接,或用于通過標準異步通訊協議進行全雙工的8051多機系統也可以通過同步方式,使用TTLCMOS移位寄存器來擴充I/O口。

8051單片機通過引腳RXDP3.0,串行數據接收端)和引腳TXDP3.1,串行數據發送端)與外界通訊。SBUF是串行口緩沖寄存器,包括發送寄存器和接收寄存器。它們有相同名字和地址空間,但不會出現沖突,因為它們兩個一個只能被CPU讀出數據,一個只能被CPU寫入數據。

串行口控制寄存器SCON

它用于定義串行口的工作方式及實施接收和發送控制。字節地址為98H,其各位定義如下表:


D7

D6

D5

D4

D3

D2

D1

D0

SM0

SM1

SM2

REN

TB8

RB8

TI

RI

SM0SM1:串行口工作方式選擇位,其定義如下:

SM0SM1

工作方式

功能描述

波特率

0 0

方式0

8位移位寄存器

Fosc/12

0 1

方式1

10UART

可變

1 0

方式2

11UART

Fosc/64fosc/32

1 1

方式3

11UART

可變

其中fosc為晶振頻率

SM2:多機通訊控制位。在方式0時,SM2一定要等于0。在方式1中,當(SM2=1則只有接收到有效停止位時,RI才置1。在方式2或方式3當(SM2=1且接收到的第九位數據RB8=0時,RI才置1

REN:接收允許控制位。由軟件置位以允許接收,又由軟件清0來禁止接收。

TB8: 是要發送數據的第9位。在方式2或方式3中,要發送的第9位數據,根據需要由軟件置1或清0。例如,可約定作為奇偶校驗位,或在多機通訊中作為區別地址幀或數據幀的標志位。

RB8:接收到的數據的第9位。在方式0中不使用RB8。在方式1中,若(SM2=0RB8為接收到的停止位。在方式2或方式3中,RB8為接收到的第9位數據。

TI: 發送中斷標志。在方式0中,第8位發送結束時,由硬件置位。在其它方式的發送停止位前,由硬件置位。TI置位既表示一幀信息發送結束,同時也是申請中斷,可根據需要,用軟件查詢的方法獲得數據已發送完畢的信息,或用中斷的方式來發送下一個數據。TI必須用軟件清0

RI: 接收中斷標志位。在方式0,當接收完第8位數據后,由硬件置位。在其它方式中,在接收到停止位的中間時刻由硬件置位(例外情況見于SM2的說明)。RI置位表示一幀數據接收完畢,可用查詢的方法獲知或者用中斷的方法獲知。RI也必須用軟件清0


 

串行口的工作方式

8051單片機的全雙工串行口可編程為4種工作方式,現分述如下:

一.方式0

方式0為移位寄存器輸入/輸出方式。可外接移位寄存器以擴展I/O口,也可以外接同步輸入/輸出設備。8位串行數據者是從RXD輸入或輸出,TXD用來輸出同步脈沖。

  1. 輸出 串行數據從RXD引腳輸出,TXD引腳輸出移位脈沖。CPU將數據寫入發送寄存器時,立即啟動發送,將8位數據以fos/12的固定波特率從RXD輸出,低位在前,高位在后。發送完一幀數據后,發送中斷標志TI由硬件置位。
  2. 輸入 當串行口以方式0接收時,先置位允許接收控制位REN。此時,RXD為串行數據輸入端,TXD仍為同步脈沖移位輸出端。當(RI=0和(REN=1同時滿足時,開始接收。當接收到第8位數據時,將數據移入接收寄存器,并由硬件置位RI

二.方式1

方式1為波特率可變的10位異步通訊接口方式。發送或接收一幀信息,包括1個起始位08個數據位和1個停止位1

  1. 輸出 當CPU執行一條指令將數據寫入發送緩沖SBUF時,就啟動發送。串行數據從TXD引腳輸出,發送完一幀數據后,就由硬件置位TI
  2. 輸入 在(REN=1時,串行口采樣RXD引腳,當采樣到10的跳變時,確認是開始位0,就開始接收一幀數據。只有當(RI=0且停止位為1或者(SM2=0時,停止位才進入RB88位數據才能進入接收寄存器,并由硬件置位中斷標志RI;否則信息丟失。所以在方式1接收時,應先用軟件清零RISM2標志。

三.方式2

方式二為固定波特率的11UART方式。它比方式1增加了一位可程控位10的第9位數據。

  1. 輸出: 發送的串行數據由TXD端輸出一幀信息為11位,附加的第9位來自SCON寄存器的TB8位,用軟件置位或復位。它可作為多機通訊中地址/數據信息的標志位,也可以作為數據的奇偶校驗位。當CPU執行一條數據寫入SUBF的指令時,就啟動發送器發送。發送一幀信息后,置位中斷標志TI
  2. 輸入: 在(REN=1時,串行口采樣RXD引腳,當采樣到10的跳變時,確認是開始位0,就開始接收一幀數據。在接收到附加的第9位數據后,當(RI=0或者(SM2=0時,第9位數據才進入RB88位數據才能進入接收寄存器,并由硬件置位中斷標志RI;否則信息丟失。且不置位RI。再過一位時間后,不管上述條件時否滿足,接收電路即行復位,并重新檢測RXD上從10的跳變。

四.方式3

方式3為波特率可變的11UART方式。除波特率外,其余與方式2相同。

 

波特率選擇

如前所述,在串行通訊中,收發雙方的數據傳送率(波特率)要有一定的約定。在8051串行口的四種工作方式中,方式02的波特率是固定的,而方式13的波特率是可變的,由定時器T1的溢出率控制

  1. 方式0

方式0的波特率固定為主振頻率的1/12

  1. 方式2

方式2的波特率由PCON中的選擇位SMOD來決定,可由下式表示:

波特率=2SMOD次方除以64再乘一個fosc,也就是當SMOD=1時,波特率為1/32fosc,當SMOD=0時,波特率為1/64fosc

3.方式1和方式3

定時器T1作為波特率發生器,其公式如下:

波特率= 定時器T1溢出率

T1溢出率= T1計數率/產生溢出所需的周期數

式中T1計數率取決于它工作在定時器狀態還是計數器狀態。當工作于定時器狀態時,T1計數率為fosc/12;當工作于計數器狀態時,T1計數率為外部輸入頻率,此頻率應小于fosc/24。產生溢出所需周期與定時器T1的工作方式、T1的預置值有關。

定時器T1工作于方式0:溢出所需周期數=8192-x

定時器T1工作于方式1:溢出所需周期數=65536-x

定時器T1工作于方式2:溢出所需周期數=256-x

因為方式2為自動重裝入初值的8位定時器/計數器模式,所以用它來做波特率發生器最恰當

當時鐘頻率選用11.0592MHZ時,取易獲得標準的波特率,所以很多單片機系統選用這個看起來“怪”的晶振就是這個道理。

下表列出了定時器T1工作于方式2常用波特率及初值。

 

常用波特率

Fosc(MHZ)

SMOD

TH1初值

19200

11.0592

1

FDH

9600

11.0592

0

FDH

4800

11.0592

0

FAH

2400

11.0592

0

F4h

1200

11.0592

0

E8h

 

串行口應用編程實例

1. 串口方式0應用編程 8051單片機串行口方式0為移位寄存器方式,外接一個串入并出的移位寄存器,就可以擴展一個并行口。

例:用8051串行口外接CD4094擴展8位并行輸出口,如圖所示,8位并行口的各位都接一個發光二極管,要求發光管呈流水燈狀態。串行口方式0的數據傳送可采用中斷方式,也可采用查詢方式,無論哪種方式,都要借助于TIRI標志。串行發送時,可以靠TI置位(發完一幀數據后)引起中斷申請,在中斷服務程序中發送下一幀數據,或者通過查詢TI的狀態,只要TI0就繼續查詢,TI1就結束查詢,發送下一幀數據。在串行接收時,則由RI引起中斷或對RI查詢來確定何時接收下一幀數據。無論采用什么方式,在開始通訊之前,都要先對控制寄存器SCON進行初始化。在方式0中將,將00HSCON就可以了。

ORG 2000H

START: MOV SCON,#00H ;置串行口工作方式0

MOV A,#80H ;最高位燈先亮

CLR P1.0 ;關閉并行輸出(避象傳輸過程中,各LED"暗紅"現象)

OUT0: MOV SBUF,A ;開始串行輸出

OUT1: JNB TI,OUT1 ;輸出完否

CLR TI ;完了,清TI標志,以備下次發送

SETB P1.0 ;打開并行口輸出

ACALL DELAY ;延時一段時間

RR A ;循環右移

CLR P1.0 ;關閉并行輸出

JMP OUT0 ;循環

說明:DELAY延時子程序可以用前面我們講P1口流水燈時用的延時子程序,這里就不給出了。

二、異步通訊

org 0000H

AJMP START

ORG 30H

START:

mov SP,#5fh ;

mov TMOD,#20h ;T1: 工作模式2

mov PCON,#80h ;SMOD=1

mov TH1,#0FDH ;初始化波特率(參見表)

mov SCON,#50h ;Standard UART settings

MOV R0,#0AAH ;準備送出的數

SETB REN ;允許接收

SETB TR1 ;T1開始工作

WAIT:

MOV A,R0

CPL A

MOV R0,A

MOV SBUF,A

LCALL DELAY

JBC TI,WAIT1 ;如果TI等于1,則清TI并轉WAIT1

AJMP WAIT

WAIT1: JBC RI,READ ;如果RI等于1,則清RI并轉READ

AJMP WAIT1

READ:

MOV A,SBUF ;將取得的數送P1

MOV P1,A

LJMP WAIT

DELAY: ;延時子程序

MOV R7,#0ffH

DJNZ R7,$

RET

END

將程序編譯通過,寫入芯片,插入實驗板,用通讀電纜將實驗板與主機的串口相連就可以實驗了。上面的程序功能很簡單,就是每隔一段時間向主機輪流送數55HAAH,并把主機送去的數送到P1口。可以在PC端用串口精靈來做實驗。串口精靈在我主頁上有下載。運行串口精靈后,按主界面上的設置參數按鈕進入設置參數對話框,按下面的參數進行設置。注意,我的機器上用的是串口2,如果你不是串口2,請自行更改串口的設置。

設置完后,按確定返回主界面,注意右邊有一個下拉列表,應當選中16進制。然后按開始發送開始接收就可以了。按此設置,實驗板上應當有兩只燈亮,6只燈滅。大家可以自行更改設置參數中的發送字符如5500FF等等,觀察燈的亮滅,并分析原因,也可以在主界面上更改下拉列表中的16進制10進制ASCII字符來觀察現象,并仔細分析。這對于大家理解16進制、10進制、ASCII字符也是很有好處的。程序本身很簡單,又有注釋,這里就不詳加說明了。

三、上述程序的中斷版本

org 0000H

AJMP START

org 0023h

AJMP SERIAL ;

ORG 30H

START:

mov SP,#5fh ;

mov TMOD,#20h ;T1: 工作模式2

mov PCON,#80h ;SMOD=1

mov TH1,#0FDH ;初始化波特率(參見表)

mov SCON,#50h ;Standard UART settings

MOV R0,#0AAH ;準備送出的數

SETB REN ;允許接收

SETB TR1 ;T1開始工作

SETB EA ;開總中斷

SETB ES ;開串口中斷

SJMP $

SERIAL:

MOV A,SBUF

MOV P1,A

CLR RI

RETI

END

本程序沒有寫入發送程序,大家可以自行添加。

 

posted on 2010-07-30 13:38 小果子 閱讀(1543) 評論(0)  編輯 收藏 引用 所屬分類: 單片機
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩精品在线播放| 麻豆久久久9性大片| 国产精品一区二区男女羞羞无遮挡 | 亚洲国语精品自产拍在线观看| 欧美久色视频| 久久久久久亚洲精品杨幂换脸| 亚洲二区免费| 久久一区二区三区四区五区| 亚洲在线一区二区| 亚洲人成小说网站色在线| 国产伦理一区| 国产视频一区欧美| 亚洲影音一区| 久久国产精品99国产| 亚洲欧美变态国产另类| 亚洲日韩欧美视频一区| 一本久久青青| 亚洲黄色在线观看| 亚洲欧美国产高清va在线播| 亚洲一级在线观看| 欧美亚洲三区| 久久亚洲综合色一区二区三区| 亚洲人体影院| 伊人男人综合视频网| 悠悠资源网亚洲青| 亚洲精选国产| 美日韩在线观看| 亚洲精选中文字幕| 久久99在线观看| 欧美日韩精品三区| 亚洲第一狼人社区| 免费久久精品视频| 亚洲激情网站| 久久亚裔精品欧美| 欧美电影在线免费观看网站| 欧美刺激午夜性久久久久久久| 亚洲一区二区三区视频| 麻豆久久久9性大片| 国产精品一区二区三区四区五区| 亚洲国产三级网| 久久综合久久综合这里只有精品| 夜夜嗨av一区二区三区四区| 欧美韩日精品| 一本到12不卡视频在线dvd| 久久成人在线| 欧美一区二区三区免费在线看 | 一区二区视频欧美| 国产欧美91| 久久夜色精品| 日韩视频精品| 久久婷婷国产综合国色天香| 国内伊人久久久久久网站视频| 久久久国产精品一区二区中文| 午夜精品视频| 在线精品视频一区二区三四| 91久久久久久| 免费日韩视频| 欧美色欧美亚洲另类七区| 午夜精彩视频在线观看不卡| 国产嫩草一区二区三区在线观看 | 亚洲欧美日韩国产综合| 午夜精品久久久久久久蜜桃app| 日韩一区二区福利| 亚洲一区二区视频在线观看| 伊人久久婷婷色综合98网| 91久久精品国产91久久性色tv| 欧美高清你懂得| 国产亚洲欧美另类一区二区三区| 欧美aa在线视频| 久久aⅴ国产紧身牛仔裤| 久久久久国产精品www| 欧美剧在线观看| 国产香蕉久久精品综合网| 亚洲欧洲中文日韩久久av乱码| 久久亚洲精品一区二区| 亚洲欧美日韩国产中文在线| 欧美精品在线免费观看| 在线观看亚洲一区| 免费在线一区二区| 亚洲欧美中文日韩在线| 久久精品视频一| 国产精品日韩在线| 国产午夜亚洲精品羞羞网站 | 亚洲一级免费视频| 久久综合中文色婷婷| 亚洲专区一区二区三区| 欧美精品自拍| 麻豆精品精华液| 国产精品揄拍500视频| 欧美刺激性大交免费视频| 精品999在线观看| 欧美成人在线免费观看| 欧美1区3d| 亚洲久色影视| 国产一区二区三区高清在线观看 | 欧美在线一二三区| 国产麻豆精品在线观看| 亚洲欧美日韩专区| 亚洲线精品一区二区三区八戒| 久久婷婷国产麻豆91天堂| 国产精品久久久久久久第一福利| 欧美国产丝袜视频| 夜夜嗨av一区二区三区网页| 美女主播精品视频一二三四| 欧美成人免费全部| 亚洲美女av黄| 欧美日韩在线不卡一区| 久热精品视频在线观看| 亚洲欧洲av一区二区三区久久| 99av国产精品欲麻豆| 一区二区三区视频在线观看 | 国产自产精品| 欧美人成在线视频| 久久先锋资源| 久久久久久夜精品精品免费| 最新高清无码专区| 久久九九免费视频| 久久国产直播| 美日韩精品视频| 亚洲综合色激情五月| 免费亚洲一区二区| 性视频1819p久久| 亚洲国产精品久久久久秋霞蜜臀| 狠色狠色综合久久| 一区二区三区自拍| 亚洲国产精品美女| 国产小视频国产精品| 欧美成人午夜激情在线| 午夜欧美大尺度福利影院在线看| 伊人久久婷婷色综合98网| 欧美亚韩一区| 国产精品久久婷婷六月丁香| 欧美精品偷拍| 国产乱码精品一区二区三区av| 欧美日韩一区二区免费在线观看| 久久精品国产一区二区电影 | 久久久久久久久蜜桃| 亚洲一区在线播放| 亚洲网站在线观看| 亚洲欧美国产va在线影院| 精品白丝av| 久久国内精品视频| 亚洲国产精品福利| 黄色精品一区| 亚洲国产成人午夜在线一区| 欧美午夜精品一区| 国产精品igao视频网网址不卡日韩| 欧美激情五月| 欧美手机在线视频| 国产精品入口| 亚洲精品日韩久久| 亚洲色图综合久久| 蜜臀va亚洲va欧美va天堂| 国产精品黄视频| 亚洲精品国精品久久99热一| 亚洲欧美国产精品专区久久| 91久久午夜| 欧美激情2020午夜免费观看| 99re国产精品| 美女精品在线| 午夜久久影院| 久久久99爱| 国产精品色一区二区三区| 在线欧美三区| 久久久久亚洲综合| 亚洲欧美日韩区| 亚洲一区二区视频| 亚洲欧洲一区二区在线观看| 亚洲国产91色在线| 欧美视频日韩| 午夜一区二区三视频在线观看| 免费亚洲一区| 麻豆av一区二区三区| 激情婷婷久久| 午夜电影亚洲| 亚洲主播在线| 亚洲成人影音| 一本大道久久精品懂色aⅴ| 国产精品久久久久久久久久ktv| 欧美一区二区三区四区高清| 亚洲影院在线| 亚洲伦理自拍| 欧美成人小视频| 日韩一区二区精品葵司在线| 欧美国产视频在线| 久久久青草婷婷精品综合日韩| 欧美一区二区三区视频| 国内成人精品视频| 99re66热这里只有精品4| 亚洲私人影院| 99国产麻豆精品| 欧美精品成人| 亚洲国产精品一区二区尤物区| 一区二区三区视频在线观看| 欧美日韩亚洲视频一区| 久久精品日韩| 欧美日韩视频在线一区二区 | 国产一区二区三区成人欧美日韩在线观看| 国产精品一区二区三区久久久| 久久精品一区二区三区不卡|