新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AVR單片機Atmega128外擴RAM

        AVR單片機Atmega128外擴RAM

        作者: 時間:2013-12-12 來源:網絡 收藏

        void writeram(unsigned int iaddr, unsigned char ctemp)
        {
        //unsigned char caddl,caddh;
        unsigned char cdatatemp=0;
        RDH;
        WRH;
        ALEH;
        DDRA = 0xFF;
        DDRC = 0xFF;
        PORTC=iaddr>>8;
        PORTA=(unsigned char)iaddr;
        ALEL;//鎖存A0-A7
        WRL;
        PORTA=ctemp;
        asm("nop;");
        WRH;
        ALEH;
        return;
        }

        #endif

        #define RAMSTARTADDR 0X1100
        #define RAMENDADDR 0X90FF
        #define RAMLEN 32768
        // 測試32KRAM 用的是UT62256和74HC573

        int main(void)
        {
        unsigned int k=0;
        unsigned int i=0,j=0;
        unsigned char DATA,u;

        init_devices();

        MCUCR = 0x80; // 允許外部并行擴展接口
        XMCRA = 0x00; //0x00 external memory

        XMCRB = 0x01; // 釋放PC7,作為通用I/O引腳使用
        DDRC = 0xff; // PC7,PC6用于輸出,(不影響PC0-PC6地址線)
        PORTC = 0x00; // PC7,PC6輸出0,(不影響PC0-PC6地址線)
        //由于是32KB所以PC7用作62256片選使能,可以釋放P7為普通IO使用,輸出低電平使能62256
        sendstring1("init system ok!");
        sendstring1("now test system-ram all is 32k !");

        sendstring1("----now write ram");
        _delay_ms(1300);
        #if 1
        for(i=0;i32768;i++)
        {
        if(i%2)
        *(p+i)=(unsigned char)(p+i);
        else
        *(p+i)=0xff;
        _delay_us(10);
        }
        // #else
        sendstring1("----write ok");
        sendstring1("----now check write");
        sendstring1("----now read ram");
        for(i=0;i32768;i++)
        {
        DATA = *(p+i);
        sendstring1("addr=");
        sendinthex1((unsigned int)(p+i));
        sendstring1("=");
        sendinthex1(DATA);
        sendstring1("");
        }
        #endif
        sendstring1("---- test system-ram end!");
        }


        上一頁 1 2 3 4 下一頁

        關鍵詞: AVR單片機 Atmega128 外擴RAM

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 乐至县| 密云县| 朔州市| 镇雄县| 大渡口区| 西丰县| 天气| 淮南市| 汉源县| 明星| 阜南县| 中江县| 安龙县| 崇文区| 柏乡县| 定兴县| 白朗县| 临夏县| 三穗县| 宁强县| 嘉黎县| 楚雄市| 天全县| 濉溪县| 杭锦旗| 什邡市| 青浦区| 洛川县| 泗阳县| 康乐县| 洪泽县| 江安县| 台北市| 安远县| 易门县| 天津市| 依兰县| 石狮市| 信阳市| 梓潼县| 曲水县|