第5章 S12輸入-輸出端口模塊及其應(yīng)用實(shí)例_第1頁
第5章 S12輸入-輸出端口模塊及其應(yīng)用實(shí)例_第2頁
第5章 S12輸入-輸出端口模塊及其應(yīng)用實(shí)例_第3頁
第5章 S12輸入-輸出端口模塊及其應(yīng)用實(shí)例_第4頁
第5章 S12輸入-輸出端口模塊及其應(yīng)用實(shí)例_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

基于HCS12的嵌入式系統(tǒng)設(shè)計

第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例合肥工業(yè)大學(xué)機(jī)械與汽車工程學(xué)院滕勤2014.4第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例本章內(nèi)容

5.1并行I/O接口簡介

5.2輸入/輸出端口寄存器及設(shè)置

5.3輸入/輸出端口應(yīng)用實(shí)例基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.1并行I/O接口簡介【I/O接口(Input/OutputInterface)】MCU與外界進(jìn)行交互的重要通道?!境R奍/O接口】人機(jī)交互接口,如開關(guān)、鍵盤、指示燈、顯示器(LED、LCD)等,或者外接其它輸入、輸出設(shè)備。I/O接口電路的主要作用:(1)協(xié)調(diào)高速CPU與低速外設(shè)之間的速度匹配(2)提供輸入、輸出過程中的狀態(tài)信號基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.1并行I/O接口簡介【并行I/O接口組成】【端口】接口電路中用以完成信息傳送、并可通過地址讀/寫的寄存器。【并行I/O接口】由若干個端口(Port)組成:一個接口在物理上有若干個端口,與不同的寄存器相對應(yīng),規(guī)定這些端口分別是數(shù)據(jù)口、狀態(tài)口和命令口。

一個接口分配有若干個地址,即每一個端口分配一個地址。CPU將不同的信息寫到不同的端口地址,也從不同的端口地址讀取不同的信息。基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.1并行I/O接口簡介MC9S12DG128單片機(jī)的I/O接口包括PORTA、PORTB、PORTE、PORTK、PORTT、PORTS、PORTM、PORTP、PORTH、PORTJ以及PORTAD端口模塊。PORTA、PORTB、PORTE和PORTK屬于復(fù)用擴(kuò)展總線接口(MEBI),當(dāng)MC9S12DG128在擴(kuò)展方式下工作時,作為總線信號;在單片模式下工作時,PORTA、PORTB、PORTE和PORTK可用作通用I/O口?;贖CS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.1并行I/O接口簡介PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ屬于端口集成模塊PIM,與片內(nèi)其他功能模塊的引腳復(fù)用。每個功能模塊按照優(yōu)先級的高低使用引腳。

基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.1并行I/O接口簡介【GPIO簡化功能邏輯圖】僅考慮兩個寄存器:數(shù)據(jù)寄存器PORT和數(shù)據(jù)方向寄存器DDR。RD_DDR和WR_DDR分別控制各自的三態(tài)雙向門閂電路,該電路具有雙向傳輸和高阻三態(tài)功能(圖中只給出了單向傳輸和門控功能),可分別讀取PORT引腳狀態(tài)、數(shù)據(jù)鎖存器狀態(tài)和方向寄存器DDR的狀態(tài)?;贖CS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.1并行I/O接口簡介9S12單片機(jī)的每個I/O接口引腳均內(nèi)置拉電阻,可以通過編程設(shè)置是否使用上拉、下拉功能及其極性?!纠娮璧闹饕饔谩慨?dāng)電路驅(qū)動器關(guān)閉時,保持線路(節(jié)點(diǎn))為固定電平,提高抗干擾能力。標(biāo)準(zhǔn)端口的最小特性:輸入/輸出選擇兩個可選擇驅(qū)動強(qiáng)度的5V輸出驅(qū)動5V數(shù)字或模擬輸入可選擇上拉或下拉器件的輸入選擇特性:線或連接的開漏輸出虛假信號濾波的中斷輸入基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.1并行I/O接口簡介通用I/O口可以設(shè)置輸入/輸出、驅(qū)動能力、內(nèi)部上拉/下拉電阻、中斷輸入等功能。用戶可以通過設(shè)置DDR、I/O、RDR、PER、PPS和IE等寄存器,選擇I/O口的工作方式。其中:★

方向寄存器DDR用于設(shè)定I/O口的數(shù)據(jù)方向。★

I/O寄存器用于設(shè)定端口輸出電平的高低。★

