AVR單片機(jī)(C語言)項(xiàng)目開發(fā)實(shí)踐教程項(xiàng)目十一 SPI串行總線應(yīng)用_第1頁
AVR單片機(jī)(C語言)項(xiàng)目開發(fā)實(shí)踐教程項(xiàng)目十一 SPI串行總線應(yīng)用_第2頁
AVR單片機(jī)(C語言)項(xiàng)目開發(fā)實(shí)踐教程項(xiàng)目十一 SPI串行總線應(yīng)用_第3頁
AVR單片機(jī)(C語言)項(xiàng)目開發(fā)實(shí)踐教程項(xiàng)目十一 SPI串行總線應(yīng)用_第4頁
AVR單片機(jī)(C語言)項(xiàng)目開發(fā)實(shí)踐教程項(xiàng)目十一 SPI串行總線應(yīng)用_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、AVRAVR單片機(jī)(單片機(jī)(C C語言)項(xiàng)目開發(fā)實(shí)踐教程項(xiàng)目十一語言)項(xiàng)目開發(fā)實(shí)踐教程項(xiàng)目十一 SPISPI串行總線應(yīng)用串行總線應(yīng)用【知識目標(biāo)】掌握SPI串行通信協(xié)議了解ATmega16單片機(jī)SPI串行通信接口結(jié)構(gòu)了解與SPI串行通信有關(guān)的寄存器的功能了解TLC5615D/A芯片【能力目標(biāo)】掌握ATmega16單片機(jī)的SPI串行通信接口相關(guān)寄存器的配置方法 掌握TLC5615D/A芯片的使用方法掌握簡單的單片機(jī)SPI串行通信總線系統(tǒng)程序的編寫、調(diào)試方法【任務(wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí)v一、SPI總線通信協(xié)議概述總線通信協(xié)議概述 SPI(Serial Peripheral Interface-串行外設(shè)

2、接口)總線系統(tǒng)是一種同步外設(shè)接口,允許MCU與各種外圍設(shè)備以串行方式進(jìn)行通信和數(shù)據(jù)交換。外圍設(shè)備包括FLASHRAM、A/ D 轉(zhuǎn)換器、網(wǎng)絡(luò)控制器、MCU 等. 一般使用4 線制:串行時鐘線(SCK) 、主機(jī)輸入/ 從機(jī)輸出數(shù)據(jù)線MISO、主機(jī)輸出/ 從機(jī)輸入數(shù)據(jù)線MOSI 和低電平有效的從機(jī)選擇線SS 。【任務(wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí)v 二、ATmega16單片機(jī)SPI接口控制與數(shù)據(jù)傳輸過程1)1)控制與傳輸過程控制與傳輸過程 如下圖所示為SPI數(shù)據(jù)傳輸系統(tǒng)的結(jié)構(gòu)方框圖。SPI的數(shù)據(jù)傳輸系統(tǒng)由主機(jī)和從機(jī)兩個部分構(gòu)成,主要由主、從機(jī)雙方的兩個移位寄存器和主機(jī)SPI時鐘發(fā)生器組成,主機(jī)為SPI數(shù)據(jù)傳

3、輸?shù)目刂品健S蒘PI的主機(jī)將SS輸出線拉低,作為同步數(shù)據(jù)傳輸?shù)某跏蓟盘枺ㄖ獜臋C(jī)進(jìn)入傳輸狀態(tài)。然后主機(jī)啟動時鐘發(fā)生器,產(chǎn)生同步時鐘信號SCK;預(yù)先將在兩個移位寄存器中的數(shù)據(jù)在SCK的驅(qū)動下進(jìn)行循環(huán)移位操作,實(shí)現(xiàn)了主從之間的數(shù)據(jù)交換。主機(jī)的數(shù)據(jù)由MOSI(主機(jī)輸出從機(jī)輸入)進(jìn)入從機(jī),而同時從機(jī)的數(shù)據(jù)MISO(主機(jī)輸入從機(jī)輸出)進(jìn)入主機(jī)。數(shù)據(jù)傳送完成,主機(jī)將SS線拉高,表示傳輸結(jié)束。 【任務(wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí)v 二、ATmega16單片機(jī)SPI接口控制與數(shù)據(jù)傳輸過程1)1)控制與傳輸過程控制與傳輸過程 【任務(wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí)v 二、ATmega16單片機(jī)SPI接口控制與數(shù)據(jù)傳輸過程1)1)

