ATmega8是AVR系列(由Atmel公司于1996年開發(fā))的8位CMOS微控制器,基于RSIC(精簡指令集計算機)架構(gòu),它的基本優(yōu)點是它不包含任何累加器,并且任何操作的結(jié)果都可以存儲在指令定義的任何寄存器中。
ATmega8 AVR微控制器的應(yīng)用也是非常的廣泛,而且現(xiàn)在仍然被用來當(dāng)做學(xué)習(xí)和研究高級微處理的基礎(chǔ)。ATmega8框圖如下圖所示:
內(nèi)存:
它由8KB的閃存、1KB的SRAM和512字節(jié)的 EEPROM 組成。8K Flash分為兩部分——下部分用作引導(dǎo)閃存部分,上部用作應(yīng)用閃存部分。SRAM包含1K字節(jié)以及1120字節(jié)的通用寄存器和I/O寄存器。低32個地址位置用于32個通用8位寄存器,接下來的64個地址用于I/O寄存器。另外,所有寄存器都直接連接到ALU,EEPROM用于存儲用戶定義的數(shù)據(jù)。
輸入/輸出端口
ATmega8由23個I/O線和3個I/O端口組成,分別命名為B、C和D。端口B由8個I/O線組成,端口C由7個I/O線組成,端口D由8個I/O組成線。
對應(yīng)于任何端口X(B,C或D)的寄存器是:
DDRX : 端口X數(shù)據(jù)方向寄存器。
PORTX : 端口X數(shù)據(jù)寄存器。
PINX : 端口X輸入寄存器。
定時器和計數(shù)器
ATmega8由3個具有可比模式的定時器組成,其中兩個是8位,而第三個是16位。
ATmega8包含內(nèi)部復(fù)位和振蕩器,可以消除對任何外部輸入的需求。內(nèi)部RC振蕩器能夠產(chǎn)生內(nèi)部時鐘,該時鐘可以按照編程在1MHz、2MHz、4MHz或8MHz的任何頻率下運行。另外,它還支持最大頻率為16MHz的外部振蕩器。
ATmega8通過USART(Universal Synchronous和Asynchronous Receiver Transmitter)提供同步和異步數(shù)據(jù)傳輸方案,即與調(diào)制解調(diào)器和其他串行設(shè)備進(jìn)行通信。它還支持基于主從方式的設(shè)備間通信的SPI(串行外設(shè)接口),支持的另一種通信類型是 TWI(雙線接口),并且允許通過使用2根電線和一個公共接地連接在任何兩個設(shè)備之間進(jìn)行換向。
ATmega8還具有集成在芯片中的比較器模塊,用于在通過外部芯片連接到模擬比較器的兩個輸入端的兩個電壓之間進(jìn)行比較。
它還包含一個6通道ADC,其中4個具有10位精度,2個具有8位精度。
狀態(tài)寄存器:
ATmega8包含有關(guān)當(dāng)前執(zhí)行的算術(shù)指令集的信息。
引腳配置圖
ATmega8顯著特點之一是除了5個引腳外,所有其他引腳都支持兩個信號。
引腳23、24、25、26、27、28和1用于端口C,而引腳9、10、14、15、16、17、18、19用于端口B、引腳2、3、4, 5、6、11、12用于端口D。
引腳1也是復(fù)位引腳,如果施加的低電平信號持續(xù)時間超過最小脈沖長度,則會產(chǎn)生復(fù)位。
引腳2和3也用于USART的串行通信。
引腳4和5用作外部中斷,其中一個在狀態(tài)寄存器的中斷標(biāo)志位置位時觸發(fā),另一個在中斷條件成立時觸發(fā)。
引腳9和10用作外部振蕩器以及定時器計數(shù)器振蕩器,其中晶體直接連接在引腳之間。10腳用于晶振或低頻晶振,如果內(nèi)部校準(zhǔn)的RC振蕩器用作時鐘源并且異步定時器使能,則這些引腳可用作定時器振蕩器引腳。
引腳19用作主時鐘輸出,SPI通道的從時鐘輸入。
引腳18用作主時鐘輸入,從時鐘輸出。
引腳17用作主數(shù)據(jù)輸出,SPI通道的從數(shù)據(jù)輸入。它在由從機啟用時用作輸入,在由主機啟用時是雙向的。該引腳也可用作輸出比較匹配輸出,用作定時器/計數(shù)器比較匹配的外部輸出。
引腳16用作從機選擇輸入,通過將PB2引腳配置為輸出,它也可以用作定時器/計數(shù)器1比較匹配。
引腳15可用作定時器/計數(shù)器比較匹配A的外部輸出。
引腳23至28用于ADC通道。引腳27也可用作串行接口時鐘,引腳28可用作串行接口數(shù)據(jù)。
引腳13和12用作模擬比較器輸入。
引腳11和6用作定時器/計數(shù)器源。
睡眠模式
ATmega8微控制器以6種睡眠模式運行,分別是:
空閑模式:它停止CPU的運行,但允許SPI、USART、ADC、TWI、定時器/計數(shù)器和看門狗運行并中斷系統(tǒng)。它是通過將MCU寄存器標(biāo)志的SM0到 SM2位設(shè)置為零來實現(xiàn)的。
ADC降噪模式:它會停止CPU,但允許ADC、外部中斷、定時器/計數(shù)器2和看門狗運行。
掉電模式:它啟用外部中斷、2線串行接口、看門狗,同時禁用外部振蕩器,并且停止所有生成的時鐘。
省電模式:當(dāng)定時器/計數(shù)器異步計時時使用,它停止除clkASY之外的所有時鐘。
待機模式:在此模式下,允許振蕩器工作,停止所有其他操作。
主要應(yīng)用
下圖是使用ATmega8微控制器的閃爍LED。該程序使用C語言編寫,首先編譯為.c 文件。ATMEL軟件工具會將此文件轉(zhuǎn)換為二進(jìn)制ELF目標(biāo)文件,然后再次將其轉(zhuǎn)換為十六進(jìn)制文件,最后使用AVR dude程序?qū)⑹M(jìn)制文件傳遞給微控制器進(jìn)行處理。
總結(jié)
ATmega8微控制器采用Atmes高密度非易失性存儲器技術(shù)制造,閃存程序存儲器可以通過SPI串行接口、傳統(tǒng)的非volatle存儲器編程器或在虛擬現(xiàn)實內(nèi)核上運行的片上引導(dǎo)程序在系統(tǒng)中重新編程。引導(dǎo)程序可以使用任何接口將應(yīng)用程序下載到應(yīng)用程序閃存中。當(dāng)應(yīng)用程序閃存部分更新時,引導(dǎo)閃存部分中的軟件將繼續(xù)運行,通過將8位RISC CPU與單片芯片上的系統(tǒng)內(nèi)自編程閃存相結(jié)合,證明了真正的邊讀邊寫操作。
AtmelAtmega8是一款功能強大的微控制器,為許多嵌入式控制應(yīng)用程序提供了高度靈活且經(jīng)濟高效的解決方案。Atmega8 AVR支持全套程序和系統(tǒng)開發(fā)工具,包括C編譯器、宏匯編程序、程序deb模擬器、電路內(nèi)仿真器和評估套件等。
評論
查看更多