Proteus實(shí)例教程課件-第6章_第1頁(yè)
Proteus實(shí)例教程課件-第6章_第2頁(yè)
Proteus實(shí)例教程課件-第6章_第3頁(yè)
Proteus實(shí)例教程課件-第6章_第4頁(yè)
Proteus實(shí)例教程課件-第6章_第5頁(yè)
已閱讀5頁(yè),還剩75頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 Proteus實(shí)例教程實(shí)例教程清華大學(xué)出版社清華大學(xué)出版社第第6章章基于基于ARM和和AVR單片機(jī)單片機(jī)的控制系統(tǒng)設(shè)計(jì)實(shí)例的控制系統(tǒng)設(shè)計(jì)實(shí)例6.1 LPC 2124微處理器入門(mén)知識(shí)微處理器入門(mén)知識(shí)6.2 基于基于LPC 2124的流水燈設(shè)計(jì)的流水燈設(shè)計(jì) 6.3 LPC 2124的串口通信的串口通信 6.4 基于基于LPC 2124的的A/D設(shè)計(jì)設(shè)計(jì) 6.5 基于基于AVR單片機(jī)的數(shù)碼管靜態(tài)顯示單片機(jī)的數(shù)碼管靜態(tài)顯示 6.6 AVR單片機(jī)的單片機(jī)的SPI接口擴(kuò)展并行輸出接口擴(kuò)展并行輸出 6.7 基于基于AVR單片機(jī)的數(shù)字電壓表單片機(jī)的數(shù)字電壓表 6.8 基于基于AVR的頻率計(jì)設(shè)計(jì)的頻率計(jì)設(shè)計(jì)

2、ARM處理器是Acorn計(jì)算機(jī)有限公司面向低預(yù)算市場(chǎng)設(shè)計(jì)的一款RISC微處理器,更早被稱(chēng)作Acorn RISC Machine。ARM處理器本身是32位設(shè)計(jì),但也配備16位指令集。一般來(lái)講比等價(jià)32位代碼節(jié)省達(dá)35%,卻能保留32位系統(tǒng)的所有優(yōu)勢(shì)。微軟公司2011年宣布,下一版Windows將正式支持ARM處理器。這是計(jì)算機(jī)工業(yè)ARM處理器發(fā)展歷史上的一件大事,標(biāo)志著x86處理器的主導(dǎo)地位發(fā)生動(dòng)搖。ARM成為主流,將指日可待,作為當(dāng)代電子研發(fā)工程師,掌握ARM的使用是必然趨勢(shì)。AVR單片機(jī)是由Atmel公司挪威設(shè)計(jì)中心利用Atmel公司的Flash新技術(shù),共同研發(fā)出具有RISC精簡(jiǎn)指令集的高速

3、單片機(jī),簡(jiǎn)稱(chēng)AVR。相對(duì)于出現(xiàn)較早也較為成熟的51系列單片機(jī),AVR系列單片機(jī)片內(nèi)資源更為豐富,接口也更為強(qiáng)大,同時(shí)由于其價(jià)格低等優(yōu)勢(shì),在很多場(chǎng)合可以替代51系列單片機(jī)。6.1 LPC 2124微處理器入門(mén)知識(shí)微處理器入門(mén)知識(shí)6.1.1 LPC 2124的特點(diǎn)的特點(diǎn)lLPC 2114/2124是一個(gè)基于32位ARM7 TDMI-S的CPU,它具有實(shí)時(shí)仿真和嵌入式跟蹤支持功能,配置128/256 KB的嵌入高速Flash存儲(chǔ)器,128位寬度的存儲(chǔ)器接口和獨(dú)特的加速結(jié)構(gòu),使32位代碼能夠工作在最大時(shí)鐘頻率上。對(duì)代碼規(guī)模有嚴(yán)格要求的應(yīng)用程序,可使用16位Thumb模式在最小的性能損失情況下將代碼規(guī)模

4、降低30%以上。6.1 LPC 2124微處理器入門(mén)知識(shí)lLPC 2124擁有緊湊的64引腳封裝,低功耗,多個(gè)32位定時(shí)器,4路10位ADC,6路PWM通道和46個(gè)快速GPIO線,多達(dá)9個(gè)外部中斷引腳,這些特點(diǎn)使其特別適用于工業(yè)控制、醫(yī)療系統(tǒng)、銷(xiāo)售點(diǎn)的訪問(wèn)和控制。由于內(nèi)置了寬范圍的串行通信接口,它們也非常適合通信網(wǎng)關(guān)、協(xié)議轉(zhuǎn)換器、嵌入式軟件調(diào)制解調(diào)器,以及許多其他一般用途的應(yīng)用。lLPC 2124與原來(lái)的設(shè)備相比擁有快速GPIO端口,不管要讀的端口引腳是什么狀態(tài),在任何時(shí)候,均可支持端口引腳切換到3.5倍的速度。 lUART 0/1包括波特率發(fā)生器、自適應(yīng)波特率能力和握手同步可完全在硬件中實(shí)現(xiàn)

5、流量控制。緩沖SSP串行控制器,支持4線SSI、SPI和Microwire格式。6.1 LPC 2124微處理器入門(mén)知識(shí)l32位ARM7 TDMI-S微控制器,超小LQFP64封裝。l16 KB片內(nèi)靜態(tài)RAM,128/256 KB片上閃存程序存儲(chǔ)器。l128位寬度接口/加速器,可實(shí)現(xiàn)高達(dá)60 MHz工作頻率。lFlash編程時(shí)間為1ms,每行512 B,單扇區(qū)或整片擦除時(shí)間為400 ms。lEmbedded ICE-RT接口支持?jǐn)帱c(diǎn)和觀察點(diǎn)。片內(nèi)Real Monitor軟件對(duì)前臺(tái)任務(wù)進(jìn)行調(diào)試時(shí),中斷服務(wù)程序可以繼續(xù)執(zhí)行。l嵌入式跟蹤宏單元(ETM)支持非侵入式的高速實(shí)時(shí)跟蹤指令的執(zhí)行。l四通道

6、10位ADC,轉(zhuǎn)換時(shí)間低至2.44s。6.1 LPC 2124微處理器入門(mén)知識(shí)l2個(gè)32位定時(shí)器(帶4路捕獲和4路比較通道),PWM單元(6路輸出),實(shí)時(shí)時(shí)鐘(RTC)和看門(mén)狗。l多個(gè)串行接口,包括2個(gè)UART(16C550),高速I(mǎi)2C線(400KB/s)和2個(gè)SPI接口。最大為60MHz的CPU時(shí)鐘,可編程片上鎖相環(huán),循環(huán)與沉淀時(shí)間為100s;向量中斷控制器,可配置優(yōu)先級(jí)和向量地址。l5V寬容的通用I/O引腳,多達(dá)9個(gè)邊沿或電平觸發(fā)的外部中斷引腳。l片上的晶振為1MHz30MHz晶體振蕩器。l兩種低功耗模式:空閑模式和掉電模式。通過(guò)外部中斷,將處理器從掉電模式喚醒,單獨(dú)使能/禁止外設(shè)功能來(lái)