驅(qū)動控制寄存器RDR用于選擇I/O的輸出驅(qū)動能力。★上拉/下拉使能寄存器PER當(dāng)I/O口為輸入時,用于選擇內(nèi)部上拉或下拉功能。★上拉/下拉選擇寄存器PPS有兩個用途:(1)當(dāng)中斷允許位置位時,用于選擇上升沿觸發(fā)或下降沿觸發(fā)中斷。(2)當(dāng)使能內(nèi)部上拉/下拉器件時,用于選擇上拉或下拉?!镏袛嗍鼓芗拇嫫鱅E用于允許或禁止I/O口上的中斷?;贖CS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例引腳配置匯總

基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.2輸入/輸出端口寄存器及設(shè)置5.2.1PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.2.1PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.2.1PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.2輸入/輸出端口寄存器及設(shè)置5.2.1PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ1.?dāng)?shù)據(jù)方向寄存器DDRx【作用】決定對應(yīng)的引腳為輸出還是輸入,任何時候可讀寫。DDRx[7:0]—端口x數(shù)據(jù)方向位1=對應(yīng)引腳設(shè)置為輸出。0=對應(yīng)引腳設(shè)置為輸入。復(fù)位后,數(shù)據(jù)方向寄存器值為0x00,引腳默認(rèn)為輸入?;贖CS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.2輸入/輸出端口寄存器及設(shè)置5.2.1PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ1.?dāng)?shù)據(jù)方向寄存器DDRx如果外設(shè)模塊控制引腳,數(shù)據(jù)方向寄存器的內(nèi)容被忽略?;贖CS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.2.1PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ2.I/O寄存器PTx任何時候可讀寫。如果數(shù)據(jù)方向寄存器DDRx對應(yīng)位的數(shù)值為“1”(輸出)時,I/O寄存器的值與引腳電平一致:PTx=1,對應(yīng)的引腳輸出為高電平。PTx=0,對應(yīng)的引腳輸出為低電平。讀取該寄存器返回I/O寄存器的內(nèi)容。如果數(shù)據(jù)方向寄存器DDRx對應(yīng)位的數(shù)值為“0”,即將對應(yīng)引腳定義為輸入時:讀取該寄存器返回引腳值。寫該寄存器不改變引腳狀態(tài),但當(dāng)DDRx對應(yīng)位的數(shù)值變?yōu)椤?”時,寄存器中的數(shù)值將反映在引腳上?;贖CS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.2.1PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ3.輸入寄存器PTIx輸入寄存器是一個只讀寄存器。任何時候可讀,寫無效。如果數(shù)據(jù)方向寄存器DDRx對應(yīng)位的數(shù)值為“0”,即將對應(yīng)引腳定義為輸入時,讀取該寄存器總是返回引腳值。讀出的值為“0”,表示對應(yīng)引腳上為低電平;讀出的值為“1”,表示對應(yīng)引腳上為高電平。如果數(shù)據(jù)方向寄存器DDRx對應(yīng)位的數(shù)值為“1”,即將對應(yīng)引腳定義為輸出時,利用讀該寄存器可以監(jiān)視對應(yīng)引腳是否過載或短路。如果過載或短路,則該寄存器對應(yīng)位為1,否則,為0。基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.2輸入/輸出端口寄存器及設(shè)置5.2.1PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ4.驅(qū)動控制寄存器RDRx【作用】定義每個輸出端口引腳的驅(qū)動能力,任何時候可讀寫。RDRx[7:0]—端口x降功率驅(qū)動控制位1=對應(yīng)引腳輸出驅(qū)動能力為正常值的1/6。0=對應(yīng)引腳為輸出全功率驅(qū)動。如果端口用作輸入,該位被忽略。復(fù)位后,RDRx寄存器值為$00,引腳默認(rèn)以滿功率驅(qū)動輸出?;贖CS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.2.1PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ5.上拉/下拉使能寄存器PERx

