




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計12AVR單片機(jī)原理與應(yīng)用2.1單片機(jī)電路開發(fā)過程2.2AVR單片機(jī)概述2.3Atmega128硬件體系結(jié)構(gòu)2.4基于Atmega128的電路系統(tǒng)設(shè)計2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計22.1單片機(jī)電路開發(fā)過程明確系統(tǒng)設(shè)計硬件電路編寫程序調(diào)試和仿真下載程序軟硬件聯(lián)調(diào)功能優(yōu)化程序優(yōu)化2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計3明確系統(tǒng)系統(tǒng)要求:利用AVR單片機(jī)來控制一個紅色LED和綠色LED。電路加電后,兩個LED均點(diǎn)亮,1s后熄滅,然后點(diǎn)亮綠色的LED,1s以后,綠色的LED熄滅,然后紅色的LED點(diǎn)亮1s。最后紅色的LED和綠色的LED以1Hz左右的頻率閃爍。需要考慮的元器件:AVR單片機(jī)一片、DC/DC轉(zhuǎn)換模塊、發(fā)光二極管若干、電容若干、電阻若干、晶振一個、按鈕一個等。2.1單片機(jī)電路開發(fā)過程2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計4設(shè)計硬件電路2.1單片機(jī)電路開發(fā)過程2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計5編寫程序2.1單片機(jī)電路開發(fā)過程2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計6調(diào)試和仿真編譯項目2.1單片機(jī)電路開發(fā)過程2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計7程序下載下載程序2.1單片機(jī)電路開發(fā)過程返回2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計82.2AVR單片機(jī)概述ATMEL公司是世界上高級半導(dǎo)體產(chǎn)品設(shè)計、制造和行銷的領(lǐng)先者,產(chǎn)品包括了微處理器、可編程邏輯器件、非易失性存儲器、安全芯片、混合信號及RF射頻集成電路。1997年,由ATMEL公司挪威設(shè)計中心的A先生與V先生利用ATMEL公司的Flash新技術(shù),共同研發(fā)出RISC精簡指令集的高速8位單片機(jī),簡稱AVR。相對于出現(xiàn)較早也較為成熟的51系列單片機(jī),AVR系列單片機(jī)片內(nèi)資源更為豐富,接口也更為強(qiáng)大,同時由于其價格低等優(yōu)勢,在很多場合可以替代51系列單片機(jī)。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計92.2AVR單片機(jī)概述AVR單片機(jī)特點(diǎn)---速度快AVR微處理器
以更快的速度運(yùn)行程序-MIPS/MHzAVRRISC–速度優(yōu)先5個并行數(shù)據(jù)總線32個累加器單時鐘周期8,16,24,32和64-bit算術(shù)操作增強(qiáng)的RISC指令集線性地址映射為速度而設(shè)計2時鐘周期的硬件乘法器嵌入式高速存儲器MIPS即MillionInstructionPerSecond的簡寫--計算機(jī)每秒種執(zhí)行的百萬指令數(shù)。是衡量計算機(jī)速度的指標(biāo)。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計102.2AVR單片機(jī)概述AVR單片機(jī)特點(diǎn)---片上資源豐富AVR微處理器
減小PCB尺寸AVR–ALLINSIDE高集成度 Flash程序存儲器
EEPROM數(shù)據(jù)存儲器 CPU
外部存儲器接口 PWM SRAM數(shù)據(jù)存儲器 TWI 8-bit定時器
硬件乘法器 SPI 16-bit定時器
中斷處理 U(S)ART 實時時鐘
上電復(fù)位 10-bitADC 輸入捕捉
看門狗定時器 掉電檢測 輸出比較
片內(nèi)振蕩器 模擬比較器 上拉電阻2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計112.2AVR單片機(jī)概述AVR單片機(jī)特點(diǎn)---代碼更少AVR微處理器
減小你的程序代碼AVRRISC–為最小代碼而設(shè)計5個并行數(shù)據(jù)總線32個累加器4個數(shù)據(jù)/堆棧指針8,16,24,32和64-bit算術(shù)操作增強(qiáng)的RISC指令集線性地址影射適應(yīng)ANSIC和匯編相比付出代價極小指令集由編譯專家建構(gòu)和調(diào)整2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計12傳統(tǒng)的折衷方式適合于
ANSIC速度傳統(tǒng)CISC傳統(tǒng)RISC代碼效率速度2.2AVR單片機(jī)概述AVR單片機(jī)特點(diǎn)---代碼更少2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計13AVR微處理器
降低系統(tǒng)功耗每一個電子都被考慮在內(nèi):單時鐘周期執(zhí)行5個并行數(shù)據(jù)總線6種MCU睡眠模式最小幅度振蕩器0泄漏輸入1.8–6.0V工作電壓2.2AVR單片機(jī)概述AVR單片機(jī)特點(diǎn)---功耗更低2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計142.2AVR單片機(jī)概述AVR單片機(jī)特點(diǎn)---可選擇型號種類多MEGAAVR ATmegaxxx (16KB-128KB)針對需要大程序容量的復(fù)雜應(yīng)用ClassicAVR AT90Sxxxx (1KB-8KB)針對需要大吞吐量,低功耗和中等程序容量的應(yīng)用TinyAVR ATtinyxx (1KB-2KB)針對需要低價格的低端8位MCU市場2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計152.2AVR單片機(jī)概述AVR單片機(jī)特點(diǎn)---可選擇型號種類多存儲器大小性能(1KB-2KB)(1KB-8KB)(16KB-128KB)完全兼容2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計16
低功耗mega8新產(chǎn)品已淘汰主流產(chǎn)品未來產(chǎn)品90S231390S2323/43tiny2890S8535mega161tiny1590S4433mega128mega890S8515tiny26mega32mega8515mega8535tiny13mega169mega162mega64
tiny2313mega256mega1690S1200tiny11/12mega329CANAVRmega1032.2AVR單片機(jī)概述AVR單片機(jī)產(chǎn)品更新?lián)Q代2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計17AVR的中低檔Tiny與AT90S系列產(chǎn)品2.2AVR單片機(jī)概述2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計18AVR的中高檔Mega系列產(chǎn)品2.2AVR單片機(jī)概述2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計19ATtiny10/11/12特點(diǎn)2.2AVR單片機(jī)概述2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計20ATtiny10/11/12特點(diǎn)2.2AVR單片機(jī)概述2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計21ATtiny10/11/12特點(diǎn)2.2AVR單片機(jī)概述2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計22ATtiny10/11/12特點(diǎn)2.2AVR單片機(jī)概述2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計23AT90S1200單片機(jī)特點(diǎn)2.2AVR單片機(jī)概述2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計24AT90S1200單片機(jī)特點(diǎn)2.2AVR單片機(jī)概述2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計25AT90S8515單片機(jī)特點(diǎn)2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計26AT90S8515單片機(jī)特點(diǎn)2.2AVR單片機(jī)概述2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計27AT90S8515單片機(jī)特點(diǎn)2.2AVR單片機(jī)概述2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計28ATmega8單片機(jī)特點(diǎn)2.2AVR單片機(jī)概述2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計292.2AVR單片機(jī)概述ATmega8單片機(jī)特點(diǎn)2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計302.2AVR單片機(jī)概述ATmega8單片機(jī)特點(diǎn)2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計31引腳配置2.2AVR單片機(jī)概述ATmega8單片機(jī)特點(diǎn)返回2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計322.3Atmega128硬件體系結(jié)構(gòu)Atmega128芯片特性Atmega128引腳配置及說明Atmega128的存儲器組織Atmega128的重要寄存器介紹Atmega128基本配置電路2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計33Atmega128的I/O端口2.3Atmega128硬件體系結(jié)構(gòu)Atmega128的中斷處理Atmega128的定時/計數(shù)器Atmega128的USARTAtmega128的TWI(I2C)2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計342.3Atmega128硬件體系結(jié)構(gòu)Atmega128芯片特性高性能、低功耗的AVR8位微處理器先進(jìn)的RISC結(jié)構(gòu)–133條指令–大多數(shù)可以在一個時鐘周期內(nèi)完成–32x8通用工作寄存器+外設(shè)控制寄存器–全靜態(tài)工作–工作于16MHz時性能高達(dá)16MIPS–只需兩個時鐘周期的硬件乘法器2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計352.3Atmega128硬件體系結(jié)構(gòu)Atmega128芯片特性非易失性的程序和數(shù)據(jù)存儲器–128K字節(jié)的系統(tǒng)內(nèi)可編程Flash
壽命:10,000次寫/擦除周期–4K字節(jié)的EEPROM
壽命:100,000次寫/擦除周期–4K字節(jié)的內(nèi)部SRAM–多達(dá)64K字節(jié)的優(yōu)化的外部存儲器空間–可以對鎖定位進(jìn)行編程以實現(xiàn)軟件加密–可以通過SPI實現(xiàn)系統(tǒng)內(nèi)編程2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計362.3Atmega128硬件體系結(jié)構(gòu)Atmega128芯片特性JTAG接口(與IEEE1149.1標(biāo)準(zhǔn)兼容)–遵循JTAG標(biāo)準(zhǔn)的邊界掃描功能–支持?jǐn)U展的片內(nèi)調(diào)試–通過JTAG接口實現(xiàn)對Flash,EEPROM,熔絲位和鎖定位的編程2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計372.3Atmega128硬件體系結(jié)構(gòu)Atmega128芯片特性外設(shè)特點(diǎn)–兩個具有獨(dú)立的預(yù)分頻器和比較器功能的8位定時器/計數(shù)器–兩個具有預(yù)分頻器、比較功能和捕捉功能的16位定時器/計數(shù)器–具有獨(dú)立預(yù)分頻器的實時時鐘計數(shù)器–兩路8位PWM–輸出比較調(diào)制器–6路分辨率可編程(2到16位)的PWM2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計382.3Atmega128硬件體系結(jié)構(gòu)Atmega128芯片特性外設(shè)特點(diǎn)–8路10位ADC8個單端通道,7個差分通道,2個具有可編程增益(1x,10x,或200x)的差分通道–面向字節(jié)的兩線接口–兩個可編程的串行USART–可工作于主機(jī)/從機(jī)模式的SPI串行接口–具有獨(dú)立片內(nèi)振蕩器的可編程看門狗定時器–片內(nèi)模擬比較器2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計392.3Atmega128硬件體系結(jié)構(gòu)Atmega128芯片特性特殊的處理器特點(diǎn)–上電復(fù)位以及可編程的掉電檢測–片內(nèi)經(jīng)過標(biāo)定的RC振蕩器–片內(nèi)/片外中斷源–6種睡眠模式:空閑模式、ADC噪聲抑制模式、省電模式、掉電模式、Standby2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計402.3Atmega128硬件體系結(jié)構(gòu)Atmega128芯片特性模式以及擴(kuò)展的Standby模式–可以通過軟件進(jìn)行選擇的時鐘頻率–通過熔絲位可以選擇ATmega103兼容模式–全局上拉禁止功能
I/O和封裝–53個可編程I/O口線–64引腳TQFP與64引腳MLF封裝2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計412.3Atmega128硬件體系結(jié)構(gòu)Atmega128芯片特性工作電壓–2.7-5.5VATmega128L–4.5-5.5VATmega128速度等級–0-8MHzATmega128L–0-16MHzATmega1282024/8/20機(jī)電系統(tǒng)控制電路設(shè)計422.3Atmega128硬件體系結(jié)構(gòu)Atmega128芯片特性返回2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計43Atmega128引腳配置及說明2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計442.3Atmega128硬件體系結(jié)構(gòu)Atmega128引腳配置及說明VCC――數(shù)字電路的電源。GND――地。端口A(PA7..PA0)――端口A為8位雙向I/O口,并具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時,若內(nèi)部上拉電阻使能,則端口被外部電路拉低時將輸出電流。復(fù)位發(fā)生時端口A為三態(tài)。端口B(PB7..PB0)――端口B為8位雙向I/O口,并具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時,若內(nèi)部上拉電阻使能,則端口被外部電路拉低時將輸出電流。復(fù)位發(fā)生時端口B為三態(tài)。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計452.3Atmega128硬件體系結(jié)構(gòu)Atmega128引腳配置及說明端口C(PC7..PC0)――端口C為8位雙向I/O口,并具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時,若內(nèi)部上拉電阻使能,則端口被外部電路拉低時將輸出電流。復(fù)位發(fā)生時端口C為三態(tài)。端口D(PD7..PD0)――端口D為8位雙向I/O口,并具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時,若內(nèi)部上拉電阻使能,則端口被外部電路拉低時將輸出電流。復(fù)位發(fā)生時端口D為三態(tài)。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計462.3Atmega128硬件體系結(jié)構(gòu)Atmega128引腳配置及說明端口F(PF7..PF0)――端口F為ADC的模擬輸入引腳。如果不作為ADC的模擬輸入,端口F可以作為8位雙向I/O口,并具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時,若內(nèi)部上拉電阻使能,則端口被外部電路拉低時將輸出電流。復(fù)位發(fā)生時端口F為三態(tài)。如果使能了JTAG接口,則復(fù)位發(fā)生時引腳PF7(TDI)、PF5(TMS)和PF4(TCK)的上拉電阻使能。端口F也可以作為JTAG接口。端口G(PG4..PG0)――端口G為5位雙向I/O口,并具有可編程的內(nèi)部上拉電阻。其輸出緩沖器具有對稱的驅(qū)動特性,可以輸出和吸收大電流。作為輸入使用時,若內(nèi)部上拉電阻使能,則端口被外部電路拉低時將輸出電流。復(fù)位發(fā)生時端口G為三態(tài)。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計472.3Atmega128硬件體系結(jié)構(gòu)Atmega128引腳配置及說明RESET――復(fù)位輸入引腳。超過最小門限時間的低電平將引起系統(tǒng)復(fù)位。低于門限時間的脈沖不能保證可靠復(fù)位。XTAL1――反向振蕩器放大器及片內(nèi)時鐘操作電路的輸入。XTAL2――反向振蕩器放大器的輸出。AVCC――AVCC為端口F以及ADC轉(zhuǎn)換器的電源,需要與VCC相連接,即使沒有使用ADC也應(yīng)該如此。使用ADC時應(yīng)該通過一個低通濾波器與VCC連接。AREF――AREF為ADC的模擬基準(zhǔn)輸入引腳。PEN――PEN是SPI串行下載的使能引腳。在上電復(fù)位時保持PEN為低電平將使器件進(jìn)入SPI串行下載模式。在正常工作過程中PEN引腳沒有其他功能。返回2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計482.3Atmega128硬件體系結(jié)構(gòu)Atmega128基本配置電路Atmega128單片機(jī)復(fù)位電路時鐘電路下載電路電源2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計49Atmega128基本配置電路電源模塊
任何電路控制系統(tǒng),首要解決的問題是電源問題。對于單片機(jī)控制系統(tǒng)而言,電源系統(tǒng)的穩(wěn)定性決定著控制系統(tǒng)的穩(wěn)定性,也是系統(tǒng)能否可靠工作的前提條件。如何設(shè)計一個單片機(jī)控制系統(tǒng)的電源?這是我們設(shè)計過程中首要解決的問題。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計50Atmega128基本配置電路復(fù)位電路復(fù)位電路可以由簡單的RC電路構(gòu)成,但在對穩(wěn)定性有較高要求的應(yīng)用場合,一般要采用專用的復(fù)位芯片(如MAX809/810等)。這里給出常見的RC復(fù)位電路,可以滿足一般應(yīng)用的需要。
系統(tǒng)上電復(fù)位:在系統(tǒng)上電時,通過電阻R1向電容C1充電,當(dāng)C1兩端的電壓未達(dá)到高電平的門限電壓時,Reset端輸出為低電平,系統(tǒng)處于復(fù)位狀態(tài);當(dāng)C1兩端的電壓達(dá)到高電平的門限電壓時,Reset端輸出為高電平,系統(tǒng)進(jìn)入正常工作狀態(tài)。
手動復(fù)位:當(dāng)按下復(fù)位按鈕S1時,C1兩端的電荷被放掉,Reset端輸出為低電平,系統(tǒng)進(jìn)入復(fù)位狀態(tài),再重復(fù)以上的充電過程,系統(tǒng)進(jìn)入正常工作狀態(tài)。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計51Atmega128基本配置電路復(fù)位電路MAX809是一種單一功能的微處理器復(fù)位芯片,用于監(jiān)控微控制器和其他邏輯系統(tǒng)的電源電壓。它可以在上電、掉電和節(jié)電情況下向微控制器提供復(fù)位信號。當(dāng)電源電壓低于預(yù)設(shè)的門檻電壓時,器件會發(fā)出復(fù)位信號,直到在一段時間內(nèi)電源電壓又恢復(fù)到高于門檻電壓為止。從圖中可以看出,MAX809是低電平有效的復(fù)位器件,而同類的MAX810是高電平有效的復(fù)位輸出。MAX809復(fù)位電路2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計52Atmega128基本配置電路上電復(fù)位:當(dāng)電源電壓低于上電復(fù)位門限(VPOT)時,MCU復(fù)位。外部復(fù)位:當(dāng)引腳RESET上的低電平持續(xù)時間大于最小脈沖寬度時MCU復(fù)位??撮T狗復(fù)位:當(dāng)看門狗使能并且看門狗定時器超時時復(fù)位發(fā)生。掉電檢測復(fù)位:當(dāng)?shù)綦姍z測復(fù)位功能使能,且電源電壓低于掉電檢測復(fù)位門限(VBOT)時MCU即復(fù)位。JTAGAVR復(fù)位:當(dāng)復(fù)位寄存器為1時MCU即復(fù)位。ATmega128有5個復(fù)位源:2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計53Atmega128基本配置電路ATmega128復(fù)位邏輯2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計54Atmega128基本配置電路ATmega128復(fù)位特性2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計55Atmega128基本配置電路上電復(fù)位時序MCU啟動過程,RESET連接到VCC2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計56Atmega128基本配置電路上電復(fù)位時序MCU啟動過程,RESET由外電路控制2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計57Atmega128基本配置電路外部復(fù)位時序工作過程中發(fā)生外部復(fù)位2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計58看門狗定時器溢出時將產(chǎn)生持續(xù)時間為1個CK周期的復(fù)位脈沖。在脈沖的下降沿,延時定時器開始對tTOUT
記數(shù)。Atmega128基本配置電路看門狗復(fù)位時序2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計59Atmega128基本配置電路看門狗定時器
看門狗定時器的設(shè)定可以調(diào)解看門狗復(fù)位的時間間隔。看門狗定時器由獨(dú)立的1Mhz片內(nèi)振蕩器驅(qū)動。不同供電電壓,振蕩器頻率不同。通過設(shè)置看門狗定時器的預(yù)分頻器可以調(diào)節(jié)看門狗復(fù)位的時間間隔??撮T狗復(fù)位指令WDR用來復(fù)位看門狗定時器。此外,禁止看門狗定時器或發(fā)生復(fù)位時定時器也被復(fù)位。復(fù)位時間有8個選項。如果沒有及時復(fù)位定時器,一旦時間超過復(fù)位周期,ATmega128就復(fù)位,并執(zhí)行復(fù)位向量指向的程序。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計60看門狗定時器預(yù)分頻器選項Atmega128基本配置電路看門狗定時器2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計61Atmega128基本配置電路看門狗定時器
要實現(xiàn)看門狗定時器的功能,必須了解看門狗定時器控制寄存器-WDTCR。Bits7..5–Res:保留保留位,讀操作返回值為零。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計62Atmega128基本配置電路看門狗定時器Bit4–WDCE:看門狗修改使能清零WDE時必須先置位WDCE,否則不能禁止看門狗。一旦置位,硬件將在緊接的4個時鐘周期之后將其清零。
要實現(xiàn)看門狗定時器的功能,必須了解看門狗定時器控制寄存器-WDTCR。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計63Atmega128基本配置電路看門狗定時器Bit3–WDE:看門狗使能WDE為"1"時,看門狗使能,否則看門狗將被禁止。只有在WDCE為"1"時WDE才能清零。以下為關(guān)閉看門狗的步驟:1.在同一個指令內(nèi)對WDCE和WDE寫"1",即使WDE已經(jīng)為"1"。2.在緊接的4個時鐘周期之內(nèi)對WDE寫"0"。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計64Atmega128基本配置電路看門狗定時器Bits2..0–WDP2,WDP1,WDP0:看門狗定時器預(yù)分頻器2,1,和02024/8/20機(jī)電系統(tǒng)控制電路設(shè)計65Atmega128基本配置電路軟件設(shè)置看門狗定時器2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計66Atmega128基本配置電路時鐘電路所謂時鐘,實際上就是以一個特定頻率連續(xù)不斷出現(xiàn)的方波。單片機(jī)在每一個方波的上升沿執(zhí)行指令。一條指令如果能在一個時鐘周期(即方波的一個周期)內(nèi)執(zhí)行完,成為“單周期指令”,否則稱為“多周期指令”。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計67Atmega128基本配置電路時鐘電路
應(yīng)當(dāng)注意的是,這里所說的“一個指令”,指的是一條匯編語句,而不是C語句。一條C語句可能會被編譯成若干條匯編語句,而不同的C編譯器編譯的結(jié)果可能是不同的,即便是同一個C編譯器,在不同條件下對同一條C語句進(jìn)行編譯的結(jié)果也可能是不同的。這就意味著,無法預(yù)知一條C語句將占用多少個時鐘周期(即運(yùn)行多長時間)。這就是用C語言對單片機(jī)進(jìn)行編程的缺點(diǎn),在某些對時序要求極高的情況下,人們通常采用匯編語言或者將C語言與匯編語言混合使用。但對于初學(xué)者而言,用C語言對單片機(jī)進(jìn)行編程簡單易學(xué),且足以滿足大部分的需要。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計68Atmega128基本配置電路時鐘電路2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計69Atmega128基本配置電路時鐘電路2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計70Atmega128基本配置電路時鐘電路程序內(nèi)部顯示時鐘軟件設(shè)置時鐘頻率2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計71芯片有如下幾種通過熔絲位選擇的時鐘源Atmega128基本配置電路時鐘電路2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計72Atmega128基本配置電路時鐘電路AVR系列單片機(jī)在仿真調(diào)試之前,首先必須對AVR的熔絲位和鎖定位進(jìn)行配置。如果配置不當(dāng),則可能造成單片機(jī)不能正常工作,嚴(yán)重時可能導(dǎo)致單片機(jī)死鎖。因此,對單片機(jī)熔絲位和鎖定位的正確配置顯得尤為重要。
熔絲位是對單片機(jī)具體功能和工作模式的限定,其正確配置與否直接影響到單片機(jī)能否正常工作;鎖定位是對單片機(jī)的程序和數(shù)據(jù)進(jìn)行加密,以防止單片機(jī)中的程序和數(shù)據(jù)被讀出或?qū)懭搿T谶M(jìn)行配置時,一般先配置熔絲位,再配置鎖定位。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計73ATmega128的熔絲位共有3個字節(jié):熔絲位擴(kuò)展字節(jié)、熔絲位高字節(jié)和熔絲位低字節(jié)。Atmega128基本配置電路時鐘電路軟件設(shè)置熔絲位2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計74Atmega128基本配置電路下載電路當(dāng)RESET位低電平時,可以通過串行SPI總線對Flash及EEPROM進(jìn)行編程。串行接口包括SCK、MOSI(輸入)及MISO(輸出)。RESET為低之后,應(yīng)在執(zhí)行編程/擦除操作之前執(zhí)行編程允許指令。不是所有的器件都使用SPI引腳專用于內(nèi)部SPI接口。注意,在串行載入的說明中,MOSI與MISO分別描述連續(xù)數(shù)據(jù)的輸入與輸出。在ATmega128中,這些引腳映射為PDI與PDO。SPI串行編程及JTAG編程2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計75Atmega128基本配置電路下載電路Atmega128SPI串行編程引腳映射盡管SPI編程接口重用SPII/O模塊,但其中有一點(diǎn)不同:MOSI/MISO引腳映射到SPII/O模塊的PB2與PB3在編程接口并不使用。而PE0與PE1用來傳遞數(shù)據(jù).2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計76Atmega128基本配置電路下載電路通過JTAG接口進(jìn)行編程需要控制4個JTAG專用引腳:TCK、TMS、TDI及TDO。reset及時鐘引腳不用控制。JTAG(JointTestActionGroup;聯(lián)合測試行動小組)是一種國際標(biāo)準(zhǔn)測試協(xié)議(IEEE1149.1兼容),主要用于芯片內(nèi)部測試。現(xiàn)在多數(shù)的高級器件都支持JTAG協(xié)議,如MCU、DSP、FPGA器件等。JTAG編程方式是在線編程,傳統(tǒng)生產(chǎn)流程中先對芯片進(jìn)行預(yù)編程現(xiàn)再裝到板上因此而改變,簡化的流程為先固定器件到電路板上,再用JTAG編程,從而大大加快工程進(jìn)度。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計77Atmega128基本配置電路下載電路返回2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計782.3Atmega128硬件體系結(jié)構(gòu)Atmega128的CPU內(nèi)核結(jié)構(gòu)2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計79CPU的主要任務(wù)是保證程序的正確執(zhí)行。因此它必須能夠訪問存儲器,執(zhí)行運(yùn)算,控制外設(shè)以及處理中斷。為了得到最大程度的性能以及并行性,AVR采用了Harvard結(jié)構(gòu),具有獨(dú)立的數(shù)據(jù)和程序總線。程序存儲器的指令通過一級流水線運(yùn)行。CPU在執(zhí)行一條指令的同時讀取下一條指令(在本文稱為預(yù)取)。這個概念實現(xiàn)了指令的單時鐘周期運(yùn)行。程序存儲器為可以在線編程的FLASH??焖僭L問寄存器文件包括32個8位通用工作寄存器,而且都可以在一個時鐘周期內(nèi)訪問。從而實現(xiàn)單時鐘周期的ALU操作。在典型的ALU操作過程中,兩個位于寄存器文件中的操作數(shù)同時被訪問,然后執(zhí)行相應(yīng)的運(yùn)算,結(jié)果再被送回寄存器文件。整個過程僅需要一個時鐘周期。Atmega128的CPU內(nèi)核結(jié)構(gòu)2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計802.3Atmega128硬件體系結(jié)構(gòu)Atmega128的存儲器組織Flash程序存儲器SRAM數(shù)據(jù)存儲器
EEPROM數(shù)據(jù)存儲器2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計81Flash程序存儲器Atmega128的存儲器組織ATmega128具有128K字節(jié)的在線編程Flash。因為所有的AVR指令為16位或32位,故爾FLASH組織成64Kx16的形式??紤]到軟件安全性,F(xiàn)lash程序存儲器分為兩個區(qū):引導(dǎo)程序區(qū)和應(yīng)用程序區(qū)。Flash存儲器至少可以擦寫10,000次。ATmega128的程序計數(shù)器PC為16位,因此可以尋址64K的程序存儲器。
可利用SPI或JTAG接口實現(xiàn)對Flash的串行下載。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計82Flash程序存儲器Atmega128的存儲器組織
一般而言,C程序中的變量可以選擇存放在SRAM或者EEPROM中,而常量可以選擇放在SRAM或者Flash中。標(biāo)準(zhǔn)C的變量類型一般都適用于單片機(jī)的C語言,如char、float、double、unsignedint等。CodeVisionAVRC編譯器中的數(shù)據(jù)類型如下表所示。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計83
AVR單片機(jī)中的Flash本來是用作程序存儲空間的,但可以利用其存儲容量大的特點(diǎn),在剩余足夠空間的前提下,將一些在使用中沒有必要改變的數(shù)值或者字符串等存放在Flash中。當(dāng)然,也可以將其存放在SRAM中,但Flash比SRAM的空間大好幾倍;此外這些數(shù)值或字符串在使用過程中沒有必要改動,存放在Flash中會比存放在SRAM更合適。CodeVisionAVRC編譯器對于用戶沒有指定只能保存在Flash中的字符串,在啟動時將字符串從程序存儲區(qū)復(fù)制到數(shù)據(jù)存儲區(qū)。Char*ptr_to_sram=”thisisplacedinSRAM”;上面例子中沒有指定字符串只存儲于Flash,因此啟動時會將該字符串復(fù)制到數(shù)據(jù)存儲空間。Charflash*ptr_to_flash=”thisisplacedinFlash”;在上例中,用戶使用了flash關(guān)鍵字,因此字符串只存儲于Flash空間。Flash程序存儲器Atmega128的存儲器組織2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計84Flash程序存儲器Atmega128的存儲器組織2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計85Atmega128的存儲器組織SRAM數(shù)據(jù)存儲器
ATmega128支持兩種不同的SRAM配置普通模式兼容模式2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計86EEPROM數(shù)據(jù)存儲器Atmega128的存儲器組織ATmega128包含4K字節(jié)的EEPROM。它是作為一個獨(dú)立的數(shù)據(jù)空間而存在的,可以按字節(jié)讀寫。EEPROM的壽命至少為100,000次(擦除)。EEPROM的訪問由地址寄存器,數(shù)據(jù)寄存器和控制寄存器決定。EEPROM的訪問寄存器位于I/O空間。當(dāng)執(zhí)行EEPROM讀操作時,CPU會停止工作4個周期,然后再執(zhí)行后續(xù)指令;當(dāng)執(zhí)行EEPROM寫操作時,CPU會停止工作2個周期,然后再執(zhí)行后續(xù)指令。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計87
CodeVisionAVRC編譯器中,可以用eeprom關(guān)鍵字將全局變量分配至EEPROM中,如:
eeprominta;也可以在定義時對變量初始化,如:eeprominta=1;CodeVisionAVRC編譯器中還可以將數(shù)組、字符串、結(jié)構(gòu)體分配至EEPROM中,如:eepromchara[4]={0,1,2,3};//數(shù)組Chareeprom*ptr_to_eeprom=”thisisplacedinEEPROM”;//字符串Eepromstructa{charb;intc;chare[15];}f;在CodeVisionAVRC編譯器中可以直接訪問EEPROM中的全局變量,與訪問SRAM中的數(shù)據(jù)方式相同。EEPROM數(shù)據(jù)存儲器Atmega128的存儲器組織2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計88EEPROM數(shù)據(jù)存儲器Atmega128的存儲器組織EEPROM地址寄存器-EEARH和EEARL機(jī)電系統(tǒng)控制電路設(shè)計89EEPROM數(shù)據(jù)存儲器Bits15..12–Res:保留保留位,讀操作返回值為零。在寫數(shù)據(jù)時要寫入0以保證與未來產(chǎn)品的兼容。Bits11..0–EEAR11..0:EEPROM地址EEARH和EEARL指定了4K字節(jié)的EEPROM空間。EEPROM的地址是線性的,從0到4096。EEAR的初始值沒有定義。在訪問EEPROM之前必須為其賦予正確的數(shù)據(jù)。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計90EEPROM數(shù)據(jù)存儲器EEPROM數(shù)據(jù)寄存器-EEDRBits7..0–EEDR7.0:EEPROM數(shù)據(jù)對于EEPROM寫操作,EEDR是需要寫到EEAR單元的數(shù)據(jù);對于EEPROM讀操作,EEDR是從地址EEAR讀取的數(shù)據(jù)。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計91EEPROM數(shù)據(jù)存儲器EEPROM控制寄存器-EECRBits7..4–Res:保留保留位,讀操作返回值為零。Bit3–EERIE:EEPROM就緒中斷使能若SREG的I為"1",則置位EERIE使能EEPROM就緒中斷。清零EERIE則禁止此中斷。當(dāng)EEWE清零時EEPROM就緒中斷即可發(fā)生。Bit2–EEMWE:EEPROM主機(jī)寫使能EEMWE決定設(shè)置EEWE為"1"是否可以啟動EEPROM寫操作。當(dāng)EEMWE為"1"時,在4個時鐘周期內(nèi)置位EEWE將把數(shù)據(jù)寫入EEPROM的指定地址;若EEMWE為"0",則EEWE不起作用。EEMWE置位后4個周期,硬件對其清零。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計92EEPROM數(shù)據(jù)存儲器EEPROM控制寄存器-EECRBit1–EEWE:EEPROM寫使能當(dāng)EEPROM數(shù)據(jù)和地址設(shè)置好之后,需置位EEWE以便將數(shù)據(jù)寫入EEPROM。此時EEMWE必須置位,否則EEPROM寫操作將不會發(fā)生。Bit0–EERE:EEPROM讀使能當(dāng)EEPROM地址設(shè)置好之后,需置位EERE以便將數(shù)據(jù)讀入EEAR。EEPROM數(shù)據(jù)的讀取只需要一條指令,且無需等待。讀取EEPROM時CPU要停止4個時鐘周期。用戶在讀取EEPROM時應(yīng)該檢測EEWE。如果一個寫操作正在進(jìn)行,就無法讀取EEPROM,也無法改變寄存器EEAR。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計93voidEEPROMwrite(intlocation,unsignedchardatabyte){ unsignedcharsavedSREG; EEAR=location;//setaddress EEDR=databyte;//setdata savedSREG=SREG;//keepsettingsoitcanberestored CLI(); //disableinterrupts EECR|=BIT(EEMWE); //set"writeenable"bit EECR|=BIT(EEWE);//set"write"bit SREG=savedSREG;//restoreSREG EEAR=0;}EEPROM數(shù)據(jù)存儲器向EEPROM中寫數(shù)據(jù)程序2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計94unsignedcharEEPROMread(intlocation){ EEAR=location;//setaddress EECR|=BIT(EERE);//set"readenable"bit EEAR=0; return(EEDR);}EEPROM數(shù)據(jù)存儲器從EEPROM中讀數(shù)據(jù)程序2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計95EEPROM數(shù)據(jù)存儲器返回2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計962.3Atmega128硬件體系結(jié)構(gòu)Atmega128的重要寄存器介紹MCU控制寄存器-MCUCRBit7–SRE:外部SRAM/XMEM使能SRE為"1"時外部存儲器接口使能。引腳AD7:0,A15:8,ALE,WR和RD工作于第二功能,且自動按照要求配置端口方向寄存器。SRE清零將使外部SRAM無效,相關(guān)端口可以當(dāng)作普通I/O口使用。Bit6–SRW10:等待狀態(tài)選擇位對于ATmega103兼容模式,SRW10寫"1“將使能等待狀態(tài),在讀/寫過程中插入一個時鐘周期。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計972.3Atmega128硬件體系結(jié)構(gòu)Atmega128的重要寄存器介紹MCU控制寄存器-MCUCRBit5–SE:睡眠使能為了使MCU在執(zhí)行SLEEP指令后進(jìn)入睡眠模式,SE必須置位。為了確保進(jìn)入睡眠模式是程序員的有意行為,建議僅在SLEEP指令的前一條指令置位SE。一旦喚醒立即清除SE。Bits4..2–SM2..0:睡眠模式選擇位2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計982.3Atmega128硬件體系結(jié)構(gòu)Atmega128的重要寄存器介紹MCU控制寄存器-MCUCR睡眠模式選擇2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計99MCU控制寄存器包含了電源管理的控制位。睡眠模式可以使應(yīng)用程序關(guān)閉MCU中沒有使用的模塊,從而降低功耗。AVR具有不同的睡眠模式,允許用戶根據(jù)自己的應(yīng)用要求實施剪裁。進(jìn)入睡眠模式的條件是置位寄存器MCUCR的SE,然后執(zhí)行SLEEP指令。具體哪一種模式(空閑模式、ADC噪聲抑制模式、掉電模式、省電模式、Standby模式和擴(kuò)展Standby模式)由MCUCR的SM2、SM1和SM0決定。Atmega128的重要寄存器介紹MCU控制寄存器-MCUCR2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計100Atmega128的重要寄存器介紹MCU控制寄存器-MCUCRBit1–IVSEL:中斷向量選擇當(dāng)IVSEL為"0“時,中斷向量位于Flash存儲器的起始地址;當(dāng)IVSEL為"1“時,中斷向量轉(zhuǎn)移到Boot區(qū)的起始地址。實際的Boot區(qū)起始地址由熔絲位BOOTSZ確定。Bit0–IVCE:中斷向量修改使能改變IVSEL時IVCE必須置位。在IVCE或IVSEL寫操作之后4個時鐘周期,IVCE被硬件清零。如前面所述,置位IVCE將禁止中斷。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計101Atmega128的重要寄存器介紹MCU控制和狀態(tài)寄存器-MCUCSRBit7–JTD:JTAG接口禁用當(dāng)這一位為‘0’,且JTAG使能熔絲位JTAGEN被編程時JTAG接口使能;否則JTAG接口功能禁止。若JTAG接口未與其他JTAG電路連接,JTD位應(yīng)置為‘1’,以避免JTAG接口TDO引腳的靜態(tài)電流。Bit4–JTRF:JTAG復(fù)位標(biāo)志若復(fù)位是由JTAG復(fù)位寄存器不為'0’且執(zhí)行了的AVR_RESET指令引發(fā)的,JTRF置位。通過寫入'0’或上電復(fù)位的方法可以將其清零。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計102Atmega128的重要寄存器介紹MCU控制和狀態(tài)寄存器-MCUCSRBit3–WDRF:看門狗復(fù)位標(biāo)志看門狗復(fù)位發(fā)生時置位。上電復(fù)位將使其清零,也可以通過寫”0”來清除。Bit2–BORF:掉電檢測復(fù)位標(biāo)志掉電檢測復(fù)位發(fā)生時置位。上電復(fù)位將使其清零,也可以通過寫”0”來清除。Bit1–EXTRF:外部復(fù)位標(biāo)志外部復(fù)位發(fā)生時置位。上電復(fù)位將使其清零,也可以通過寫”0”來清除。Bit0–PORF:上電復(fù)位標(biāo)志上電復(fù)位發(fā)生時置位。只能通過寫”0”來清除。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計103Atmega128的重要寄存器介紹狀態(tài)寄存器-SREG狀態(tài)寄存器包含了最近執(zhí)行的算術(shù)指令的結(jié)果信息。這些信息可以用來改變程序流程以實現(xiàn)條件操作。狀態(tài)寄存器的內(nèi)容只有在ALU運(yùn)算結(jié)束后才會更新。這樣,在多數(shù)情況下就不需要專門的比較指令了,從而使系統(tǒng)運(yùn)行更快速,代碼效率更高。在進(jìn)入中斷例程時狀態(tài)寄存器不會自動保存;中斷返回時也不會自動恢復(fù)。這些工作需要軟件來處理。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計104Atmega128的重要寄存器介紹狀態(tài)寄存器-SREG?Bit7–I:全局中斷使能置位時使能全局中斷。單獨(dú)的中斷使能由其他獨(dú)立的控制寄存器控制。如果I清零,則不論單獨(dú)中斷標(biāo)志置位與否,都不會產(chǎn)生中斷。任意一個中斷發(fā)生后I清零,而執(zhí)行RETI指令后置位以使能中斷。I也可以通過SEI和CLI指令來置位和清零。?Bit6–T:位拷貝存儲位拷貝指令BLD和BST利用T作為目的或源地址。BST把寄存器的某一位拷貝到T,而BLD把T拷貝到寄存器的某一位。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計105Atmega128的重要寄存器介紹狀態(tài)寄存器-SREG?Bit5–H:半進(jìn)位標(biāo)志半進(jìn)位標(biāo)志H表示算術(shù)操作發(fā)生了半進(jìn)位。此標(biāo)志對于BCD運(yùn)算非常有用。?Bit4–S:符號位,S=N⊕VS為負(fù)數(shù)標(biāo)志N與2的補(bǔ)碼溢出標(biāo)志V的異或。?Bit3–V:2的補(bǔ)碼溢出標(biāo)志支持2的補(bǔ)碼運(yùn)算。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計106Atmega128的重要寄存器介紹狀態(tài)寄存器-SREG?Bit2–N:負(fù)數(shù)標(biāo)志表明算術(shù)或邏輯操作結(jié)果為負(fù)。?Bit1–Z:零標(biāo)志表明算術(shù)或邏輯操作結(jié)果為零。?Bit0–C:進(jìn)位標(biāo)志表明算術(shù)或邏輯操作發(fā)生了進(jìn)位。返回2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計107Atmega128的I/O端口2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計108作為通用數(shù)字I/O使用時,所有AVRI/O端口都具有真正的讀-修改-寫功能。輸出緩沖器具有對稱的驅(qū)動能力,可以輸出或吸收大電流,直接驅(qū)動LED。所有的端口引腳都具有與電壓無關(guān)的上拉電阻。每個端口都有三個I/O存儲器地址:數(shù)據(jù)寄存器–PORTx數(shù)據(jù)方向寄存器–DDRx端口輸入引腳–PINx數(shù)據(jù)寄存器和數(shù)據(jù)方向寄存器為讀/寫寄存器,而端口輸入引腳為只讀寄存器。當(dāng)寄存器SFIOR的上拉禁止位PUD置位時所有端口的全部引腳的上拉電阻都被禁止。Atmega128的I/O端口2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計109端口A數(shù)據(jù)寄存器-PORTAAtmega128的I/O端口端口A數(shù)據(jù)方向寄存器-DDRA端口A輸入引腳地址-PINA2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計110端口G數(shù)據(jù)寄存器-PORTGAtmega128的I/O端口端口G數(shù)據(jù)方向寄存器-DDRG端口G輸入引腳地址-PING2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計111Atmega128的I/O端口特殊功能IO寄存器-SFIOR?Bit2–PUD:禁止上拉電阻置位時,即使將寄存器DDxn和PORTxn配置為使能上拉電阻({DDxn,PORTxn}=0b01),I/O端口的上拉電阻也被禁止。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計112Atmega128的I/O端口端口引腳配置不論如何配置DDxn,都可以通過讀取PINxn寄存器來獲得引腳電平。如果有引腳未被使用,建議給這些引腳賦予一個確定電平。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計113Atmega128的I/O端口端口引腳配置最簡單的保證未用引腳具有確定電平的方法是使能內(nèi)部上拉電阻。但要注意的是復(fù)位時上拉電阻將被禁用。如果復(fù)位時的功耗也有嚴(yán)格要求則建議使用外部上拉或下拉電阻。不推薦直接將未用引腳與VCC或GND連接,因為這樣可能會在引腳偶然作為輸出時出現(xiàn)沖擊電流。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計114Atmega128的I/O端口端口A的第二功能2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計115Atmega128的I/O端口端口B的第二功能2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計116Atmega128的I/O端口端口C的第二功能端口引腳第二功能PC7 A15(為外部存儲器接口的地址高字節(jié))PC6 A14(為外部存儲器接口的地址高字節(jié))PC5 A13(為外部存儲器接口的地址高字節(jié))PC4 A12(為外部存儲器接口的地址高字節(jié))PC3 A11(為外部存儲器接口的地址高字節(jié))PC2 A10(為外部存儲器接口的地址高字節(jié))PC1 A9(為外部存儲器接口的地址高字節(jié))PC0 A8(為外部存儲器接口的地址高字節(jié))2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計117Atmega128的I/O端口端口D的第二功能2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計118Atmega128的I/O端口端口E的第二功能2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計119Atmega128的I/O端口端口F的第二功能2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計120Atmega128的I/O端口端口G的第二功能2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計121Atmega128的I/O端口利用I/O端口實現(xiàn)八段數(shù)碼管輸出顯示由八段LED構(gòu)成各LED陰極或陽極并在一起,稱為“位選線”:共陰、共陽其余8個引腳各自引出,稱為“段選線”,各段可以分別控制2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計122Atmega128的I/O端口數(shù)字0123456789共陰極0x3F0x060x5B0x4F0x660x6D0x7D0x070x7F0x6F共陽極0xC00xF90xA40xB00x990x920x820xF80x800x90共陰極、共陽極數(shù)碼管段碼表2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計123Atmega128的I/O端口利用I/O端口點(diǎn)亮四個7段數(shù)碼管返回2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計124Atmega128的中斷處理2.3Atmega128硬件體系結(jié)構(gòu)在程序運(yùn)行期間,發(fā)生非預(yù)期的緊急事件通常是為了避免查詢方式的程序設(shè)計用得最多的是外部中斷與定時器中斷外部中斷:按鍵程序定時器中斷:定時與循環(huán)掃描等應(yīng)用場合中斷服務(wù)程序中斷發(fā)生時,主程序暫停,跳轉(zhuǎn)到中斷服務(wù)程序,稱為“響應(yīng)中斷”執(zhí)行完畢后返回主程序繼續(xù)運(yùn)行中斷的概念2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計125Atmega128的中斷處理中斷屬于一種對事件的實時處理過程。中斷源可能隨時停止單片機(jī)當(dāng)前正在處理的工作,轉(zhuǎn)而去處理中斷事件,待中斷時間處理完畢之后,再返回原來工作的斷點(diǎn)處,繼續(xù)原來的工作。對于單片機(jī)的中斷系統(tǒng),需要了解這幾個概念:中斷源、中斷信號、中斷向量、中斷優(yōu)先級、中斷嵌套、中斷控制(屏蔽)、中斷響應(yīng)條件、中斷響應(yīng)過程(中斷服務(wù)程序)。如何很好的理解中斷概念?2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計126Atmega128的中斷處理中斷源的理解中斷源是指能夠向單片機(jī)發(fā)出中斷請求信號的部件和設(shè)備。對于單片機(jī)來講,往往存在多個中斷源。中斷源一般可分為內(nèi)部中斷源和外部中斷源。單片機(jī)內(nèi)部集成的許多功能模塊,如定時器、串行通訊口、模/數(shù)轉(zhuǎn)換器等,它們在正常工作時往往無需CPU參與,而當(dāng)處于某種狀態(tài)或達(dá)到某個規(guī)定值需要程序控制時,會通過發(fā)出中斷請求信號通知CPU。這一類的中斷源位于單片機(jī)內(nèi)部,稱作內(nèi)部中斷源。內(nèi)部中斷源在中斷條件成立時,一般通過片內(nèi)硬件會自動產(chǎn)生中斷請求信號,無須用戶介入,使用方便。內(nèi)部中斷是CPU管理片內(nèi)資源的一種高效的途徑。系統(tǒng)中的外部設(shè)備也可以用作中斷源,這時要求它們能夠產(chǎn)生一個中斷信號(通常是高(低)電平或者電平跳變的上升(下降)沿),送到單片機(jī)的外部中斷請求引腳供CPU檢測。這些中斷源位于單片機(jī)外部,稱為外部中斷源。通常用作外部中斷源的有輸入輸出設(shè)備、控制對象、以及故障源等。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計127Atmega128的中斷處理中斷信號的理解中斷信號是指內(nèi)部或外部中斷源產(chǎn)生的中斷申請信號,這個中斷信號往往是電信號的某種變化形式,通常有以下幾種類型:脈沖的上升沿或下降沿(上升沿觸發(fā)型或下降沿觸發(fā)型)高電平或低電平(電平觸發(fā)型)電平的變化(狀態(tài)變化觸發(fā)型)對于單片機(jī)來講,不同的中斷源,產(chǎn)生什么類型的中斷信號能夠觸發(fā)申請中斷,取決于芯片內(nèi)部的硬件結(jié)構(gòu),而且通常也可以通過用戶的軟件來設(shè)定。單片機(jī)的硬件系統(tǒng)會自動對這些中斷信號進(jìn)行檢測。一旦檢測到規(guī)定的信號出現(xiàn),將會把相應(yīng)的中斷標(biāo)志位置“1”(在I/O空間的控制或狀態(tài)寄存器中),通知CPU進(jìn)行處理。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計128Atmega128的中斷處理中斷向量的理解中斷源發(fā)出的請求信號被CPU檢測到之后,如果單片機(jī)的中斷控制系統(tǒng)允許響應(yīng)中斷,CPU會自動轉(zhuǎn)移,執(zhí)行一個固定的程序空間地址中的指令。這個固定的地址稱作中斷入口地址,也叫做中斷向量。中斷入口地址往往是由單片機(jī)內(nèi)部硬件決定的。一個單片機(jī)有若干個中斷源,每個中斷源都有著自己的中斷向量。這些中斷向量一般在程序存儲空間中占用一個連續(xù)的地址空間段,稱為中斷向量區(qū)。由于一個中斷向量通常僅占幾個字節(jié)或一條指令的長度,所以在中斷向量區(qū)一般不放置中斷服務(wù)程序的。中斷服務(wù)程序一般放置在程序存儲器的其它地方,而在中斷向量處放置一條跳轉(zhuǎn)到中斷服務(wù)程序的指令。這樣,CPU響應(yīng)中斷后,首先自動轉(zhuǎn)向執(zhí)行中斷向量中的轉(zhuǎn)移指令,再跳轉(zhuǎn)執(zhí)行中斷服務(wù)程序。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計129Atmega128的中斷處理中斷優(yōu)先級的理解單片機(jī)系統(tǒng)一般有多個中斷源,當(dāng)某一時刻同時有多個中斷產(chǎn)生時,單片機(jī)該如何處理呢?這就有了中斷優(yōu)先級的概念。通常,單片機(jī)可以接收若干個中斷源發(fā)出的中斷請求。但在同一時刻,MCU只能響應(yīng)這些中斷請求中的其中一個。為了避免MCU同時響應(yīng)多個中斷請求帶來的混亂,在單片機(jī)中為每一個中斷源賦予一個特定的中斷優(yōu)先級。一旦有多個中斷請求信號,MCU先響應(yīng)中斷優(yōu)先級高的中斷請求,然后再逐次響應(yīng)優(yōu)先級次一級的中斷。中斷優(yōu)先級也反映了各個中斷源的重要程度,同時也是分析中斷嵌套的基礎(chǔ)。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計130Atmega128的中斷處理中斷優(yōu)先級的理解對于中斷優(yōu)先級的確定,通常是由單片機(jī)的硬件結(jié)構(gòu)規(guī)定的。一般的確定規(guī)則方式為兩種:某中斷對應(yīng)的中斷向量地址越小,其中斷優(yōu)先級越高(硬件確定方式)。通過軟件對中斷控制寄存器的設(shè)定,改變中斷的優(yōu)先級(用戶軟件可設(shè)置方式,注意:AVR不支持)。實際上,MCU在兩種情況下需要對中斷的優(yōu)先級進(jìn)行判斷:第一種情況為同時有兩(多)個中斷源申請中斷。在這種情況下,MCU首先響應(yīng)中斷優(yōu)先級最高的那個中斷,而將其它的中斷掛起。待優(yōu)先級最高的中斷服務(wù)程序執(zhí)行完成返回后,再順序響應(yīng)優(yōu)先級較低的中斷。第二種情況是當(dāng)MCU正處于響應(yīng)一個中斷的過程中。如已經(jīng)響應(yīng)了某個中斷,正在執(zhí)行為其服務(wù)的中斷程序時,此時又產(chǎn)生一個其它的中斷申請,這種情況也稱作中斷嵌套。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計131Atmega128的中斷處理中斷嵌套的理解對于中斷嵌套的處理,不同的單片機(jī)處理的方式是不同的,應(yīng)根據(jù)所使用單片機(jī)的特點(diǎn)正確實現(xiàn)中斷嵌套的處理。按照通常的規(guī)則,當(dāng)MCU正在響應(yīng)一個中斷B的過程中,又產(chǎn)生一個其它的中斷A申請時,如果這個新產(chǎn)生中斷A的優(yōu)先級比正在響應(yīng)的中斷B優(yōu)先級高的話,就應(yīng)該暫停當(dāng)前的中斷B的處理,轉(zhuǎn)入響應(yīng)高優(yōu)先級的中斷A,待高優(yōu)先級中斷A處理完成后,再返回原來的中斷B的處理過程。如果新產(chǎn)生中斷A的優(yōu)先級比正在處理中斷B的優(yōu)先級低(或相同),則應(yīng)在處理完當(dāng)前的中斷B后,再響應(yīng)那個后產(chǎn)生的中斷A申請(如果中斷A條件還成立的話)。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計132Atmega128的中斷處理中斷嵌套的理解一些單片機(jī)(如8051結(jié)構(gòu))的硬件能夠自動實現(xiàn)中斷嵌套的處理,既單片機(jī)內(nèi)部的硬件電路能夠識別中斷的優(yōu)先級,并根據(jù)優(yōu)先級的高低,自動完成對高優(yōu)先級中斷的優(yōu)先響應(yīng),實現(xiàn)中斷的嵌套處理。而另一類的單片機(jī),如我們正在學(xué)習(xí)的AVR單片機(jī),其硬件系統(tǒng)不支持自動實現(xiàn)中斷嵌套的處理。如果在系統(tǒng)設(shè)計中,必須使用中斷嵌套處理,則需要由用戶編寫相應(yīng)的程序,通過軟件設(shè)置來實現(xiàn)中斷嵌套的功能。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計133Atmega128的中斷處理中斷控制(屏蔽)的理解單片機(jī)擁有眾多中斷源,但在某一具體設(shè)計中通常并不需要使用所有的中斷源,或者在系統(tǒng)軟件運(yùn)行的某些關(guān)鍵階段不允許中斷打斷現(xiàn)行程序的運(yùn)行,這就需要一套軟件可控制的中斷屏蔽/允許系統(tǒng)。在單片機(jī)的I/O寄存器中,通常存在一些特殊的標(biāo)志位用于控制開放或關(guān)閉(屏蔽)MCU對中斷響應(yīng)處理,這些標(biāo)志稱為中斷屏蔽標(biāo)志位或中斷允許控制位。用戶程序可以改變這些標(biāo)志位的設(shè)置,在需要的時候允許MCU響應(yīng)中斷,而在不需要的時候則將中斷請求信號屏蔽(注意:不是取消),此時盡管產(chǎn)生了中斷請求信號,MCU也不會響應(yīng)中斷請求。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計134Atmega128的中斷處理中斷控制(屏蔽)的理解從對中斷源的控制角度講,中斷源還可分成2類:非屏蔽中斷。非屏蔽中斷是指MCU對中斷源產(chǎn)生的中斷請求信號是不能屏蔽的,也就是說一旦發(fā)生中斷請求,MCU肯定響應(yīng)該中斷。在單片機(jī)中,外部RESET引腳產(chǎn)生的復(fù)位信號,就是一個非屏蔽的中斷。可屏蔽中斷??善帘沃袛嗍侵赣脩舫绦蚩梢酝ㄟ^中斷屏蔽控制標(biāo)志對中斷源產(chǎn)生的中斷請求信號進(jìn)行控制,既允許或禁止MCU對該中斷的響應(yīng)。在用戶程序中,可以預(yù)先執(zhí)行一條允許中斷的指令,這樣一旦發(fā)生中斷請求,MCU就能夠響應(yīng)中斷。反之,用戶程序也可以預(yù)先執(zhí)行一條中斷禁止(屏蔽)指令,使MCU不響應(yīng)中斷請求。因此,可屏蔽中斷的中斷請求能否可以被MCU響應(yīng),最終是由用戶程序來控制的。在單片機(jī)中,大多數(shù)的中斷都是可屏蔽的中斷。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計135Atmega128的中斷處理中斷響應(yīng)條件的理解在單片機(jī)中,對應(yīng)每一個中斷源都有一個相應(yīng)的中斷標(biāo)志位,該中斷標(biāo)志位將占據(jù)中斷控制寄存器中的一位。當(dāng)單片機(jī)檢測到某一中斷源產(chǎn)生符合條件的中斷信號時,其硬件會自動將該中斷源對應(yīng)的中斷標(biāo)志位置“1”,這就意味著有中斷信號產(chǎn)生了,向MCU申請中斷。但中斷標(biāo)志位的置“1”,并不代表MCU一定響應(yīng)該中斷。為了合理控制中斷響應(yīng),在單片機(jī)內(nèi)部還有相關(guān)的用于中斷控制的中斷允許標(biāo)志位。最重要的一個中斷允許標(biāo)志位是全局中斷允許標(biāo)志位。當(dāng)該標(biāo)志位為“0”,表示禁止MCU響應(yīng)所有的可屏蔽中斷的響應(yīng)。此時不管有否中斷產(chǎn)生,MCU不會響應(yīng)任何的中斷請求。只有全局中斷允許標(biāo)志位為“1”,才允許單片機(jī)響應(yīng)中斷。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計136Atmega128的中斷處理中斷響應(yīng)條件的理解MCU響應(yīng)中斷請求的第二個條件是每個中斷源所具有的各自獨(dú)立的中斷允許標(biāo)志位。當(dāng)某個中斷允許標(biāo)志位為“0”時,表示MCU不響應(yīng)該中斷的中斷申請。從上面的中斷響應(yīng)條件看出,只有當(dāng)全局中斷允許標(biāo)志位為“1”(由用戶軟件設(shè)置),中斷A允許標(biāo)志位為“1”(由用戶軟件設(shè)置),中斷A標(biāo)志位為“1”(符合中斷條件時由硬件自動設(shè)置或由用戶軟件設(shè)置)時,MCU才會響應(yīng)中斷A的請求信號(如果有多個中斷請求信號同時存在的情況下,還要根據(jù)中斷A的優(yōu)先級來確定)。用戶程序?qū)善帘沃袛嗟目刂?,一般是通過設(shè)置相應(yīng)的中斷控制寄存器來實現(xiàn)的。除了設(shè)置中斷的響應(yīng)條件,用戶程序還需要通過中斷控制器來設(shè)置中斷的其他特性,如:中斷觸發(fā)信號的類型、中斷的優(yōu)先級、中斷信號產(chǎn)生的條件等等。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計137Atmega128的中斷處理中斷響應(yīng)過程(中斷服務(wù)程序)的理解當(dāng)所有的中斷響應(yīng)條件都滿足了之后,就要進(jìn)入中斷響應(yīng)過程進(jìn)行相應(yīng)處理了。單片機(jī)響應(yīng)中斷后,首先要把當(dāng)前指令的下一條指令的地址送入堆棧(保護(hù)斷點(diǎn)),然后根據(jù)中斷標(biāo)記,將相應(yīng)的中斷入口地址送入程序指針,程序轉(zhuǎn)到中斷入口處繼續(xù)執(zhí)行(中斷服務(wù)程序),中斷程序執(zhí)行完后,單片機(jī)再把堆棧中保存的地址取出,程序從剛才的中斷處繼續(xù)向下執(zhí)行。需要注意的是,單片機(jī)硬件所做的保護(hù)工作只是保護(hù)了程序的一個指令地址,如果中斷響應(yīng)過程中修改了一些寄存器和變量的值,就需要在中斷響應(yīng)程序里面自己加以保護(hù)。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計138Atmega128的中斷處理中斷響應(yīng)時間的理解AVR中斷響應(yīng)時間最少為4個時鐘周期。4個時鐘周期后,程序跳轉(zhuǎn)到實際的中斷處理例程。在這4個時鐘期間,PC自動入棧。在通常情況下,中斷向量為一個跳轉(zhuǎn)指令,此跳轉(zhuǎn)要花3個時鐘周期。如果中斷在一個多周期指令執(zhí)行期間發(fā)生,則在此多周期指令執(zhí)行完后MCU才會執(zhí)行中斷程序。若中斷發(fā)生時MCU處于睡眠模式,中斷響應(yīng)時間增加到8個時鐘周期。增加的時鐘周期是由于喚醒啟動時間引入的。中斷返回亦需4個時鐘。在此期間PC(兩個字節(jié))將被彈出棧,堆棧指針加二,狀態(tài)寄存器SREG的I置位。AVR退出中斷后總是回到主程序并執(zhí)行一條指令才可以去執(zhí)行其他被掛起的中斷。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計139Atmega128的中斷處理AVR有35個外部及內(nèi)部中斷源。每個中斷和復(fù)位在程序空間都有一個獨(dú)立的中斷向量。所有的中斷事件都有自己的使能位。當(dāng)使能位置位,且狀態(tài)寄存器的全局中斷使能位I也置位的情況下,中斷可以發(fā)生。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計140Atmega128的中斷處理2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計141Atmega128的中斷處理2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計142Atmega128的中斷處理Atmega128的外部中斷源外部中斷通過引腳INT7:0觸發(fā)。只要使能了中斷,即使引腳INT7:0配置為輸出,只要電平發(fā)生了合適的變化,中斷也會觸發(fā)。這個特點(diǎn)可以用來產(chǎn)生軟件中斷。通過設(shè)置外部中斷控制寄存器–EICRA(INT3:0)和EICRB(INT7:4),中斷可以由下降沿、上升沿,或者是低電平觸發(fā)。當(dāng)外部中斷使能并且配置為電平觸發(fā),只要引腳電平為低,中斷就會產(chǎn)生。若要求INT7:4在信號下降沿或上升沿觸發(fā),I/O時鐘必須工作。INT3:0的中斷條件檢測則是異步的。也就是說,這些中斷可以用來將器件從睡眠模式喚醒。在睡眠過程(除了空閑模式)中I/O時鐘是停止的。2024/8/20機(jī)電系統(tǒng)控制電路設(shè)計143外部中斷的相關(guān)寄存器說明外部中斷控制寄存器A-EICRABit76543210EICRAISC31ISC30ISC21ISC20ISC11ISC10ISC01ISC00讀/寫R/WR/WR/WR/WR/WR/WR/WR/W初始值00000000?Bits7..0:外部中斷3-0敏感電平控制位外部中斷3-0由引腳INT3:0激活,前提是SREG寄存器的I標(biāo)志和EIMSK寄存器相應(yīng)的中斷屏蔽位置位。INT3..INT0的邊沿觸發(fā)方式是異步的。只要INT3:0引腳上產(chǎn)生寬度大于50ns的脈沖就會引發(fā)中斷。若選擇了低電平中斷,低電平必須保持到當(dāng)前指令完成,然后才會產(chǎn)生中斷。而且只要將引腳拉低,就會引發(fā)中斷請求。改變ISCn時有可能發(fā)生中斷。因此建議首先在寄存器EIMSK里清除相應(yīng)的中斷使能位INTn,然后再改變ISCn。最后,不要忘記在重新使能中斷之前通過對EIFR寄存器的相應(yīng)中斷標(biāo)志位INTFn寫'1’使其清零。2024/8/20機(jī)電系統(tǒng)控制
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人防工程制式銷售合同范本
- 分散采購服務(wù)合同范本
- 農(nóng)村燃?xì)獍惭b合同范例
- 協(xié)助寵物國際托運(yùn)合同范本
- 農(nóng)田租賃合同范本
- 專利轉(zhuǎn)讓入股合同范本
- 養(yǎng)魚合作轉(zhuǎn)讓合同范本
- 公版采購合同范本
- 單位解聘教師合同范本
- 買賣中介公司合同范本
- 人教版小學(xué)數(shù)學(xué)一年級下冊教案
- 新版人音版小學(xué)音樂一年級下冊全冊教案
- MOOC 跨文化交際通識通論-揚(yáng)州大學(xué) 中國大學(xué)慕課答案
- 部編版四年級道德與法治下冊4《買東西的學(xué)問》第1課時課件
- 公因數(shù)、最大公因數(shù)的應(yīng)用
- CBT主要技術(shù)精品課件
- 常用液壓元件型號對照表230
- 項目章程模板范文
- 泰山產(chǎn)業(yè)領(lǐng)軍人才工程系統(tǒng)
- 輪扣架支模體系材料量計算
- 主題班會教案《讀書好讀好書好讀書》班會方案
評論
0/150
提交評論