⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 sst89c54 isp program for user
💻 C
字号:
/**********************************************************
文件名称:main.c
文件功能:SST89c54/58程序下载
文件版本:1.0
文件日期:2002-11-18
文件编写:yth
文件版权:WWW.99DPJ.COM
晶体振荡器调整void InitComm(unsigned char nBaudRate)
根据型号调整startup.a51中程序定位位置
编译选项目根据芯片决定,程序位置EEPROM startaddr
**********************************************************/
// PC==19200
// PC---0X0F成功
// block 1---boot program
// block 0---application program
///////////////////////////////////////////////////////////
#include <string.h>
#include "sst89cxx.h"
#include "iapfun.h"
#include "comfun.h"
#include "com.h"
#include "public.h"
#include "iap.h"

/*全局变量
unsigned char Status;
unsigned char buf[15];
unsigned char Buffer[COMMMAXLEN];
unsigned long timerout;
*/

extern void  Jump0000();

/////////////main()/////////////////////
void main(void)
{
        unsigned char  ProgEndFlag=FALSE;

        Delay(500);
        InitSystem();
        InitComm(Baud115200);
        Delay(50);

        Status=IsShakeHands();
        if(Status!=TRUE)
        {
                EndSystem();
                Jump0000();
        }
        while(1)
        {

             Status=ReceiveData();
             if(Status==COMM_STX_ERROR)continue;
             if(Status==COMM_LEN_ERROR||Status==COMM_DATA_ERROR||Status==COMM_STX_ERROR||Status==COMM_CRC_ERROR)
             {
                        SendResponse(FALSE,0,buf);
                        continue;
             }
             //成功接收数据
             switch(Buffer[2])
             {

                        case IAP_WRITE_FLASH:		//编程数据字节
                             IAP_WRITE_FLASHf();
                             break;
                        case IAP_ERASE_BLOCK:		//擦除块
                             IAP_ERASE_BLOCKf();
                             break;
                        case IAP_ERASE_SECTOR:		//擦除扇区
                             IAP_ERASE_SECTORf();
                             break;
                        case IAP_WRITE_SBIT:		//编程保密位
                             IAP_WRITE_SBITf();
                             break;
                        case IAP_READ_FLASH:		//读器件数据
                             IAP_READ_FLASHf();
                             break;
                        case PRG_READ_VERSION:          //读取BIOS版本
                             PRG_READ_VERSIONf();
                             break;
                        case PRG_COMM_END:              //通讯结束
                             PRG_COMM_ENDf();
                             ProgEndFlag=TRUE;
                             break;
                        default:
                             PRG_DEFAULTf();      //命令非法

             }
             if( ProgEndFlag==TRUE)break;

        }
        EndSystem();
        Jump0000();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -