⑴ 如何用单片机读写FLASH
就是这段程序了。我一直用的。不懂的可以找我
#define CMD_IDLE 0
#define CMD_READ 1
#define CMD_PROGRAM 2
#define CMD_ERASE 3
#define ENABLE_IAP 0X82// SYSCLK<24M
#define IAP_ADDRESS 0X0000
void IAP_Disable()//Make MCU if safe state
{
//关闭IAP 功能, 清相关的特殊功能寄存器,使CPU 处于安全状态,
//一次连续的IAP 操作完成之后建议关闭IAP 功能,不需要每次都关
IAP_CONTR = 0; //关闭IAP 功能
IAP_CMD = 0; //清命令寄存器,使命令寄存器无命令,此句可不用
IAP_TRIG = 0; //清命令触发寄存器,使命令触发寄存器无触发,此句可不用
IAP_ADDRH = 0x80; // ??? 0x80 ????
IAP_ADDRL = 0;
}
//读一字节,调用前需打开IAP 功能,入口:DPTR = 字节地址,返回:A = 读出字节
uchar Byte_Read(uint addr)
{
IAP_CONTR=ENABLE_IAP; //打开IAP 功能, 设置Flash 操作等待时间
IAP_CMD=CMD_READ; //IAP/ISP/EEPROM 字节读命令
IAP_ADDRL=addr; //设置目标单元地址的高8 位地址
IAP_ADDRH=addr>>8; //设置目标单元地址的低8 位地址
IAP_TRIG=0X5A;//先送 5Ah,再送A5h 到ISP/IAP 触发寄存器,每次都需如此
IAP_TRIG=0XA5;//送完A5h 后,ISP/IAP 命令立即被触发起动
_nop_();
IAP_Disable();//关闭IAP 功能, 清相关的特殊功能寄存器,使CPU 处于安全状态
return IAP_DATA;
}
//字节编程,调用前需打开IAP 功能,入口:DPTR = 字节地址, A= 须编程字节的数据
void Byte_Program(uint addr,uchar dat)
{
IAP_CONTR=ENABLE_IAP;//打开 IAP 功能, 设置Flash 操作等待时间
IAP_CMD=CMD_PROGRAM;//IAP/ISP/EEPROM 字节编程命令
IAP_ADDRL=addr;//设置目标单元地址的高8 位地址
IAP_ADDRH=addr>>8; //设置目标单元地址的低8 位地址
IAP_DATA=dat;//要编程的数据先送进IAP_DATA 寄存器
IAP_TRIG=0X5A;//先送 5Ah,再送A5h 到ISP/IAP 触发寄存器,每次都需如此
IAP_TRIG=0XA5; //送完A5h 后,ISP/IAP 命令立即被触发起动
_nop_();
IAP_Disable();//关闭IAP 功能, 清相关的特殊功能寄存器,使CPU 处于安全状态,
}
void Sector_Erase(uint addr) //擦除扇区, 入口:DPTR = 扇区地址
{
IAP_CONTR=ENABLE_IAP;
IAP_CMD=CMD_ERASE;
IAP_ADDRL=addr;
IAP_ADDRH=addr>>8;
IAP_TRIG=0X5A;
IAP_TRIG=0XA5;
_nop_();
IAP_Disable();
}
⑵ 单片机的读写分别指什么
你说的对,读的意义在于一般外接一个按键,当键按下后单片机读键盘值,写出就是控制IO输出,
⑶ 单片机什么时候用到读写引脚 例如读什么写什么要设置读写引脚
什么时候要设置读写引脚?
1、将你的外设如ADC0808模数转换设备接入单片机,即8个数字信号输出端口和转换启动START信号、EOC信号、OE信号、ALE接到单片机相关引脚上
2、要使用外设,如ADC0808,则先要写START,直接赋值为1或0,再根据需要读EOC的值,判断模数转换情况
3、以上说的是通常的情况。
4、如WR、RD两个信号口,则在外设上有相应信号时进行连接、在需要读写时读写。
⑷ 关于51单片机的读写操作
51单片机引脚默认输出是高电平……直接接在引脚上……而程序没有操作……那就说明这两个引脚是高电平有效……就是接高电平这芯片才能工作……
⑸ 单片机的读写分别指什么
单片机的读写是以单片机为主来说的,对于单片机来说,读就是将管脚的信号读进来分析,写就是通过程序将数据写到管脚上去。
⑹ 单片机读写问题
只要P0.0被改变就会。
⑺ 单片机编程中对于数据的读取,写入与输入,输出之间有什么联系
读取和写入,一般是指存储器
输入和输出,一般是指单片机的IO口
⑻ 通过什么软件读取单片机里的程序
如果没有加密的话
可以通过编程器读取机器码
但是,它要经过反汇编,
而汇编是比较难懂的语言
要有很高的水平和耐力。。。
⑼ 如何把程序写入单片机
现在的单片机一般:
通过USB(需要装上配套驱动)模拟串口,将用KIEL编译后程序写到单片机;
也可直接用串口与PC相连,将用KIEL编译后程序写到单片机;
更多交流参考我空间文章发。