4、控制與傳輸過程控制與傳輸過程 SPI接口的設(shè)置可分為主機(jī)和從機(jī)兩種模式。當(dāng)SPI接口使能時,MOSIMOSI、MISOMISO、SCKSCK和SSSS引腳的控制和數(shù)據(jù)方向如下表【任務(wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí)v 二、ATmega16單片機(jī)SPI接口控制與數(shù)據(jù)傳輸過程2 2)SPI)SPI初始化及數(shù)據(jù)傳送程序示例初始化及數(shù)據(jù)傳送程序示例 下面將以ATmega16單片機(jī)為例說明如何將SPI設(shè)置為主機(jī),以及如何進(jìn)行簡單的數(shù)據(jù)傳送。MOSIMOSI對應(yīng)ATmega16單片機(jī)PB5PB5引腳,MISOMISO對應(yīng)ATmega16單片機(jī)PB6PB6引腳,SCKSCK對應(yīng)ATmega16單片機(jī)PB7PB7管腳,S

5、SSS對應(yīng)ATmega16單片機(jī)PB4PB4管腳?!救蝿?wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí)v 二、ATmega16單片機(jī)SPI接口控制與數(shù)據(jù)傳輸過程2 2)SPI)SPI初始化及數(shù)據(jù)傳送程序示例初始化及數(shù)據(jù)傳送程序示例 (1 1)設(shè)置)設(shè)置SPISPI為主機(jī)并進(jìn)行簡單的數(shù)據(jù)發(fā)送:為主機(jī)并進(jìn)行簡單的數(shù)據(jù)發(fā)送: void spi_masterset(void)void spi_masterset(void) / /* * 設(shè)置設(shè)置MOSI MOSI 和和SCK SCK 為輸出,其他為輸入為輸出,其他為輸入 * */ / DDRB = (1DDB5)|(1DDB7); DDRB = (1DDB5)|(1DDB7)