7、優(yōu)化功耗。6.1.2 LPC 2124的功能配置的功能配置LPC 2124的引腳如圖6-1所示,為了節(jié)省空間和提高效率,很多引腳擁有一個(gè)以上的功能,而為了使用某引腳的某一項(xiàng)功能,則可通過(guò)軟件設(shè)置寄存器的方法來(lái)實(shí)現(xiàn)。 XTAL162XTAL261P0.0/TxD0/PWM119P0.1/RxD0/PWM321P0.2/SCL/CAP0.022P0.3/SDA/MAT0.0/EINT126P0.4/SCK0/CAP0.127P0.5/MISO0/MAT0.129P0.6/MOSI0/CAP0.230P0.7/SSEL0/PWM2/EINT231P0.8/TxD1/PWM433P0.9/RxD1/P

8、WM6/EINT334P0.10/RTS1/CAP1.035P0.11/CTS1/CAP1.137P0.12/DSR1/MAT1.038P0.13/DTR1/MAT1.139P0.14/DCD1/EINT141P0.15/RI1/EINT245P0.16/EINT0/MAT0.2/CAP0.246P0.17/CAP1.2/SCK1/MAT1.247P0.18/CAP1.3/MISO153P0.19/MAT1.2/MOSI154P0.20/MAT1.3/SSEL1/EINT355P0.21/PWM5/CAP1.31P0.22/CAP0.0/MAT0.02P0.233P0.245P0.259P0.

9、27/AIN0/CAP0.1/MAT0.111P0.28/AIN1/CAP0.2/MAT0.213P0.29/AIN2/CAP0.3/MAT0.314P0.30/AIN3/EINT3/CAP0.015V323RST57V3A7V1817V18A63VSS6VSSA59VSSA_PLL58P1.16/TRACEPKT016P1.17/TRACEPKT112P1.18/TRACEPKT28P1.19/TRACEPKT34P1.20/TRACESYNC48P1.21/PIPESTAT044P1.22/PIPESTAT140P1.23/PIPESTAT236P1.24/TRACECLK32P1.25/

10、EXTIN028P1.26/RTCK24P1.27/TDO64P1.28/TDI60P1.29/TCK56P1.30/TMS52P1.31/TRST20V343V351VSS18VSS25VSS42VSS50V1849U1LPC21246.1 LPC 2124微處理器入門(mén)知識(shí)圖6-1 LPC2124的引腳圖1. LPC 2124 GPIO配置 LPC 2124具有多達(dá)48個(gè)通用I/O口(GPIO),當(dāng)管腳選擇GPIO功能時(shí),有3個(gè)寄存器(IOSET、IOCLR和IOPIN)用于控制 GPIO的使用。IOSET用于將GPIO口置1,而IOCLR則用于將GPIO口清0,IOPIN則反映當(dāng)前I/O口

11、的狀態(tài),讀回IOSET則反映當(dāng)前I/O口的設(shè)定狀態(tài)。 特性:l單個(gè)位的方向控制; l單獨(dú)控制輸出的置位和清零; l所有I/O口在復(fù)位后默認(rèn)為輸入。6.1 LPC 2124微處理器入門(mén)知識(shí)6.1 LPC 2124微處理器入門(mén)知識(shí)圖6-2 LPC2124的物理連接示意圖 物理連接:l GPIO驅(qū)動(dòng)LED,如圖6-2(a)所示,R為限流電阻;l GPIO用于按鍵輸入,如圖6-2(b)所示,R為上拉電阻。 (a) GPIO驅(qū)動(dòng)LED (b) GPIO用于按鍵輸入 如果把P0口設(shè)置為輸出,則可以使用如下語(yǔ)句:IO0DIR = 0 xFF; 寄存器IO0DIR用來(lái)定義P0口的方向是輸出還是輸入,如:IO0

12、DIR = 0 xFF(1111 1111)指定P0.0P0.7為輸出,IO0DIR =0 x0F(0000 1111)指定P0.0P0.3為輸出,而P0.4P0.7為輸入。然后設(shè)置GPIO狀態(tài):IO0CLR = 0 xFF;IO0SET = 0 xFF;IO0CLR寄存器負(fù)責(zé)將P0口置零,IO0CLR = 0 xFF (11111111),設(shè)定P0.0到P0.7全部是低電平;IO0SET寄存器負(fù)責(zé)將P0口置1,IO0SET = 0 xFF,設(shè)定P0口為全部高電平。 6.1 LPC 2124微處理器入門(mén)知識(shí)2. LPC 2124 串口配置 LPC 2124具有兩個(gè)符合工業(yè)標(biāo)準(zhǔn)的異步串行口UAR