【作用】如果端口用作輸入或?yàn)椤熬€或”模式時,該寄存器設(shè)置是否激活內(nèi)置上拉/下拉器件。任何時候可讀寫。PERx[7:0]—端口上拉/下拉器件使能位1=對應(yīng)引腳允許內(nèi)置上拉或下拉器件。0=對應(yīng)引腳禁用內(nèi)置上拉/下拉器件。如果端口用作輸出,該位無效。復(fù)位后,PERx=$00,禁止上拉/下拉功能。基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.2.1PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ【補(bǔ)充】上/下拉電阻的作用當(dāng)TTL電路驅(qū)動COMS電路時,由于TTL電路輸出的高電平低于COMS電路的高電平閾值,需要在TTL的輸出端接上拉電阻,以提高輸出高電平的值。OC(集電極開路)或OD(漏極開路)門電路必須加上拉電阻,才能使用。為加大輸出引腳的驅(qū)動能力,有的單片機(jī)管腳上也常使用上拉電阻。管腳懸空容易受外界的電磁干擾。不用的管腳不能懸空,一般接上拉電阻,提高總線的抗電磁干擾能力,防止靜電造成COMS芯片損壞。芯片的管腳加上拉電阻來提高輸出電平,從而提高芯片輸入信號的噪聲容限,增強(qiáng)抗干擾能力。長線傳輸中,電阻不匹配容易引起反射波干擾,加下拉電阻進(jìn)行電阻匹配,有效抑制反射波干擾?;贖CS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.2.1PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ6.上拉/下拉選擇寄存器PPSx

【作用】選擇上拉或下拉器件是否與引腳相連。任何時候可讀寫。PPSx[7:0]—端口上拉/下拉選擇位1=如果端口用作輸入、且PERx寄存器相關(guān)位設(shè)置為允許時,對應(yīng)的端口引腳與下拉器件相連。0=如果端口用作輸入、且PERx寄存器相關(guān)位設(shè)置為允許時,對應(yīng)的端口引腳與上拉器件相連?;贖CS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.2輸入/輸出端口寄存器及設(shè)置5.2.1PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ6.上拉/下拉選擇寄存器PPSx【注意】PORTP、PORTH和PORTJ三個端口具有中斷功能,當(dāng)這三個端口允許中斷時,上拉/下拉選擇寄存器還具有第二個作用,用于選擇引腳上觸發(fā)中斷的形式。PPSx[7:0]—觸發(fā)中斷選擇位1=當(dāng)某個引腳使能中斷時,上升沿觸發(fā)中斷。0=當(dāng)某個引腳使能中斷時,下降沿觸發(fā)中斷。基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.2.1PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ7.端口線或模式寄存器WOMx端口M和端口S各具有一個線或模式寄存器,用來將輸出引腳設(shè)置成“線或”方式。任何時候可讀寫。如果使能,輸出驅(qū)動僅僅低電平有效,邏輯“1”電平不驅(qū)動。也適用于SPI和SCI輸出,允許幾個串行模塊的多點(diǎn)連接。該位對用作輸入的引腳沒有影響。WOMx[7:0]—線或模式選擇位1=輸出緩沖器工作在開漏輸出(open-drainoutput)狀態(tài)。0=輸出緩沖器工作在推挽輸出(push-pulloutput)狀態(tài)。基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例【復(fù)習(xí)】單片機(jī)開漏輸出和推挽輸出的區(qū)別驅(qū)動能力不同推挽輸出(1)兩個參數(shù)相同的MOSFET分別受兩互補(bǔ)信號的控制,一個管子導(dǎo)通時另一個截止。(2)輸出電阻小,導(dǎo)通損耗小,效率高,能夠驅(qū)動大的負(fù)載。單片機(jī)管腳可以直接驅(qū)動發(fā)光二極管、蜂鳴器、甚至更小阻抗的負(fù)載。(3)可以輸出高、低電平,連接數(shù)字器件。輸出既可以向負(fù)載灌電流,也可以從負(fù)載抽取電流。開漏輸出(1)漏極開路,只能輸出低電平,需接上拉電阻才能得到高電平狀態(tài)。(2)適合于吸收型弱電流驅(qū)動,接上拉電阻后吸收電流的能力比輸出電流的能力強(qiáng)。基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.2.1PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ8.中斷使能寄存器PIExPORTP、PORTH和PORTJ三個端口具有中斷功能,且各有一個中斷使能寄存器,允許或禁止相應(yīng)端口對有效邊沿的中斷。任何時候可讀寫。PIEx[7:0]—中斷使能位1=允許中斷。0=禁止中斷(中斷被屏蔽)。復(fù)位后,中斷使能寄存器值為$00,所有端口中斷關(guān)閉。

基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.2.1PORTT、PORTS、PORTM、PORTP、PORTH和PORTJ9.中斷標(biāo)志寄存器PIFx