6、; / /* * 使能使能SPI SPI 主機(jī)模式,設(shè)置時鐘速率為主機(jī)模式,設(shè)置時鐘速率為fck/16 fck/16 * */ / SPCR = (1SPE)|(1MSTR)|(1SPR0); SPCR = (1SPE)|(1MSTR)|(1SPR0); void spi_mastertransmit(char data) void spi_mastertransmit(char data) / /* * 啟動數(shù)據(jù)傳輸啟動數(shù)據(jù)傳輸 * */ / SPDR = data; SPDR = data; / /* * 等待傳輸結(jié)束等待傳輸結(jié)束 * */ / while(!(SPSR & (1S

7、PIF); while(!(SPSR & (1SPIF); 【任務(wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí)v 二、ATmega16單片機(jī)SPI接口控制與數(shù)據(jù)傳輸過程2 2)SPI)SPI初始化及數(shù)據(jù)傳送程序示例初始化及數(shù)據(jù)傳送程序示例 (2 2)設(shè)置)設(shè)置SPISPI為從機(jī)并進(jìn)行簡單的數(shù)據(jù)接收。為從機(jī)并進(jìn)行簡單的數(shù)據(jù)接收。 void spi_slaveset(void)void spi_slaveset(void) / /* * 設(shè)置設(shè)置MISO MISO 為輸出,其他為輸入為輸出,其他為輸入 * */ / DDRB = (1DDB6); DDRB = (1DDB6); / /* * 使能使能 SPI S

8、PI * */ / SPCR = (1SPE); SPCR = (1SPE); char spi_slavereceive(void) char spi_slavereceive(void) / /* * 等待接收結(jié)束等待接收結(jié)束 * */ / while(!(SPSR & (1SPIF);while(!(SPSR & (1SPIF); / /* * 返回?cái)?shù)據(jù)返回?cái)?shù)據(jù) * */ / return SPDR; return SPDR; 【任務(wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí)v 二、ATmega16單片機(jī)SPI接口控制與數(shù)據(jù)傳輸過程3 3)SSSS引腳的功能引腳的功能 從機(jī)方式 當(dāng)SPI 配置

9、為從機(jī)時,從機(jī)選擇引腳SSSS總是為輸入輸入。, MISOMISO成為輸出輸出( 用戶必須進(jìn)行相應(yīng)的端口配置) 引腳,其他引腳其他引腳成為輸入引腳?!救蝿?wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí)v 二、ATmega16單片機(jī)SPI接口控制與數(shù)據(jù)傳輸過程3 3)SSSS引腳的功能引腳的功能 主機(jī)方式 當(dāng)SPI被配置為主機(jī)時(寄存器SPCRSPCR的MSTRMSTR位置“1”),用戶可以決定SS引腳方向。如果SS引腳被設(shè)為輸出,該引腳將作為通用輸出口,不影響SPI系統(tǒng),通常用于驅(qū)動從機(jī)的SS引腳。【任務(wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí)v 三、三、ATmega16 SPI接口相關(guān)的寄存器簡單介紹接口相關(guān)的寄存器簡單介紹 1 1)S

10、PISPI控制寄存器控制寄存器SPCRSPCR Bit 7 SPIE: 使能SPI 中斷 置位后,只要SPSR 寄存器的SPIF 和SREG 寄存器的全局中斷使能位置位,就會引發(fā)SPI中斷。 Bit 6 SPE: 使能SPI SPE 置位將使能SPI。進(jìn)行任何SPI 操作之前必須置位SPE。 Bit 5 DORD: 數(shù)據(jù)次序 DORD 置位時數(shù)據(jù)的LSB 首先發(fā)送;否則數(shù)據(jù)的MSB 首先發(fā)送。 【任務(wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí)v 三、三、ATmega16 SPI接口相關(guān)的寄存器簡單介紹接口相關(guān)的寄存器簡單介紹 1 1)SPISPI控制寄存器控制寄存器SPCRSPCR Bit 4 MSTR: 主/ 從

11、選擇 MSTR置位時選擇主機(jī)模式,否則為從機(jī)。如果MSTR為1”,SS配置為輸入,但被拉低,則MSTR 被清零,寄存器SPSR 的SPIF 置位。用戶必須重新設(shè)置MSTR 進(jìn)入主機(jī)模式。 Bit 3 CPOL: 時鐘極性 CPOL 置位表示空閑時SCK 為高電平;否則空閑時SCK 為低電平。 Bit 2 CPHA: 時鐘相位 CPHA 決定數(shù)據(jù)是在SCK 的起始沿采樣還是在SCK 的結(jié)束沿采樣?!救蝿?wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí)v 三、三、ATmega16 SPI接口相關(guān)的寄存器簡單介紹接口相關(guān)的寄存器簡單介紹 1 1)SPISPI控制寄存器控制寄存器SPCRSPCR Bits 1, 0 SPR1,

12、SPR0: SPI 時鐘速率選擇1 與0 確定主機(jī)的SCK 速率。SPR1 和SPR0 對從機(jī)模式?jīng)]有影響。SCK和振蕩器頻率fOSC之間的關(guān)系下表所示。 SPI2X SPR1 SPR0 SCK頻率(MHz) 0 0 0 fOSC/4 0 0 1 fOSC/16 0 1 0 fOSC/64 0 1 1 fOSC/128 1 0 0 fOSC/2 1 0 1 fOSC/8 1 1 0 fOSC/32 1 1 1 fOSC/64 【任務(wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí)v 三、三、ATmega16 SPI接口相關(guān)的寄存器簡單介紹接口相關(guān)的寄存器簡單介紹 2 2)SPISPI的狀態(tài)寄存器的狀態(tài)寄存器SPSRSPS