13、T0和UART1。兩者除了外設(shè)及地址以外,其他都相同,因而在這里統(tǒng)一進(jìn)行描述。它們具有以下特性:l單個(gè)位的方向控制16字節(jié)收發(fā)FIFO ; l接收器FIFO觸發(fā)點(diǎn)可為1、4、8和14字節(jié); l內(nèi)置波特率發(fā)生器。6.1 LPC 2124微處理器入門(mén)知識(shí)6.1 LPC 2124微處理器入門(mén)知識(shí)當(dāng)進(jìn)行如下設(shè)置時(shí),對(duì)P0.0、P0.1選擇UART0功能: lPINSEL0 = 0 x00000005; / 可能影響其它管腳連接 lPINSEL0 = (PINSEL0 & (0 x0F) | 0 x05; / 不影響其它管腳連接 管 腳 名 稱(chēng)UART管腳功 能 描 述說(shuō) 明P0.0TxD0串行

14、輸出串行發(fā)送數(shù)據(jù)P0.1RxD0串行輸入串行接收數(shù)據(jù)P0.8TxD1串行輸出串行發(fā)送數(shù)據(jù)P0.9RxD1串行輸入串行接收數(shù)據(jù)表6-1 UART管腳描述6.1 LPC 2124微處理器入門(mén)知識(shí)當(dāng)進(jìn)行如下設(shè)置時(shí),對(duì)P0.8、P0.9選擇UART0功能: lPINSEL0 = 0 x05 16; / 可能影響其它管腳連接 lPINSEL0 = ( PINSEL0 & (0 x0F 16) ) | (0 x05 16); / 不影響其他管腳連接管 腳 名 稱(chēng)UART管腳功 能 描 述說(shuō) 明P0.0TxD0串行輸出串行發(fā)送數(shù)據(jù)P0.1RxD0串行輸入串行接收數(shù)據(jù)P0.8TxD1串行輸出串行發(fā)送數(shù)

15、據(jù)P0.9RxD1串行輸入串行接收數(shù)據(jù)表6-1 UART管腳描述6.1 LPC 2124微處理器入門(mén)知識(shí)基本操作:LPC 2124的兩個(gè)串口具有完全相同的寄存器,只是物理地址不一樣,其中,寄存器UxRBR與UxTHR是同一地址,但物理上是分開(kāi)的,讀操作時(shí)為UxRBR,而寫(xiě)操作時(shí)為UxTHR;寄存器UxDLL與UxRBR/UxTHR、UxDLM與UxTER具有相同的地址。如果要訪問(wèn)UxDLM、UxDLL,除數(shù)據(jù)訪問(wèn)位DLAB必須為1;若要訪問(wèn)UxRBR/UxTHR、UxTER,則除數(shù)據(jù)訪問(wèn)位DLAB必須為0。UxDLM和UxDLL寄存器是波特率發(fā)生器的除數(shù)據(jù)鎖存寄存器,用于設(shè)置合適的串口波特率;

16、 6.1 LPC 2124微處理器入門(mén)知識(shí)UxRBR為數(shù)據(jù)接收緩沖,用于讀取接收到的數(shù)據(jù)。若FIFO使能,串口接收到的數(shù)據(jù)會(huì)壓入FIFO緩沖;UxTHR為發(fā)送保存,向此寄存器寫(xiě)入數(shù)據(jù)時(shí),將會(huì)引起串口數(shù)據(jù)發(fā)送,若FIFO使能,數(shù)據(jù)將會(huì)壓入FIFO緩沖。通過(guò)線控制寄存器LCR設(shè)置串口的工作模式,而FCR則用于FIFO的使能或者復(fù)位操作;當(dāng)接收或者發(fā)送數(shù)據(jù)的時(shí)候,會(huì)產(chǎn)生相應(yīng)的狀態(tài)標(biāo)志位(LSR);通過(guò)對(duì)IER進(jìn)行設(shè)置,可實(shí)現(xiàn)串口的發(fā)送、接收、出錯(cuò)中斷等。6.1 LPC 2124微處理器入門(mén)知識(shí) 注意:注意: IER中的位0為接收中斷使能,位1為發(fā)送中斷使能,位2為線狀態(tài)中斷使能(通訊出錯(cuò)中斷使能)。

17、若不使能相應(yīng)的中斷,對(duì)應(yīng)的中斷不會(huì)產(chǎn)生,此時(shí)可以通過(guò)LSR讀取串口的狀態(tài),判斷串口操作是否完成或是否成功。 UART的基本操作方法如下: l 設(shè)置I/O連接到UARTx; l 設(shè)置串口波特率(UxDLM、UxDLL); l 設(shè)置串口工作模式(UxLCR、UxFCR); l 發(fā)送或接收數(shù)據(jù)(UxTHR、UxRBR); l 檢查串口狀態(tài)字(UxLSR)或者等待串口中斷(UxIIR)。6.1 LPC 2124微處理器入門(mén)知識(shí)使用示例:(1) 串口初始化。 #define UART_BPS 115200 / 串口通信波特率 U0LCR = 0 x83; / DLAB=1,允許設(shè)置波特率 Fdiv =

18、(Fpclk / 16) / UART_BPS; /設(shè)置波特率 U0DLM = Fdiv / 256; U0DLL = Fdiv % 256; U0LCR = 0 x03; / DLAB=0,禁止訪問(wèn)除數(shù)鎖存器 6.1 LPC 2124微處理器入門(mén)知識(shí)(2) 向串口發(fā)送數(shù)據(jù)。 U0THR = data; / data為要發(fā)送的數(shù)據(jù) while (U0LSR & 0 x40) = 0); / 等待數(shù)據(jù)發(fā)送完畢 (3) 從串口接收數(shù)據(jù)(查詢方式)。while (U0LSR & 0 x01) = 0); / 等待有效數(shù)據(jù) rcv_dat = U0RBR; / 讀取數(shù)據(jù)6.1 LPC

19、2124微處理器入門(mén)知識(shí)圖6-3 UART與其它控制器進(jìn)行數(shù)據(jù)交換的物理連接示意圖物理連接:l 使用UART與其它控制器進(jìn)行數(shù)據(jù)交換時(shí),其連接如圖6-3(a)所示;l 使用UART與PC機(jī)通訊,由于PC機(jī)串口是RS232電平,所以連接時(shí)需要使用RS232轉(zhuǎn)換器,如圖6-3(b)所示。 (a) GPIO驅(qū)動(dòng)LED (b) GPIO用于按鍵輸入 6.1.3 LPC 2124 A/D轉(zhuǎn)換配置轉(zhuǎn)換配置A/D轉(zhuǎn)換器(ADC,A/D Converters)的基本時(shí)鐘由VPB時(shí)鐘提供。每個(gè)轉(zhuǎn)換器包含一個(gè)可編程分頻器,可將時(shí)鐘調(diào)整至逐步逼近轉(zhuǎn)換所需的4.5MHz(最大)。完全滿足精度要求的轉(zhuǎn)換需要11個(gè)轉(zhuǎn)換時(shí)

20、鐘。LPC2124 具有1個(gè)10位8路A/D轉(zhuǎn)換器。啟動(dòng)A/D轉(zhuǎn)換的方式非常靈活,既可以單路軟件啟動(dòng),也可以設(shè)置為 Burst模式對(duì)某幾路信號(hào)逐個(gè)循環(huán)采樣。與其它LPC2000 系列微控制器相比,LPC2124增加了獨(dú)立的基準(zhǔn)電壓源引腳,這對(duì)提高轉(zhuǎn)換精度很有利。 6.1 LPC 2124微處理器入門(mén)知識(shí)LPC2124 具有1個(gè)10位8路A/D轉(zhuǎn)換器。 A/D轉(zhuǎn)換器具有以下特性:l 1個(gè)10位逐次逼近式模數(shù)轉(zhuǎn)換器; l 8個(gè)管腳復(fù)用為輸入腳; l 掉電模式; l 測(cè)量范圍:03V; l 10位轉(zhuǎn)換時(shí)間2.44s; l 一個(gè)或多個(gè)輸入的Burst轉(zhuǎn)換模式; l 可選擇由輸入跳變或定時(shí)器匹配信號(hào)觸發(fā)

