新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AT89S5X 脫機(jī)下載器制作

AT89S5X 脫機(jī)下載器制作

作者: 時(shí)間:2012-10-27 來源:網(wǎng)絡(luò) 收藏

======================================================
下面的是我的測試程序。
======================================================
/**********************************************************
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); //連機(jī)測試

/* //寫入測試
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顯示的數(shù)據(jù)
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 下一頁

關(guān)鍵詞: AT89S5X 脫機(jī)下載器 AT89S52

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