1. Atmega16單片機簡介
今天我們的主題是單片機,說道單片機你可能最先想到的是51單片機,然后通過外接的數(shù)字電路和模擬電路來控制外圍的硬件,比如PWM,ADC,I2C等等。那么今天我們所說的是什么那?其實你把Atmega16單片機當成51單片機來使用即可,只不過是Atmega16單片機的外圍接口更豐富,那么它都有什么外設(shè)資源那?
ATmega16是基于增強的AVR RISC結(jié)構(gòu)的低功耗8 位CMOS微控制器,由于其先進的指令集以及單時鐘周期指令執(zhí)行時間,ATmega16 的數(shù)據(jù)吞吐率高達1 MIPS/MHz。ATmega16常用片上資源有定時器、PWM、外部中斷、SPI總線、兩線串行接口TWI、EEPROM、USART、模擬比較器、ADC轉(zhuǎn)換、IEEE(JTAG)邊界掃描等。如何去學習Atmega16單片機那?我們從硬件和軟件兩方面分析。
2. Atmega16單片機硬件原理圖(最小系統(tǒng))
從上述的最小系統(tǒng)板子上們可以看到它分為如下幾個部分:
復位電路:上電復位(電容),手動按鍵復位。
晶振電路:Atmega16單片機內(nèi)部自帶RC震蕩電路,但是自帶的震蕩電路不夠精確,所以這里就外接了一個8MHZ的晶振。
下載程序接口ISP:ISP串行的下載程序的接口
Atmega16單片機:8位avr單片機。
1. Atmega16單片機編程
AVR單片機的編譯軟件有GCC AVR和ICC AVR等,通常使用較多的是ICC AVR,也比較好用,本書以ICC AVR6.31版本為例介紹編譯軟件的使用。啟動ICC AVR,界面如下圖所示。如何使用avr單片機控制最小系統(tǒng)上的led燈那?代碼如下:
AVR ATmega16 流水燈C程序
/**************************************************************************/
#include //包含單片機型號頭文件
#include //包含“位”操作頭文件
void delay(void) //自定義延時函數(shù)
{
unsigned char i,j;
for(i=0;i《255;i++)
for(j=0;j《10;j++)
;
}
void cpu_init(void) //單片機初始化函數(shù)
{
PORTA = 0x00; //PA口輸出值都定義為0
DDRA = 0x00; //PA口輸出允許關(guān)
PORTB = 0x00; //PB口輸出值都定義為0
DDRB = 0x00; //PB口輸出允許關(guān)
PORTC = 0x00; //PC口輸出值都定義為0
DDRC = 0x00; //PC口輸出允許關(guān)
PORTD = 0x00; //PD口輸出值都定義為0
DDRD = 0x00; //PD口輸出允許關(guān)
}
void main(void)
{
cpu_init(); //初始化單片機
while(1)
{
PORTA=0X00; /*點亮led燈,由最小系統(tǒng)的外部電路決定單片機輸出
低電平時流水燈點亮*/
DDRA=0XFF; /*允許輸出,此時PORTA的賦值才有效,這事AVR比51高級的地方*/
//由于其他端口沒有接外圍設(shè)備先不用定義
delay();
DDRA=0X00; //關(guān)閉led燈
delay();
}
}
-
adc
+關(guān)注
關(guān)注
98文章
6495瀏覽量
544461 -
51單片機
+關(guān)注
關(guān)注
274文章
5702瀏覽量
123491 -
定時器
+關(guān)注
關(guān)注
23文章
3246瀏覽量
114719 -
ATmega16單片機
+關(guān)注
關(guān)注
1文章
26瀏覽量
20850
發(fā)布評論請先 登錄
相關(guān)推薦
評論