摘要:以S3C825A為例介紹三星公司SAM8系列單片機(jī)的內(nèi)部結(jié)構(gòu)及其軟件開(kāi)發(fā)環(huán)境,詳細(xì)描述采用混合編輯法來(lái)對(duì)SAM8系列單片機(jī)進(jìn)行軟件設(shè)計(jì)的一般方案,最后給出用混合編程法對(duì)S3C825A進(jìn)行軟件設(shè)計(jì)的具體應(yīng)用實(shí)例。
關(guān)鍵詞:SAM8系列單片機(jī);OPENice i500;IAR C編譯器;混合編程
引言
三星SAM8系列單片機(jī)是8位CMOS型微控制器,該系列單片機(jī)具有功耗超低、多樣型號(hào)、資源豐富、CPU時(shí)鐘可調(diào)及軟件對(duì)硬件控制靈活等優(yōu)點(diǎn),其中, S3C825A型是目前應(yīng)用較為廣泛的單片機(jī)。S3C825A與三星SAM8系列其他單片機(jī)一樣,其常用的開(kāi)發(fā)環(huán)境是IAR公司的IAR Embedded Workbench集成開(kāi)發(fā)資源,該環(huán)境支持混合編程,可以編輯、匯編和編譯匯編語(yǔ)言和C語(yǔ)言的源文件,并且匯編程序與C程序可以共同相同格式的頭文件,使得開(kāi)發(fā)過(guò)程靈活方便,是一種高效的軟件設(shè)計(jì)方法,具有廣泛的應(yīng)用前景。

1 S3C825A型單片機(jī)的內(nèi)部結(jié)構(gòu)
S3C825A的內(nèi)部結(jié)構(gòu)框圖如圖1所示。從圖1可以該單片機(jī)具有以下特點(diǎn):
●使用SAM88RC作為中央處理單元;
●具有48KB片內(nèi)ROM和2096byte的寄存器空間;
●帶有多達(dá)67個(gè)可編程I/O接口;
●具有2個(gè)8位的定時(shí)/計(jì)數(shù)器和2個(gè)16位定時(shí)/計(jì)數(shù)器;
●帶有LCD驅(qū)動(dòng)控制器;
●帶有一個(gè)4輸入的10bit A/D轉(zhuǎn)換器;
●帶有主從兩個(gè)晶振接口。
1.1 存儲(chǔ)空間分配
<!--StartFragment -->
S3C825A型微控制器有2類(lèi)存儲(chǔ)空間,48KB內(nèi)部掩膜可編程存儲(chǔ)空間(ROM)和2096byte的內(nèi)部寄存器空間。其中可編程存儲(chǔ)空間主要用來(lái)存儲(chǔ)程序代碼和列表數(shù)據(jù),它的起始256Byte (00H0FFH)用來(lái)存儲(chǔ)中斷矢量列表,未使用的空間也可用作代碼存儲(chǔ)空間,但中斷矢量必須放在這段空間中。對(duì)S3C825A而言,當(dāng)程序執(zhí)行 RESET后,ROM的起始地址是0100H。
S3C825A共有2137個(gè)8位可編址寄存器,其中13byte用作CPU和系統(tǒng)控制寄存器,60byte用作接口控制和數(shù)據(jù)寄存器,16byte用作共享的工作寄存器,其余的2048byte用作通用寄存器(其中包括32byte的LCD顯示寄存器),S3C825A的內(nèi)部寄存器圖2所示,它的內(nèi)部寄存器空間實(shí)行頁(yè)式管理,每一個(gè)頁(yè)的上端64byte作為Set2空間,下端192byte作為主數(shù)據(jù)寄存器空間,共7頁(yè)(第7頁(yè)的00H-1FH為L(zhǎng)CD 顯示數(shù)據(jù)寄存器空間)。另外擴(kuò)展出的96byte可作為Set1的Bank0(64byte)和Bank1(32byte)空間,該空間可作為系統(tǒng)控制寄存器空間和工作寄存器空間。

1.2 A/D轉(zhuǎn)換器
S3C825A 內(nèi)部集成了有一個(gè)4路輸入10bit模/數(shù)轉(zhuǎn)換器(A/D)。該A/D轉(zhuǎn)換器可將每一路的模擬電平用連續(xù)的近似邏輯值表示,從而得到與之相等的10bit 數(shù)字電平,其轉(zhuǎn)換過(guò)程需要50個(gè)時(shí)鐘周期。模擬信號(hào)輸入端口是I/O Port3的P3.0~P3.2復(fù)用的,Port3的控制寄存器(P3CONH,P3CONL)可確定Port3是否用于A/D轉(zhuǎn)換器的模擬信號(hào)輸入, A/D轉(zhuǎn)換器的控制寄存器(ADCON)控制P3.0~P3.2中哪一路作為A/D輸入端口。輸入信號(hào)模擬電平值要求在AVREF和AVSS之間。轉(zhuǎn)換后的值放在ADDATAH/ADDATAL寄存器中,每次轉(zhuǎn)換前必須將這2個(gè)寄