13、R Bit 7 SPIF:Bit 7 SPIF: SPI SPI 中斷標(biāo)志中斷標(biāo)志 串行發(fā)送結(jié)束后,SPIF 置位。若此時寄存器SPCR 的SPIE 和全局中斷使能位置位,SPI中斷即產(chǎn)生。如果SPI 為主機(jī), SS 配置為輸入,且被拉低, SPIF 也將置位。進(jìn)入中斷服務(wù)程序后SPIF自動清零?;蛘呖梢酝ㄟ^先讀SPSR,緊接著訪問SPDR來對SPIF清零。 Bit 6 WCOL:Bit 6 WCOL: 寫碰撞標(biāo)志 在發(fā)送當(dāng)中對SPI 數(shù)據(jù)寄存器SPDR寫數(shù)據(jù)將置位WCOL。WCOL可以通過先讀SPSR,緊接著訪問SPDR 來清零。 【任務(wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí)v 三、三、ATmega16 SP

14、I接口相關(guān)的寄存器簡單介紹接口相關(guān)的寄存器簡單介紹 2 2)SPISPI的狀態(tài)寄存器的狀態(tài)寄存器SPSRSPSR Bit 5.1 Res: 保留 保留位,讀操作返回值為零。 Bit 0 SPI2X: SPI 倍速 置位后SPI 的速度加倍。若為主機(jī),則SCK 頻率可達(dá)CPU 頻率的一半。若為從機(jī),只能保證fosc /4。 【任務(wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí)v 三、三、ATmega16 SPI接口相關(guān)的寄存器簡單介紹接口相關(guān)的寄存器簡單介紹 3)SPI數(shù)據(jù)寄存器SPDR SPI SPI 數(shù)據(jù)寄存器數(shù)據(jù)寄存器為讀/寫寄存器,用來在寄存器文件和SPI移位寄存器之間傳輸數(shù)據(jù)。寫寄存器將啟動數(shù)據(jù)傳輸,讀寄存器將

15、讀取寄存器的接收緩沖器。 【任務(wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí)v 四、DA轉(zhuǎn)換芯片TLC5615的相關(guān)知識 1 1)TLC5615TLC5615的工作特性的工作特性 TLC5615TLC5615是帶有是帶有3 3線線串行接口且具有緩沖輸入的串行接口且具有緩沖輸入的1010位位DACDAC,輸出可達(dá),輸出可達(dá)2 2倍倍RefRef的變化范圍。其特點(diǎn)如下:的變化范圍。其特點(diǎn)如下:5V5V單電源工作。單電源工作。33線制串行接口。線制串行接口。高阻抗基準(zhǔn)輸入。高阻抗基準(zhǔn)輸入。電壓可達(dá)基準(zhǔn)電壓兩倍。電壓可達(dá)基準(zhǔn)電壓兩倍。內(nèi)部復(fù)位。內(nèi)部復(fù)位。 【任務(wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí)v 四、DA轉(zhuǎn)換芯片TLC5615的相關(guān)知識

16、 2 2)TLC5615TLC5615的引腳及功能說明的引腳及功能說明 TLC5615的引腳如圖所示,各引腳功能如下: DINDIN:串行數(shù)據(jù)輸入端。:串行數(shù)據(jù)輸入端。 SCLK:串行時鐘輸入端。 CSCS:片選信號。:片選信號。 DOUTDOUT:串行數(shù)據(jù)輸出端,用于級聯(lián)。:串行數(shù)據(jù)輸出端,用于級聯(lián)。 AGNDAGND:模擬地。:模擬地。 REFINREFIN:基準(zhǔn)電壓輸入。:基準(zhǔn)電壓輸入。 OUTOUT:DACDAC模擬電壓輸出端。模擬電壓輸出端。 VDDVDD:電源端。:電源端。 1)數(shù)據(jù)緩沖器)數(shù)據(jù)緩沖器UDR UDR數(shù)據(jù)緩沖器的格式圖如圖數(shù)據(jù)緩沖器的格式圖如圖1.7所示:所示: AT