21、轉(zhuǎn)換。6.1 LPC 2124微處理器入門(mén)知識(shí)ADC管腳描述如表6-2所示。6.1 LPC 2124微處理器入門(mén)知識(shí)表6-2 ADC 管腳描述管 腳 名 稱(chēng)類(lèi) 型管 腳 描 述Ain7:0AD0.0-P0.27AD0.1-P0.28AD0.2-P0.29AD0.3-P0.30AD0.4-P0.25AD0.5-P0.26AD0.6-P0.4AD0.7-P0.5輸入 模擬輸入,A/D轉(zhuǎn)換器單元測(cè)量輸入信號(hào)的電壓。注意,這些模擬輸入通常連接到管腳上,即使管腳復(fù)用寄存器將它們?cè)O(shè)定為端口管腳。通過(guò)將這些管腳驅(qū)動(dòng)成端口輸出來(lái)實(shí)現(xiàn)A/D轉(zhuǎn)換器的簡(jiǎn)單自測(cè)。 注:當(dāng)使用A/D轉(zhuǎn)換器時(shí),模擬輸入管腳的信號(hào)電平在任

22、何時(shí)候都不能大于V3A,否則,讀出的A/D值無(wú)效。如果在應(yīng)用中未使用A/D轉(zhuǎn)換器,則A/D輸入管腳用作可承受5V電壓的數(shù)字I/O口Vref參考電壓 參考電壓。該管腳連接到A/D轉(zhuǎn)換器的Vref信號(hào)V3A,VSSA電源 模擬電源和地。它們分別與標(biāo)稱(chēng)為V3和VSSD的電壓相同,但為了降低噪聲和出錯(cuò)幾率,兩者應(yīng)當(dāng)隔離管腳連接設(shè)置: 若需要使用A/D轉(zhuǎn)換功能,需要進(jìn)行正確的管腳連接設(shè)置。例如,當(dāng)進(jìn)行如下設(shè)置時(shí),對(duì)P0.30選擇AD0.3功能: l PINSEL1 = 0 x01 28; / 可能影響其它管腳功能 l PINSEL1 = (PINSEL1 & (0 x03 28) | (0 x0

23、1 28); / 不會(huì)影響其它管腳功能6.1 LPC 2124微處理器入門(mén)知識(shí)基本操作: (1) 硬件觸發(fā)轉(zhuǎn)換。 如果ADCR的Burst位為0且START字段的值包含在010111之內(nèi),當(dāng)所選管腳(P0.16或 P0.22)或定時(shí)器匹配信號(hào)(MAT0.1、MAT0.3、MAT1.0 或者 MAT1.1)發(fā)生跳變時(shí),A/D轉(zhuǎn)換器啟動(dòng)一次轉(zhuǎn)換。也可選擇在4個(gè)匹配信號(hào)中任何一個(gè)的指定邊沿轉(zhuǎn)換,或者在兩個(gè)捕獲/匹配管腳中任何一個(gè)的指定邊沿轉(zhuǎn)換。將所選端口的管腳狀態(tài)或所選的匹配信號(hào)與ADCR位27相異或所得的結(jié)果用作邊沿檢測(cè)邏輯。 6.1 LPC 2124微處理器入門(mén)知識(shí)(2) 時(shí)鐘產(chǎn)生。 時(shí)鐘分頻器

24、(通過(guò)它可以得到4.5MHz的轉(zhuǎn)換時(shí)鐘)在A/D轉(zhuǎn)換器空閑時(shí)保持復(fù)位狀態(tài),在ADCR的START字段被寫(xiě)入01(立即啟動(dòng)轉(zhuǎn)換)或所選邊沿出現(xiàn)在選擇的信號(hào)上時(shí)可立刻啟動(dòng)采樣時(shí)鐘。這個(gè)特性可以節(jié)省功率,尤其適用于A/D轉(zhuǎn)換器很少使用的場(chǎng)合。(3) 中斷。 當(dāng) DONE 位為1時(shí),AD轉(zhuǎn)換模塊向向量中斷控制器(VIC)發(fā)出中斷請(qǐng)求,如果VIC中VICIntEnable的Bit8(A/D轉(zhuǎn)換中斷使能位)使能,則會(huì)產(chǎn)生中斷。讀取ADDR將清零DONE位。6.1 LPC 2124微處理器入門(mén)知識(shí)6.1.4 LPC 2124 的軟件編寫(xiě)的軟件編寫(xiě)選擇使用Keil C軟件對(duì)LPC 2124進(jìn)行軟件開(kāi)發(fā)。CPU

25、從main()函數(shù)開(kāi)始執(zhí)行程序,例如:寫(xiě)幾行代碼來(lái)命令LPC 2124的GPIO,代碼如下: main (void) IO0DIR = 0 x0000FF; /寄存器配置/P0.0P0.7定義為輸出while(1); 6.1 LPC 2124微處理器入門(mén)知識(shí)理論上這樣就可以了,但是注意Keil C是C編譯器,不是Keil ARM,它能夠認(rèn)識(shí)void、unsigned這樣的關(guān)鍵詞,但不認(rèn)識(shí)IO0DIR,怎么辦呢?這樣來(lái)理解,IO0DIR是寄存器名,實(shí)際上CPU是按地址來(lái)尋找數(shù)據(jù)的,每個(gè)寄存器也都有自己的地址,這是一定的。那么IO0DIR的地址是什么呢?是0 xE0028008。只是個(gè)32位的二進(jìn)

26、制數(shù),地址在生產(chǎn)時(shí)決定了。代碼是為了方便閱讀,人為給某些特殊的地址起個(gè)名字,如IO0DIR = 0 x0000FF,事實(shí)上是執(zhí)行向地址為0 xE0028008的位置寫(xiě)入數(shù)據(jù)0 x0000FF。為了實(shí)現(xiàn)這種方便,人們定義了一種頭文件。6.1 LPC 2124微處理器入門(mén)知識(shí)在C文件開(kāi)始處加上該頭文件:#include 這是LPC21xx系列都可以使用的頭文件。其實(shí)也可以加入一句:#define IO0DIR (*(volatile unsigned long *) 0 xE0028008) 和頭文件里的一樣,這樣Keil C就認(rèn)識(shí)IO0DIR了,寫(xiě)代碼時(shí)就可以使用IO0DIR來(lái)代替長(zhǎng)長(zhǎng)的地址。6

27、.1 LPC 2124微處理器入門(mén)知識(shí)但是代碼還是不完美,并沒(méi)有告訴Keil C當(dāng)執(zhí)行完最后一句“IO0DIR = 0 x0000FF”時(shí),要通知CPU做什么。為防止CPU亂來(lái),一般再加一句:while(1);或者while(1);就是讓CPU什么也不干。6.1 LPC 2124微處理器入門(mén)知識(shí)最終的代碼如下: #include main (void) IO0DIR = 0 x0000FF; /寄存器配置/P0.0P0.7定義為輸出while(1); 6.1 LPC 2124微處理器入門(mén)知識(shí)6.2 基于基于LPC 2124的流水燈設(shè)計(jì)的流水燈設(shè)計(jì) 內(nèi)容:內(nèi)容:使用LPC 2124的P0口控制8

28、個(gè)LED燈輪流點(diǎn)亮顯示。訓(xùn)練目的:訓(xùn)練目的:學(xué)會(huì)LPC 2124 GPIO的使用方法。6.2.1 Proteus電路設(shè)計(jì)電路設(shè)計(jì) 1. 元件清單列表打開(kāi)Proteus ISIS編輯環(huán)境,按表6-3所列的清單添加元件。 表6-3 元件清單 6.2 基于LPC2124的流水燈設(shè)計(jì)元 件 名 稱(chēng)所 屬 類(lèi)所 屬 子 類(lèi)LPC2124Microprocessor ICsARM FamilyLED-BARGRAPH-GRNOptoelectronicsBargraph DisplaysRESPACK-8ResistorsResistors Packs2. 電路原理圖元件全部添加后,在Proteus IS

29、IS的編輯區(qū)域中按圖6-4所示的原理圖連接硬件電路。 6.2 基于LPC2124的流水燈設(shè)計(jì)圖6-4 Proteus中的電路原理圖3.3V1.8V3.3VXTAL162XTAL261P0.0/TxD0/PWM119P0.1/RxD0/PWM321P0.2/SCL/CAP0.022P0.3/SDA/MAT0.0/EINT126P0.4/SCK0/CAP0.127P0.5/MISO0/MAT0.129P0.6/MOSI0/CAP0.230P0.7/SSEL0/PWM2/EINT231P0.8/TxD1/PWM433P0.9/RxD1/PWM6/EINT334P0.10/RTS1/CAP1.035P

30、0.11/CTS1/CAP1.137P0.12/DSR1/MAT1.038P0.13/DTR1/MAT1.139P0.14/DCD1/EINT141P0.15/RI1/EINT245P0.16/EINT0/MAT0.2/CAP0.246P0.17/CAP1.2/SCK1/MAT1.247P0.18/CAP1.3/MISO153P0.19/MAT1.2/MOSI154P0.20/MAT1.3/SSEL1/EINT355P0.21/PWM5/CAP1.31P0.22/CAP0.0/MAT0.02P0.233P0.245P0.259P0.27/AIN0/CAP0.1/MAT0.111P0.28/AI

31、N1/CAP0.2/MAT0.213P0.29/AIN2/CAP0.3/MAT0.314P0.30/AIN3/EINT3/CAP0.015V323RST57V3A7V1817V18A63VSS6VSSA59VSSA_PLL58P1.16/TRACEPKT016P1.17/TRACEPKT112P1.18/TRACEPKT28P1.19/TRACEPKT34P1.20/TRACESYNC48P1.21/PIPESTAT044P1.22/PIPESTAT140P1.23/PIPESTAT236P1.24/TRACECLK32P1.25/EXTIN028P1.26/RTCK24P1.27/TDO64

32、P1.28/TDI60P1.29/TCK56P1.30/TMS52P1.31/TRST20V343V351VSS18VSS25VSS42VSS50V1849U1LPC21241234567820191817161514139101211U212345678161514131211109RN12203.3V6.2.2 程序設(shè)計(jì)程序設(shè)計(jì)本例的程序流程如圖6-5所示。6.2 基于LPC2124的流水燈設(shè)計(jì)圖6-5 程序流程圖 6.2.3 Proteus調(diào)試與仿真調(diào)試與仿真在Proteus中雙擊LPC 2124,把編譯好的程序虛擬下載到單片機(jī)中去,按仿真運(yùn)行,觀察效果,可以看到條形LED的顯示情況,如

33、圖6-4所示。6.2 基于LPC2124的流水燈設(shè)計(jì)圖6-4 Proteus中的電路原理圖3.3V1.8V3.3VXTAL162XTAL261P0.0/TxD0/PWM119P0.1/RxD0/PWM321P0.2/SCL/CAP0.022P0.3/SDA/MAT0.0/EINT126P0.4/SCK0/CAP0.127P0.5/MISO0/MAT0.129P0.6/MOSI0/CAP0.230P0.7/SSEL0/PWM2/EINT231P0.8/TxD1/PWM433P0.9/RxD1/PWM6/EINT334P0.10/RTS1/CAP1.035P0.11/CTS1/CAP1.137P0

34、.12/DSR1/MAT1.038P0.13/DTR1/MAT1.139P0.14/DCD1/EINT141P0.15/RI1/EINT245P0.16/EINT0/MAT0.2/CAP0.246P0.17/CAP1.2/SCK1/MAT1.247P0.18/CAP1.3/MISO153P0.19/MAT1.2/MOSI154P0.20/MAT1.3/SSEL1/EINT355P0.21/PWM5/CAP1.31P0.22/CAP0.0/MAT0.02P0.233P0.245P0.259P0.27/AIN0/CAP0.1/MAT0.111P0.28/AIN1/CAP0.2/MAT0.213P0

35、.29/AIN2/CAP0.3/MAT0.314P0.30/AIN3/EINT3/CAP0.015V323RST57V3A7V1817V18A63VSS6VSSA59VSSA_PLL58P1.16/TRACEPKT016P1.17/TRACEPKT112P1.18/TRACEPKT28P1.19/TRACEPKT34P1.20/TRACESYNC48P1.21/PIPESTAT044P1.22/PIPESTAT140P1.23/PIPESTAT236P1.24/TRACECLK32P1.25/EXTIN028P1.26/RTCK24P1.27/TDO64P1.28/TDI60P1.29/TCK

36、56P1.30/TMS52P1.31/TRST20V343V351VSS18VSS25VSS42VSS50V1849U1LPC21241234567820191817161514139101211U212345678161514131211109RN12203.3V6.3 LPC 2124的串口通信的串口通信 內(nèi)容:內(nèi)容:學(xué)習(xí)LPC 2124的串口使用,單片機(jī)通過(guò)串口向Proteus 虛擬終端發(fā)送“Hello World”,并通過(guò)虛擬終端進(jìn)行顯示。訓(xùn)練目的:訓(xùn)練目的:串口是通信的一種接口,同時(shí)對(duì)嵌入式開(kāi)發(fā)過(guò)程中的調(diào)試有幫助,通過(guò)本例實(shí)踐,為后續(xù)的學(xué)習(xí)打下基礎(chǔ)。 6.3.1 Proteus電路設(shè)

37、計(jì)電路設(shè)計(jì) 1. 元件清單列表打開(kāi)Proteus ISIS編輯環(huán)境,按表6-3所列的清單添加元件。 表6-3 元件清單 6.3 LPC2124 的串口通信元 件 名 稱(chēng)所 屬 類(lèi)所 屬 子 類(lèi)LPC2124Microprocessor ICsARM FamilyLED-BARGRAPH-GRNOptoelectronicsBargraph DisplaysRESPACK-8ResistorsResistors Packs然后在Proteus ISIS編輯環(huán)境中,單擊儀器選擇圖標(biāo) ,在左側(cè)對(duì)象拾取器中顯示所有可用儀器名稱(chēng),選擇“VERTUAL TERMINAL”虛擬終端,相當(dāng)于一個(gè)模擬的上位機(jī),

38、它可以與CPU進(jìn)行串行通訊,能夠像顯示屏一樣顯示數(shù)據(jù)和信息。6.3 LPC2124 的串口通信2. 電路原理圖元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-6所示的原理圖連接硬件電路。本例為簡(jiǎn)化硬件,使用Proteus軟件的虛擬串口進(jìn)行調(diào)試。如果單片機(jī)與RS232接口連接,應(yīng)當(dāng)注意電平的轉(zhuǎn)換。 6.3 LPC2124 的串口通信圖6-6 Proteus中的電路原理圖 3.3VXTAL162XTAL261P0.0/TxD0/PWM119P0.1/RxD0/PWM321P0.2/SCL/CAP0.022P0.3/SDA/MAT0.0/EINT126P0.4/SCK0/CAP0.12

39、7P0.5/MISO0/MAT0.129P0.6/MOSI0/CAP0.230P0.7/SSEL0/PWM2/EINT231P0.8/TxD1/PWM433P0.9/RxD1/PWM6/EINT334P0.10/RTS1/CAP1.035P0.11/CTS1/CAP1.137P0.12/DSR1/MAT1.038P0.13/DTR1/MAT1.139P0.14/DCD1/EINT141P0.15/RI1/EINT245P0.16/EINT0/MAT0.2/CAP0.246P0.17/CAP1.2/SCK1/MAT1.247P0.18/CAP1.3/MISO153P0.19/MAT1.2/MOS

40、I154P0.20/MAT1.3/SSEL1/EINT355P0.21/PWM5/CAP1.31P0.22/CAP0.0/MAT0.02P0.233P0.245P0.259P0.27/AIN0/CAP0.1/MAT0.111P0.28/AIN1/CAP0.2/MAT0.213P0.29/AIN2/CAP0.3/MAT0.314RST57V1849U1LPC2124RXDRTSTXDCTS6.3.2 程序設(shè)計(jì)程序設(shè)計(jì)本例的程序流程如圖6-7所示。6.3 LPC2124 的串口通信圖6-7 程序流程圖 6.3.3 Proteus調(diào)試與仿真調(diào)試與仿真在Proteus中雙擊LPC 2124,編輯屬性,

41、載入Keil編譯生成的.hex文件,運(yùn)行仿真,自動(dòng)彈出虛擬終端仿真畫(huà)面,顯示出了“Hello World”字樣,如圖6-8所示。 6.3 LPC2124 的串口通信圖6-8 程序仿真結(jié)果 6.4 基于基于LPC 2124的的A/D設(shè)計(jì)設(shè)計(jì)內(nèi)容:內(nèi)容:學(xué)習(xí)LPC 2124的A/D轉(zhuǎn)換功能 。訓(xùn)練目的:訓(xùn)練目的:LPC 2124的模數(shù)(A/D)轉(zhuǎn)換將模擬信號(hào)轉(zhuǎn)換成數(shù)字信息,主要用于模擬信號(hào)的數(shù)字化采集,最常見(jiàn)的就是數(shù)碼相機(jī),另外也會(huì)常常用到數(shù)字化信號(hào)的測(cè)量,如電壓、電流、速度的測(cè)量等。掌握LPC 2124自帶的模數(shù)轉(zhuǎn)換功能,會(huì)給產(chǎn)品的開(kāi)發(fā)帶來(lái)很大的方便。 6.4.1 Proteus電路設(shè)計(jì)電路設(shè)計(jì)

42、 1. 元件清單列表打開(kāi)Proteus ISIS編輯環(huán)境,按表6-4所列的清單添加元件。 表6-4 元件清單 6.4 基于LPC2124的A/D設(shè)計(jì)元 件 名 稱(chēng)所 屬 類(lèi)所 屬 子 類(lèi)LPC2124Microprocessor ICsARM FamilyLED-BARGRAPH-GRNOptoelectronicsBargraph DisplaysRESPACK-8ResistorsResistors PacksPOT-HGResistorsVariable 2. 電路原理圖 在Proteus ISIS的編輯區(qū)域中按圖6-9所示的原理圖連接硬件電路。本例中滑動(dòng)變阻器上的電壓作為模擬輸入量,可

43、以用LED輪流點(diǎn)亮的速度和串口的輸出顯示來(lái)觀察模數(shù)轉(zhuǎn)換的結(jié)果。 6.4 基于LPC2124的A/D設(shè)計(jì)圖6-9 Proteus中的A/D轉(zhuǎn)換電路原理圖3.3V1.8V3.3VXTAL162XTAL261P0.0/TxD0/PWM119P0.1/RxD0/PWM321P0.2/SCL/CAP0.022P0.3/SDA/MAT0.0/EINT126P0.4/SCK0/CAP0.127P0.5/MISO0/MAT0.129P0.6/MOSI0/CAP0.230P0.7/SSEL0/PWM2/EINT231P0.8/TxD1/PWM433P0.9/RxD1/PWM6/EINT334P0.10/RTS1

44、/CAP1.035P0.11/CTS1/CAP1.137P0.12/DSR1/MAT1.038P0.13/DTR1/MAT1.139P0.14/DCD1/EINT141P0.15/RI1/EINT245P0.16/EINT0/MAT0.2/CAP0.246P0.17/CAP1.2/SCK1/MAT1.247P0.18/CAP1.3/MISO153P0.19/MAT1.2/MOSI154P0.20/MAT1.3/SSEL1/EINT355P0.21/PWM5/CAP1.31P0.22/CAP0.0/MAT0.02P0.233P0.245P0.259P0.27/AIN0/CAP0.1/MAT0.1

45、11P0.28/AIN1/CAP0.2/MAT0.213P0.29/AIN2/CAP0.3/MAT0.314P0.30/AIN3/EINT3/CAP0.015V323RST57V3A7V1817V18A63VSS6VSSA59VSSA_PLL58P1.16/TRACEPKT016P1.17/TRACEPKT112P1.18/TRACEPKT28P1.19/TRACEPKT34P1.20/TRACESYNC48P1.21/PIPESTAT044P1.22/PIPESTAT140P1.23/PIPESTAT236P1.24/TRACECLK32P1.25/EXTIN028P1.26/RTCK24P

46、1.27/TDO64P1.28/TDI60P1.29/TCK56P1.30/TMS52P1.31/TRST20V343V351VSS18VSS25VSS42VSS50V1849U1LPC21241234567820191817161514139101211U212345678161514131211109RN12203.3VRV110k3.3VRXDRTSTXDCTS6.4.2 程序設(shè)計(jì)程序設(shè)計(jì)本例的程序流程如圖6-10所示。圖6-10(a)為主程序流程圖,圖6-10(b)為延時(shí)并執(zhí)行數(shù)據(jù)轉(zhuǎn)換流程圖。6.4 基于LPC2124的A/D設(shè)計(jì) (a) 主程序流程圖 (b)延時(shí)并執(zhí)行數(shù)據(jù)轉(zhuǎn)換流程圖

47、圖6-10 程序流程圖 6.4.3 Proteus調(diào)試與調(diào)試與仿真仿真在Proteus中雙擊LPC 2124,打開(kāi)屬性設(shè)置對(duì)話框,載入.hex文件,運(yùn)行交互仿真,結(jié)果如圖6-11所示。調(diào)節(jié)滑動(dòng)變阻器,使輸入的模擬電壓改變,從而改變LED輪流點(diǎn)亮的速度快慢,可看到模數(shù)轉(zhuǎn)換的效果。6.4 基于LPC2124的A/D設(shè)計(jì)圖6-11 程序仿真結(jié)果 6.5 基于基于AVR單片機(jī)的數(shù)碼管靜態(tài)單片機(jī)的數(shù)碼管靜態(tài)顯示顯示 內(nèi)容:內(nèi)容:AVR單片機(jī)ATMEGA16外接一位LED數(shù)碼管輪流顯示數(shù)字09,間隔1秒。單片機(jī)晶振為4MHz。 訓(xùn)練目的:訓(xùn)練目的:l掌握AVR單片機(jī)驅(qū)動(dòng)LED數(shù)碼管顯示的編程方法 ;掌握A

48、VR單片機(jī)定時(shí)器中斷的編程方法 。6.5.1 Proteus電路設(shè)計(jì)電路設(shè)計(jì) 1. 元件清單列表打開(kāi)Proteus ISIS編輯環(huán)境,按表6-5所列的清單添加元件。 表6-5 元件清單 6.5 基于AVR單片機(jī)的數(shù)碼管靜態(tài)顯示元 件 名 稱(chēng)所 屬 類(lèi)所 屬 子 類(lèi)ATMEGA16Microprocessor ICsAVR Family7SEG-COM-CAT-GRNOptoelectronics7-Segment DisplaysRESResistorsGeneric 2. 電路原理圖 在Proteus ISIS的編輯區(qū)域中按圖6-12所示的原理圖連接硬件電路。6.5 基于AVR單片機(jī)的數(shù)碼管

49、靜態(tài)顯示圖6-12 Proteus中電路原理圖 6.5.2 程序設(shè)計(jì)程序設(shè)計(jì)1. 程序流程圖本例的程序流程圖如圖6-13所示,其中圖6-13(a)為主程序,圖6-13(b)為定時(shí)器1中斷服務(wù)程序。6.5 基于AVR單片機(jī)的數(shù)碼管靜態(tài)顯示(a) 主程序 (b) 中斷服務(wù)程序圖6-13 程序流程圖 2. AVR單片機(jī)程序編譯、調(diào)試環(huán)境AVR單片機(jī)程序編譯和調(diào)試主要用到兩個(gè)軟件:CVAVR和AVR studio。1) AVR studio集成開(kāi)發(fā)環(huán)境(IDE)AVR studio集成開(kāi)發(fā)環(huán)境是美國(guó)Atmel公司推出的專(zhuān)門(mén)用于開(kāi)發(fā)本公司AVR單片機(jī)的匯編語(yǔ)言軟件開(kāi)發(fā)平臺(tái)。它包含AVR匯編編譯器、AVR

