5.ATmega16串行通信及AVR其他資源.ppt_第1頁
5.ATmega16串行通信及AVR其他資源.ppt_第2頁
5.ATmega16串行通信及AVR其他資源.ppt_第3頁
5.ATmega16串行通信及AVR其他資源.ppt_第4頁
5.ATmega16串行通信及AVR其他資源.ppt_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余36頁可下載查看

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

1、第五章 AVR異步串行通信,五、異步串行通行通信UART,1、同步通信與異步通信,(1)同步通信,所謂同步通信,是指數(shù)據(jù)傳送是以數(shù)據(jù)塊(一組字符)為單位,字符與字符之間、字符內(nèi)部的位與位之間都同步。同步串行通信的特點(diǎn)可以概括為: 以數(shù)據(jù)塊為單位傳送信息。 在一個(gè)數(shù)據(jù)塊(信息幀)內(nèi),字符與字符間無間隔。 接收時(shí)鐘與發(fā)送進(jìn)鐘嚴(yán)格同步。 簡(jiǎn)言之:有同步時(shí)鐘。,五、異步串行通行通信UART,1、同步通信與異步通信,(2)異步通信,所謂異步通信,是指數(shù)據(jù)傳送以字符為單位,異步串行通信的特點(diǎn)可以概括為:以字符為單位傳送信息。相鄰兩字符間的間隔是任意長(zhǎng)。保證通信雙方所使用的波特率和數(shù)據(jù)幀格式一致 異步方式特

2、點(diǎn)簡(jiǎn)單的說就是:字符間異步,字符內(nèi)部各位同步。,五、異步串行通行通信UART,1、同步通信與異步通信,(2)異步通信,異步串行通信的數(shù)據(jù)格式如圖所示,每個(gè)字符(每幀信息)由4個(gè)部分組成: 1位起始位,規(guī)定為低電0;58位數(shù)據(jù)位,即要傳送的有效信息;1位奇偶校驗(yàn)位;12位停止位,規(guī)定為高電平1。,指單位時(shí)間傳輸二進(jìn)制數(shù)據(jù)的位數(shù),其單位為位/秒(Bps)或波特。它是一個(gè)用以衡量數(shù)據(jù)傳送速率的量。一般串行異步通行的傳送速度為5019200Bps,串行同步通信的傳送速度可達(dá)500KBps,(3)波特率,五、異步串行通行通信UART,2、ATmega16串行通信口結(jié)構(gòu)特點(diǎn), 全雙工操作( 獨(dú)立的串行接收

3、和發(fā)送寄存器) 異步或同步操作 高精度的波特率發(fā)生器 支持5, 6, 7, 8, 或9 個(gè)數(shù)據(jù)位和1 個(gè)或2 個(gè)停止位 硬件支持的奇偶校驗(yàn)操作 幀錯(cuò)誤檢測(cè) 三個(gè)獨(dú)立的中斷:發(fā)送結(jié)束中斷, 發(fā)送數(shù)據(jù)寄存器空中斷,以及接收結(jié)束中斷 多處理器通訊模式 倍速異步通訊模式,(1)特點(diǎn),五、異步串行通行通信UART,2、ATmega16串行通信口結(jié)構(gòu)特點(diǎn),波特率,BAUD波特率 ( bps); fOSC系統(tǒng)時(shí)鐘頻率; UBRR(波特率寄存器)UBRRH 與UBRRL的數(shù)值(0-4095);,五、異步串行通信UART,3、寄存器描述,(1)數(shù)據(jù)寄存器UDR(data register),發(fā)送與接收數(shù)據(jù)緩沖寄

