<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          MCU 中輸入/輸出口的使用

          作者: 時(shí)間:2006-12-07 來(lái)源:網(wǎng)絡(luò) 收藏
          簡(jiǎn)介:

            在HT49C30-1/HT49R30A-1 中有8 個(gè)雙向的輸入/輸出口(PA 口,8 位),6 個(gè)輸入口(PB 口);HT49C50-1/HT49R50A-1 中有12 個(gè)雙向的輸入/輸出口(PA 口,8 位;PC 口,4 位),8 個(gè)輸入口(PB 口);HT49C70-1/HT49R70A-1 中有16 個(gè)雙向的輸入/輸出口(PA 口,8 位;PC 口,8 位),8 個(gè)輸入口(PB 口)PA、PB、PC 分別對(duì)應(yīng)RAM 中地址[12H] 、[14H] 、[16H] 。時(shí)可選擇PA、PC 口的結(jié)構(gòu)(NMOS 或),及該口是否具有上拉。

            若PA、PC 口結(jié)構(gòu)NMOS 時(shí),在讀取數(shù)據(jù)之前,必須向相關(guān)位寫(xiě)“1”以關(guān)閉場(chǎng)效應(yīng)管NMOS 使其作為一個(gè)輸入口。也就是說(shuō),要先執(zhí)行指令SET [m].i 以關(guān)閉相關(guān)的NMOS,然后才能用MOV A,[m] 來(lái)讀取穩(wěn)定的數(shù)據(jù)。

                    圖1 輸入輸出口

            一些指令稱(chēng)為讀-修改-寫(xiě)指令,該指令先讀取引腳的值,而且是將八位引腳的狀態(tài)全部讀取,進(jìn)行相應(yīng)的位操作后,重寫(xiě)回鎖存器中。這樣,有些位的鎖存器會(huì)因?yàn)樵摬僮鞫淖冊(cè)瓉?lái)的狀態(tài),致使再次輸出時(shí)產(chǎn)生錯(cuò)誤。例如,指令“SET [m].i”、“CLR [m].i”、“CPL[m]”、“CPLA[m] ”就是先將數(shù)據(jù)讀取至CPU 中,然后進(jìn)行定義的操作(位操作)后,再將結(jié)果寫(xiě)回鎖存器或是累加器中。所以口在輸入狀態(tài)時(shí)執(zhí)行此類(lèi)指令,可能會(huì)使內(nèi)部鎖存的狀態(tài)改變,需要加以注意。

            輸入輸出口應(yīng)用程序舉例

            1.選擇:pa.0~pa.3 選擇 結(jié)構(gòu),帶上拉
              硬件要求:pa.0~pa.3 接LED;pa.4~pa.7 接開(kāi)關(guān)

            電路圖:

                         圖2 電路圖

            程序說(shuō)明:

            如上圖所示,pa.0~pa.3 作為輸出,pa.4~pa.7 作為輸入,利用程序?qū)a.4~pa.7 口上的開(kāi)關(guān)數(shù)讀入單片機(jī),經(jīng)過(guò)高4 位與低4 位互換,再向pa.0~pa.3 輸出pa.4~pa.7 的開(kāi)關(guān)狀態(tài),使LED 的發(fā)光次序與pa.4~pa.7 上的開(kāi)關(guān)設(shè)置相符。

            2.選擇:PC口選為并帶上拉

            硬件連接:PA.7與PA.0口相連接程序說(shuō)明:本程序的目的要說(shuō)明在執(zhí)行讀-修改-寫(xiě)指令時(shí)發(fā)生的特殊情況。


            程序說(shuō)明:

            執(zhí)行以上程序,我們會(huì)發(fā)現(xiàn)PA.0和PA.7引腳的值始終為0,但實(shí)際上PA.0和PA.7 內(nèi)部鎖存器的值是變化的,參見(jiàn)程序注釋。

            如果用單步調(diào)試,我們就能觀察到“Read—Modify—Write”的過(guò)程。當(dāng)程序執(zhí)行完(2)時(shí),將連接PA.0和PA.7的導(dǎo)線斷開(kāi),則執(zhí)行完下一條語(yǔ)句后PA.0引腳的值會(huì)變?yōu)?。

            加上(3)語(yǔ)句,如果在執(zhí)行完(2)時(shí)斷開(kāi)連接,則最后結(jié)果為PA.0=1、PA.7=1;如果在執(zhí)行完(3)時(shí)斷開(kāi)連接,則最后結(jié)果為PA.0=0、Pa.7=1。在使用過(guò)程中因注意以上區(qū)別所以某個(gè)口當(dāng)為NMOS結(jié)構(gòu),要作為輸入口時(shí),一定要先向該口寫(xiě)“1”,再讀入該口的輸入狀態(tài),

            并且讀口狀態(tài)的操作一定要緊接在寫(xiě)“1”操作之后,避免因執(zhí)行“Read—Modify—Write”指令而發(fā)生錯(cuò)誤。

          光敏電阻相關(guān)文章:光敏電阻工作原理




          關(guān)鍵詞: 掩膜 CMOS 電阻

          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();