17、mega16單片機(jī)USART 發(fā)送數(shù)據(jù)緩沖寄存器和USART 接收數(shù)據(jù)緩沖寄存器共享相同的共享相同的I/O 地址地址,稱為USART 數(shù)據(jù)寄存器或UDR。將數(shù)據(jù)寫入UDR 時實(shí)際操作的是發(fā)送數(shù)據(jù)緩沖器存器(TXB),讀UDR 時實(shí)際返回的是接收數(shù)據(jù)緩沖寄存器(RXB) 的內(nèi)容。只有當(dāng)UCSRA寄存器的UDRE標(biāo)志置位標(biāo)志置位后才可以對發(fā)送緩沖器進(jìn)行寫操作。如果UDRE沒有置位,那么寫入UDR 的數(shù)據(jù)會被USART 發(fā)送器忽略。當(dāng)數(shù)據(jù)寫入發(fā)送緩沖器后,若移位寄存器為空,發(fā)送器將把數(shù)據(jù)加載到發(fā)送移位寄存器。然后數(shù)據(jù)串行地從TxD 引腳輸出。【任務(wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí)2)控制狀態(tài)寄存器)控制狀態(tài)寄存

18、器UCSRA、UCSRB、UCSRC(1)控制狀態(tài)寄存器)控制狀態(tài)寄存器UCSRA格式圖如圖格式圖如圖1.8所示:所示: RXC: USART 接收結(jié)束 接收緩沖器中有未讀出的數(shù)據(jù)時RXC 置位,否則清零。接收器禁止時,接收緩沖器被刷新,導(dǎo)致RXC 清零。RXC 標(biāo)志可用來產(chǎn)生接收結(jié)束中斷( 見對RXCIE 位的描述)。 TXC: USART 發(fā)送結(jié)束 發(fā)送移位緩沖器中的數(shù)據(jù)被送出,且當(dāng)發(fā)送緩沖器 (UDR) 為空時TXC 置位。執(zhí)行發(fā)送結(jié)束中斷時TXC 標(biāo)志自動清零,也可以通過寫1 進(jìn)行清除操作。TXC 標(biāo)志可用來產(chǎn)生發(fā)送結(jié)束中斷( 見對TXCIE 位的描述)。RXCTXC【任務(wù)1】 項(xiàng)目知

19、識點(diǎn)學(xué)習(xí) FE: 幀錯誤如果接收緩沖器接收到的下一個字符有幀錯誤,即接即接收緩沖器中的下一個字符的第一個停止位為收緩沖器中的下一個字符的第一個停止位為0,那么,那么FE 置置位位。這一位一直有效直到接收緩沖器(UDR) 被讀取。當(dāng)接收到的停止位為1 時, FE 標(biāo)志為0。對UCSRA 進(jìn)行寫入時,這一位要寫0。DOR: 數(shù)據(jù)溢出數(shù)據(jù)溢出時DOR 置位。當(dāng)接收緩沖器滿當(dāng)接收緩沖器滿( 包含了兩個包含了兩個數(shù)據(jù)數(shù)據(jù)),接收移位寄存器又有數(shù)據(jù),若此時檢測到一個新,接收移位寄存器又有數(shù)據(jù),若此時檢測到一個新的起始位,數(shù)據(jù)溢出就產(chǎn)生了。的起始位,數(shù)據(jù)溢出就產(chǎn)生了。這一位一直有效直到接收緩沖器(UDR)

