找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5372|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

PIC16F877的PORTA筆記

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:65608 發(fā)表于 2014-9-1 23:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
PORTA 和 TRISA 寄存器

PORTA是8位寬的雙向端口。它所對應(yīng)的數(shù)據(jù)方向寄存器是 TRISA(寄存器 3-2)。將 TRISA 的一個位置 1(= 1)可以將相應(yīng)的 PORTA 引腳配置為輸入(即,禁止輸出驅(qū)動器) 。清零TRISA的一個位(= 0)可將相應(yīng)的 PORTA 引腳配置為輸出(即,將輸出鎖存器的內(nèi)容輸出到所選擇的引腳)。

讀 PORTA 寄存器(寄存器 3-1)讀的是引腳的狀態(tài)而寫該寄存器將會寫入端口鎖存器。所有寫操作都是讀-修改-寫操作。因此,寫一個端口就意味著先讀該端口的引腳電平,修改讀到的值,然后再將改好的值寫入端口數(shù)據(jù)鎖存器。

即使在 PORTA 引腳用作模擬輸入時,TRISA 寄存器(寄存器 3-2)仍然控制 PORTA 引腳的方向。當(dāng)將PORTA引腳用作模擬輸入時,用戶必須確保 TRISA寄存器中的位保持為置 1 狀態(tài)。  配置為模擬輸入的 I/O 引腳總是讀為0。

PORTA:bit 7-0 RA<7:0>:PORTA I/O 引腳位

1 = 端口引腳電平> VIH

0 = 端口引腳電平< VIL



bit 7-0 TRISA<7:0>: PORTA 三態(tài)控制位

1 = PORTA 引腳被配置為輸入(三態(tài))

0 = PORTA 引腳被配置為輸出

注 1: TRISA<7:6> 在 XT、 HS 和 LP 振蕩器模式下總是讀為 1。



例:初始化 PORTA

注: 必須初始化ANSEL寄存器以將模擬通道配置為數(shù)字輸入。配置為模擬輸入的引腳將

讀為0。

BANKSEL PORTA ;

CLRF PORTA ;Init PORTA

BANKSEL ANSEL ;

CLRF ANSEL ;digital I/O

BANKSEL TRISA ;

MOVLW 0Ch ;Set RA<3:2> as inputs

MOVWF TRISA ;and set RA<5:4,1:0>;as outputs



ANSEL 寄存器

ANSEL 寄存器(寄存器3-3)用于將I/O引腳的輸入模式配置為模擬模式。將 ANSEL 中適當(dāng)?shù)奈恢?1 將導(dǎo)致對相應(yīng)引腳的所有數(shù)字讀操作返回 0,并使引腳的模擬功能正常工作。

ANSEL 位的狀態(tài)對數(shù)字輸出功能沒有影響。 TRIS 清零且 ANSEL 置 1 的引腳仍作為數(shù)字輸出,但輸入模式將成為模擬模式。這會導(dǎo)致在受影響的端口上執(zhí)行讀-修改-寫操作時產(chǎn)生不可預(yù)計的結(jié)果。

ANSEL :bit 7-0 ANS<7:0>:模擬選擇位

分別選擇引腳AN<7:0>的模擬或數(shù)字功能。

1 =模擬輸入。引腳被分配為模擬輸入(1)。

0 =數(shù)字 I/O。引腳被分配給端口或特殊功能。

注 1: 將引腳設(shè)置為模擬輸入將自動禁止數(shù)字輸入電路、弱上拉電路和電平變化中斷(如果有的話) 。相應(yīng)的TRIS 位必須置 1以將引腳設(shè)置為輸入模式,從而允許從外部控制引腳電壓。

2:在 PIC16F883/886 上未實(shí)現(xiàn)。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表