PIC系列單片機(jī)品種雖多,但各產(chǎn)品內(nèi)部硬件資源的數(shù)據(jù)存儲(chǔ)器設(shè)置仍是很有規(guī)律的。筆者以PIC16C71A和PIC16C63/65/65A兩個(gè)品種為實(shí)例,查看它們片內(nèi)數(shù)據(jù)存儲(chǔ)器的結(jié)構(gòu),找出它們的特點(diǎn)并說(shuō)明某些寄存器的主要功能,以供用戶快速編程。表1和表2分別是PIC16C71A和PIC16C63/65/65A產(chǎn)品片內(nèi)數(shù)據(jù)存儲(chǔ)器的資源表,其它系列產(chǎn)品的片內(nèi)數(shù)據(jù)存儲(chǔ)器結(jié)構(gòu)的資源與表1、表2資源都很相似,其差別僅僅是片內(nèi)功能部件的種類和數(shù)量不同(PIC16C57/58單片機(jī)有4個(gè)存儲(chǔ)體)。筆者從下述幾個(gè)方面介紹表1和表2的特點(diǎn)和主要功能。
1 統(tǒng)一編址
PIC系列單片機(jī)各類數(shù)據(jù)存儲(chǔ)器都是以寄存器方式工作和尋址的。專用寄存器包括了定時(shí)寄存器TMRO、選擇寄存器OPTION(又稱為項(xiàng)選寄存器)、程序計(jì)數(shù)器PCL、狀態(tài)寄存器STATUS、間接尋址寄存器INDF和FSR、端口I/O寄存器(如PORTA、PORTB…)和相對(duì)應(yīng)的端口I/O控制寄存器(又稱為端口I/O數(shù)據(jù)方向寄存器,如TRIAS、TRISB…)、保持寄存器PCLATH和中斷控制寄存器INTCON等。上述的專用寄存器都是PIC16C63/65/65A和PIC16C71A共同有的,它們不僅是寄存器名稱、功能相同,而且寄存器的地址也完全相同。如果再查看其它PIC單片機(jī),如PIC16C62/62A/64/64A、PIC16C71/72/73/73A/74/74A、PIC16C8X……它們的專用寄存器名稱凡是與以上相同者其地址也完全與上述相同,可見盡管PIC系列單片機(jī)品種多,但掌握它們的規(guī)律后,學(xué)習(xí)是不難的。
型號(hào)不同的PIC單片機(jī),其數(shù)據(jù)存儲(chǔ)器的內(nèi)部資源僅僅是功能種類和多少的不同。如PIC16C71A型,其引腳為18腳,主要功能是帶有8位的A/D轉(zhuǎn)換部件,有4個(gè)A/D通道模擬輸入,所以在表1中與其A/D轉(zhuǎn)換部件有關(guān)的專用寄存器ADRES(用于存放A/D轉(zhuǎn)換的數(shù)值結(jié)果)、A/D控制寄存器ADCON0(用于控制A/D轉(zhuǎn)換器的操作)和A/D控制寄存器ADCON1(用于控制選擇A/D引腳的功能)等。對(duì)PIC16C65/65A型,其引腳是40腳的,其功能比PIC16C71A單片機(jī)強(qiáng),因而數(shù)據(jù)存儲(chǔ)器表2中的專用寄存器的種類就比表1的增加了很多。
專用寄存器的每個(gè)寄存單元都有相對(duì)應(yīng)的固定用途,它們可分成兩類:一類用于供CPU操作(如INDF和FSR、STATUS、PCL……);另一類用于控制外圍功能芯片的操作。
學(xué)習(xí)PIC單片機(jī)數(shù)據(jù)存儲(chǔ)器時(shí),不僅要了解各寄存器單元的功能,而且還應(yīng)在編制程序時(shí)會(huì)調(diào)用它們完成編程目的。下面筆者將以編程實(shí)例說(shuō)明它們的用途。