4、存器共享相同的地址,將數(shù)據(jù)寫入U(xiǎn)DR 時(shí)實(shí)際操作的是發(fā)送數(shù)據(jù)緩沖器存器(TXB),讀UDR 時(shí)實(shí)際返回的是接收數(shù)據(jù)緩沖寄存器(RXB) 的內(nèi)容。 在5、6、7 比特字長(zhǎng)模式下,未使用的高位被發(fā)送器忽略,而接收器則將它們?cè)O(shè)置為0。,五、異步串行通行通信UART,(2)控制和狀態(tài)寄存器UCSRA, Bit 7 RXC: USART 接收結(jié)束 接收緩沖器(UDR)中有未讀出的數(shù)據(jù)時(shí)RXC 置位,否則清零。RXC 標(biāo)志可用來產(chǎn)生接收結(jié)束中斷( 見對(duì)RXCIE 位的描述)。 Bit 6 TXC: USART 發(fā)送結(jié)束 發(fā)送緩沖器 (UDR) 為空時(shí)TXC 置位。執(zhí)行發(fā)送結(jié)束中斷時(shí)TXC 標(biāo)志自動(dòng)清零,也

5、可以通過寫1 進(jìn)行清除操作。TXC 標(biāo)志可用來產(chǎn)生發(fā)送 結(jié)束中斷( 見對(duì)TXCIE 位的描述)。,五、異步串行通行通信UART,(2)控制和狀態(tài)寄存器UCSRA,Bit 5 UDRE(Empty): USART 數(shù)據(jù)寄存器空 UDRE為1說明數(shù)據(jù)寄存器為空,已準(zhǔn)備好進(jìn)行數(shù)據(jù)接收。只有數(shù)據(jù)寄存器為空時(shí)才能發(fā)送數(shù)據(jù)。UDRE標(biāo)志可用來產(chǎn)生數(shù)據(jù)寄存器空中斷(見對(duì)UDRIE位的描述)。 Bit 4 FE: 幀錯(cuò)誤,接收到停止位為0,F(xiàn)E置位。,只有當(dāng)UCSRA寄存器的UDRE標(biāo)志置位后才可以對(duì)發(fā)送緩沖器進(jìn)行寫操作。如果UDRE沒有置位,寫UDR 被忽略。,/*以下是發(fā)送數(shù)據(jù)函數(shù)*/ void uart

