<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > AVR單片機的C語(yǔ)言開(kāi)發(fā)簡(jiǎn)介

AVR單片機的C語(yǔ)言開(kāi)發(fā)簡(jiǎn)介

作者: 時(shí)間:2013-01-14 來(lái)源:網(wǎng)絡(luò ) 收藏

下面我們來(lái)看看我們得到的代碼?!菊f(shuō)明】:“#”只是為了方便解釋代碼,并非為程序內容。

#1 //ICC-AVR application builder : 2006-11-3 14:42:54

#2 // Target : M16

#3 // Crystal: 7.3728Mhz

#4 #include

#5 #include

#6 void port_init(void)

#7 {

#8 PORTA = 0x00;

#9 DDRA = 0x00;

PORTB = 0x00;

DDRB = 0x00;

PORTC = 0x00; //m103 output only

DDRC = 0x00;

PORTD = 0x00;

DDRD = 0x00;

#10 }

#11 //call this routine to initialize all peripherals

#12 void init_devices(void)

#13 {

#14 //stop errant interrupts until set up

#15 CLI(); //disable all interrupts

#16 port_init();

#17 MCUCR = 0x00;

#18 GICR = 0x00;

#19 TIMSK = 0x00; //timer interrupt sources

#20 SEI(); //re-enable interrupts

#21 //all peripherals are now initialized

#13 }

#1——#3,注釋行,分別說(shuō)明了程序生成者是ICC-AVR application builder,生成時(shí)間,CPU類(lèi)型,晶振大小,在本例中晶振大小沒(méi)有用途,但在實(shí)際操作中,晶振大小將影響定時(shí)器的設置,PWM波形的輸出,串口波特率的設定,總線(xiàn)時(shí)序等多方面的問(wèn)題。

#4——#5,包含特定頭文件,學(xué)過(guò)c語(yǔ)言的人都知道,c語(yǔ)言里幾乎每個(gè)程序都要包含特定的頭文件,在這里,iom16v.h和macros.h都在程序安裝文件夾下一個(gè)include的目錄中,iom16v.h和你選擇的芯片相對應,如果你選擇的是atmega32,那個(gè)這個(gè)文件就是iom32v.h,等等,在這樣的文件中定義了對應的芯片的各個(gè)硬件地址。macros.h文件中定義了一些宏命令和一些老的語(yǔ)言寫(xiě)法。通常每一個(gè)程序都要包含這個(gè)頭文件。

#6 void port_init(void),定義函數port_init,函數的用途是初始化串口,前面一個(gè)void表示函數沒(méi)有輸出,括號里的void表示這個(gè)函數沒(méi)有輸入變量。

#7,#10 C語(yǔ)言中所有函數體都要寫(xiě)在{}內,一個(gè)開(kāi)始,一個(gè)結束。

#8,定義PA口為0x00,及PA口上的所有管腳輸出為低電平,同樣道理,如果些微PORTA=0xFF,則都輸入高電平,0xFF及二進(jìn)制的11111111,如果想讓某一位輸出高,其他為低,如00000001,則是PA0輸出為高電平,PA1——PA7輸出為低電平。說(shuō)明:每個(gè)口線(xiàn)與單片機實(shí)際引腳的對應關(guān)系請參看技術(shù)手冊。

#9,定義引腳的輸出輸入模式,1為輸出,0為輸入。當使用輸出模式及設置為1時(shí),PORTA的值將影響內部上拉電阻的使用,如果PORTA對應管腳的值為1,則使用內部上拉電阻,否則不采用。 除了這里說(shuō)的“=”之外,管腳的控制還有其他算符,|= ,=! ,^=,==,請參考學(xué)習筆記:avr端口操作的例子理解,將在本頁(yè)后面部分說(shuō)明。

同理,下面部分為BCD口的操作。

#11,注釋?zhuān)f(shuō)明你可以使用下面的程序來(lái)實(shí)現初始化。

#13,程序的開(kāi)始和結束。

#15,內部定義的宏,關(guān)閉所有中斷。

#16,調用端口初始化的程序。

#17,MCUCR = 0x00;電源管理及睡眠模式寄存器設置,這里設為0x00,為空閑模式,更多內容,請參看atmega16技術(shù)手冊。

#18,GICR = 0x00;通用中斷控制寄存器設置,0x00,代表禁用任何中斷,更多內容請參考技術(shù)手冊。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>