PORTP、PORTH和PORTJ三個端口各有一個中斷標(biāo)志寄存器PIFx(x=P、H、J)?;赑PSx寄存器設(shè)置的有效邊沿,當(dāng)相應(yīng)引腳上出現(xiàn)上升沿或下降沿時,中斷標(biāo)志寄存器中的對應(yīng)位被置位。任何時候可讀寫PIFx寄存器。為了清除中斷標(biāo)志,需要向該寄存器中的相應(yīng)位寫“1”。寫“0”無效。PIFx[7:0]—中斷標(biāo)志位1=相應(yīng)引腳上出現(xiàn)有效邊沿(如果相應(yīng)的使能位置位,將產(chǎn)生中斷)。0=相應(yīng)引腳上未出現(xiàn)有效邊沿?;贖CS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.2輸入/輸出端口寄存器及設(shè)置5.2.1PORTT、PORTS、PORTM、PORTP、PORTH和PORTJPORTP、PORTH和PORTJ三個端口的中斷向量地址及相關(guān)標(biāo)志位、控制位。基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.2輸入/輸出端口寄存器及設(shè)置5.2.2PORTA、PORTB、PORTE和PORTK基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.2.2PORTA、PORTB、PORTE和PORTK1.?dāng)?shù)據(jù)方向寄存器DDRx【作用】決定端口引腳為輸出還是輸入。DDRx[7-0]—數(shù)據(jù)方向位1=設(shè)置相應(yīng)的I/O引腳為輸出。0=設(shè)置相應(yīng)的I/O引腳為輸入。DDRx各位的數(shù)值影響相應(yīng)PORTx寄存器讀取的數(shù)據(jù)源。如果DDRx寄存器某位為“0”(輸入),讀取的是緩沖的引腳輸入狀態(tài);如果DDRx寄存器某位為“1”(輸出),讀取的是相應(yīng)端口數(shù)據(jù)寄存器對應(yīng)位的狀態(tài)。復(fù)位后,數(shù)據(jù)方向寄存器的值為0x00,引腳默認(rèn)為輸入?!咀⒁狻慷丝贓是一個特例,其最低兩位只能為輸入口,端口E的數(shù)據(jù)方向寄存器DDRE最低兩位是只讀位,讀這兩位始終返回“0”。基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.2.2PORTA、PORTB、PORTE和PORTK2.I/O寄存器PORTx

I/O寄存器中8位對應(yīng)每個端口中的相應(yīng)引腳,當(dāng)PORTx寄存器處于內(nèi)存分配表中時,任何時候可讀寫。如果某端口的引腳被定義為輸出,寫入I/O寄存器中的數(shù)值會從對應(yīng)引腳輸出;如果某端口的引腳被定義為輸入,讀取I/O寄存器獲得對應(yīng)的引腳電平。為了確保讀到PORTx引腳的當(dāng)前值,寫DDRx寄存器后至少等待一個周期,再讀PORTx寄存器?!咀⒁狻慷丝贓是一個特例,其最低兩位只能為輸入,端口E的I/O寄存器PORTE最低兩位是只讀位?;贖CS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.2.2PORTA、PORTB、PORTE和PORTK3.上拉電阻控制寄存器PUCRPORTA、PORTB、PORTE和PORTK都有內(nèi)置上拉電阻,共用一個控制寄存器PUCR?!咀饔谩窟x擇端口引腳的上拉電阻,第7、4、1和0位分別對應(yīng)端口K、E、B和A。當(dāng)PUCR寄存器處于內(nèi)存分配表中時,任何時候可讀寫。上拉根據(jù)每個端口來分配,適用于當(dāng)前配置為輸入的相應(yīng)端口的任何引腳。當(dāng)相應(yīng)引腳為輸出時,這些位無效(上拉設(shè)置不起作用)。單片機(jī)復(fù)位后,端口K和端口E的上拉電阻使能,端口B和端口A的上拉電阻禁止。在擴(kuò)展和外設(shè)模式下,PUCR寄存器不在片內(nèi)寄存器映射區(qū)內(nèi)?;贖CS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.2.2PORTA、PORTB、PORTE和PORTK3.上拉電阻控制寄存器PUCRPUPKE—端口K上拉使能位1=端口K輸入引腳上拉允許。0=端口K輸入引腳上拉禁止。PUPEE—端口E上拉使能位1=端口E輸入引腳7,4-0上拉允許。0=端口E輸入引腳7,4-0上拉禁止。PUPBE—端口B上拉使能位1=端口B所有輸入引腳上拉允許。0=端口B上拉禁止。PUPAE—端口A上拉使能位1=端口A所有輸入引腳上拉允許。0=端口A上拉禁止?;贖CS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.2.2PORTA、PORTB、PORTE和PORTK4.驅(qū)動控制寄存器RDRIVPORTA、PORTB、PORTE和PORTK都可以設(shè)置端口輸出驅(qū)動能力,共用一個控制寄存器RDRIV?!咀饔谩窟x擇相關(guān)端口引腳的降功率驅(qū)動,第7、4、1和0位分別對應(yīng)端口K、E、B和A。當(dāng)RDRIV寄存器處于內(nèi)存分配表中時,任何時候可讀寫。如果某個控制位為“1”,對應(yīng)端口輸出驅(qū)動能力降低;如果某個控制位為“0”,對應(yīng)端口為正常驅(qū)動輸出方式。在擴(kuò)展和外設(shè)模式下,RDRIV寄存器不在片內(nèi)映射區(qū)內(nèi)?;贖CS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.2.2PORTA、PORTB、PORTE和PORTK4.驅(qū)動控制寄存器RDRIVRDPK-端口K降功率驅(qū)動控制位1=允許所有端口K輸出引腳低功耗驅(qū)動。0=允許所有端口K輸出引腳全功率驅(qū)動。RDPE-端口E降功率驅(qū)動控制位1=允許所有端口E輸出引腳低功耗驅(qū)動。0=允許所有端口E輸出引腳全功率驅(qū)動。RDPB-端口B降功率驅(qū)動控制位1=允許所有端口B輸出引腳低功耗驅(qū)動。0=允許所有端口B輸出引腳全功率驅(qū)動。RDPA-端口A降功率驅(qū)動控制位1=允許所有端口A輸出引腳低功耗驅(qū)動。0=允許所有端口A輸出引腳全功率驅(qū)動?;贖CS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.3輸入/輸出端口應(yīng)用實(shí)例