6、0_send(unsigned char i) while(!(UCSRA ,五、異步串行通行通信UART,(2)控制和狀態(tài)寄存器UCSRA,Bit 3 DOR: 數(shù)據(jù)溢出 數(shù)據(jù)溢出時(shí)DOR 置位。當(dāng)接收緩沖器滿( 包含了兩個(gè)數(shù)據(jù)),又有數(shù)據(jù)進(jìn)來時(shí)置位,且一直保持直到UDR 被讀取。對(duì)UCSRA 進(jìn)行寫入時(shí),這一位要寫0。 Bit 2 PE: 奇偶校驗(yàn)錯(cuò)誤 當(dāng)奇偶校驗(yàn)使能(UPM1 = 1),且接收緩沖器中所接收到的下一個(gè)字符有奇偶校驗(yàn)錯(cuò)誤時(shí)UPE 置位。這一位一直有效直到接收緩沖器 (UDR) 被讀取。對(duì)UCSRA 進(jìn)行寫入時(shí),這一位要寫0。,五、異步串行通行通信UART,(2)控制和狀態(tài)寄

7、存器UCSRA, Bit 1 U2X: 倍速發(fā)送 這一位僅對(duì)異步操作有影響。使用同步操作時(shí)將此位清零。 此位置1 可將波特率分頻因子從16 降到8,傳輸速率加倍。 Bit 0 MPCM: 多處理器通信模式 設(shè)置此位將啟動(dòng)多處理器通信模式。MPCM 置位后,USART 接收器接收到的那些不包含地址信息的輸入幀都將被忽略。發(fā)送器不受MPCM設(shè)置的影響。,五、異步串行通行通信UART,(3)控制和狀態(tài)寄存器UCSRB、C,五、異步串行通行通信UART,(3)控制和狀態(tài)寄存器UCSRB、C, Bit 7 RXCIE: 接收結(jié)束中斷使能 置位后使能RXC 中斷。當(dāng)RXCIE 為1,全局中斷標(biāo)志位SREG

8、 置位, UCSRA 寄存器的RXC 亦為1 時(shí)可以產(chǎn)生USART 接收結(jié)束中斷。 Bit 6 TXCIE: 發(fā)送結(jié)束中斷使能 置位后使能TXC 中斷。當(dāng)TXCIE 為1,全局中斷標(biāo)志位SREG 置位,UCSRA 寄存器的TXC 亦為1 時(shí)可以產(chǎn)生USART 發(fā)送結(jié)束中斷。 Bit 5 UDRIE: USART 數(shù)據(jù)寄存器空中斷使能 置位后使能UDRE 中斷。當(dāng)UDRIE 為1,全局中斷標(biāo)志位SREG 置位,UCSRA 寄存器的UDRE 亦為1 時(shí)可以產(chǎn)生USART 數(shù)據(jù)寄存器空中斷。,五、異步串行通行通信UART,(3)控制和狀態(tài)寄存器UCSRB、C,Bit 4 RXEN: 接收使能 置位后

9、將啟動(dòng)USART 接收器。RxD 引腳的通用端口功能被USART 功能所取代。禁止接收器將刷新接收緩沖器,并使 FE、DOR 及PE 標(biāo)志無效。 Bit 3 TXEN: 發(fā)送使能 置位后將啟動(dòng)將啟動(dòng)USART 發(fā)送器。TxD 引腳作為數(shù)據(jù)發(fā)送腳,不再用作通用口。發(fā)送器禁止后,TxD引腳恢復(fù)其通用I/O功能。,五、異步串行通行通信UART,(3)控制和狀態(tài)寄存器UCSRB、C, Bit 2 UCSZ2: 與UCSZ0、 UCSZ1一同使用。 Bit 1 RXB8: 接收數(shù)據(jù)位 8 對(duì)9 位串行幀進(jìn)行操作時(shí),RXB8 是第9 個(gè)數(shù)據(jù)位。讀取UDR 包含的低位數(shù)據(jù)之前首先要讀取RXB8。 Bit 0

10、 TXB8: 發(fā)送數(shù)據(jù)位8 對(duì)9 位串行幀進(jìn)行操作時(shí),TXB8 是第9 個(gè)數(shù)據(jù)位。寫UDR 之前首先要對(duì)它進(jìn)行寫操作。,五、異步串行通行通信UART,(3)控制和狀態(tài)寄存器UCSRB、C,UCSRC寄存器與波特率寄存器UBRRH寄存器共用相同的I/O地址。對(duì)該寄存器的訪問, “訪問UBRRH/ UCSRC 寄存器” 。 Bit 7 URSEL: 寄存器選擇 通過該位選擇訪問UCSRC 寄存器或UBRRH 寄存器。當(dāng)讀/寫UCSRC 時(shí),URSEL 為1。 Bit 6 UMSEL: USART 模式選擇 通過這一位來選擇同步或異步工作模式。,五、異步串行通行通信UART,(3)控制和狀態(tài)寄存器U

11、CSRB、C, Bit 5:4 UPM1:0: 奇偶校驗(yàn)?zāi)J?設(shè)置奇偶校驗(yàn)的模式并使能奇偶校驗(yàn)。如果使能了奇偶校驗(yàn),在發(fā)送數(shù)據(jù),時(shí)發(fā)送器會(huì)自動(dòng)產(chǎn)生并發(fā)送奇偶校驗(yàn)位。對(duì)每一個(gè)接收到的數(shù)據(jù),接收器都會(huì)產(chǎn)生一奇偶值,并與UPM0 所設(shè)置的值進(jìn)行比較。如果不匹配,那么就將UCSRA 中的PE 置位。,五、異步串行通行通信UART,(3)控制和狀態(tài)寄存器UCSRB、C, Bit 3 USBS: 停止位選擇 通過這一位可以設(shè)置停止位的位數(shù)。接收器忽略這一位的設(shè)置。,五、異步串行通行通信UART,(3)控制和狀態(tài)寄存器UCSRB、C, Bit 2:1 UCSZ1:0: 字符長(zhǎng)度 UCSZ1:0與UCSRB寄

12、存器的 UCSZ2結(jié)合在一起可以設(shè)置數(shù)據(jù)幀包含的數(shù)據(jù)位數(shù)(字符長(zhǎng)度)。 注: UCSZ2位于UCSRB中。,常用,五、異步串行通行通信UART,(3)控制和狀態(tài)寄存器UCSRB、C, Bit 0 UCPOL: 時(shí)鐘極性 這一位僅用于同步工作模式。使用異步模式時(shí),將這一位清零。UCPOL 設(shè)置了輸出數(shù)據(jù)的改變和輸入數(shù)據(jù)采樣,以及同步時(shí)鐘XCK 之間的關(guān)系。,五、異步串行通行通信UART,(4)波特率寄存器UBRRL,UBRRH,UCSRC寄存器與UBRRH寄存器共用相同的I/O地址. UBRRL=(fosc/16/baud-1)%256 UBRRH=(fosc/16/baud-1)/256,實(shí)例

13、解析1PC控制單片機(jī)工作 #include #include #define fosc 8000000 /晶振8MHZ #define baud 9600 /波特率定義 /*以下是端口初始化函數(shù)*/ void port_init(void) PORTA = 0 xFF; /PA口輸出高電平 DDRA = 0 xFF;/PA口 設(shè)置為輸出 PORTD = 0XFF; /USART的發(fā)送接收端口分別為PD0和PD1 DDRD|=(1PD1); /PD0為接收端口置為輸入;PD1為發(fā)送端口置為輸出 ,/*以下是串口初始化函數(shù)*/ void uart0_init(void) UCSRB = 0 x00

14、; UCSRA = 0 x00; UCSRC |= (1URSEL)|(1 UCSZ1)|(1 UCSZ0); /異步,數(shù)據(jù)格式8,無校驗(yàn),1個(gè)停止位 /UCSRC寄存器與UBRRH寄存器共用相同的I/O地址,寫 UCSRC時(shí),URSEL應(yīng)設(shè)置為1。 UBRRL=(fosc/16/baud-1)%256;/設(shè)置波特率寄存器 UBRRH=(fosc/16/baud-1)/256; UCSRB |= (1 TXEN)|(1 RXEN); /允許發(fā)送,允許接收 ,查詢方式 /*以下是發(fā)送數(shù)據(jù)函數(shù)*/ void uart0_send(unsigned char i) while(!(UCSRA ,/*

15、以下是主函數(shù)*/ void main(void) unsigned char temp; port_init(); uart0_init(); while(1) temp=uart0_receive(); /接收數(shù)據(jù) PORTA=temp; /將接收的數(shù)據(jù)取反后送PA口顯示 uart0_send(temp); /向PC機(jī)發(fā)送數(shù)據(jù) ,看門狗定時(shí)器,專門監(jiān)控單片機(jī)程序運(yùn)行狀態(tài)的電路(WDT),當(dāng)打開看門狗時(shí),定時(shí)器開始工作,定時(shí)時(shí)間一到,觸發(fā)單片機(jī)復(fù)位 看門狗定時(shí)器由獨(dú)立的1 MHz 片內(nèi)振蕩器驅(qū)動(dòng)。通過設(shè)置看門狗定時(shí)器的預(yù)分頻器可以調(diào)節(jié)看門狗復(fù)位的時(shí)間間隔。,Bits 7.5 Res: 保留位

16、Bit 4 WDTOE: 看門狗修改使能 Bit 3 WDE: 使能看門狗 Bits 2.0 WDP2, WDP1, WDP0: 看門狗定時(shí)器預(yù)分頻器2, 1 和 0,實(shí)例解析1單片機(jī)看門狗演示 #include #include #define uint unsigned int #define uchar unsigned char /*延時(shí)函數(shù)*/ void Delay_ms(uint xms) int i,j; for(i=0;ixms;i+) for(j=0;j1140;j+) ; /*端口初始化函數(shù)*/ void port_init (void) DDRA=0 xFF; PORTA

17、=0 xFF; ,/*看門狗啟動(dòng)函數(shù)*/ void watch_init(void) WDTCR|=(1WDTOE)|(1WDE);/啟動(dòng)看門狗 WDTCR=(0WDE);/再次啟動(dòng)看門狗時(shí),要先禁止看門狗,否則,看門狗無法啟動(dòng) WDTCR|=(1WDTOE)|(1WDE)|(1WDP2)|(1WDP1);/啟動(dòng)看門狗,設(shè)置看門狗定時(shí)時(shí)間為1s ,/*主函數(shù)*/ void main (void) uchar temp; uchar i; port_init(); while(1) watch_init();/第一次喂狗,并將看門狗定時(shí)時(shí)間設(shè)置為1s PORTA=0 xfe; /PA0腳燈亮 D

18、elay_ms (200); / 將實(shí)際參數(shù)500傳遞給形式參數(shù)xms,延時(shí)0.5s PORTA=0 xfd; /PA1腳燈亮 Delay_ms (200); PORTA=0 xfb; /PA2腳燈亮 Delay_ms (200); PORTA=0 xf7; /PA3腳燈亮 Delay_ms (200); watch_init(); /第二次喂狗,并將看門狗定時(shí)時(shí)間設(shè)置為1s PORTA=0 xef; /PA4腳燈亮 Delay_ms (200); PORTA=0 xdf; /PA5腳燈亮 Delay_ms (200); PORTA=0 xbf; /PA6腳燈亮 Delay_ms (200);

19、 PORTA=0 x7f; /PA7腳燈亮 Delay_ms (200); ,2020/9/22,機(jī)械工業(yè)出版社,Page 33,9.1 模擬比較器簡(jiǎn)介 在ATmega16中,模擬比較器對(duì)正極AIN0 (PB2)的值與負(fù)極AIN1 (PB3)的值進(jìn)行比較,當(dāng)AIN0 上的電壓比負(fù)極AIN1上的電壓要高時(shí),模擬比較器的輸出ACO置位。比較器的輸出可用來觸發(fā)定時(shí)器/ 計(jì)數(shù)器1 的輸入捕捉功能。此外,比較器還可觸發(fā)自己專有的、獨(dú)立的中斷。用戶可以選擇比較器是以上升沿、下降沿還是交替變化的邊沿來觸發(fā)中斷。比較器的方框圖和周圍電路如圖9-1所示。,模擬比較器的結(jié)構(gòu),模擬比較器的內(nèi)部結(jié)構(gòu)如圖9-1所示,模

20、擬比較器實(shí)際上就是一個(gè)帶輸出單元的運(yùn)算放大器,外部引腳通過接到運(yùn)算放大器的兩個(gè)輸入端實(shí)現(xiàn)模擬比較功能(PB2接同相端,PB3接反相端)。,2020/9/22,機(jī)械工業(yè)出版社,Page 35,9.1.1 與模擬比較器相關(guān)的寄存器和標(biāo)志位 用戶可通過對(duì)SFIOR、ACSR這兩個(gè)寄存器相關(guān)位的的設(shè)置來實(shí)現(xiàn)對(duì)模擬比較器控制。 1.特殊功能IO寄存器SFIOR,2模擬比較器控制和狀態(tài)寄存器ACSR,2020/9/22,機(jī)械工業(yè)出版社,Page 36,3. ACSR是模擬比較器主要的控制寄存器,其中各個(gè)位的作用如下: 位7ACD:模擬比較器禁止 位6ACBG:模擬比較器的能隙參考源選擇 位5ACO:模擬比較器輸出 位4ACI:模擬比較器中斷標(biāo)志位 位3ACIE:模擬比較器中斷允許 位1、0ACIS1、ACIS0:模擬比較器中斷模式選擇 位2ACIC:模擬比較器輸入捕獲允許,2020/9/22,機(jī)械工業(yè)出版社,Page 37,這2個(gè)位決定哪種模擬比較器的輸出事件可以觸發(fā)模擬比較器的中斷。不同的設(shè)置參見表9-1。,表9-1 模擬比較器中斷模式選擇,實(shí)例解析2模擬比較器查詢法實(shí)驗(yàn),#include #define uint unsigned int #define uchar unsigned char /*端口初始化函數(shù)*/ voi

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論