好多擴展的芯片都是并口輸入或者輸出,鎖存或者緩沖的都是8位或者16位的資料,有沒有什么方法對擴展的gpio進行單個gpio操作,其他擴展的口子保持鎖存,真正實作單片機gpio
uj5u.com熱心網友回復:
硬體結構不同,豈可相提并論,可見你對單片機內部結構這基礎不了解,應該補課.uj5u.com熱心網友回復:
你可以看下8155的資料,一個很典型的帶鎖存的擴展RAM和IO的片子uj5u.com熱心網友回復:
簡單的擴展IO的可以看下74HC125,忘了是哪個后綴帶所存的了,125C不帶所存,125D帶所存?記不清了uj5u.com熱心網友回復:
通過軟體實作單個IO的操作uj5u.com熱心網友回復:
是74HC595帶鎖存的
uj5u.com熱心網友回復:
首先,任何MCU的IO口都是以整個位元組或字或雙字的形式存在的,IO的結構上也本身就具有埠鎖存功能,所謂的單獨修改(控制)一個IO口狀態在微觀上等效于“在埠鎖存暫存器上只修改其中一位”,這個還不容易嗎,分成以下幾種情況而已:1. 本身具備READ-MODIFY-WRITE功能的,如MCS-51(包括兼容芯片), Microchip PIC(包括兼容芯片)可以直接對埠操作,或是通過ANL direct,#xxx/ORL direct,#xxx 這類指令直接修改。
2. 本身不具備這種功能的但這個IO口(整個8、16、32位)在全域中不改變其輸入輸出功能(輸入的永遠是輸入、輸出的永遠是輸出),那么可以軟體上先讀到累加器或別的暫存器,修改該bit后寫回埠。
3. 本身不具備這種功能的而這個IO口又有個別埠是會改變輸入輸出功能的,那么可以自己做一個埠跟隨變數,修改輸出時先修改此變數再同步寫出去。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/101472.html
標籤:單片機/工控
下一篇:求教LDO
