上期筆者介紹的PIC16F84單片機(jī)點(diǎn)亮一只發(fā)光二極管的源程序?qū)嵗菫榱苏f明PIC單片機(jī)16F84具體應(yīng)用時(shí)的基本格式。
現(xiàn)在我們已經(jīng)知道要單片機(jī)工作,就需用匯編語言編制程序。而對某個(gè)PIC單片機(jī)編程時(shí),還需對選用的PIC單片機(jī)內(nèi)部硬件資源有所了解。這里介紹PIC16F84單片機(jī)的內(nèi)部結(jié)構(gòu),如圖1所示的框圖。由圖1看出,其基本組成可分為四個(gè)主要部分,即運(yùn)算器ALU和工作寄存器W;程序存儲器;數(shù)據(jù)存儲器和輸入/輸出(I/O)口;堆棧存儲器和定時(shí)器等?,F(xiàn)分別介紹如下。
1運(yùn)算器ALU及工作寄存器W
運(yùn)算器ALU是一個(gè)通用算術(shù)、邏輯運(yùn)算單元,用它可以對工作寄存器W和任何通用寄存器中的兩個(gè)數(shù)進(jìn)行算術(shù)(如加、減、乘、除等)和邏輯運(yùn)算(如與、或、異或等)。16F84是八位單片機(jī),ALU的字長是八位。在有兩個(gè)操作數(shù)的指令中,典型的情況是一個(gè)操作數(shù)在工作寄存器W中,而另一個(gè)操作數(shù)是在通用寄存器中,或者是一個(gè)立即數(shù)。在只有一個(gè)操作數(shù)的情況下,該數(shù)要么是在工作寄存器W中,要么是在通用寄存器中。W寄存器是一個(gè)專用于ALU操作的寄存器,它是不可尋址的。
根據(jù)所執(zhí)行的指令,ALU還可能會影響框圖中狀態(tài)寄存器STATUS的進(jìn)位標(biāo)志C、全零標(biāo)志Z等。
2程序存儲器
單片機(jī)內(nèi)存放程序指令的存儲器稱為程序存儲器。PIC16F84的所有指令字長為14位。所以程序存儲器的各存儲單元是14位寬。一個(gè)存儲單元存放一條指令。16F84的程序存貯器有1024(28)個(gè)存儲單元(存儲容量為1k)。這些程序存儲器都是由FPEROM構(gòu)成的。
程序存儲器是由程序計(jì)數(shù)器PC尋址的。16F84的程序計(jì)數(shù)器為13位寬,可尋址8K(8×1024)的程序存儲器空間,但16F84實(shí)際上只使用了1k的空間(單元地址為0~3FFH)。當(dāng)訪問超過這些地址空間的存儲單元時(shí),將導(dǎo)致循環(huán)回到有效的存儲空間。
對于用過其它單片機(jī)的用戶,可能會感到16F84的片內(nèi)存儲器容量太少了。實(shí)際上并非如此,因?yàn)?6F84的指令系統(tǒng)都是由單字指令構(gòu)成的,相應(yīng)于其它由二字節(jié)、三字節(jié)甚至四字節(jié)指令的單片機(jī)而言,PIC單片機(jī)的程序存儲器有效容量要比標(biāo)稱值擴(kuò)大25倍到3倍。
成都 衛(wèi)東
知識競賽試題:
15簡述PIC系列單片機(jī)助記符指令中操作數(shù)f、d、b、k取值的可能范圍,并簡要說明其依據(jù)。
16指出PIC16F84單片機(jī)框圖(上文圖1)中寄存器的類型和不能訪問的寄存器名稱?

m.wastewaterengineeringjobs.com 東莞市飛江電子科技有限公司
|