20、被讀取。對UCSRA 進(jìn)行寫入時,這一位要寫0。RXCTXCUDRE FEDOR【任務(wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí) PE: 奇偶校驗(yàn)錯誤當(dāng)奇偶校驗(yàn)使能(UPM1 = 1),且接收緩沖器中所接收且接收緩沖器中所接收到的下一個字符有奇偶校驗(yàn)錯誤時到的下一個字符有奇偶校驗(yàn)錯誤時UPE 置位置位。這一位一直有效直到接收緩沖器 (UDR) 被讀取。對UCSRA 進(jìn)行寫入時,這一位要寫0。U2X: 倍速發(fā)送這一位僅對異步操作有影響。使用同步操作時將此位清零。此位置1 可將波特率分頻因子從可將波特率分頻因子從16 降到降到8,從而有效的將異步通信模式的傳輸速率加倍異步通信模式的傳輸速率加倍。MPCM: 多處理器通信

21、模式設(shè)置此位將啟動多處理器通信模式。MPCM 置位后, USART 接收器接收到的那些不包含地址信息的輸入幀都將被忽略。發(fā)送器不受MPCM設(shè)置的影響。RXCTXCUDRE FEDORU2XMPCMPE【任務(wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí)(2)控制狀態(tài)寄存器)控制狀態(tài)寄存器UCSRB格式格式圖如圖圖如圖1.9所示所示:RXCIE: 接收結(jié)束中斷使能 *向量號:向量號:置位后使能RXC 中斷。當(dāng)RXCIE 為1,全局中斷標(biāo)志位SREG 置位, UCSRA 寄存器的RXC 亦為1 時可以產(chǎn)生USART 接收結(jié)束中斷。TXCIE: 發(fā)送結(jié)束中斷使能 *向量號:向量號:置位后使能TXC 中斷。當(dāng)TXCIE 為1,

22、全局中斷標(biāo)志位SREG 置位,UCSRA 寄存器的TXC 亦為1 時可以產(chǎn)生USART 發(fā)送結(jié)束中斷。RXCIE TXCIE【任務(wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí)UDRIE: USART 數(shù)據(jù)寄存器空中斷使能.置位后使能UDRE 中斷。當(dāng)UDRIE 為1,全局中斷標(biāo)志位SREG 置位,UCSRA 寄存器的UDRE 亦為1 時可以產(chǎn)生USART 數(shù)據(jù)寄存器空中斷。 *向量號:向量號: RXEN: 接收使能.置位后將啟動USART 接收器。RxD 引腳的通用端口功能被USART 功能所取代。禁止接收器將刷新接收緩沖器,并使 FE、DOR 及PE 標(biāo)志無效。 TXEN: 發(fā)送使能置.位后將啟動將啟動USART

23、發(fā)送器。TxD 引腳的通用端口功能被USART 功能所取代。TXEN 清零后,只有等到所有的數(shù)據(jù)發(fā)送完成后發(fā)送器才能夠真正禁止,即發(fā)送移位寄存器與發(fā)送緩沖寄存器中沒有要傳送的數(shù)據(jù)。發(fā)送器禁止后,TxD引腳恢復(fù)其通用I/O功能。RXCIE TXCIEUDRIERXEN TXEN【任務(wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí) UCSZ2: 字符長度UCSZ2與UCSRC寄存器的UCSZ1:0結(jié)合在一起可以設(shè)置數(shù)據(jù)幀所包含的數(shù)據(jù)位數(shù)(字符長度)。RXB8: 接收數(shù)據(jù)位 8對9 位串行幀進(jìn)行操作時,RXB8 是第9 個數(shù)據(jù)位。讀取UDR 包含的低位數(shù)據(jù)之前首先要讀取RXB8。TXB8: 發(fā)送數(shù)據(jù)位8對9 位串行幀進(jìn)行操作