5.3.1輸出設(shè)備LED控制實(shí)例PORTB連接8只LED,編程實(shí)現(xiàn)明燈流水操作。點(diǎn)亮LED燈,并使蜂鳴器發(fā)聲?;贖CS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.3輸入/輸出端口應(yīng)用實(shí)例5.3.2輸入設(shè)備撥碼開關(guān)讀取實(shí)例使用PORTA讀取8位撥碼開關(guān)狀態(tài)。根據(jù)撥位開關(guān)的狀態(tài),點(diǎn)亮或熄滅對應(yīng)的LED燈?;贖CS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.3輸入/輸出端口應(yīng)用實(shí)例5.3.3鍵盤接口設(shè)計鍵盤多由多個按鍵組成,排列成陣列。當(dāng)無鍵按下時,行和列線之間不相連,若第N行第M列的鍵被按下,則第N行與第M列的線被接通。如果在列線上加上信號,根據(jù)行線的狀態(tài),便可得知是否有鍵按下。如果逐列加上信號(掃描列線),讀取行線狀態(tài),便可判斷按鍵的位置?;贖CS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.3.3鍵盤接口設(shè)計用PORTA擴(kuò)展的4×4鍵盤:低4位作為行線,高4位作為列線。將端口A的低4位設(shè)置為輸入、高4位設(shè)置為輸出(即DDRA=0xF0)。使PORTA的高4位逐列輸出低電平,并讀取PORTA的低4位,將高4位的輸出狀態(tài)與讀取到的低4位狀態(tài)相“與”,然后查詢RAM中的表格便可判斷被按下鍵的位置。【鍵盤掃描方法】逐行/逐列掃描法反轉(zhuǎn)法【去抖動方法】硬件法——采用斯密特觸發(fā)器軟件法——利用軟件延時基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.3.3鍵盤接口設(shè)計【硬件去抖動處理】利用兩級帶斯密特觸發(fā)電路的反相器?!拒浖ザ秳犹幚怼慨?dāng)判斷有鍵按下后,軟件延時20ms,再次掃描確認(rèn)。基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.3輸入/輸出端口應(yīng)用實(shí)例5.3.3鍵盤接口設(shè)計基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.3.3鍵盤接口設(shè)計采用數(shù)碼管顯示驅(qū)動及鍵盤掃描管理芯片ZLG7289B擴(kuò)展4×4鍵盤?!拘酒攸c(diǎn)】可直接驅(qū)動8位共陰式數(shù)碼管(或64只獨(dú)立LED)。可掃描管理多達(dá)64只按鍵。內(nèi)部含有譯碼器,可直接接收BCD碼或16進(jìn)制碼,并具有兩種譯碼方式。具有多種控制指令,如消隱、閃爍、左移、右移、段尋址等。采用SPI串行總線與微控制器接口。利用片選信號,ZLG7289B可以并接在一起使用,實(shí)現(xiàn)多于8位的顯示或多于64只按鍵的應(yīng)用?;贖CS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.3.3鍵盤接口設(shè)計通過IRQ中斷來檢測是否有按鍵被按下?;贖CS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.3.4LED顯示接口設(shè)計【LED(LightEmittingDiode)】數(shù)碼管,用發(fā)光二極管顯示字段的顯示器?!綥ED顯示器類型】共陰極、共陽極。共陰極——將8個發(fā)光二極管陰極連在一起作為公共端。共陽極——將8個發(fā)光二極管的陽極連在一起作為公共端。

