新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機中WR和RD的使用

        51單片機中WR和RD的使用

        作者: 時間:2016-11-18 來源:網絡 收藏
        例如DAC0832,PDIUSBD12等芯片,都是并行傳輸的,且芯片上都的WRRD腳。在使用這種芯片時可能把WR和RD接到51的普通IO口上,用普通IO口來模擬芯片的讀寫時序來進行對芯片的操作(有些單片機只能用此方法如AVR單片機);也可將WR,RD接到單片機的WR和RD上,這時相當于把外部的芯片當外部存儲器用。用這種方法還是很方便的,只要定義好外部芯片的地址。直接對該地址讀寫就可以了。

        下面拿51單片機和PDIUSBD12芯片的讀寫來說明:

        本文引用地址:http://www.104case.com/article/201611/315596.htm

        硬件接口:51的數據口(P0)和PDIUSBD12的數據口相連;兩個WR,RD,ALE對應相連;PDIUSBD12的CS和P2.7口相連。

        程序如下:

        /*-------------------------------------------------------------------*/

        # include

        #include

        #define D12_COMMAND xbyte[0x7f00]

        #define D12_DATA xbyte[0x7f01]

        void D12WriteCommand(uint8 Command)

        {

        D12_COMMAND=Command;

        }

        void D12WriteData(uint8 Data)

        {

        D12_DATA=Data;

        }

        uint8ReadData(void)

        {

        uint8 i;

        i=D12_DATA;

        return i;

        }

        /*-------------------------------------------------------------------------------------------*/

        也可以

        #include

        #include

        #define D12_COMMAND 0x7f00

        #define D12_DATA 0x7f01

        //輸出數據
        void D12WriteByte(uint16 Addr, uint8 Data)
        {
        *((uint8 xdata *) Addr) = Data;
        }

        //輸入數據
        uint8 D12ReadByte(uint16 Addr)
        {
        return *((uint8 xdata *) Addr);
        }

        uint16 D12_ReadChipID(void)
        {
        uint16 i,j;
        D12WriteByte(D12_COMMAND, 0xFD);
        i=D12ReadByte(D12_DATA);
        j=D12ReadByte(D12_DATA);
        i += (j<<8);
        return i;
        }



        關鍵詞: 51單片機WRR

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 蒙自县| 壶关县| 巴马| 大兴区| 洮南市| 长武县| 吉木萨尔县| 大姚县| 梅州市| 应城市| 巴彦淖尔市| 从江县| 石渠县| 昌邑市| 丰都县| 正定县| 军事| 扶余县| 阿瓦提县| 榆树市| 东乌| 通河县| 古浪县| 仁寿县| 财经| 滦南县| 蚌埠市| 许昌县| 东丽区| 商洛市| 绿春县| 赣榆县| 阳原县| 汕尾市| 澄迈县| 永济市| 皮山县| 喀喇沁旗| 新乡县| 柘荣县| 逊克县|