www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 單片機 > 單片機
[導讀]IO口是處理器系統(tǒng)對外溝通的最基本部件,從基本的鍵盤、LED到復雜的外設(shè)芯片等,都是通過IO口的輸入、輸出操作來進行讀取或控制的。MSP430系列中,不同單片機的IO口數(shù)量不同。體積最小的MSP430F20xx系列只有10個IO,

IO口是處理器系統(tǒng)對外溝通的最基本部件,從基本的鍵盤、LED到復雜的外設(shè)芯片等,都是通過IO口的輸入、輸出操作來進行讀取或控制的。

MSP430系列中,不同單片機的IO口數(shù)量不同。體積最小的MSP430F20xx系列只有10個IO,適合在超小型設(shè)備中應用;功能最豐富的MSP430FG46xx系列多達80個IO口,足夠應付外部設(shè)備繁多的復雜應用。在MSP430FE425單片機中,共有14個IO口,屬于IO口較少的系列。但由于需要大量引腳的設(shè)備,如LCD、多通道模擬量輸入等都有專用引腳,不占用IO口。因此在大部分設(shè)計中IO數(shù)量還是夠用的。

和大部分單片機類似,MSP430單片機也將8個IO口編為一組。例如P1.0~P1.7都屬于P1口。每組IO口都有4個控制寄存器,其中P1和P2口還額外具有3個中斷寄存器。

IO口寄存器列表

寄存器名

寄存器功能

讀寫類型

復位初始值

PxIN

Px口輸入寄存器

只讀

PxOUT

Px口輸出寄存器

讀寫

保持不變

PxDIR

Px口方向寄存器

讀寫

0(默認輸入)

PxSEL

Px口第二功能選擇

讀寫

0(全部為IO口)

PxIE

Px口中斷允許

讀寫

0(全部不允許中斷)

PxIES

Px口中斷沿選擇

讀寫

保持不變

PxIFG

Px口中斷標志位

讀寫

0(全部未發(fā)生中斷)

這是本書第一次出現(xiàn)寄存器列表,有必要說明一下MSP430單片機的寄存器以及標志位全部是大寫的。若出現(xiàn)的小寫的“x”,表示該設(shè)備不止一個,因此寄存器也不止一個。為了縮短列表長度,不用全部列出,用字母x表示序號。例如對于表中的PxOUT,當x取1、2、3時,就變成了P1OUT、P2OUT、P3OUT。

PxDIR寄存器用于設(shè)置每一位IO口方向:0=輸入1=輸出。MSP430單片機的IO口屬于雙向IO口,因此在使用IO口時首先要用方向選擇寄存器來設(shè)置每個IO口的方向。例如P1.5、P1.6、P1.7接有按鍵,P1.1、P1.3、P1.4接有LED,那么P1.5、P1.6、P1.7要設(shè)為輸入,P1.1、P1.3、P1.4要設(shè)為輸出:

P1DIR|=BIT1+BIT3+BIT4; // P1.1、P1.3、P1.4設(shè)為輸出

P1DIR &=~ (BIT5+BIT6+BIT7); // P1.5、P1.6、P1.7設(shè)為輸入(可省略)

由于PxDIR寄存器在復位過程中會被清0,沒有被設(shè)置的IO口方向均為輸入狀態(tài),因此第二句可以被省略。

對于所有已經(jīng)設(shè)成輸出狀態(tài)的IO口,可以通過PxOUT寄存器設(shè)置其輸出電平(當IO口配置為輸入模式并且置高/置低使能時,PxOUT寄存器:0置低1置高);對于所有已經(jīng)被設(shè)成輸入狀態(tài)的IO口,可以通過PxIN寄存器讀回其輸入電平。例如讀回P1.5口上的開關(guān)狀態(tài),并判斷若處于按下狀態(tài)(低電平)則從P1.1口輸出高電平點亮LED:

if((P1IN & BIT5)==0)P1OUT|=BIT1; //若P1.5為低電平則P1.1輸出高電平

PxSEL寄存器用于設(shè)置每一位IO的功能:0=普通IO口1=第二功能。

