C8051F320-并行端口與交*開(kāi)關(guān)
C8051F320具有25個(gè)I/O引腳,分別為P0、P1、P2、P3.0。為了能根據需要使用內部數字系統資源,必須利用數字交*開(kāi)關(guān)將所用的資源映射到具體引腳上。分析如下:
如果沒(méi)有用到任何資源,那么所有25個(gè)引腳都可以作為正常的并行引腳使用,若用到數字資源,必須犧牲一部分并行口,將引腳提供給內部資源使用。假設有A、B、C三種資源,所需要的引腳數分別為2、1、3。
1、如果ABC都不用,那么可以正常使用P0、P1、P2以及P3.0
2、如果使用A資源,那么將會(huì )占用P0.0、P0.1,其余引腳照樣可以作為并行口用,但是被占用的口無(wú)法控制
3、如果同時(shí)使用ABC資源,則需要6個(gè)腳,故P0口只剩下P0.6、P0.7可用,其他口不受影響
以上只是大概意思,不精確。以下為詳細筆記。
一、寄存器
P0口有P0MDIN、P0MDOUT、P0SKIP三個(gè)控制寄存器,同理P1、P2都有,P3沒(méi)有SKIP
PxMDIN:設置對應并行端口是否作為模擬輸入,“0”表示模擬輸入。當任意引腳作為模擬輸入時(shí),不能作為IO口受到控制
PxMDOUT:設置對應并行端口為漏極開(kāi)路或推挽,“0”表示開(kāi)漏。開(kāi)漏時(shí)只能輸出低電平或高阻,若需要輸出高電平,需要另外加上拉電阻,其電流小于推挽。不過(guò)實(shí)測還沒(méi)感覺(jué)出開(kāi)漏與推挽的區別,待查。
PxSKIP:用來(lái)保護特定的引腳不被內部資源使用。為“1”時(shí),表示該引腳被跳過(guò)。本來(lái)內部數字資源是按照優(yōu)先級列表按順序占用并行端口,如果某個(gè)腳你希望留下來(lái)自己用,那么可以設置為“1”,那么該腳必然不被占用,可以作為正常的IO口。
寄存器XBR0、XBR1用來(lái)分配引腳給內部數字資源,收到PxSKIP寄存器的影響,分配優(yōu)先級見(jiàn)下圖:
三、實(shí)測細節
準備工作:
1、P0口連接八個(gè)發(fā)光二極管,P1.0連接觸點(diǎn)開(kāi)關(guān),P1.1~P1.7連接7個(gè)發(fā)光二極管。
2、編程,首先令PxMDIN=FF,PxMDOUT=FF。再令PxSKIP=0,但P1.0例外,跳過(guò),否則沒(méi)法測試
main函數的作用是開(kāi)關(guān)控制所有的燈,按下全亮,松開(kāi)全暗。
*XBR1的D6必須等于1,要不所有引腳全都不受控。
相關(guān)推薦
技術(shù)專(zhuān)區
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線(xiàn)
- 開(kāi)關(guān)電源
- 單片機
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機控制
- 藍牙
- PLC
- PWM
- 汽車(chē)電子
- 轉換器
- 電源管理
- 信號放大器
評論