50、 studio軟件模擬調(diào)試器、AVR PROG和JTAG串行下載功能,以及JTAG ICE在線仿真調(diào)試功能等。AVR studio集成開(kāi)發(fā)環(huán)境本身不具備語(yǔ)言編譯功能,常借用CVAVR、ICCAVR等編譯器編譯生成可調(diào)試代碼。若使用JTAG ICE在線仿真調(diào)試功能,還需要購(gòu)置或自制JTAG ICE仿真器。學(xué)習(xí)AVR單片機(jī),將選用CVAVR C編譯器和Proteus虛擬仿真調(diào)試器,或自制JTAG ICE仿真器,自制AVR目標(biāo)開(kāi)發(fā)板配合AVR studio集成開(kāi)發(fā)環(huán)境(IDE)來(lái)工作。6.5 基于AVR單片機(jī)的數(shù)碼管靜態(tài)顯示 2) CVAVRCVAVR是一款低成本的C語(yǔ)言編譯器,同時(shí)也是一個(gè)開(kāi)發(fā)AV

51、R的IDE(集成開(kāi)發(fā)環(huán)境)開(kāi)發(fā)平臺(tái)。其特點(diǎn)是代碼生成效率高、突出支持位變量訪問(wèn)、直接支持多種外部標(biāo)準(zhǔn)接口器件應(yīng)用,適合一般初學(xué)者使用。用戶可以在http:/www.hpinfotech.ro網(wǎng)站下載2KB代碼限制CVAVR_Setup.exe安裝軟件,或從有關(guān)光盤(pán)中拷貝試用版安裝軟件進(jìn)行安裝。使用CVAVR編譯器編譯C語(yǔ)言程序后生成.COF文件,可在AVR studio中運(yùn)行,或在Proteus ISIS中進(jìn)行虛擬調(diào)試,即Proteus ISIS中AVR單片機(jī)允許載入的編譯程序格式為“*.cof”文件。6.5 基于AVR單片機(jī)的數(shù)碼管靜態(tài)顯示 CVAVR的使用步驟與Keil非常接近。(1) 建

