




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章AVR基本原理及應(yīng)用2.1ATmega16概述2.2通用I/O接口2.3中斷系統(tǒng)2.4定時(shí)器2.5USART2.6SPI小結(jié)
2.1ATmega16概述
ATmega16作為一款中檔功能的AVR單片機(jī),較全面地體現(xiàn)了AVR的特點(diǎn),不僅適合對(duì)AVR的了解和使用的入門(mén)學(xué)習(xí),同時(shí)也滿(mǎn)足一般應(yīng)用。本章將詳細(xì)講解ATmega16的特點(diǎn)、封裝、結(jié)構(gòu)、I/O接口、中斷系統(tǒng)、定時(shí)器、USART和SPI。2.1.1ATmega16特點(diǎn)
ATmega16功能豐富、性能較高,具有下述主要特點(diǎn):
采用先進(jìn)RISC結(jié)構(gòu)的AVR內(nèi)核,大多數(shù)指令的執(zhí)行時(shí)間為單個(gè)指令周期;
片內(nèi)含16KB的Flash程序存儲(chǔ)器、1KB的SRAM數(shù)據(jù)存儲(chǔ)器及512字節(jié)EEPROM數(shù)據(jù)存儲(chǔ)器;
片內(nèi)含JTAG接口,支持?jǐn)U展的片內(nèi)ISP調(diào)試功能,可實(shí)現(xiàn)對(duì)片內(nèi)Flash、EEPROM、熔絲位配置等的下載編程;豐富的外圍接口:3個(gè)定時(shí)/計(jì)數(shù)器接口、模擬比較器和模/數(shù)轉(zhuǎn)換器接口、面向字節(jié)的兩線接口TWI(兼容IIC硬件接口),1個(gè)USART和1個(gè)SPI串行接口等;
寬電壓:ATmega16L為2.7V~5.5V,ATmega16為4.5V~5.5V,ATmega16A為2.7V~5.5V;
高速度:ATmega16L為0~8MHz,ATmega16為0~16MHz,ATmega16A為0~16MHz;低功耗:ATmega16L工作在1MHz、3V、25℃時(shí)的典型功耗,正常模式為1.1mA,空間模式為0.35mA,掉電模式時(shí)小于1μA。
多達(dá)21種類(lèi)型的內(nèi)外部中斷源;
片內(nèi)含上電復(fù)位電路以及可編程的掉電檢測(cè)復(fù)位電路BOD;
片內(nèi)含有1MHz/2MHz/4MHz/8MHz經(jīng)過(guò)標(biāo)定、可校正的RC振蕩器,可作為系統(tǒng)時(shí)鐘使用;
有6種休眠模式支持節(jié)點(diǎn)方式工作。2.1.2ATmega16外部引腳
ATmega16有3種典型的封裝形式,分別為PDIP-40(雙列直插)、TQFP-44(方形)和MLF-44(貼片形式),相應(yīng)的外部引腳封裝圖如圖2-1所示。圖2-1ATmega16的引腳與封裝示意圖
1.特殊功能引腳
ATmega16的特殊功能引腳,主要有電源引腳、系統(tǒng)晶振引腳和芯片復(fù)位引腳。
電源引腳包括VCC、AVCC、AREF和GND,其功能分別概括如下:
VCC:芯片供電(片內(nèi)數(shù)字電路電源)輸入引腳,使用時(shí)連接到電源正極。
AVCC:端口A和片內(nèi)ADC模擬電路電源輸入引腳,不使用ADC時(shí),直接連接到電源正極;使用ADC時(shí),應(yīng)通過(guò)一個(gè)低通電源濾波器與VCC相連。
AREF:使用ADC時(shí),可作為外部ADC參考源的輸入
引腳。
GND:芯片接地引腳,使用時(shí)接地。
系統(tǒng)晶振引腳為XTAL2和XTAL1,其功能概括如下:
XTAL2:片內(nèi)反相振蕩放大器的輸出端。
XTAL1:片內(nèi)反相振蕩放大器和內(nèi)部時(shí)鐘操作電路的輸入端。
芯片復(fù)位引腳為RESET引腳,其主要功能是引起芯片的硬件復(fù)位,具體做法為在該引腳上施加一個(gè)最小脈沖寬度為1.5μs的低電平。
2.?I/O引腳
ATmega16的I/O引腳有4個(gè)8位端口,分成PA、PB、PC和PD,全部是可編程控制的雙(多)功能復(fù)用的I/O引腳。
4個(gè)端口的第一功能均是通用雙向數(shù)字輸入/輸出(I/O)口,每一位都可以由指令設(shè)置為獨(dú)立的輸入或輸出口。除了作為通用輸入/輸出引腳外,每個(gè)I/O引腳還具有第二功能,芯片引腳圖中括號(hào)內(nèi)的名稱(chēng)即代表其第二功能,需通過(guò)設(shè)置相應(yīng)的寄存器使能位開(kāi)啟。默認(rèn)情況下,按第一功能處理。各引腳第一功能簡(jiǎn)要說(shuō)明如下:
當(dāng)I/O口設(shè)置為輸入方式時(shí),引腳內(nèi)部還配置有上拉電阻,可通過(guò)編程設(shè)置為上拉有效或上拉無(wú)效。
芯片RESET復(fù)位后,所有I/O口的默認(rèn)狀態(tài)為輸入方式,上拉電阻無(wú)效,即I/O為輸入三態(tài)高阻狀態(tài)。
當(dāng)I/O口設(shè)置為輸出方式時(shí),在5V工作電壓下,若其輸出為高電平,則可以輸出20mA的電流;若其輸出為低電平,則可以最大吸收40mA的電流。2.1.3ATmega16結(jié)構(gòu)
ATmega16主要由AVRCPU(內(nèi)核)、存儲(chǔ)器(Flash、SRAM、EEPROM)、各種功能的外圍和I/O接口,以及相關(guān)的數(shù)據(jù)、控制和狀態(tài)器等組成。本節(jié)將重點(diǎn)介紹內(nèi)核和存儲(chǔ)器結(jié)構(gòu)以及狀態(tài)寄存器SREG。
1.內(nèi)核結(jié)構(gòu)
AVR內(nèi)核是ATmega16的核心部分,由算術(shù)邏輯單元ALU、程序計(jì)數(shù)器PC、指令寄存器、指令譯碼器和32個(gè)8位通用寄存器組成。限于本書(shū)的篇幅,關(guān)于ALU、PC、指令寄存器和指令譯碼器不作講解,可參見(jiàn)AVR的相關(guān)教材。本節(jié)只介紹32個(gè)8位通用寄存器。
ATmega16的32個(gè)8位通用寄存器R0~R31構(gòu)成一個(gè)“快速訪問(wèn)通用寄存器組”,訪問(wèn)時(shí)間為1個(gè)時(shí)鐘周期,其結(jié)構(gòu)圖如圖2-2所示。圖2-2快速訪問(wèn)通用寄存器組結(jié)構(gòu)圖在圖2-2中,最后6個(gè)寄存器R26~R31除了用作通用寄存器外,還可以?xún)蓛珊喜?,組成3個(gè)16位的寄存器X、Y、Z,作為對(duì)數(shù)據(jù)存儲(chǔ)器空間(使用X、Y、Z)和程序存儲(chǔ)器空間(僅使用Z)的間接尋址寄存器使用。
2.存儲(chǔ)器結(jié)構(gòu)
ATmega16在片內(nèi)集成了Flash程序存儲(chǔ)器、SRAM數(shù)據(jù)存儲(chǔ)器和EEPROM數(shù)據(jù)存儲(chǔ)器,這3個(gè)存儲(chǔ)器空間相互獨(dú)立,物理結(jié)構(gòu)也不同。
1)?Flash程序存儲(chǔ)器
ATmega16具有16K?×?8或8K?×?16的支持ISP的Flash存儲(chǔ)器,用于存放程序指令代碼,以16位(字)為一個(gè)
存儲(chǔ)單元。作為數(shù)據(jù)讀取時(shí),以字節(jié)為單位。地址空間為0x0000~0x1FFF。
2)?SRAM數(shù)據(jù)存儲(chǔ)器
ATmega16共有1120個(gè)數(shù)據(jù)存儲(chǔ)器,包含片內(nèi)SRAM及映射到數(shù)據(jù)存儲(chǔ)器空間的32個(gè)8位通用寄存器和64個(gè)8位I/O寄存器,均以8位(字節(jié))為一個(gè)存儲(chǔ)單元。其中,各個(gè)組成部分的地址范圍如下:
32個(gè)通用寄存器:映射到數(shù)據(jù)存儲(chǔ)器空間的地址為0x0000~0x001F。
64個(gè)I/O寄存器:I/O空間地址為0x00~0x3F;映射到數(shù)據(jù)存儲(chǔ)器空間的地址為0x0020~0x005F。其寄存器空間分配表詳見(jiàn)附錄1。
片內(nèi)SRAM:數(shù)據(jù)存儲(chǔ)器空間地址為0x0060~0x045F。
3)?EEPROM數(shù)據(jù)存儲(chǔ)器
ATmega16包含512字節(jié)的EEPROM數(shù)據(jù)存儲(chǔ)器,用于保存系統(tǒng)的設(shè)定參數(shù)、固定表格和掉電后的數(shù)據(jù)等,可以提高系統(tǒng)的保密性。它以8位(字節(jié))為一個(gè)存儲(chǔ)單元,地址范圍為0x0000~0x01FF,按字節(jié)讀/寫(xiě)。
3.?SREG
SREG是一個(gè)8位寄存器,用來(lái)存放指令執(zhí)行后的有關(guān)狀態(tài)和結(jié)果的標(biāo)志。每一位狀態(tài)標(biāo)志位均代表不同的含義,其狀態(tài)通常是在程序執(zhí)行中自動(dòng)形成的,也可根據(jù)需要人
為修改。SREG在I/O空間的地址為0x3F(0x005F),其定義如表2-1所示。2.1.4系統(tǒng)時(shí)鐘與熔絲位
AVR單片機(jī)的運(yùn)行需要有時(shí)鐘的驅(qū)動(dòng),而時(shí)鐘源的選擇需要設(shè)置相關(guān)熔絲位。本小節(jié)將講解ATmega16的系統(tǒng)時(shí)鐘和熔絲位的設(shè)置。
1.系統(tǒng)時(shí)鐘
系統(tǒng)時(shí)鐘為控制器提供時(shí)鐘脈沖,是控制器的心臟。系統(tǒng)時(shí)鐘頻率越高,單片機(jī)的執(zhí)行節(jié)拍越快,處理速度也越快。ATmega16的最高工作頻率為16MHz。
ATmega16的系統(tǒng)時(shí)鐘源可以選擇下述3種方式提供:
直接使用片內(nèi)的1MHz/2MHz/4MHz/8MHz的RC振蕩源,由于RC振蕩源本身的頻率與標(biāo)稱(chēng)值有較大的誤差,而且受溫度變化影響較大,會(huì)影響系統(tǒng)穩(wěn)定性,因此實(shí)際中較少使用。在引腳XTAL1和XTAL2上外接由晶振和電容構(gòu)成的諧振電路,配合片內(nèi)的OSC振蕩電路構(gòu)成的振蕩源,可提供0~16MHz的頻率,靈活性高,精度和穩(wěn)定度也高。這是常用的系統(tǒng)時(shí)鐘驅(qū)動(dòng)方式。
直接使用外部的時(shí)鐘源輸出的脈沖信號(hào)。
本教材的開(kāi)發(fā)板采用7.3728MHz的外部晶振作為系統(tǒng)時(shí)鐘源。
2.熔絲位及配置
AVR單片機(jī)中有一組專(zhuān)用的與芯片功能、特性、參數(shù)配置相關(guān)的可編程熔絲位。其中,幾個(gè)專(zhuān)用的熔絲位用于配置芯片要使用的系統(tǒng)時(shí)鐘源的類(lèi)型。
AVR的熔絲位有0和1兩種狀態(tài)。
0:允許編程。
1:禁止編程。熔絲位的配置(編程)可以通過(guò)并行方式、ISP串行方式和JTAG串行方式實(shí)現(xiàn),可進(jìn)行多次編程。ATmega16出廠時(shí)的缺省配置設(shè)定為使用內(nèi)部1MHz的RC振蕩源作為系統(tǒng)時(shí)
鐘,因此,在第一次使用前,必須先正確配置熔絲位,使其與使用的系統(tǒng)源類(lèi)型相匹配。具體配置參見(jiàn)附錄2。2.1.5復(fù)位源與復(fù)位方式
復(fù)位是單片機(jī)芯片本身的硬件初始化操作,主要功能是把程序計(jì)數(shù)器的PC初始化為0x0000,使單片機(jī)從0x0000單元開(kāi)始執(zhí)行程序,同時(shí)絕大部分的寄存器(通用寄存器和I/O寄存器)也被復(fù)位操作清0。
ATmega16有下述5種復(fù)位方式:系統(tǒng)上電復(fù)位。ATmega16內(nèi)部含上電復(fù)位電路,當(dāng)系統(tǒng)電源電壓VCC低于上電復(fù)位門(mén)限電平時(shí),單片機(jī)復(fù)位。
外部復(fù)位。外部復(fù)位是由外加在RESET引腳上的低電平產(chǎn)生的。當(dāng)RESET引腳為拉至低電平且低電平持續(xù)時(shí)間大于1.5μs時(shí),單片機(jī)復(fù)位。掉電檢測(cè)復(fù)位。ATmega16有一個(gè)片內(nèi)BOD(電源檢測(cè))電路,用于對(duì)運(yùn)行中的系統(tǒng)電壓VCC檢測(cè)。當(dāng)BOD使能且VCC低于掉電檢測(cè)復(fù)位門(mén)限(4V或2.7V,通過(guò)熔絲位設(shè)置)時(shí),單片機(jī)復(fù)位。
看門(mén)狗復(fù)位。ATmega16內(nèi)部集成了一個(gè)看門(mén)狗定時(shí)器WDT。當(dāng)WDT使能且WDT超時(shí)溢出時(shí),單片機(jī)復(fù)位。
JTAG復(fù)位。當(dāng)使用JTAG接口時(shí),可由JTAG口控制單片機(jī)復(fù)位。
2.2通用I/O接口
ATmega16有4組8位的通用I/O接口,分別是PORTA、PORTB、PORTC、PORTD(簡(jiǎn)稱(chēng)PA、PB、PC、PD),對(duì)應(yīng)芯片上的32個(gè)I/O引腳。其第一功能可作為數(shù)字通用I/O接口使用,而復(fù)用功能可分別用于中斷、定時(shí)/計(jì)數(shù)器等。本節(jié)主要介紹通用I/O的第一功能,第二功能將在后續(xù)內(nèi)容中逐步講解。2.2.1基本結(jié)構(gòu)
通用I/O口的工作方式和表現(xiàn)特征是由I/O寄存器來(lái)控制的。每組通用I/O口都配備有3個(gè)8位寄存器,分別是方向控制寄存器DDRn、數(shù)據(jù)寄存器PORTn和輸入引腳寄存器PINn,其中,n表示A、B、C、D。所有的端口引腳都有上拉電阻,可使I/O引腳保持高電平,防止外界干擾影響電平變化。通用I/O口結(jié)構(gòu)示意圖如圖2-3所示。圖2-3通用I/O結(jié)構(gòu)示意圖在圖2-3中,方向控制寄存器DDRn控制I/O口的輸入輸出方向;PORTn決定輸出電平。具體配置如下所述:
當(dāng)設(shè)置為輸出(DDRn=1)時(shí),內(nèi)部上拉電阻無(wú)效,此時(shí)PORTn中的數(shù)據(jù)通過(guò)一個(gè)推挽電路輸出到外部引腳。當(dāng)PORTn=1時(shí),I/O引腳呈現(xiàn)高電平,同時(shí)可以輸出20mA的電流;而當(dāng)PORTn=0時(shí),I/O引腳呈現(xiàn)低電平,同時(shí)可以吸納20mA的電流。
當(dāng)設(shè)置為輸入(DDRn=0)時(shí),讀取外部引腳電平時(shí)應(yīng)讀取PINn的值,讀得的值即為外部引腳上的真實(shí)電平。在該方式下,PORTn可以控制使用或者不使用內(nèi)部的上拉電阻。
I/O口引腳的配置表如表2-2所示。從表2-2中可以看出,I/O口在輸出方式下,由于采用推挽電路,因此具備較強(qiáng)的驅(qū)動(dòng)能力,可以直接驅(qū)動(dòng)LED等小功率外圍器件。表中的PUD為寄存器SFIOR中的標(biāo)志位,相當(dāng)于全部I/O口的內(nèi)部上拉電阻的總開(kāi)關(guān)。
當(dāng)PUD=1時(shí),ATmega16所有I/O內(nèi)部上拉電阻都不起
作用。
當(dāng)PUD=0時(shí),各I/O口的內(nèi)部上拉電阻取決于PORTn的設(shè)置。
ATmega16的I/O口復(fù)位后的初始狀態(tài)全部為輸入工作方式,內(nèi)部上拉電阻無(wú)效,外部引腳呈高阻態(tài)。2.2.2寄存器
方向控制寄存器DDRn、數(shù)據(jù)寄存器PORTn和輸入引
腳寄存器PINn是各個(gè)端口的3個(gè)寄存器,其詳細(xì)描述如表2-3所示。從表2-3中可以看出,每組I/O口的寄存器的情況相同,只是地址不一樣。下面以PA口為例說(shuō)明各個(gè)端口的寄存器每個(gè)位的定義及使用方法。數(shù)據(jù)寄存器PORTA的定義如表2-4所示。數(shù)據(jù)方向寄存器DDRA具體定義如表2-5所示。輸入引腳寄存器PINA具體定義如表2-6所示。2.2.3通用I/O編程
通用I/O口常用于單片機(jī)對(duì)外數(shù)據(jù)輸出和輸入及LED驅(qū)動(dòng)和按鍵檢測(cè)等。將ATmega16的I/O口作為通用I/O口使用時(shí),首先應(yīng)根據(jù)系統(tǒng)的硬件電路,正確設(shè)置輸入/輸出方式。
1.輸出配置
在ATmega16開(kāi)發(fā)中,通常使用C語(yǔ)言對(duì)寄存器進(jìn)行操作。若要設(shè)置PB0和PB4輸出0,可采用下述程序代碼實(shí)現(xiàn)。
【示例2-1】I/O口輸出設(shè)置。
#defineBIT00
#defineBIT11
#defineBIT22
#defineBIT33
#defineBIT44
#defineBIT55
#defineBIT66
#defineBIT77
DDRB|=(1<<(BIT0))|(1<<(BIT4));
PORTB&=~(1<<(BIT0)|(1<<(BIT4));
2.輸入配置
若要設(shè)置PB0和PB4為輸入,開(kāi)啟內(nèi)部上拉電阻,可采用下述程序代碼實(shí)現(xiàn)。
【示例2-2】I/O口輸入設(shè)置。
DDRB|=(1<<BIT0)|(1<<BIT4);//PB0,PB4端口設(shè)為輸出
PORTB|=(1<<BIT0)|(1<<BIT4);//PB0,PB4輸出高電平
DDRB&=~((1<<BIT0)|(1<<BIT4));//PB0,PB4端口設(shè)為輸入,開(kāi)啟內(nèi)部上拉電阻從上述代碼可以看出,先將引腳設(shè)置為高電平輸出,再將引腳設(shè)置為輸入狀態(tài),便可開(kāi)啟芯片內(nèi)部的上拉電阻。
本書(shū)配套的實(shí)驗(yàn)開(kāi)發(fā)板中,ATmega16的PC6和PC7引腳分別與LED1和LED2相連,其電路如圖2-4所示。當(dāng)引腳輸出為低電平時(shí),對(duì)應(yīng)的LED燈亮;當(dāng)引腳輸出為高電平時(shí),對(duì)應(yīng)的LED燈滅。圖2-4共陽(yáng)極LED
3.編程應(yīng)用
下述內(nèi)容用于實(shí)現(xiàn)任務(wù)描述2.D.1,編寫(xiě)一個(gè)點(diǎn)亮和熄滅LED燈的程序。
程序代碼如下:
【描述2.D.1】main.c。
#include<iom16.h>
voiddelay_ms(unsignedintms);//1ms延時(shí)函數(shù)
voidmain(void)將程序下載至開(kāi)發(fā)板中,系統(tǒng)上電復(fù)位或按下復(fù)位按鍵,可以觀察實(shí)驗(yàn)結(jié)果:LED1和LED2同時(shí)閃爍。
在實(shí)驗(yàn)開(kāi)發(fā)板中,4個(gè)按鍵的電路圖如圖2-5所示,其
中SW2連接至ATmega16的PD2管腳。從圖中可以看出,當(dāng)SW2按下時(shí),PD2為低電平;當(dāng)SW2彈起時(shí),PD2為高電平。圖2-5按鍵原理圖
2.3中斷系統(tǒng)
中斷是CPU在執(zhí)行期間,由于系統(tǒng)內(nèi)發(fā)生非尋?;蚍穷A(yù)期的急需處理事件,使CPU停止正在執(zhí)行的程序而轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理程序,待處理完畢后自動(dòng)返回原程序處執(zhí)行的過(guò)程。本節(jié)將介紹ATmega16的中斷源與中斷向量、外部中斷的工作原理及簡(jiǎn)單編程應(yīng)用。2.3.1中斷源與中斷向量
AVR單片機(jī)的中斷系統(tǒng)具有中斷源種類(lèi)多、門(mén)類(lèi)全的特點(diǎn),便于設(shè)計(jì)實(shí)時(shí)、多功能、高效率的嵌入式應(yīng)用系統(tǒng)。其中,ATmega16共有21個(gè)中斷源和中斷向量,中斷向量表如表2-7所示。在這21個(gè)中斷中,包含1個(gè)非屏蔽中斷(RESET)、3個(gè)外部中斷(INT0、INT1、INT2)和17個(gè)內(nèi)部中斷。其中:
RESET是系統(tǒng)復(fù)位中斷,也稱(chēng)系統(tǒng)復(fù)位源,是ATmega16中唯一的一個(gè)不可屏蔽中斷。當(dāng)ATmega16由于各種原因被復(fù)位后,程序?qū)⑻綇?fù)位向量(默認(rèn)為0x0000)處,在該地址處通常放置一條跳轉(zhuǎn)指令,跳轉(zhuǎn)到主程序繼續(xù)執(zhí)行。
INT0、INT1和INT2是3個(gè)外部中斷源,分別由ATmega16芯片的外部引腳PD2,PD3和PB2上的電平變化或狀態(tài)觸發(fā)。
17個(gè)內(nèi)部中斷包括3個(gè)定時(shí)/計(jì)數(shù)器相關(guān)中斷、USART和SPI傳送中斷等。2.3.2外部中斷
ATmega16有3個(gè)外部中斷源,分別是INT0、INT1和INT2,由芯片外部引腳PD2、PD3和PB2上的電平變化或狀態(tài)作為中斷觸發(fā)信號(hào)。
1.觸發(fā)方式
3個(gè)外部中斷的觸發(fā)方式如表2-8所示。從表2-8中可以看出,INT0和INT1均有上升沿觸發(fā)、下降沿觸發(fā)、任意電平變化觸發(fā)和低電平觸發(fā)4種方式,其中低電平觸發(fā)無(wú)中斷標(biāo)志位。INT2有上升沿和下降沿觸發(fā)2種方式,通過(guò)異步方式進(jìn)行檢測(cè),即不需要I/O時(shí)鐘信號(hào)。
2.相關(guān)寄存器
與外部中斷相關(guān)的寄存器有:狀態(tài)寄存器SREG、通用中斷控制寄存器GICR、通用中斷標(biāo)志寄存器GIFR、微控
制器控制寄存器MCUCR、微控制器狀態(tài)與控制寄存器MCUCSR。
1)?SREG
SREG的BIT7(I位)為全局中斷使能位,響應(yīng)中斷后,I位由硬件自動(dòng)清零。使能全局中斷通常采用下述程序代碼實(shí)現(xiàn):
SREG=0x80;
2)GICR
GICR各位的定義如表2-9所示。
3)GIFR
GIFR各位定義如表2-10所示。
GIFR的INTF1、INTF0、INTF2分別是INT1、INT0和INT2的中斷標(biāo)志位,當(dāng)外部中斷引腳的變化滿(mǎn)足觸發(fā)條件(通過(guò)MCUCR和MCUCSR設(shè)置)后,相應(yīng)的中斷標(biāo)志位會(huì)自動(dòng)置1。如果此時(shí)SREG中的I位和GICR中的對(duì)應(yīng)中斷允許控制位均為1,ATmega16才會(huì)響應(yīng)中斷。執(zhí)行中斷服務(wù)程序時(shí),INTFn(n=0,1,2)會(huì)由硬件自動(dòng)清0,用戶(hù)也可通過(guò)軟件寫(xiě)1清零。
清除INTF0、INTF1和INTF2可通過(guò)下述程序代碼實(shí)現(xiàn):
GIFR|=(1<<INTF0)|(1<<INTF1)|(1<<INTF2);
4)?MCUCR
MCUCR定義如表2-11所示。
MCUCR的高4位與外部中斷的設(shè)置無(wú)關(guān),其他四位是INT0(ISC01、ISC00)和INT1(ISC11、ISC00)的中斷觸發(fā)方式控制位。具體設(shè)置如表2-12所示。
5)MCUCSR
MCUCSR的定義如表2-13所示。
MCUCSR只有ISC2位與外部中斷有關(guān),是INT2的中斷觸發(fā)控制位,具體設(shè)置如表2-14所示。若要設(shè)置INT2為下降沿觸發(fā)方式,可通過(guò)下述程序代碼實(shí)現(xiàn):
MCUCSR|=(1<<ISC2);
通常,外部中斷的控制方法和步驟為
(1)設(shè)置外部中斷觸發(fā)方式,INT0和INT1設(shè)置MCUCR寄存器的相應(yīng)位,INT2設(shè)置MCUCSR的相應(yīng)位;
(2)開(kāi)啟相應(yīng)的外部中斷,將GICR中的相應(yīng)位置1;
(3)開(kāi)總中斷,SREG的I位置1;
(4)編寫(xiě)中斷服務(wù)子函數(shù)。
3.外部中斷編程
如果要開(kāi)啟INT0中斷,設(shè)置INT0為下降沿觸發(fā)方式,通常用下述程序代碼實(shí)現(xiàn):
【示例2-3】中斷初始化設(shè)置。
2.4定時(shí)器
在工業(yè)生產(chǎn)及各種控制系統(tǒng)中,常常需要實(shí)現(xiàn)定時(shí)
或計(jì)數(shù)的功能。采用軟件延時(shí)程序進(jìn)行定時(shí),不僅精度不高,還會(huì)占用系統(tǒng)資源,降低CPU的利用率;相比之下,采用定時(shí)/計(jì)數(shù)器進(jìn)行定時(shí),不僅精確度高,而且提高了CPU的利用率。本節(jié)將詳細(xì)介紹ATmega16的定時(shí)器的基本原理和應(yīng)用。2.4.1定時(shí)器概述
ATmega16內(nèi)部有3個(gè)通用定時(shí)器/計(jì)數(shù)器:2個(gè)8位的定時(shí)器/計(jì)數(shù)器(T/C0和T/C2),1個(gè)16位的定時(shí)/計(jì)數(shù)器(T/C1)。這3個(gè)通用定時(shí)/計(jì)數(shù)器除了能夠?qū)崿F(xiàn)通常的定時(shí)計(jì)數(shù)功能外,還具有捕獲、比較、脈寬調(diào)制輸出(PWM)等功能,其主要功能比較如表2-15所示。
3個(gè)定時(shí)/計(jì)數(shù)器的計(jì)數(shù)時(shí)鐘源可以來(lái)自外部引腳,也可以來(lái)自芯片內(nèi)部的系統(tǒng)時(shí)鐘源。使用外部時(shí)鐘信號(hào)源時(shí),通常作為計(jì)數(shù)器使用,用于記錄外部脈沖的個(gè)數(shù);使用內(nèi)部系統(tǒng)時(shí)鐘時(shí),可選擇幾種不同頻率的計(jì)數(shù)源,這些計(jì)數(shù)源由內(nèi)部預(yù)分頻器對(duì)主時(shí)鐘的不同分頻構(gòu)成(1/1,1/8,1/64,1/256,1/1024),通常作為定時(shí)器和波形發(fā)生器使用。2.4.28位定時(shí)/計(jì)數(shù)器
在3個(gè)定時(shí)/計(jì)數(shù)器中,T/C0和T/C2均為單通道8位定時(shí)/計(jì)數(shù)器,兩者的主要結(jié)構(gòu)和大部分功能是相同或相似的,下面以T/C0為例進(jìn)行詳細(xì)講解。
T/C0可以產(chǎn)生計(jì)數(shù)器溢出中斷和比較匹配輸出中斷兩種中斷請(qǐng)求信號(hào)。T/C0的計(jì)數(shù)值存放在TCNT0中,可以選擇為向上計(jì)數(shù)(為0時(shí)將產(chǎn)生溢出中斷TOVO)或向下計(jì)數(shù)(為0xFF時(shí)將產(chǎn)生溢出中斷TOVO)。T/C0的輸出比較值則存放在OCR0中,計(jì)數(shù)值TCNT0與OCR0相等時(shí),將產(chǎn)生比較匹配輸出中斷OCF0。
1.工作模式
T/C0可以工作在下述四種模式:普通模式、CTC模式、快速PWM模式和相位可調(diào)PWM模式。
普通模式:計(jì)數(shù)器為單向加1計(jì)數(shù)器,當(dāng)計(jì)數(shù)寄存器TCNT0由0xFF返回0x00時(shí),溢出標(biāo)志位TOVO將被置1。在該模式下,也可以使用比較匹配功能產(chǎn)生定時(shí)中斷。
CTC模式:又稱(chēng)比較匹配清0模式,計(jì)數(shù)器為單向加1計(jì)數(shù)器,將TCNT0的值與寄存器OCR0的值進(jìn)行比較,當(dāng)兩者相等時(shí),將比較匹配標(biāo)志OCF0置1,產(chǎn)生中斷申請(qǐng),同時(shí)將TCNT0的值清0,重新開(kāi)始加1計(jì)數(shù)。在CTC模式下,還可利用比較輸出產(chǎn)生占空比為50%的方波輸出,此時(shí),應(yīng)將輸出信號(hào)OC0設(shè)置為觸發(fā)方式??焖貾WM(脈沖寬度調(diào)制)模式:PWM有頻率、占空比和相位3個(gè)參數(shù),通過(guò)改變輸出波形的占空比改變輸出電壓,可用于實(shí)現(xiàn)D/A、調(diào)節(jié)電壓或電流、改變電動(dòng)機(jī)轉(zhuǎn)速等。T/C0工作在該模式時(shí),可采用溢出或正(反)向比較匹配中斷方式,通過(guò)調(diào)整OCR0的值可改變輸出波形的占空比。相位修正PWM模式:相位修正PWM模式可以產(chǎn)生高
精度相位可調(diào)的PWM波形,輸出波形的占空比也由OCR0的值決定。該模式采用雙程計(jì)數(shù)方式,從0x00一直加到0xFF;下一個(gè)計(jì)數(shù)脈沖到達(dá)時(shí),從0xFF減1計(jì)數(shù)直到0x00。因此產(chǎn)生的PWM波的頻率比快速PWM低,適用于電機(jī)控制類(lèi)的應(yīng)用。
2.相關(guān)寄存器
與T/C0相關(guān)的寄存器如表2-16所示。
1)?T/C0控制寄存器TCCR0
TCCR0各位的定義如表2-17所示。TCCR0各個(gè)位的詳細(xì)描述如表2-18所示。
2)?T/C0計(jì)數(shù)寄存器TCNT0
TCNT0是T/C0的計(jì)數(shù)值寄存器,該寄存器可以直接被讀/寫(xiě)訪問(wèn),寫(xiě)TCNT0寄存器將會(huì)在下一個(gè)時(shí)鐘周期中阻止比較匹配。在計(jì)數(shù)器運(yùn)行的過(guò)程中,修改TCNT0的數(shù)值有可能丟失一次TCNT0與OCR0的比較匹配。
TCNT0的定義如表2-19所示。
3)輸出比較寄存器OCR0
OCR0寄存器包含一個(gè)8位的數(shù)據(jù),不斷與TCNT0的值進(jìn)行比較,兩者相等時(shí),產(chǎn)生比較匹配事件,可以用來(lái)產(chǎn)生輸出比較中斷或者在OC0引腳上產(chǎn)生波形。
OCR0各位的定義如表2-20所示。
4)定時(shí)/計(jì)數(shù)器中斷屏蔽寄存器TIMSK
TIMSK各位定義如表2-21所示。
TIMSK的Bit[1:0]位是和T/C0有關(guān)的,Bit[5:2]位是和T/C1有關(guān)的,Bit[7:6]是和T/C2有關(guān)的。TIMSK各個(gè)位的詳細(xì)描述如表2-22所示。
5)定時(shí)/計(jì)數(shù)器中斷標(biāo)志寄存器TIFR
TIFR各位定義如表2-23所示。
TIFR的Bit[1:0]位是和T/C0有關(guān)的,Bit[5:2]位是和T/C1有關(guān)的,Bit[7:6]是和T/C2有關(guān)的。TIFR各個(gè)位的詳細(xì)描述如表2-24所示。
3.編程應(yīng)用
下述內(nèi)容用于實(shí)現(xiàn)任務(wù)描述2.D.4,采用定時(shí)器T/C0的溢出中斷實(shí)現(xiàn)蜂鳴器每間隔2s鳴響一次。蜂鳴器電路如圖
2-6所示,BEEP與ATmega16的PD7引腳相連。圖2-6蜂鳴器驅(qū)動(dòng)電路當(dāng)采用外部7.3728MHz晶振頻率、1024分頻時(shí),每計(jì)
1個(gè)脈沖為1/7200s(7.3728/1024=7200Hz)。若初值為56,
T0從56開(kāi)始計(jì)數(shù)計(jì)滿(mǎn)255后,在下一個(gè)脈沖到達(dá)時(shí)將置位TOVO產(chǎn)生中斷,即計(jì)數(shù)次數(shù)為200。因此,從開(kāi)始計(jì)數(shù)到溢出所用時(shí)間為1/7200×200=1/36s。定時(shí)計(jì)數(shù)器溢出中斷72次恰好為2?s。2.4.316位定時(shí)/計(jì)數(shù)器
T/C1是一個(gè)16位的多功能定時(shí)/計(jì)數(shù)器,可以實(shí)現(xiàn)精確的程序定時(shí)、波形測(cè)量和信號(hào)測(cè)量。T/C1與T/C0共享一個(gè)預(yù)分頻器,但它們的時(shí)鐘源選擇是相互獨(dú)立的。與T/C0相比,T/C1的計(jì)時(shí)寬度和長(zhǎng)度大大增加,功能也更加強(qiáng)大。
1.工作模式
T/C1的工作方式包括定時(shí)/計(jì)數(shù)方式、輸出比較方式、輸入捕獲方式和PWM方式。
在T/C1的PWM方式下,有多種不同的計(jì)數(shù)器上限(TOP)值可供選擇,可產(chǎn)生頻率可調(diào)、相位可調(diào)以及頻率相位均可調(diào)的多種PWM波;同時(shí),配備了2個(gè)比較匹配輸出單元OC1A、OC1B和比較匹配寄存器OCR1A、OCR1B,可以得到相同頻率、不同占空比的2路PWM輸出。輸入捕獲功能可用于精確捕捉一個(gè)外部事件的發(fā)生,記錄時(shí)間發(fā)生的時(shí)間印記,還可用于頻率和周期的精確測(cè)量。捕捉外部事發(fā)生的觸發(fā)信號(hào)由引腳ICP1輸入,也可通過(guò)模擬比較器單元來(lái)實(shí)現(xiàn)。
2.相關(guān)寄存器
T/C1有多個(gè)16位的寄存器,這些寄存器均由2個(gè)8位的寄存器組成,對(duì)它們的讀/寫(xiě)操作須遵循特定的步驟。與定時(shí)/計(jì)數(shù)器T/C1相關(guān)的寄存器如表2-25所示。
1)?T/C1控制寄存器A(TCCR1A)
TCCR1A的定義如表2-26所示。
TCCR1A各個(gè)位的詳細(xì)描述如表2-27所示。
2)?T/C1控制寄存器B(TCCR1B)
TCCR1B的定義如表2-28所示。
TCCR1B各個(gè)位的詳細(xì)描述如表2-29所示。
3)計(jì)數(shù)寄存器TCNT1H和TCNT1L
T/C1的計(jì)數(shù)寄存器TCNT1由2個(gè)8位的計(jì)數(shù)器TCNT1H和TCNT1L組成,可直接被CPU讀/寫(xiě)訪問(wèn)。在計(jì)數(shù)器運(yùn)行期間不能修改TCNT1的內(nèi)容,否則有可能丟失一次TCNT1與OCR1A的匹配比較操作。TCNT1的定義如表2-30所示。
4)輸出比較寄存器OCR1AH和OCR1AL與OCR1BH和OCR1BL
輸出比較寄存器包含通道A輸出比較寄存器OCR1A和
通道B輸出比較寄存器OCR1B,均為16位寄存器。該寄存器中的數(shù)據(jù)與TCNT1中的計(jì)數(shù)值進(jìn)行比較,一旦數(shù)據(jù)匹配相等,將產(chǎn)生一個(gè)輸出比較匹配中斷申請(qǐng),或者改變OC1x(x=A,B)的輸出邏輯電平。
OCR1A和OCR1B均為雙向可讀/寫(xiě)寄存器,系統(tǒng)復(fù)位后的初始值為0。以O(shè)CR1A為例,其定義如表2-31所示。
5)輸入捕捉寄存器ICR1H與ICR1L
16位的輸入捕捉寄存器ICR1由ICR1H和ICR1L組成。當(dāng)外部引腳ICP1或模擬比較器有輸入捕捉觸發(fā)信號(hào)產(chǎn)生時(shí),計(jì)數(shù)器TCNT1中的值寫(xiě)入ICR1中。ICR1的值可以作為計(jì)數(shù)器的TOP值(當(dāng)T/C1控制寄存器的對(duì)應(yīng)位WGM1[3:0]=1000,1010,1100,1110時(shí))。ICR1的定義如表2-32所示。
3.編程應(yīng)用
下述內(nèi)容用于實(shí)現(xiàn)任務(wù)描述2.D.5,采用定時(shí)器T/C1的比較匹配中斷方式,實(shí)現(xiàn)LED燈間隔1s閃亮(500ms亮、
500ms滅)。硬件電路參見(jiàn)圖2-4。
采用外部7.3728MHz晶振頻率、1024分頻時(shí),每計(jì)1
個(gè)脈沖為1/7200s(7.3728/1024=7200Hz)。若比較匹配值為3600,定時(shí)計(jì)數(shù)器T/C1從0開(kāi)始計(jì)數(shù),則到輸出比較匹配中斷所用時(shí)間恰好為1/7200×3600=0.5s=500ms。
2.5USART
為了支持與采用不同通信方式的器件方便地交換數(shù)據(jù),ATmega16集成了3個(gè)獨(dú)立的串行通信接口單元,分別是通用同步/異步收/發(fā)器USART、串行外設(shè)接口SPI、兩線串行接口TWI(IIC)。本節(jié)將介紹ATmega16的通用同步/異步串行收/發(fā)器USART。2.5.1USART概述
USART(UniversalSyncharonous/AsynchronousReceiver/Transmitter)是一個(gè)全雙工的同步/異步串行收/發(fā)器,也是ATmega16自帶的一個(gè)高度靈活的串行通信接口,主要由時(shí)鐘發(fā)生器、發(fā)送器和接收器3部分組成。
1.?USART特點(diǎn)
USART的主要特點(diǎn)如下:
全雙工操作,獨(dú)立的串行接收和發(fā)送寄存器,可同時(shí)進(jìn)行收、發(fā)操作。
支持異步或同步操作。
主機(jī)或從機(jī)提供時(shí)鐘的同步操作。
高精度的波特率發(fā)生器。
支持5、6、7、8或9個(gè)數(shù)據(jù)位,1個(gè)或2個(gè)停止位的串行數(shù)據(jù)幀結(jié)構(gòu)。硬件支持的奇偶校驗(yàn)操作。
硬件支持的數(shù)據(jù)溢出檢測(cè)。
硬件支持的幀錯(cuò)誤檢測(cè)。
噪聲濾波,包括錯(cuò)誤的起始位檢測(cè),以及數(shù)字低通濾
波器。
三個(gè)獨(dú)立的中斷:TX發(fā)送結(jié)束,TX發(fā)送數(shù)據(jù)寄存器空,以及RX接收結(jié)束。
多處理器通信模式。
倍速異步通信模式。
2.?USART的幀結(jié)構(gòu)
ATmega16的串行數(shù)據(jù)幀由數(shù)據(jù)字加上同步位(開(kāi)始位與停止位)以及用于糾錯(cuò)的奇偶校驗(yàn)位構(gòu)成。具體來(lái)說(shuō),一個(gè)完整的數(shù)據(jù)幀按照傳輸?shù)南群箜樞蛞来伟ǎ?/p>
1個(gè)起始位;
5、6、7、8或9個(gè)數(shù)據(jù)位;
無(wú)校驗(yàn)位或奇校驗(yàn)或偶校驗(yàn)位;
1或2個(gè)停止位。
在實(shí)際編程應(yīng)用中,通常將數(shù)據(jù)幀的結(jié)構(gòu)設(shè)置為1個(gè)起始位、8個(gè)數(shù)據(jù)位、無(wú)校驗(yàn)、1個(gè)停止位。
1.?UDR
UDR數(shù)據(jù)寄存器實(shí)際上是兩個(gè)物理分離的寄存器,
分別是發(fā)送數(shù)據(jù)緩沖寄存器(TXB)和接收數(shù)據(jù)緩沖寄存器(RXB),它們共享同一個(gè)I/O地址。當(dāng)把待發(fā)送的數(shù)據(jù)寫(xiě)入U(xiǎn)DR時(shí),其實(shí)是寫(xiě)入TXB中;當(dāng)讀UDR時(shí),讀的是RXB中的數(shù)據(jù)。數(shù)據(jù)寄存器UDR各位定義如表2-33所示。
2.?UCSRA
USART控制狀態(tài)寄存器UCSRA各位定義如表2-34所示。表2-34中各位的詳細(xì)描述如表2-35所示。
3.UCSRB
控制和狀態(tài)寄存器UCSRB各位的定義如表2-36所示。表2-36中各位的詳細(xì)描述如表2-37所示。在實(shí)際應(yīng)用中,若要設(shè)置USART為異步通信模式,幀格式為8位數(shù)據(jù)位、無(wú)校驗(yàn)方式、1位停止位,通常用下述程序代碼實(shí)現(xiàn):
UCSRA|=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
UCSRA&=~((1<<UMSEL)|(1<<UPM1)|(1<<UPM0)|
(1<<USBS)|(1<<UCPOL));
5.UBRRL和UBRRH
在USART編程應(yīng)用中,異步模式比較常用,通信的收、發(fā)雙方通過(guò)波特率保持一致。UBRRH和UBRRL構(gòu)成了一個(gè)12位波特率寄存器UBRR,包含了USART的波特率信息。其中,UBRRH包含了USART波特率高4位,UBRRL包含了低8位,波特率的改變將造成正在進(jìn)行的數(shù)據(jù)傳輸受到破壞,寫(xiě)UBRRL將立即更新波特率分頻器。(說(shuō)明:UCSRC與UBRRH公用一個(gè)I/O地址)。波特率寄存器UBRRL和UBRRH的定義如表2-42所示。表2-42中各位的描述如表2-43所示。在7.3728MHz晶振頻率下,UBRR的設(shè)置波特率設(shè)置如表2-44所示。2.5.3USART編程
下述函數(shù)程序代碼用于實(shí)現(xiàn)讀取UCSRC寄存器的值。
【示例2-4】Usart_ReadUCSRC()。
unsignedcharUsart_ReadUCSRC(void)
{
unsignedcharucsrc;
ucsrc=UBRRH;
ucsrc=UCSRC;
returnucsrc;
}下述函數(shù)程序代碼用于實(shí)現(xiàn)單字節(jié)的數(shù)據(jù)發(fā)送,函數(shù)參數(shù)data為要發(fā)送的字符。
下述內(nèi)容用于實(shí)現(xiàn)任務(wù)描述2.D.6,編寫(xiě)一個(gè)測(cè)試程序,實(shí)現(xiàn)ATmega16與PC之間的USART串口通信。
由于PC使用的是RS232標(biāo)準(zhǔn)電平,而ATmega16使用的是TTL電平,因此需要通過(guò)MAX3232芯片進(jìn)行電平轉(zhuǎn)換。通過(guò)JP4使用跳線選擇使用RS232,實(shí)現(xiàn)單片機(jī)與PC之間的串口通信,如圖2-7所示。圖2-7串口跳線選擇編寫(xiě)主函數(shù)程序代碼如下:
【描述2.D.6】main.c。
#include<iom16.h>
#include<string.h>
#defineucharunsignedchar
#defineuintunsignedint
uchartx_buf[30]; //定義發(fā)送緩沖數(shù)組程序運(yùn)行后,使用超級(jí)串口工具觀察到的實(shí)驗(yàn)結(jié)果如圖2-8所示。圖2-8USART發(fā)送測(cè)試結(jié)果
2.6SPI
串行外設(shè)接口SPI(SerialPeripheralInterface)總線系統(tǒng)是一種同步串行外設(shè)接口,允許MCU與各種外圍設(shè)備以串行方式進(jìn)行通信及數(shù)據(jù)交換,具有電路簡(jiǎn)單、控制方便、通信速度快、通信可靠等優(yōu)點(diǎn)。很多器件如LCD模塊、Flash/EEPROM存儲(chǔ)器、數(shù)據(jù)輸入/輸出設(shè)備都采用了SPI接口。本節(jié)將對(duì)SPI接口的基本原理和應(yīng)用作詳細(xì)講解。2.6.1SPI概述
SPI接口一般用于系統(tǒng)板上芯片之間的短距離通信,如單片機(jī)與外圍EEPROM存儲(chǔ)器、A/D及D/A轉(zhuǎn)換器、實(shí)時(shí)時(shí)鐘RTC等器件的直接擴(kuò)展和連接。采用SPI串行總線可以簡(jiǎn)化系統(tǒng)結(jié)構(gòu),降低系統(tǒng)成本,使系統(tǒng)具有靈活的可擴(kuò)展性。
1.特點(diǎn)
SPI允許ATmega16和外設(shè)之間,或幾個(gè)AVR單片機(jī)之間以標(biāo)準(zhǔn)SPI接口協(xié)議兼容的方式進(jìn)行高速的同步數(shù)據(jù)傳輸。ATmega16SPI的特點(diǎn)如下:
2.系統(tǒng)組成
典型的SPI通信系統(tǒng)由一個(gè)主機(jī)、一個(gè)從機(jī)以及它們之間的4根信號(hào)線組成,通信連接如圖2-9所示。2-9典型SPI通信系統(tǒng)
3.工作原理
在SPI通信中,主機(jī)控制占據(jù)主導(dǎo)地位,決定了通信的起始和結(jié)束。通信雙方的數(shù)據(jù)傳輸是在主機(jī)的控制下,進(jìn)行雙向同步數(shù)據(jù)交換。SCK和SS均由主機(jī)發(fā)出,從機(jī)只在SS信號(hào)有效時(shí)才響應(yīng)SCK上的時(shí)鐘信號(hào)進(jìn)行數(shù)據(jù)傳輸。
SPI的本質(zhì)是在同步時(shí)鐘作用下的串行移位過(guò)程。當(dāng)主機(jī)要發(fā)起一次傳輸時(shí),首先將SS信號(hào)拉低;然后在內(nèi)部產(chǎn)生的SCK作用下,將SPI數(shù)據(jù)寄存器中的數(shù)據(jù)逐位移出,并通過(guò)MOSI信號(hào)線傳送至從機(jī)。從機(jī)一旦檢測(cè)到SS有效后,在SCK的作用下,也將自己移位寄存器中的內(nèi)容通過(guò)MISO信號(hào)線逐位移入主機(jī)寄存器。
4.工作模式
在介紹SPI的工作模式之前,首先介紹兩個(gè)基本概念:同步時(shí)鐘極性CPOL和同步時(shí)鐘相位CPHA。
CPOL:SPI總線處在傳輸空閑時(shí)SCK信號(hào)線的狀態(tài)。
CPOL=0:SPI傳輸空閑時(shí),SCK信號(hào)線的狀態(tài)保持在低電平0。
CPOL=1:SPI傳輸空閑時(shí),SCK信號(hào)線的狀態(tài)保持在高電平1。
CPHA:進(jìn)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 技術(shù)報(bào)告2025:5G技術(shù)在智慧農(nóng)業(yè)中的應(yīng)用與效果評(píng)估
- 光伏行業(yè)光伏產(chǎn)品認(rèn)證與市場(chǎng)監(jiān)管研究報(bào)告
- 2025年生態(tài)修復(fù)工程生態(tài)系統(tǒng)服務(wù)功能評(píng)估與生態(tài)景觀設(shè)計(jì)報(bào)告
- pg面試試題及答案
- 2025雙方協(xié)商解除勞動(dòng)合同協(xié)議范本
- 代持投資協(xié)議范本(股權(quán)激勵(lì))
- 房地產(chǎn)企業(yè)財(cái)務(wù)外包與稅務(wù)籌劃合同
- 嵌入式開(kāi)發(fā)行業(yè)信息統(tǒng)計(jì)試題及答案
- JAVA編程錯(cuò)誤分類(lèi)與解決方案試題及答案
- 云環(huán)境下構(gòu)建高效測(cè)試平臺(tái)的策略與注意事項(xiàng)試題及答案
- 2025屆河南省青桐鳴5月全真模擬卷·高考考前適應(yīng)性考試-生物試題(含答案)
- 夜場(chǎng)水煙合作協(xié)議書(shū)
- 2025年“鑄牢中華民族共同體意識(shí)”知識(shí)競(jìng)賽題庫(kù)及答案
- 河南省青桐鳴大聯(lián)考普通高中2024-2025學(xué)年高三考前適應(yīng)性考試地理試題及答案
- 管道勞務(wù)分包協(xié)議書(shū)
- 2024年湖南出版中南傳媒招聘筆試真題
- 《溺水急救方法》課件
- 辦公樓安全培訓(xùn)
- 尾礦庫(kù)基礎(chǔ)知識(shí)(金屬非金屬礦山尾礦庫(kù)安全技術(shù)中心)
- 功率因數(shù)與補(bǔ)償容量查詢(xún)表
- 中國(guó)石油化工集團(tuán)公司土地管理暫行辦法
評(píng)論
0/150
提交評(píng)論