




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 Proteus實例教程實例教程清華大學出版社清華大學出版社第第6章章基于基于ARM和和AVR單片機單片機的控制系統(tǒng)設計實例的控制系統(tǒng)設計實例6.1 LPC 2124微處理器入門知識微處理器入門知識6.2 基于基于LPC 2124的流水燈設計的流水燈設計 6.3 LPC 2124的串口通信的串口通信 6.4 基于基于LPC 2124的的A/D設計設計 6.5 基于基于AVR單片機的數(shù)碼管靜態(tài)顯示單片機的數(shù)碼管靜態(tài)顯示 6.6 AVR單片機的單片機的SPI接口擴展并行輸出接口擴展并行輸出 6.7 基于基于AVR單片機的數(shù)字電壓表單片機的數(shù)字電壓表 6.8 基于基于AVR的頻率計設計的頻率計設計
2、ARM處理器是Acorn計算機有限公司面向低預算市場設計的一款RISC微處理器,更早被稱作Acorn RISC Machine。ARM處理器本身是32位設計,但也配備16位指令集。一般來講比等價32位代碼節(jié)省達35%,卻能保留32位系統(tǒng)的所有優(yōu)勢。微軟公司2011年宣布,下一版Windows將正式支持ARM處理器。這是計算機工業(yè)ARM處理器發(fā)展歷史上的一件大事,標志著x86處理器的主導地位發(fā)生動搖。ARM成為主流,將指日可待,作為當代電子研發(fā)工程師,掌握ARM的使用是必然趨勢。AVR單片機是由Atmel公司挪威設計中心利用Atmel公司的Flash新技術,共同研發(fā)出具有RISC精簡指令集的高速
3、單片機,簡稱AVR。相對于出現(xiàn)較早也較為成熟的51系列單片機,AVR系列單片機片內(nèi)資源更為豐富,接口也更為強大,同時由于其價格低等優(yōu)勢,在很多場合可以替代51系列單片機。6.1 LPC 2124微處理器入門知識微處理器入門知識6.1.1 LPC 2124的特點的特點lLPC 2114/2124是一個基于32位ARM7 TDMI-S的CPU,它具有實時仿真和嵌入式跟蹤支持功能,配置128/256 KB的嵌入高速Flash存儲器,128位寬度的存儲器接口和獨特的加速結構,使32位代碼能夠工作在最大時鐘頻率上。對代碼規(guī)模有嚴格要求的應用程序,可使用16位Thumb模式在最小的性能損失情況下將代碼規(guī)模
4、降低30%以上。6.1 LPC 2124微處理器入門知識lLPC 2124擁有緊湊的64引腳封裝,低功耗,多個32位定時器,4路10位ADC,6路PWM通道和46個快速GPIO線,多達9個外部中斷引腳,這些特點使其特別適用于工業(yè)控制、醫(yī)療系統(tǒng)、銷售點的訪問和控制。由于內(nèi)置了寬范圍的串行通信接口,它們也非常適合通信網(wǎng)關、協(xié)議轉換器、嵌入式軟件調(diào)制解調(diào)器,以及許多其他一般用途的應用。lLPC 2124與原來的設備相比擁有快速GPIO端口,不管要讀的端口引腳是什么狀態(tài),在任何時候,均可支持端口引腳切換到3.5倍的速度。 lUART 0/1包括波特率發(fā)生器、自適應波特率能力和握手同步可完全在硬件中實現(xiàn)
5、流量控制。緩沖SSP串行控制器,支持4線SSI、SPI和Microwire格式。6.1 LPC 2124微處理器入門知識l32位ARM7 TDMI-S微控制器,超小LQFP64封裝。l16 KB片內(nèi)靜態(tài)RAM,128/256 KB片上閃存程序存儲器。l128位寬度接口/加速器,可實現(xiàn)高達60 MHz工作頻率。lFlash編程時間為1ms,每行512 B,單扇區(qū)或整片擦除時間為400 ms。lEmbedded ICE-RT接口支持斷點和觀察點。片內(nèi)Real Monitor軟件對前臺任務進行調(diào)試時,中斷服務程序可以繼續(xù)執(zhí)行。l嵌入式跟蹤宏單元(ETM)支持非侵入式的高速實時跟蹤指令的執(zhí)行。l四通道
6、10位ADC,轉換時間低至2.44s。6.1 LPC 2124微處理器入門知識l2個32位定時器(帶4路捕獲和4路比較通道),PWM單元(6路輸出),實時時鐘(RTC)和看門狗。l多個串行接口,包括2個UART(16C550),高速I2C線(400KB/s)和2個SPI接口。最大為60MHz的CPU時鐘,可編程片上鎖相環(huán),循環(huán)與沉淀時間為100s;向量中斷控制器,可配置優(yōu)先級和向量地址。l5V寬容的通用I/O引腳,多達9個邊沿或電平觸發(fā)的外部中斷引腳。l片上的晶振為1MHz30MHz晶體振蕩器。l兩種低功耗模式:空閑模式和掉電模式。通過外部中斷,將處理器從掉電模式喚醒,單獨使能/禁止外設功能來
7、優(yōu)化功耗。6.1.2 LPC 2124的功能配置的功能配置LPC 2124的引腳如圖6-1所示,為了節(jié)省空間和提高效率,很多引腳擁有一個以上的功能,而為了使用某引腳的某一項功能,則可通過軟件設置寄存器的方法來實現(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微處理器入門知識圖6-1 LPC2124的引腳圖1. LPC 2124 GPIO配置 LPC 2124具有多達48個通用I/O口(GPIO),當管腳選擇GPIO功能時,有3個寄存器(IOSET、IOCLR和IOPIN)用于控制 GPIO的使用。IOSET用于將GPIO口置1,而IOCLR則用于將GPIO口清0,IOPIN則反映當前I/O口
11、的狀態(tài),讀回IOSET則反映當前I/O口的設定狀態(tài)。 特性:l單個位的方向控制; l單獨控制輸出的置位和清零; l所有I/O口在復位后默認為輸入。6.1 LPC 2124微處理器入門知識6.1 LPC 2124微處理器入門知識圖6-2 LPC2124的物理連接示意圖 物理連接:l GPIO驅動LED,如圖6-2(a)所示,R為限流電阻;l GPIO用于按鍵輸入,如圖6-2(b)所示,R為上拉電阻。 (a) GPIO驅動LED (b) GPIO用于按鍵輸入 如果把P0口設置為輸出,則可以使用如下語句:IO0DIR = 0 xFF; 寄存器IO0DIR用來定義P0口的方向是輸出還是輸入,如:IO0
12、DIR = 0 xFF(1111 1111)指定P0.0P0.7為輸出,IO0DIR =0 x0F(0000 1111)指定P0.0P0.3為輸出,而P0.4P0.7為輸入。然后設置GPIO狀態(tài):IO0CLR = 0 xFF;IO0SET = 0 xFF;IO0CLR寄存器負責將P0口置零,IO0CLR = 0 xFF (11111111),設定P0.0到P0.7全部是低電平;IO0SET寄存器負責將P0口置1,IO0SET = 0 xFF,設定P0口為全部高電平。 6.1 LPC 2124微處理器入門知識2. LPC 2124 串口配置 LPC 2124具有兩個符合工業(yè)標準的異步串行口UAR
13、T0和UART1。兩者除了外設及地址以外,其他都相同,因而在這里統(tǒng)一進行描述。它們具有以下特性:l單個位的方向控制16字節(jié)收發(fā)FIFO ; l接收器FIFO觸發(fā)點可為1、4、8和14字節(jié); l內(nèi)置波特率發(fā)生器。6.1 LPC 2124微處理器入門知識6.1 LPC 2124微處理器入門知識當進行如下設置時,對P0.0、P0.1選擇UART0功能: lPINSEL0 = 0 x00000005; / 可能影響其它管腳連接 lPINSEL0 = (PINSEL0 & (0 x0F) | 0 x05; / 不影響其它管腳連接 管 腳 名 稱UART管腳功 能 描 述說 明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微處理器入門知識當進行如下設置時,對P0.8、P0.9選擇UART0功能: lPINSEL0 = 0 x05 16; / 可能影響其它管腳連接 lPINSEL0 = ( PINSEL0 & (0 x0F 16) ) | (0 x05 16); / 不影響其他管腳連接管 腳 名 稱UART管腳功 能 描 述說 明P0.0TxD0串行輸出串行發(fā)送數(shù)據(jù)P0.1RxD0串行輸入串行接收數(shù)據(jù)P0.8TxD1串行輸出串行發(fā)送數(shù)據(jù)P0.9RxD
15、1串行輸入串行接收數(shù)據(jù)表6-1 UART管腳描述6.1 LPC 2124微處理器入門知識基本操作:LPC 2124的兩個串口具有完全相同的寄存器,只是物理地址不一樣,其中,寄存器UxRBR與UxTHR是同一地址,但物理上是分開的,讀操作時為UxRBR,而寫操作時為UxTHR;寄存器UxDLL與UxRBR/UxTHR、UxDLM與UxTER具有相同的地址。如果要訪問UxDLM、UxDLL,除數(shù)據(jù)訪問位DLAB必須為1;若要訪問UxRBR/UxTHR、UxTER,則除數(shù)據(jù)訪問位DLAB必須為0。UxDLM和UxDLL寄存器是波特率發(fā)生器的除數(shù)據(jù)鎖存寄存器,用于設置合適的串口波特率; 6.1 LPC
16、 2124微處理器入門知識UxRBR為數(shù)據(jù)接收緩沖,用于讀取接收到的數(shù)據(jù)。若FIFO使能,串口接收到的數(shù)據(jù)會壓入FIFO緩沖;UxTHR為發(fā)送保存,向此寄存器寫入數(shù)據(jù)時,將會引起串口數(shù)據(jù)發(fā)送,若FIFO使能,數(shù)據(jù)將會壓入FIFO緩沖。通過線控制寄存器LCR設置串口的工作模式,而FCR則用于FIFO的使能或者復位操作;當接收或者發(fā)送數(shù)據(jù)的時候,會產(chǎn)生相應的狀態(tài)標志位(LSR);通過對IER進行設置,可實現(xiàn)串口的發(fā)送、接收、出錯中斷等。6.1 LPC 2124微處理器入門知識 注意:注意: IER中的位0為接收中斷使能,位1為發(fā)送中斷使能,位2為線狀態(tài)中斷使能(通訊出錯中斷使能)。若不使能相應的中
17、斷,對應的中斷不會產(chǎn)生,此時可以通過LSR讀取串口的狀態(tài),判斷串口操作是否完成或是否成功。 UART的基本操作方法如下: l 設置I/O連接到UARTx; l 設置串口波特率(UxDLM、UxDLL); l 設置串口工作模式(UxLCR、UxFCR); l 發(fā)送或接收數(shù)據(jù)(UxTHR、UxRBR); l 檢查串口狀態(tài)字(UxLSR)或者等待串口中斷(UxIIR)。6.1 LPC 2124微處理器入門知識使用示例:(1) 串口初始化。 #define UART_BPS 115200 / 串口通信波特率 U0LCR = 0 x83; / DLAB=1,允許設置波特率 Fdiv = (Fpclk /
18、 16) / UART_BPS; /設置波特率 U0DLM = Fdiv / 256; U0DLL = Fdiv % 256; U0LCR = 0 x03; / DLAB=0,禁止訪問除數(shù)鎖存器 6.1 LPC 2124微處理器入門知識(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 2124微處理器入門知識圖6-3
19、 UART與其它控制器進行數(shù)據(jù)交換的物理連接示意圖物理連接:l 使用UART與其它控制器進行數(shù)據(jù)交換時,其連接如圖6-3(a)所示;l 使用UART與PC機通訊,由于PC機串口是RS232電平,所以連接時需要使用RS232轉換器,如圖6-3(b)所示。 (a) GPIO驅動LED (b) GPIO用于按鍵輸入 6.1.3 LPC 2124 A/D轉換配置轉換配置A/D轉換器(ADC,A/D Converters)的基本時鐘由VPB時鐘提供。每個轉換器包含一個可編程分頻器,可將時鐘調(diào)整至逐步逼近轉換所需的4.5MHz(最大)。完全滿足精度要求的轉換需要11個轉換時鐘。LPC2124 具有1個10
20、位8路A/D轉換器。啟動A/D轉換的方式非常靈活,既可以單路軟件啟動,也可以設置為 Burst模式對某幾路信號逐個循環(huán)采樣。與其它LPC2000 系列微控制器相比,LPC2124增加了獨立的基準電壓源引腳,這對提高轉換精度很有利。 6.1 LPC 2124微處理器入門知識LPC2124 具有1個10位8路A/D轉換器。 A/D轉換器具有以下特性:l 1個10位逐次逼近式模數(shù)轉換器; l 8個管腳復用為輸入腳; l 掉電模式; l 測量范圍:03V; l 10位轉換時間2.44s; l 一個或多個輸入的Burst轉換模式; l 可選擇由輸入跳變或定時器匹配信號觸發(fā)轉換。6.1 LPC 2124微
21、處理器入門知識ADC管腳描述如表6-2所示。6.1 LPC 2124微處理器入門知識表6-2 ADC 管腳描述管 腳 名 稱類 型管 腳 描 述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轉換器單元測量輸入信號的電壓。注意,這些模擬輸入通常連接到管腳上,即使管腳復用寄存器將它們設定為端口管腳。通過將這些管腳驅動成端口輸出來實現(xiàn)A/D轉換器的簡單自測。 注:當使用A/D轉換器時,模擬輸入管腳的信號電平在任何時候都不能大于V3A,否則,讀
22、出的A/D值無效。如果在應用中未使用A/D轉換器,則A/D輸入管腳用作可承受5V電壓的數(shù)字I/O口Vref參考電壓 參考電壓。該管腳連接到A/D轉換器的Vref信號V3A,VSSA電源 模擬電源和地。它們分別與標稱為V3和VSSD的電壓相同,但為了降低噪聲和出錯幾率,兩者應當隔離管腳連接設置: 若需要使用A/D轉換功能,需要進行正確的管腳連接設置。例如,當進行如下設置時,對P0.30選擇AD0.3功能: l PINSEL1 = 0 x01 28; / 可能影響其它管腳功能 l PINSEL1 = (PINSEL1 & (0 x03 28) | (0 x01 28); / 不會影響其它管腳功能6
23、.1 LPC 2124微處理器入門知識基本操作: (1) 硬件觸發(fā)轉換。 如果ADCR的Burst位為0且START字段的值包含在010111之內(nèi),當所選管腳(P0.16或 P0.22)或定時器匹配信號(MAT0.1、MAT0.3、MAT1.0 或者 MAT1.1)發(fā)生跳變時,A/D轉換器啟動一次轉換。也可選擇在4個匹配信號中任何一個的指定邊沿轉換,或者在兩個捕獲/匹配管腳中任何一個的指定邊沿轉換。將所選端口的管腳狀態(tài)或所選的匹配信號與ADCR位27相異或所得的結果用作邊沿檢測邏輯。 6.1 LPC 2124微處理器入門知識(2) 時鐘產(chǎn)生。 時鐘分頻器(通過它可以得到4.5MHz的轉換時鐘)
24、在A/D轉換器空閑時保持復位狀態(tài),在ADCR的START字段被寫入01(立即啟動轉換)或所選邊沿出現(xiàn)在選擇的信號上時可立刻啟動采樣時鐘。這個特性可以節(jié)省功率,尤其適用于A/D轉換器很少使用的場合。(3) 中斷。 當 DONE 位為1時,AD轉換模塊向向量中斷控制器(VIC)發(fā)出中斷請求,如果VIC中VICIntEnable的Bit8(A/D轉換中斷使能位)使能,則會產(chǎn)生中斷。讀取ADDR將清零DONE位。6.1 LPC 2124微處理器入門知識6.1.4 LPC 2124 的軟件編寫的軟件編寫選擇使用Keil C軟件對LPC 2124進行軟件開發(fā)。CPU從main()函數(shù)開始執(zhí)行程序,例如:寫
25、幾行代碼來命令LPC 2124的GPIO,代碼如下: main (void) IO0DIR = 0 x0000FF; /寄存器配置/P0.0P0.7定義為輸出while(1); 6.1 LPC 2124微處理器入門知識理論上這樣就可以了,但是注意Keil C是C編譯器,不是Keil ARM,它能夠認識void、unsigned這樣的關鍵詞,但不認識IO0DIR,怎么辦呢?這樣來理解,IO0DIR是寄存器名,實際上CPU是按地址來尋找數(shù)據(jù)的,每個寄存器也都有自己的地址,這是一定的。那么IO0DIR的地址是什么呢?是0 xE0028008。只是個32位的二進制數(shù),地址在生產(chǎn)時決定了。代碼是為了方便
26、閱讀,人為給某些特殊的地址起個名字,如IO0DIR = 0 x0000FF,事實上是執(zhí)行向地址為0 xE0028008的位置寫入數(shù)據(jù)0 x0000FF。為了實現(xiàn)這種方便,人們定義了一種頭文件。6.1 LPC 2124微處理器入門知識在C文件開始處加上該頭文件:#include 這是LPC21xx系列都可以使用的頭文件。其實也可以加入一句:#define IO0DIR (*(volatile unsigned long *) 0 xE0028008) 和頭文件里的一樣,這樣Keil C就認識IO0DIR了,寫代碼時就可以使用IO0DIR來代替長長的地址。6.1 LPC 2124微處理器入門知識但
27、是代碼還是不完美,并沒有告訴Keil C當執(zhí)行完最后一句“IO0DIR = 0 x0000FF”時,要通知CPU做什么。為防止CPU亂來,一般再加一句:while(1);或者while(1);就是讓CPU什么也不干。6.1 LPC 2124微處理器入門知識最終的代碼如下: #include main (void) IO0DIR = 0 x0000FF; /寄存器配置/P0.0P0.7定義為輸出while(1); 6.1 LPC 2124微處理器入門知識6.2 基于基于LPC 2124的流水燈設計的流水燈設計 內(nèi)容:內(nèi)容:使用LPC 2124的P0口控制8個LED燈輪流點亮顯示。訓練目的:訓練目
28、的:學會LPC 2124 GPIO的使用方法。6.2.1 Proteus電路設計電路設計 1. 元件清單列表打開Proteus ISIS編輯環(huán)境,按表6-3所列的清單添加元件。 表6-3 元件清單 6.2 基于LPC2124的流水燈設計元 件 名 稱所 屬 類所 屬 子 類LPC2124Microprocessor ICsARM FamilyLED-BARGRAPH-GRNOptoelectronicsBargraph DisplaysRESPACK-8ResistorsResistors Packs2. 電路原理圖元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-4所示的原理圖連
29、接硬件電路。 6.2 基于LPC2124的流水燈設計圖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
30、.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
31、.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
32、56P1.30/TMS52P1.31/TRST20V343V351VSS18VSS25VSS42VSS50V1849U1LPC21241234567820191817161514139101211U212345678161514131211109RN12203.3V6.2.2 程序設計程序設計本例的程序流程如圖6-5所示。6.2 基于LPC2124的流水燈設計圖6-5 程序流程圖 6.2.3 Proteus調(diào)試與仿真調(diào)試與仿真在Proteus中雙擊LPC 2124,把編譯好的程序虛擬下載到單片機中去,按仿真運行,觀察效果,可以看到條形LED的顯示情況,如圖6-4所示。6.2 基于LPC2124
33、的流水燈設計圖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.12/DSR1/MAT1.038P0.
34、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.29/AIN2/CAP0.3/MAT0
35、.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/TCK56P1.30/TMS52P1.31/T
36、RST20V343V351VSS18VSS25VSS42VSS50V1849U1LPC21241234567820191817161514139101211U212345678161514131211109RN12203.3V6.3 LPC 2124的串口通信的串口通信 內(nèi)容:內(nèi)容:學習LPC 2124的串口使用,單片機通過串口向Proteus 虛擬終端發(fā)送“Hello World”,并通過虛擬終端進行顯示。訓練目的:訓練目的:串口是通信的一種接口,同時對嵌入式開發(fā)過程中的調(diào)試有幫助,通過本例實踐,為后續(xù)的學習打下基礎。 6.3.1 Proteus電路設計電路設計 1. 元件清單列表打開Pro
37、teus ISIS編輯環(huán)境,按表6-3所列的清單添加元件。 表6-3 元件清單 6.3 LPC2124 的串口通信元 件 名 稱所 屬 類所 屬 子 類LPC2124Microprocessor ICsARM FamilyLED-BARGRAPH-GRNOptoelectronicsBargraph DisplaysRESPACK-8ResistorsResistors Packs然后在Proteus ISIS編輯環(huán)境中,單擊儀器選擇圖標 ,在左側對象拾取器中顯示所有可用儀器名稱,選擇“VERTUAL TERMINAL”虛擬終端,相當于一個模擬的上位機,它可以與CPU進行串行通訊,能夠像顯示屏
38、一樣顯示數(shù)據(jù)和信息。6.3 LPC2124 的串口通信2. 電路原理圖元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-6所示的原理圖連接硬件電路。本例為簡化硬件,使用Proteus軟件的虛擬串口進行調(diào)試。如果單片機與RS232接口連接,應當注意電平的轉換。 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.127P0.5/MISO0/MAT0.129
39、P0.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/MOSI154P0.20/MAT1.3/SSE
40、L1/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 程序設計程序設計本例的程序流程如圖6-7所示。6.3 LPC2124 的串口通信圖6-7 程序流程圖 6.3.3 Proteus調(diào)試與仿真調(diào)試與仿真在Proteus中雙擊LPC 2124,編輯屬性,載入Keil編譯生成的.hex文件,運行
41、仿真,自動彈出虛擬終端仿真畫面,顯示出了“Hello World”字樣,如圖6-8所示。 6.3 LPC2124 的串口通信圖6-8 程序仿真結果 6.4 基于基于LPC 2124的的A/D設計設計內(nèi)容:內(nèi)容:學習LPC 2124的A/D轉換功能 。訓練目的:訓練目的:LPC 2124的模數(shù)(A/D)轉換將模擬信號轉換成數(shù)字信息,主要用于模擬信號的數(shù)字化采集,最常見的就是數(shù)碼相機,另外也會常常用到數(shù)字化信號的測量,如電壓、電流、速度的測量等。掌握LPC 2124自帶的模數(shù)轉換功能,會給產(chǎn)品的開發(fā)帶來很大的方便。 6.4.1 Proteus電路設計電路設計 1. 元件清單列表打開Proteus
42、ISIS編輯環(huán)境,按表6-4所列的清單添加元件。 表6-4 元件清單 6.4 基于LPC2124的A/D設計元 件 名 稱所 屬 類所 屬 子 類LPC2124Microprocessor ICsARM FamilyLED-BARGRAPH-GRNOptoelectronicsBargraph DisplaysRESPACK-8ResistorsResistors PacksPOT-HGResistorsVariable 2. 電路原理圖 在Proteus ISIS的編輯區(qū)域中按圖6-9所示的原理圖連接硬件電路。本例中滑動變阻器上的電壓作為模擬輸入量,可以用LED輪流點亮的速度和串口的輸出顯示
43、來觀察模數(shù)轉換的結果。 6.4 基于LPC2124的A/D設計圖6-9 Proteus中的A/D轉換電路原理圖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/
44、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/AIN1/CAP0.2/
45、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/TDO64P1.28/TDI6
46、0P1.29/TCK56P1.30/TMS52P1.31/TRST20V343V351VSS18VSS25VSS42VSS50V1849U1LPC21241234567820191817161514139101211U212345678161514131211109RN12203.3VRV110k3.3VRXDRTSTXDCTS6.4.2 程序設計程序設計本例的程序流程如圖6-10所示。圖6-10(a)為主程序流程圖,圖6-10(b)為延時并執(zhí)行數(shù)據(jù)轉換流程圖。6.4 基于LPC2124的A/D設計 (a) 主程序流程圖 (b)延時并執(zhí)行數(shù)據(jù)轉換流程圖 圖6-10 程序流程圖 6.4.3 Pr
47、oteus調(diào)試與調(diào)試與仿真仿真在Proteus中雙擊LPC 2124,打開屬性設置對話框,載入.hex文件,運行交互仿真,結果如圖6-11所示。調(diào)節(jié)滑動變阻器,使輸入的模擬電壓改變,從而改變LED輪流點亮的速度快慢,可看到模數(shù)轉換的效果。6.4 基于LPC2124的A/D設計圖6-11 程序仿真結果 6.5 基于基于AVR單片機的數(shù)碼管靜態(tài)單片機的數(shù)碼管靜態(tài)顯示顯示 內(nèi)容:內(nèi)容:AVR單片機ATMEGA16外接一位LED數(shù)碼管輪流顯示數(shù)字09,間隔1秒。單片機晶振為4MHz。 訓練目的:訓練目的:l掌握AVR單片機驅動LED數(shù)碼管顯示的編程方法 ;掌握AVR單片機定時器中斷的編程方法 。6.5
48、.1 Proteus電路設計電路設計 1. 元件清單列表打開Proteus ISIS編輯環(huán)境,按表6-5所列的清單添加元件。 表6-5 元件清單 6.5 基于AVR單片機的數(shù)碼管靜態(tài)顯示元 件 名 稱所 屬 類所 屬 子 類ATMEGA16Microprocessor ICsAVR Family7SEG-COM-CAT-GRNOptoelectronics7-Segment DisplaysRESResistorsGeneric 2. 電路原理圖 在Proteus ISIS的編輯區(qū)域中按圖6-12所示的原理圖連接硬件電路。6.5 基于AVR單片機的數(shù)碼管靜態(tài)顯示圖6-12 Proteus中電路
49、原理圖 6.5.2 程序設計程序設計1. 程序流程圖本例的程序流程圖如圖6-13所示,其中圖6-13(a)為主程序,圖6-13(b)為定時器1中斷服務程序。6.5 基于AVR單片機的數(shù)碼管靜態(tài)顯示(a) 主程序 (b) 中斷服務程序圖6-13 程序流程圖 2. AVR單片機程序編譯、調(diào)試環(huán)境AVR單片機程序編譯和調(diào)試主要用到兩個軟件:CVAVR和AVR studio。1) AVR studio集成開發(fā)環(huán)境(IDE)AVR studio集成開發(fā)環(huán)境是美國Atmel公司推出的專門用于開發(fā)本公司AVR單片機的匯編語言軟件開發(fā)平臺。它包含AVR匯編編譯器、AVR studio軟件模擬調(diào)試器、AVR P
50、ROG和JTAG串行下載功能,以及JTAG ICE在線仿真調(diào)試功能等。AVR studio集成開發(fā)環(huán)境本身不具備語言編譯功能,常借用CVAVR、ICCAVR等編譯器編譯生成可調(diào)試代碼。若使用JTAG ICE在線仿真調(diào)試功能,還需要購置或自制JTAG ICE仿真器。學習AVR單片機,將選用CVAVR C編譯器和Proteus虛擬仿真調(diào)試器,或自制JTAG ICE仿真器,自制AVR目標開發(fā)板配合AVR studio集成開發(fā)環(huán)境(IDE)來工作。6.5 基于AVR單片機的數(shù)碼管靜態(tài)顯示 2) CVAVRCVAVR是一款低成本的C語言編譯器,同時也是一個開發(fā)AVR的IDE(集成開發(fā)環(huán)境)開發(fā)平臺。其特
51、點是代碼生成效率高、突出支持位變量訪問、直接支持多種外部標準接口器件應用,適合一般初學者使用。用戶可以在http:/www.hpinfotech.ro網(wǎng)站下載2KB代碼限制CVAVR_Setup.exe安裝軟件,或從有關光盤中拷貝試用版安裝軟件進行安裝。使用CVAVR編譯器編譯C語言程序后生成.COF文件,可在AVR studio中運行,或在Proteus ISIS中進行虛擬調(diào)試,即Proteus ISIS中AVR單片機允許載入的編譯程序格式為“*.cof”文件。6.5 基于AVR單片機的數(shù)碼管靜態(tài)顯示 CVAVR的使用步驟與Keil非常接近。(1) 建立新工程。 打開CVAVR,選擇FILE
52、,單擊NEW,出現(xiàn)GREATE NEW窗口。 選擇文件類型:可直接選擇SOURCE(源文件),也可以選擇Project(文件工程),我們選擇后者,單擊“OK”按鈕確定。(2) 選擇程序或工程自動生成向導,配置工程。 在自動出現(xiàn)的程序或工程自動生成向導詢問窗口中,選“是”。 選擇芯片和時鐘:如ATMEGA16,4MHZ。 選擇端口輸入/輸出配置。 選擇其它相關項目等。6.5 基于AVR單片機的數(shù)碼管靜態(tài)顯示 (3) 編輯編譯源文件。 設置源文件:選擇自動向導窗口中的FILE,分三次填寫:注意,先選擇工程存放路徑:如D:ZHU之下,接著是源文件名:XXX.C,工程文件名:XXX.PRJ和(初始化)
53、配置文件名:XXX.CWP,如均采用TEST1(盡量不用中文名稱),按NEXT進入下一步。 編輯源文件:在生成的源程序框架中,分別在預處理函數(shù)、主函數(shù)、子函數(shù)等部分編輯自己的源程序,并認真審查各項是否正確;編譯源文件或編譯工程:選擇Project菜單的COMPILE FILE或MAKE FILE命令;通過信息窗口檢查錯誤,修改錯誤,直至無任何錯誤信息。檢查自設文件夾,應在其中生成“.cof”文件。6.5 基于AVR單片機的數(shù)碼管靜態(tài)顯示 (4) 在AVR studio中調(diào)試運行(.cof或.hex格式的C程序目標代碼)。(5) 在Proteus ISIS中調(diào)試(虛擬)運行(.cof格式的C程序
54、目標代碼):在Proteus ISIS中繪制ATMEGA16原理圖,經(jīng)電氣性能檢查沒有錯誤;將CVAVR生成的.cof格式文件按正確路徑裝入ATMEGA16芯片;在 Proteus ISIS中調(diào)試并觀察程序運行情況。6.5 基于AVR單片機的數(shù)碼管靜態(tài)顯示6.5.3 Proteus調(diào)試與仿真調(diào)試與仿真在Proteus中雙擊單片機ATMEGA 16,在打開的對話框中按圖6-14導入程序文件,運行交互仿真。 6.5 基于AVR單片機的數(shù)碼管靜態(tài)顯示圖6-14 單片機程序的虛擬下載仿真片段如圖6-15所示。 6.5 基于AVR單片機的數(shù)碼管靜態(tài)顯示圖6-15 Proteus交互仿真結果 6.6 AV
55、R單片機的單片機的SPI接口擴展并行接口擴展并行輸出輸出內(nèi)容:內(nèi)容:利用AVR單片機ATMEGA 16的SPI接口和串入并出寄存器74HC164擴展并行輸出,外接一位LED數(shù)碼管,輪流顯示數(shù)字09。單片機晶振為4MHz。訓練目的:訓練目的:掌握AVR單片機SPI接口的使用方法 ;掌握SPI接口擴展并行輸出的設計方法 。6.6.1 Proteus電路設計電路設計 1. 元件清單列表打開Proteus ISIS編輯環(huán)境,按表6-6所列的清單添加元件。 表6-6 元件清單 6.6 AVR單片機的SPI接口擴展并行輸出元 件 名 稱所 屬 類所 屬 子 類ATMEGA16Microprocessor
56、ICsAVR Family7SEG-COM-CAT-GRNOptoelectronics7-Segment DisplaysRESResistorsGeneric74HC164.IECTTL 74HC SeriesRegisters 2. 電路原理圖 在Proteus ISIS的編輯區(qū)域中按圖6-16所示的原理圖連接硬件電路。6.6 AVR單片機的SPI接口擴展并行輸出圖6-16 Proteus中電路原理圖 6.6.2 程序設計程序設計本例的程序流程圖如圖6-17所示。6.6 AVR單片機的SPI接口擴展并行輸出圖6-17 程序流程圖6.6.3 Proteus調(diào)試與仿真調(diào)試與仿真進入調(diào)試環(huán)境,
57、雙擊單片機模塊,在打開的對話框中按圖6-18載入編譯程序“HC74164.cof”。6.6 AVR單片機的SPI接口擴展并行輸出圖6-18 Proteus中單片機程序的虛擬下載程序運行片段如圖6-19(a)所示。6.6 AVR單片機的SPI接口擴展并行輸出圖6-19(a) 仿真片段1打開示波器觀察窗,可以觀察MOSI和SCK兩條線上的信號變化,如圖6-19(b)所示。6.6 AVR單片機的SPI接口擴展并行輸出圖6-19(b) 仿真片段26.7 基于基于AVR單片機的數(shù)字電壓表單片機的數(shù)字電壓表 內(nèi)容:內(nèi)容:利用AVR單片機ATMEGA16和4位LED數(shù)碼管設計一數(shù)字電壓表。輸入到單片機的模擬
58、電壓經(jīng)過單片機內(nèi)部的A/D轉換器轉換為數(shù)字量,并經(jīng)過數(shù)據(jù)處理得到實際的電壓值。該電壓值通過單片機的SPI接口輸出給LED數(shù)碼管進行顯示。訓練目的:訓練目的:掌握AVR單片機內(nèi)部A/D轉換器的使用方法 ;掌握數(shù)字電壓表的編程方法 。6.7.1 Proteus電路設計電路設計 1. 元件清單列表打開Proteus ISIS編輯環(huán)境,按表6-7所列的清單添加元件。 表6-7 元件清單 6.7基于AVR單片機的數(shù)字電壓表元 件 名 稱所 屬 類所 屬 子 類ATMEGA16Microprocessor ICsAVR Family7SEG-MPX4-CAOptoelectronics7-Segment
59、Displays74LS595TTL 74LS SeriesRegistersPOT-HGResistorsVariableNOTSimulator PrimitivesGatesREALCAPCapacitorsGenericRESResistorsGeneric 2. 電路原理圖元件全部添加后,在Proteus ISIS的編輯區(qū)域中按圖6-20所示的原理圖連接硬件電路。6.7基于AVR單片機的數(shù)字電壓表圖6-20 Proteus中電路原理圖 PB0/T0/XCK1PB1/T12PB2/AIN0/INT23PB3/AIN1/OC04PB4/SS5PB5/MOSI6PB6/MISO7PB7/S
60、CK8RESET9XTAL212XTAL113PD0/RXD14PD1/TXD15PD2/INT016PD3/INT117PD4/OC1B18PD5/OC1A19PD6/ICP120PD7/OC221PC0/SCL22PC1/SDA23PC2/TCK24PC3/TMS25PC4/TDO26PC5/TDI27PC6/TOSC128PC7/TOSC229PA7/ADC733PA6/ADC634PA5/ADC535PA4/ADC436PA3/ADC337PA2/ADC238PA1/ADC139PA0/ADC040AREF32AVCC30U1ATMEGA16Q015Q11Q22Q33Q44Q55Q66
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 成都體育學院考研專業(yè)真題
- 青少年心理健康問題的現(xiàn)狀與對策
- 跨領域文化活動的組織與推廣
- 購物中心與電商平臺在疫情后的新機遇
- 跨境市場營銷的社交媒體運用
- 飲食均衡與身體健康的關系研究
- 跨國企業(yè)專利侵權行為的國際法律應對
- 跨境電商平臺教育市場運營策略分析
- 稅費計算與智能申報 教案 項目三 增值稅的計算與智能申報
- 高效學生激勵機制的構建要素
- 《勞動法常識(第3版)》中職全套教學課件
- 2025年勞動合同延期補充協(xié)議模板
- 2025年日歷表(含農(nóng)歷、節(jié)假日、記事、A4打印版)
- 《反家庭暴力》課件
- 二零二五年度房地產(chǎn)預售合同協(xié)議4篇
- 建(構)筑物消防員初級技能培訓課件
- 2025-2030年中國天線行業(yè)市場需求狀況規(guī)劃研究報告
- 2024年南京旅游職業(yè)學院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 如何提升自我管理能力
- 2025年潛江市城市建設發(fā)展集團招聘工作人員【52人】高頻重點提升(共500題)附帶答案詳解
- 人教版(新)九年級下冊化學全冊教案教學設計及教學反思
評論
0/150
提交評論