52、立新工程。 打開(kāi)CVAVR,選擇FILE,單擊NEW,出現(xiàn)GREATE NEW窗口。 選擇文件類(lèi)型:可直接選擇SOURCE(源文件),也可以選擇Project(文件工程),我們選擇后者,單擊“OK”按鈕確定。(2) 選擇程序或工程自動(dòng)生成向?qū)В渲霉こ獭?在自動(dòng)出現(xiàn)的程序或工程自動(dòng)生成向?qū)г儐?wèn)窗口中,選“是”。 選擇芯片和時(shí)鐘:如ATMEGA16,4MHZ。 選擇端口輸入/輸出配置。 選擇其它相關(guān)項(xiàng)目等。6.5 基于AVR單片機(jī)的數(shù)碼管靜態(tài)顯示 (3) 編輯編譯源文件。 設(shè)置源文件:選擇自動(dòng)向?qū)Т翱谥械腇ILE,分三次填寫(xiě):注意,先選擇工程存放路徑:如D:ZHU之下,接著是源文件名:XXX.C

53、,工程文件名:XXX.PRJ和(初始化)配置文件名:XXX.CWP,如均采用TEST1(盡量不用中文名稱(chēng)),按NEXT進(jìn)入下一步。 編輯源文件:在生成的源程序框架中,分別在預(yù)處理函數(shù)、主函數(shù)、子函數(shù)等部分編輯自己的源程序,并認(rèn)真審查各項(xiàng)是否正確;編譯源文件或編譯工程:選擇Project菜單的COMPILE FILE或MAKE FILE命令;通過(guò)信息窗口檢查錯(cuò)誤,修改錯(cuò)誤,直至無(wú)任何錯(cuò)誤信息。檢查自設(shè)文件夾,應(yīng)在其中生成“.cof”文件。6.5 基于AVR單片機(jī)的數(shù)碼管靜態(tài)顯示 (4) 在AVR studio中調(diào)試運(yùn)行(.cof或.hex格式的C程序目標(biāo)代碼)。(5) 在Proteus ISIS

