|
第三章 點亮我的LED ――I/O輸出實驗 一.背景 當(dāng)完成上述實驗后,我就可以像使用51單片機(jī)那樣,在C文件的main()函數(shù)中通過設(shè)置相應(yīng)的寄存器來達(dá)到對相應(yīng)外設(shè)(如I/O的輸入、輸出等)的控制目的。 二.實驗?zāi)康?br /> 通過控制PIO的相關(guān)寄存器,使特定的I/O口輸出高電平和低電平,來點亮LED。 三.實驗程序和參數(shù)設(shè)置 1> 連接器選項設(shè)置 RO Base = 0x00200000; RW Base = 0x00202000; Image entry point=0x00200000; 2> 啟動代碼 啟動代碼與第一個實驗中修改后的相同,即將“__main()”改成main()。 3> C語言的代碼 #i nclude "AT91SAM7S64.h" //特殊功能寄存器頭文件。類似與51單片機(jī)中reg51.h #i nclude "Board.h" //定義目標(biāo)板的頭文件 int main(void) { *AT91C_PIOA_PER = LED_MASK;//使能4個LED對應(yīng)管腳的I/O口功能 *AT91C_PIOA_OER = LED_MASK;//使能4個LED管腳的輸出功能 while (1) { //可用單步運行來查看輸出結(jié)果 *AT91C_PIOA_SODR = LED1;//將LED1對應(yīng)的管腳輸出高電平 *AT91C_PIOA_CODR = LED1;//將LED1對應(yīng)的管腳輸出低電平 } } 四.總結(jié) 本實驗非常的順利,沒有出現(xiàn)問題。證明ARM芯片的內(nèi)部外圍與8位單片機(jī)內(nèi)部外圍的控制或使用方法在原理上基本是相同的,都是通過設(shè)置相關(guān)的特殊功能寄存器來實現(xiàn)控制。也就是說只要會單片機(jī)也就會ARM! |