flasheraseprogram.c
来自「一个关于51单片机的双串口转换程序」· C语言 代码 · 共 55 行
C
55 行
#include "STC12C5410AD.H"
void FlashErase(unsigned int FlashAddress);
unsigned char FlashRead(unsigned int FlashAddress);
void FlashProgram(unsigned int FlashAddress,unsigned char FlashData);
//----------------------------------------------------------------//
//Flash擦除扇区,地址在FlashAddress中-----------------------------//
//----------------------------------------------------------------//
void FlashErase(unsigned int FlashAddress)
{
ISP_CONTR = 0x83;//系统工作时钟<12M
ISP_CMD = 0x03;
ISP_ADDRH = FlashAddress / 256;
ISP_ADDRL = FlashAddress % 256;
ISP_TRIG = 0x46;
ISP_TRIG = 0xB9;
ISP_CONTR = 0;
ISP_CMD = 0;
ISP_TRIG = 0;
}
//----------------------------------------------------------------//
//Flash写扇区,地址在FlashAddress,需要写的字节是FlashData--------//
//----------------------------------------------------------------//
void FlashProgram(unsigned int FlashAddress,unsigned char FlashData)
{
ISP_CONTR = 0x83;//系统工作时钟<12M
ISP_CMD = 0x02;
ISP_ADDRH = FlashAddress / 256;
ISP_ADDRL = FlashAddress % 256;
ISP_DATA = FlashData;
ISP_TRIG = 0x46;
ISP_TRIG = 0xB9;
ISP_CONTR = 0;
ISP_CMD = 0;
ISP_TRIG = 0;
}
//----------------------------------------------------------------//
//Flash读扇区,地址在FlashAddress中-------------------------------//
//----------------------------------------------------------------//
unsigned char FlashRead(unsigned int FlashAddress)
{
unsigned char FlashData;
ISP_CONTR = 0x83;//系统工作时钟<12M
ISP_CMD = 0x01;
ISP_ADDRH = FlashAddress / 256;
ISP_ADDRL = FlashAddress % 256;
ISP_TRIG = 0x46;
ISP_TRIG = 0xB9;
FlashData = ISP_DATA;
ISP_CONTR = 0;
ISP_CMD = 0;
ISP_TRIG = 0;
return (FlashData);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?