在MSP430單片機中,很多內(nèi)部功能模塊也需要和外界進行數(shù)據(jù)交流,為了不增加芯片引腳數(shù)量,大部分都和IO口復用管腳。因此大多數(shù)IO引腳都具有第二功能。通過寄存器PxSEL可以指定某些IO引腳作為第二功能使用。例如從附錄中管腳排布圖中查到MSP430x42x系列單片機的P2.4、P2.5口和串口的TXD、RXD公用引腳。若需要將這兩個引腳配置為串口收發(fā)腳,則須將P2SEL的4、5位置高:

P2SEL |= BIT4 + BIT5; // P2.4,5設(shè)為串口收發(fā)引腳

在MSP430所有的單片機中,P1口、P2口總共16個IO口均能作引發(fā)中斷。在MSP430x42x系列中,14個IO均屬于P1或P2口,因此每個IO都能作為中斷源使用。通過下列2個寄存器配置IO口作為中斷使用:

PxIE寄存器用于設(shè)置每一位IO的中斷允許:0=不允許1=允許

PxIES寄存器用于選擇每一位IO的中斷觸發(fā)沿:0=上升沿1=下降沿

在使用IO口中斷之前,需要先將IO口設(shè)為輸入狀態(tài),并允許該位IO的中斷,再通過PxIES寄存器選擇觸發(fā)方式為上升沿觸發(fā)或者下降沿觸發(fā)。例如將P1.5、P1.6、P1.7口設(shè)為中斷源,下降沿觸發(fā):

P1DIR &=~(BIT5 + BIT6 + BIT7); // P1.5、P1.6、P1.7設(shè)為輸入(可省略)

P1IES |= BIT5 + BIT6 + BIT7; // P1.5、P1.6、P1.7設(shè)為下降沿中斷

P1IE |= BIT5 + BIT6 + BIT7; //允許P1.5、P1.6、P1.7中斷

EINT(); //總中斷允許

PxIFG寄存器是IO中斷標志寄存器:0=中斷條件不成立1=中斷條件曾經(jīng)成立過,無論中斷是否被允許,也不論是否正在執(zhí)行中斷服務程序,只要對應IO滿足了中斷條件(例如一個下降沿的到來),PxIFG中的相應位都會立即置1并保持,只能通過軟件人工清除。這種機制的目的在于最大可能的保證不會漏掉每一次中斷。在MSP430系列單片機中,P1口的8個中斷和P2口8個中斷各公用了一個中斷入口,因此該寄存器另一重要作用在于中斷服務程序中用于判斷哪一位IO產(chǎn)生的中斷。下面的中斷服務程序示范P1.5、P1.6、P1.7發(fā)生中斷后執(zhí)行不同的代碼:

#pragma vector = PORT1_VECTOR //P1口中斷源

__interrupt void P1_ISR(void) //聲明一個中斷服務程序,名為P1_ISR()

{

if(P1IFG & BIT5) //判斷P1中斷標志第5位(P1.5)

{

... ... //在這里寫P1.5中斷處理程序

}

if(P1IFG & BIT6) //判斷P1中斷標志第6位(P1.6)

{

... ... //在這里寫P1.6中斷處理程序

}

if(P1IFG & BIT7) //判斷P1中斷標志第7位(P1.7)

{

... ... //在這里寫P1.7中斷處理程序

}

P1IFG=0;//清除P1所有中斷標志位

}

注意在退出中斷前一定要人工清除中斷標志,否則該中斷會不停發(fā)生。類似的原理,即使IO口沒有出現(xiàn)中斷條件,人工向?qū)慞xIFG寄存器相應位寫“1”,也會引發(fā)中斷。更改中斷沿選擇寄存器也相當于跳變,也會引發(fā)中斷,所以更改PxIES寄存器應該在關(guān)閉中斷后進行,并在打開中斷之前及時清除中斷標志。MSP430單片機大量的IO中斷非常適合做鍵盤輸入用,但要注意鍵盤存在機械結(jié)構(gòu),在閉合或松開的過程中,機械結(jié)構(gòu)的碰撞和反彈會造成信號上數(shù)毫秒的“毛刺”。


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