54、中調(diào)試(虛擬)運(yùn)行(.cof格式的C程序目標(biāo)代碼):在Proteus ISIS中繪制ATMEGA16原理圖,經(jīng)電氣性能檢查沒(méi)有錯(cuò)誤;將CVAVR生成的.cof格式文件按正確路徑裝入ATMEGA16芯片;在 Proteus ISIS中調(diào)試并觀察程序運(yùn)行情況。6.5 基于AVR單片機(jī)的數(shù)碼管靜態(tài)顯示6.5.3 Proteus調(diào)試與仿真調(diào)試與仿真在Proteus中雙擊單片機(jī)ATMEGA 16,在打開(kāi)的對(duì)話框中按圖6-14導(dǎo)入程序文件,運(yùn)行交互仿真。 6.5 基于AVR單片機(jī)的數(shù)碼管靜態(tài)顯示圖6-14 單片機(jī)程序的虛擬下載仿真片段如圖6-15所示。 6.5 基于AVR單片機(jī)的數(shù)碼管靜態(tài)顯示圖6-15

55、Proteus交互仿真結(jié)果 6.6 AVR單片機(jī)的單片機(jī)的SPI接口擴(kuò)展并行接口擴(kuò)展并行輸出輸出內(nèi)容:內(nèi)容:利用AVR單片機(jī)ATMEGA 16的SPI接口和串入并出寄存器74HC164擴(kuò)展并行輸出,外接一位LED數(shù)碼管,輪流顯示數(shù)字09。單片機(jī)晶振為4MHz。訓(xùn)練目的:訓(xùn)練目的:掌握AVR單片機(jī)SPI接口的使用方法 ;掌握SPI接口擴(kuò)展并行輸出的設(shè)計(jì)方法 。6.6.1 Proteus電路設(shè)計(jì)電路設(shè)計(jì) 1. 元件清單列表打開(kāi)Proteus ISIS編輯環(huán)境,按表6-6所列的清單添加元件。 表6-6 元件清單 6.6 AVR單片機(jī)的SPI接口擴(kuò)展并行輸出元 件 名 稱(chēng)所 屬 類(lèi)所 屬 子 類(lèi)ATM

