在學習這個部門的時候,曾經(jīng)碰到過一些題目.PIC單片機的引腳未幾,大多都是復用引腳,例如AD、IO、比較器、外接晶振等等,所以在配置端口的時候,一定要知道每個功能怎樣設置才能實現(xiàn)的,在這一小節(jié)中,我要講的是通用IO口的設置題目.
PIC16F616有12個IO口,但是有一個引腳(RA3)只能作為輸入引腳用,不能用作輸出,另外,A口具有電平變化間斷的功能,而C口沒有,在設計的時候要留意.
在設置的時候,一般要進行以下幾項設置:
(1)設置端口是模擬端口仍是數(shù)字端口,可以通過寄存器ANSEL來設置.例如你想用AD,就要將相應的引腳設置為模擬輸入端口.
(2)假如你選擇的是數(shù)字端口,接下來就要設置端口的方向,是輸入仍是輸出(RA3除外),可通過寄存器TRISA(A口)或TRISC(C口)來設置.
(3)設置端口的輸出電平,可以通過寄存器PORTA(A口)或PORTC(C口)來設置.
這是對IO口的通用設置,但是這不是全部的設置,接下來的設置要看時A口仍是C口了.對于A口,它有幾個特殊的功能:內部弱上拉、電平變化間斷、RA2/INT引腳的沿間斷.假如想要這些功能,就要對相應的寄存器進行設置.
弱上拉的設置:只有當引腳為輸出的時候弱上拉才有效,可以通過寄存器WPUA來設置相應引腳的弱上拉,值得一提的假如開啟了弱上拉,會有多余的電流鋪張, 這樣對于低功耗的設計是不可取的,但是假如在進行一些例如鍵盤電路設計的候,可以開啟弱上拉功能,這樣就不需要在鍵盤電路中加上拉電阻了.
電平變化間斷的設置:可以通過寄存器IOCA來設置,但是首先要將相應引腳設置為數(shù)字端口且為輸入狀態(tài).同時要將寄存器INTCON的REIE位設置為 1,總間斷要答應(置寄存器INTCON的GIE位),假如設置相應引腳有這個功能,當此引腳電平發(fā)生的時候,就會產(chǎn)生一個間斷,同時一些間斷標志位被置上(INTCON的RAIF位被置1),且總間斷GIE被置為0.在間斷服務程序中,要軟件清除RAIF位和重新置GIE位才能繼承開啟此間斷.
RA2/INT 腳的沿間斷設置:同樣首先要將相應引腳設置為數(shù)字端口且為輸入狀態(tài),設置INTCON的INTF位為1,表示答應int引腳外部間斷,寄存器 OPTION_REG的INTEGD位可以設置是上升沿間斷仍是下降沿間斷.當發(fā)生間斷時,INTCON的INTF位被置為1,GIE被清零,在間斷服務程序中,要軟件清除INTF位和重新置GIE位才能繼承開啟此間斷.
對于C口,不能產(chǎn)生電平變化間斷和沿間斷.





