微控制器AduC812通用數(shù)據(jù)端口介紹及P1口的應(yīng)用
2.3 定時(shí)器和計(jì)數(shù)器的數(shù)字輸入
AduC812具有3個(gè)16位的定時(shí)器/計(jì)數(shù)器,即定時(shí)器0、定時(shí)器1和定時(shí)器2。定時(shí)器/計(jì)數(shù)器硬件已包含在片內(nèi),用以減輕用軟件實(shí)現(xiàn)定時(shí)器/計(jì)數(shù)器功能時(shí),處理期內(nèi)核固有的負(fù)擔(dān)。每一個(gè)定時(shí)器/計(jì)數(shù)器包含兩個(gè)8位寄存器THx和TLx(x=0、1、2)。所有3個(gè)定時(shí)器/計(jì)數(shù)器均可配置成定時(shí)器或事件計(jì)數(shù)器。
在定時(shí)器功能中,每個(gè)機(jī)器周期TLx寄存器增量。因此可以把它看作對(duì)機(jī)器周期計(jì)數(shù)。在計(jì)數(shù)器功能中,TLx寄存器根據(jù)其對(duì)應(yīng)的外部輸入引腳T0、T1或T0上的1至0的跳變?cè)隽俊?/span>
在P1口中,T2是定時(shí)器2數(shù)字輸入,輸入至定時(shí)器/計(jì)數(shù)器2。當(dāng)被使能時(shí),對(duì)應(yīng)于T2輸入的1至0的跳變,計(jì)數(shù)器2增量。T2EX是數(shù)字輸入,計(jì)數(shù)器2 Capture/reload捕獲/重載(觸發(fā)并用作計(jì)數(shù)器2 Up/Down上/下)控制輸入。在ADCCON1.1中,T2C設(shè)置定時(shí)器2轉(zhuǎn)換位,可把定時(shí)器2的溢出位用作ADC轉(zhuǎn)換起始觸發(fā)脈沖輸入。
由于AduC812與8051有兼容的內(nèi)核,因而AduC812定時(shí)器2的原理與功能可簡(jiǎn)單地概括如下:
AduC812中的定時(shí)器/計(jì)數(shù)器2是一個(gè)具有16位自動(dòng)重裝載或捕獲能力的定時(shí)器/計(jì)數(shù)器,T2CON是它的專用控制寄存器,如圖3所示。
在定時(shí)器和計(jì)數(shù)器工作方式下,都可以通過(guò)T2CON中的控制位CP/2來(lái)選擇捕獲能力或重載能力。TH2和TL2內(nèi)容的捕獲或自動(dòng)重載是通過(guò)一對(duì)捕獲/重載寄存器RCAP2H和RCAP2L實(shí)現(xiàn)的。當(dāng)CP/RL2=0時(shí),選擇自動(dòng)重裝載功能,即把RCAP2H和RCAP2L的數(shù)據(jù)自動(dòng)轉(zhuǎn)入TH2和TL2;當(dāng)C/RL2=1時(shí),選擇捕獲功能,數(shù)據(jù)傳送方向恰與上述方向相反。
捕獲或重載發(fā)生于下面兩種情況:
(1)定時(shí)器2的寄存器TH2和TL2溢出時(shí),若
CP/RL2=0,則打開(kāi)重裝載的三態(tài)緩沖器,把RCAP2H和RCAP2L的數(shù)據(jù)自動(dòng)轉(zhuǎn)入TH2和TL2中,同時(shí)溢出標(biāo)志位置1,申請(qǐng)中斷。
(2)當(dāng)EXEN2=1且T2EX端的信號(hào)有負(fù)跳變時(shí),CP/RL2是0還是1,將發(fā)生捕獲操作或重載操作,同時(shí)標(biāo)志位EXF2置1,申請(qǐng)中斷。例如,利用定時(shí)器2測(cè)量周期如圖4所示。
通過(guò)下面程序的運(yùn)行,定時(shí)器2的TL2、TH2定時(shí)值就是周期T的值。
2.4 SPI串口選擇輸入
AduC812提供了三種串行I/O端口:UART接口、I2C兼容的串行接口和串行外設(shè)接口(SPI)。其中,SPI接口是工業(yè)標(biāo)準(zhǔn)的同步串行接口,是一種全雙工、三線通訊的接口,它允許MCU與各種外圍設(shè)備以串行方式(8位數(shù)據(jù)同時(shí)同步地被發(fā)送和接收)進(jìn)行通信。主時(shí)鐘可以編程為不同的狀態(tài),既可編程為四種不同主波特率中的任一種,又可對(duì)時(shí)鐘的極性和相位進(jìn)行編程。SPI也可用于那些需要比微控制器上的并行I/O端口更多輸入端或輸出端的場(chǎng)合,因而提供了一種只需使用最少的微控制器引腳的擴(kuò)展I/O功能的最簡(jiǎn)單辦法。
SPI系統(tǒng)通過(guò)使用4條線與多種標(biāo)準(zhǔn)外圍器件直接接口:串行時(shí)鐘線SCLOCK、主機(jī)輸入/從機(jī)輸出數(shù)據(jù)線MISO、主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線MOSI和低電平有效的從機(jī)選擇線SS(其中SS在PI口中)。
由于AduC812中的SPI串口有主模式和從模式兩種工作模式,因此系統(tǒng)可配置為主(Master)操作或從(Slave)操作。在用戶系統(tǒng)中,AduC812既可作為主MCU,也可作為從MCU。在主模式下,伴隨每一位數(shù)據(jù)的發(fā)送/接收發(fā)送一次時(shí)鐘,此時(shí)AduC812作為主機(jī)控制數(shù)據(jù)向從外圍器件傳送。而在從模式下,每一位數(shù)據(jù)都是在接收到時(shí)鐘信號(hào)之后才發(fā)送/接收,SPI總線可在軟件的控制下構(gòu)成各種簡(jiǎn)單或復(fù)雜的系統(tǒng)。例如:1個(gè)主MCU和幾個(gè)從MCU;幾個(gè)從MCU相互連接構(gòu)成多主機(jī)系統(tǒng)(分布式系統(tǒng));1個(gè)主MCU和1個(gè)或幾個(gè)從I/O設(shè)備。在大多數(shù)應(yīng)用場(chǎng)合中,使用1個(gè)MCU作為主機(jī),控制數(shù)據(jù)向1個(gè)或多個(gè)從外圍器件傳送。從器件只能在主機(jī)發(fā)命令下才能接收或向主機(jī)傳送數(shù)據(jù)。其數(shù)據(jù)的傳輸格式是高位(MSB)在前,低位(LSB)在后。
SS作為從單片機(jī)的SPI輸入端,是AduC812特有的功能,通過(guò)SS將主單片機(jī)中的數(shù)據(jù)傳送到從單片機(jī),從而實(shí)現(xiàn)主單片機(jī)對(duì)從單片機(jī)的信息傳送。
AduC812的P1口兼容了MCS51系列單片機(jī)的功能,而且又有著自己獨(dú)特的多種其它可實(shí)現(xiàn)的功能。這樣,在一片單片機(jī)上利用P1口可以實(shí)現(xiàn)盡可能多的功能。
評(píng)論