(a)外形結(jié)構(gòu)與引腳(共陰)(b)共陰極(C)共陽極基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.3.4LED顯示接口設(shè)計數(shù)碼管的公共端相當(dāng)于一個位選開關(guān),一般稱為位碼開關(guān)。當(dāng)該位處于高電平時,數(shù)碼管全滅;當(dāng)該位處于低電平時,根據(jù)二極管陽極(一般稱為段碼或字形碼)的電平狀態(tài),確定段碼是否點(diǎn)亮。段碼高電平時,該段碼亮;段碼低電平時,該段碼不亮。輸出相應(yīng)的段碼值得到LED顯示器的字形。基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.3輸入/輸出端口應(yīng)用實(shí)例5.3.4LED顯示接口設(shè)計【LED顯示驅(qū)動方式】靜態(tài)驅(qū)動,動態(tài)掃描。靜態(tài)驅(qū)動方式——每個LED顯示器用一個I/O端口驅(qū)動。【特點(diǎn)】亮度較高,功耗也較大,占用I/O端口多,適合顯示位數(shù)少的場合。

動態(tài)掃描驅(qū)動方式——將多個顯示器的段碼同名端連接在一起(并聯(lián)),由位碼分別控制各顯示器,利用眼睛的余輝暫留效應(yīng)實(shí)現(xiàn)顯示。只要保證一定的顯示刷新頻率,其顯示效果與靜態(tài)顯示相當(dāng)。用一個I/O端口驅(qū)動段碼,用一個I/O端口實(shí)現(xiàn)位碼控制。【特點(diǎn)】占用I/O端口少,功耗也小,電路簡化,成本降低,適合顯示位數(shù)的場合。

基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.3.4LED顯示接口設(shè)計基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例鍵盤、LED顯示接口基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.3輸入/輸出端口應(yīng)用實(shí)例5.3.5LCD顯示接口設(shè)計【LCD類型】段位式、字符式和點(diǎn)陣式。段位式LCD和字符式LCD只能顯示簡單的字符和數(shù)字,不能顯示圖形、曲線和漢字。點(diǎn)陣式LCD不僅可以顯示字符、數(shù)字,還可以顯示各種圖形、曲線以及漢字,并且可以實(shí)現(xiàn)屏幕上下左右滾動、動畫、分區(qū)開窗口、反轉(zhuǎn)、閃爍等多種功能。基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.3輸入/輸出端口應(yīng)用實(shí)例5.3.5LCD顯示接口設(shè)計【字符式LCD顯示器接口電路設(shè)計】

YM-0802B系列字符式LCD模塊是2×8字符式LCD模塊(可顯示2行,每行8個字符)。YM-0802B可以工作在全字或半字模式下。

基于HCS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.3輸入/輸出端口應(yīng)用實(shí)例5.3.5LCD顯示接口設(shè)計【字符式LCD顯示器接口電路設(shè)計】

方案中采用半字模式,以節(jié)省I/O口線。A口的高4位作為數(shù)據(jù)線,與YM-0802B的DB4~DB7連接,PORTB的低3位作為控制線,分別與YM-0802B的RS、R/W、E連接?;贖CS12的嵌入式系統(tǒng)設(shè)計》第5章S12輸入/輸出端口模塊及其應(yīng)用實(shí)例5.3輸入/輸出端口應(yīng)用實(shí)例5.3.5LCD顯示接口設(shè)計【點(diǎn)陣式LCD顯示器接口

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論