56、EGA16Microprocessor ICsAVR Family7SEG-COM-CAT-GRNOptoelectronics7-Segment DisplaysRESResistorsGeneric74HC164.IECTTL 74HC SeriesRegisters 2. 電路原理圖 在Proteus ISIS的編輯區(qū)域中按圖6-16所示的原理圖連接硬件電路。6.6 AVR單片機(jī)的SPI接口擴(kuò)展并行輸出圖6-16 Proteus中電路原理圖 6.6.2 程序設(shè)計(jì)程序設(shè)計(jì)本例的程序流程圖如圖6-17所示。6.6 AVR單片機(jī)的SPI接口擴(kuò)展并行輸出圖6-17 程序流程圖6.6.3 Prot

57、eus調(diào)試與仿真調(diào)試與仿真進(jìn)入調(diào)試環(huán)境,雙擊單片機(jī)模塊,在打開(kāi)的對(duì)話框中按圖6-18載入編譯程序“HC74164.cof”。6.6 AVR單片機(jī)的SPI接口擴(kuò)展并行輸出圖6-18 Proteus中單片機(jī)程序的虛擬下載程序運(yùn)行片段如圖6-19(a)所示。6.6 AVR單片機(jī)的SPI接口擴(kuò)展并行輸出圖6-19(a) 仿真片段1打開(kāi)示波器觀察窗,可以觀察MOSI和SCK兩條線上的信號(hào)變化,如圖6-19(b)所示。6.6 AVR單片機(jī)的SPI接口擴(kuò)展并行輸出圖6-19(b) 仿真片段26.7 基于基于AVR單片機(jī)的數(shù)字電壓表單片機(jī)的數(shù)字電壓表 內(nèi)容:內(nèi)容:利用AVR單片機(jī)ATMEGA16和4位LED數(shù)

58、碼管設(shè)計(jì)一數(shù)字電壓表。輸入到單片機(jī)的模擬電壓經(jīng)過(guò)單片機(jī)內(nèi)部的A/D轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字量,并經(jīng)過(guò)數(shù)據(jù)處理得到實(shí)際的電壓值。該電壓值通過(guò)單片機(jī)的SPI接口輸出給LED數(shù)碼管進(jìn)行顯示。訓(xùn)練目的:訓(xùn)練目的:掌握AVR單片機(jī)內(nèi)部A/D轉(zhuǎn)換器的使用方法 ;掌握數(shù)字電壓表的編程方法 。6.7.1 Proteus電路設(shè)計(jì)電路設(shè)計(jì) 1. 元件清單列表打開(kāi)Proteus ISIS編輯環(huán)境,按表6-7所列的清單添加元件。 表6-7 元件清單 6.7基于AVR單片機(jī)的數(shù)字電壓表元 件 名 稱(chēng)所 屬 類(lèi)所 屬 子 類(lèi)ATMEGA16Microprocessor ICsAVR Family7SEG-MPX4-CAOptoe

59、lectronics7-Segment Displays74LS595TTL 74LS SeriesRegistersPOT-HGResistorsVariableNOTSimulator PrimitivesGatesREALCAPCapacitorsGenericRESResistorsGeneric 2. 電路原理圖元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-20所示的原理圖連接硬件電路。6.7基于AVR單片機(jī)的數(shù)字電壓表圖6-20 Proteus中電路原理圖 PB0/T0/XCK1PB1/T12PB2/AIN0/INT23PB3/AIN1/OC04PB4/SS5PB5

60、/MOSI6PB6/MISO7PB7/SCK8RESET9XTAL212XTAL113PD0/RXD14PD1/TXD15PD2/INT016PD3/INT117PD4/OC1B18PD5/OC1A19PD6/ICP120PD7/OC221PC0/SCL22PC1/SDA23PC2/TCK24PC3/TMS25PC4/TDO26PC5/TDI27PC6/TOSC128PC7/TOSC229PA7/ADC733PA6/ADC634PA5/ADC535PA4/ADC436PA3/ADC337PA2/ADC238PA1/ADC139PA0/ADC040AREF32AVCC30U1ATMEGA16Q015Q11Q22Q33Q44Q55Q66Q7

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論