24、時,TXB8 是第9 個數(shù)據(jù)位。寫UDR 之前首先要對它進(jìn)行寫操作。RXCIE TXCIEUDRIERXEN TXENUCSZ2RXB8TXB8【任務(wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí)(3)控制狀態(tài)寄存器)控制狀態(tài)寄存器UCSRC格式圖如圖格式圖如圖1.10所示:所示: 在ATmega16單片機(jī)中,UCSRC寄存器與UBRRH寄存器共用相同的I/O地址。對控制寄存器UCSRC的各位介紹如下:URSEL: 寄存器選擇通過該位選擇訪問UCSRC 寄存器或UBRRH 寄存器。當(dāng)讀UCSRC 時,該位為1 ;當(dāng)寫UCSRC 時, URSEL 為1。 UMSEL: USART 模式選擇 當(dāng)UMSEL位為0時,串行口工

25、作于異步操作模式;當(dāng)UMSEL位為1時,串行口工作于同步操作模式。URSELUMSEL【任務(wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí)v UPM1:0: 奇偶校驗(yàn)?zāi)J?這兩位設(shè)置奇偶校驗(yàn)的模式并使能奇偶校驗(yàn)。如果使能了奇偶校驗(yàn),那么在發(fā)送數(shù)據(jù),發(fā)送器都會自動產(chǎn)生并發(fā)送奇偶校驗(yàn)位。對每一個接收到的數(shù)據(jù),接收器都會產(chǎn)生一奇偶值,并與UPM0 所設(shè)置的值進(jìn)行比較。如果不匹配,那么就將UCSRA 中的PE 置位。ATmgega16單片機(jī)串行口工作時,UPM1:0的設(shè)置如表1.1所示:vv USBS: 停止位選擇通過這一位可以設(shè)置停止位的位數(shù)。接收器忽略這一位的設(shè)置。當(dāng)USBS位為0時,停止位位數(shù)為 1;當(dāng)USBS位為1時,

26、停止位位數(shù)為 2。UPM1UPM0USBSURSELUMSEL首先,各位進(jìn)行異或運(yùn)算,然后首先,各位進(jìn)行異或運(yùn)算,然后偶偶校驗(yàn):結(jié)果再與校驗(yàn):結(jié)果再與0異或運(yùn)算。異或運(yùn)算。奇奇校驗(yàn):結(jié)果再與校驗(yàn):結(jié)果再與1異或運(yùn)算。異或運(yùn)算?!救蝿?wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí)vUCSZ1:0: 字符長度.UCSZ1:0與UCSRB寄存器的 UCSZ2結(jié)合在一起可以設(shè)置數(shù)據(jù)幀包含的數(shù)據(jù)位數(shù)(字符長度)。其具體設(shè)置如表所示:v v v UCPOL: 時鐘極性.這一位僅用于同步工作模式。使用異步模式時,將這一位清零。UCPOL 設(shè)置了輸出數(shù)據(jù)的改變和輸入數(shù)據(jù)采樣,以及同步時鐘XCK 之間的關(guān)系。UPM1UPM0USBSUR

27、SELUMSELUCSZ1UCSZ0UCPOL【任務(wù)1】 項(xiàng)目知識點(diǎn)學(xué)習(xí)3)波特率設(shè)置寄存器)波特率設(shè)置寄存器波特率寄存器波特率寄存器UBRRL、UBRRH格式格式: URSEL: 寄存器選擇通過該位選擇訪問UCSRC 寄存器或UBRRH 寄存器。當(dāng)讀UBRRH 時,該位為0 ;當(dāng)寫UBRRH 時, URSEL 為0。v Bit 14:12 保留位 這些位是為以后的使用而保留的。為了與以后的器件兼容,寫UBRRH 時將這些位清零。v Bit 11:0 UBRR11:0: USART 波特率寄存器.這個12 位的寄存器包含了USART 的波特率信息。其中UBRRH 包含了USART 波特率高4 位,UBRRL 包含了低8 位。波特率的改變將造成正在進(jìn)行的數(shù)據(jù)傳輸受到破壞。寫UBRRL 將立即更新波特率分頻器。URSEL UBRR

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論