• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 關 閉

    新聞中心

    EEPW首頁 > 工控自動化 > 設計應用 > MCU 中輸入/輸出口的使用

    MCU 中輸入/輸出口的使用

    作者: 時間:2006-12-07 來源:網絡 收藏
    簡介:

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

      若PA、PC 口結構NMOS 時,在讀取數據之前,必須向相關位寫“1”以關閉場效應管NMOS 使其作為一個輸入口。也就是說,要先執行指令SET [m].i 以關閉相關的NMOS,然后才能用MOV A,[m] 來讀取穩定的數據。

              圖1 輸入輸出口

      一些指令稱為讀-修改-寫指令,該指令先讀取引腳的值,而且是將八位引腳的狀態全部讀取,進行相應的位操作后,重寫回鎖存器中。這樣,有些位的鎖存器會因為該操作而改變原來的狀態,致使再次輸出時產生錯誤。例如,指令“SET [m].i”、“CLR [m].i”、“CPL[m]”、“CPLA[m] ”就是先將數據讀取至CPU 中,然后進行定義的操作(位操作)后,再將結果寫回鎖存器或是累加器中。所以口在輸入狀態時執行此類指令,可能會使內部鎖存的狀態改變,需要加以注意。

      輸入輸出口應用程序舉例

      1.選擇:pa.0~pa.3 選擇 結構,帶上拉
        硬件要求:pa.0~pa.3 接LED;pa.4~pa.7 接開關

      電路圖:

                   圖2 電路圖

      程序說明:

      如上圖所示,pa.0~pa.3 作為輸出,pa.4~pa.7 作為輸入,利用程序將pa.4~pa.7 口上的開關數讀入單片機,經過高4 位與低4 位互換,再向pa.0~pa.3 輸出pa.4~pa.7 的開關狀態,使LED 的發光次序與pa.4~pa.7 上的開關設置相符。

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

      硬件連接:PA.7與PA.0口相連接程序說明:本程序的目的要說明在執行讀-修改-寫指令時發生的特殊情況。


      程序說明:

      執行以上程序,我們會發現PA.0和PA.7引腳的值始終為0,但實際上PA.0和PA.7 內部鎖存器的值是變化的,參見程序注釋。

      如果用單步調試,我們就能觀察到“Read—Modify—Write”的過程。當程序執行完(2)時,將連接PA.0和PA.7的導線斷開,則執行完下一條語句后PA.0引腳的值會變為1。

      加上(3)語句,如果在執行完(2)時斷開連接,則最后結果為PA.0=1、PA.7=1;如果在執行完(3)時斷開連接,則最后結果為PA.0=0、Pa.7=1。在使用過程中因注意以上區別所以某個口當為NMOS結構,要作為輸入口時,一定要先向該口寫“1”,再讀入該口的輸入狀態,

      并且讀口狀態的操作一定要緊接在寫“1”操作之后,避免因執行“Read—Modify—Write”指令而發生錯誤。

    光敏電阻相關文章:光敏電阻工作原理




    關鍵詞: 掩膜 CMOS 電阻

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 岚皋县| 克什克腾旗| 襄汾县| 宁河县| 黄大仙区| 洪江市| 澎湖县| 苍梧县| 大方县| 武宁县| 石门县| 桂东县| 绿春县| 浦城县| 鄂托克前旗| 临朐县| 灯塔市| 株洲市| 泰宁县| 天峨县| 绥江县| 吴忠市| 呼图壁县| 华亭县| 罗甸县| 台南县| 都江堰市| 新龙县| 淄博市| 河南省| 阿图什市| 南澳县| 通河县| 得荣县| 渭源县| 南昌县| 哈密市| 子洲县| 禄劝| 西丰县| 乐亭县|