新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AT89S5X 脫機下載器制作

        AT89S5X 脫機下載器制作

        作者: 時間:2012-10-27 來源:網絡 收藏

        ======================================================
        下面的是我的測試程序。
        ======================================================
        /**********************************************************
        S5X ISP測試程序
        ******************************************************/
        #include at89x52.h>
        #include "1602.h"

        sbit RST = P2^3;
        sbit MISO = P2^2;
        sbit MOSI = P2^1;
        sbit SCK = P2^0;

        ISP_WR(uchar command);
        ISP_RD();
        void DELAY(uint temp);


        void main()
        {
        uchar TempData[4];

        P0 = 0XFF;
        P1 = 0XFF;
        P2 = 0XFE;
        P3 = 0XFF;

        Lcd_Init();

        MOSI = 1;
        MISO = 1;
        RST = 1;
        SCK = 0;
        DELAY(1);
        RST = 0;//這里注意
        DELAY(1);
        RST = 1;
        DELAY(1);


        ISP_WR(0XAC);
        ISP_WR(0X53);
        ISP_WR(0X00);
        TempData[3]=ISP_WR(0X00); //連機測試

        /* //寫入測試
        ISP_WR(0X40);
        ISP_WR(0X00);
        ISP_WR(0X00);
        ISP_WR(0XA5);
        DELAY(5000);
        */
        /*
        ISP_WR(0XAC); //擦除測試
        ISP_WR(0X80);
        ISP_WR(0X00);
        ISP_WR(0X00);
        DELAY(5000);
        */

        ISP_WR(0X28);
        ISP_WR(0X00);
        ISP_WR(0X00);
        TempData[0] = ISP_WR(0X00); //1E

        ISP_WR(0X28);
        ISP_WR(0X01);
        ISP_WR(0X00);
        TempData[1] = ISP_WR(0X00); //52

        ISP_WR(0X28);
        ISP_WR(0X02);
        ISP_WR(0X00);
        TempData[2] = ISP_WR(0X00); //06
        /*
        ISP_WR(0X20);//讀測試
        ISP_WR(0X00);
        ISP_WR(0X00);
        TempData[3] = ISP_WR(0X00);
        */
        //************************************以下是送LCD1602顯示的數據
        if((TempData[0] >>4) >9) Lcd_Out(Data,(TempData[0]>>4)+0x37);
        else Lcd_Out(Data,(TempData[0]>>4)+0x30);
        if((TempData[0] 0x0f) >9) Lcd_Out(Data,(TempData[0] 0x0f)+0x37);
        else Lcd_Out(Data,(TempData[0] 0x0f)+0x30);

        if((TempData[1] >>4) >9) Lcd_Out(Data,(TempData[1]>>4)+0x37);
        else Lcd_Out(Data,(TempData[1]>>4)+0x30);
        if((TempData[1] 0x0f) >9) Lcd_Out(Data,(TempData[1] 0x0f)+0x37);
        else Lcd_Out(Data,(TempData[1] 0x0f)+0x30);

        if((TempData[2] >>4) >9) Lcd_Out(Data,(TempData[2]>>4)+0x37);
        else Lcd_Out(Data,(TempData[2]>>4)+0x30);
        if((TempData[2] 0x0f) >9) Lcd_Out(Data,(TempData[2] 0x0f)+0x37);
        else Lcd_Out(Data,(TempData[2] 0x0f)+0x30);

        if((TempData[3] >>4) >9) Lcd_Out(Data,(TempData[3]>>4)+0x37);
        else Lcd_Out(Data,(TempData[3]>>4)+0x30);
        if((TempData[3] 0x0f) >9) Lcd_Out(Data,(TempData[3] 0x0f)+0x37);
        else Lcd_Out(Data,(TempData[3] 0x0f)+0x30);
        while(1);
        }


        ISP_WR(uchar DATA)
        {
        uchar i,Rec_Data;

        for(i=0;i8;i++)
        {
        MOSI = DATA 0x80;
        DATA= DATA1;

        Rec_Data = Rec_Data 1;
        if(MISO == 1) Rec_Data |= 0x01;

        SCK = 1;
        DELAY(1);
        SCK = 0;
        DELAY(1);
        }
        return(Rec_Data);
        }


        void DELAY(uint temp)
        {
        uint i,j;
        for(i=0;itemp;i++)
        for(j=0;j30;j++);
        }


        上一頁 1 2 下一頁

        關鍵詞: AT89S5X 脫機下載器 AT89S52

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 长岭县| 青浦区| 三亚市| 维西| 河间市| 大埔区| 吉安县| 汽车| 浦县| 都江堰市| 东源县| 镇原县| 横山县| 库尔勒市| 苏尼特右旗| 萨迦县| 比如县| 仁化县| 南乐县| 镇平县| 梅河口市| 唐山市| 班戈县| 正安县| 义马市| 西贡区| 襄城县| 阿合奇县| 水城县| 土默特左旗| 鄂托克前旗| 兰州市| 扬中市| 田东县| 邢台市| 石台县| 封丘县| 聂拉木县| 商水县| 绥宁县| 江油市|