永发信息网

单片机STC89C52如何读写双字节

答案:3  悬赏:10  手机版
解决时间 2021-03-04 15:34
单片机STC89C52如何读写双字节
最佳答案
ISP_CONTR=0x83;

确定你的单片机运行频率低于5MHz?
在12MHz下最好选择<20MHZ 0x81
//#define ENABLE_IAP 0x80 //if SYSCLK<40MHz
#define ENABLE_IAP 0x81 //if SYSCLK<20MHz
//#define ENABLE_IAP x82 //if SYSCLK<10MHz
//#define ENABLE_IAP 0x83 //if SYSCLK<5MHz

我用的是IAP15F2k61s2 33.1776MHz没用延时读写都正常
void IapProgramByte(WORD addr, BYTE dat)
{
IAP_CONTR = ENABLE_IAP; //使能IAP
IAP_CMD = CMD_PROGRAM; //设置IAP命令
IAP_ADDRL = addr; //设置IAP低地址
IAP_ADDRH = addr >> 8; //设置IAP高地址
IAP_DATA = dat; //写ISP/IAP/EEPROM数据
IAP_TRIG = 0x5a; //写触发命令(0x5a)
IAP_TRIG = 0xa5; //写触发命令(0xa5)
_nop_(); //等待ISP/IAP/EEPROM操作完成
IapIdle();
}追问我的单片机频率是11.0592MHz 看的资料小于12M的用0x83延时啊
我也试过用0x81延时 也不行哎,,,程序有其他方面问题么,已经困扰好久了 麻烦帮忙看下追答试一下下面这段程序(STC官方的EEPROM读写例程)
P1输出0xF0代表读写成功
P1输出0x7F代表读写失败


全部回答
在一个扇区的 ,要先擦出扇区再写进去,不然是写不进去的追问这个我知道的,但是写双字节或者多个数据的时候,肯定得一个一个写啊,如果写一个擦一个,那不是只能写一个了
缺少延时, 需要在byte_program函数的
ISP_DATA=num;
EA=0;
ISP_TRIG=0x46;
ISP_TRIG=0xb9;
后面增加一个判断,是否数据写入EPPROM完成
如果没有完成继续等待,直到数据写入成功追问这个过程该怎么判断呢,存储完成好像没有一个标志位或者中断什么的可供查询。而且ISP_CONTR这个寄存器低三位是等待时间控制位,这个时间设置好后单片机是根据这个判断读写是否完成的么,换句话说 是不是在设置的这个等待时间内,数据一定可以被读写完成,然后CPU再去执行其他函数?小弟初学的 谢谢解答
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
诛仙手游怎么删除账号
【lucas试剂】下列化合物与LuCAs试剂作用最慢
用了修正牌消糜栓第五天除了下面凉凉的没有什
DNF2016夏日套礼包内容外观爆料 2016夏日套是
酷狗屋地址有知道的么?有点事想过去
急求解决车漆上雨点印子的方法!
dearu墨镜是不是牌子的
张大爷要为家里的蔬菜大棚更换塑料薄膜,一只
请问我们部门主要负责支票转帐方面的业务用英
什么语什么歌的成语
平板电脑可以下截小米视频吗
芳馨居房产在哪里啊,我有事要去这个地方
做椭圆运动的行星在近日点和远日点的曲率半径
滨海科技培训学校教学点地址好找么,我有些事
估算82×48≈491÷7≈743÷9≈682÷8≈789+21
推荐资讯
在同等价位上中财地暖管好还是金德地暖管好
鑫国美百货家电商场这个地址在什么地方,我要
现在农村的高额彩礼什么时间国家进行控制
最大的三位数除以最大的一位数,商是A.101B.1
吕布的坐骑是什么
足身康足浴房地址在什么地方,想过去办事
益康按摩这个地址在什么地方,我要处理点事
求答案:大学英语精品课程:一级阅读补充材料
移动4g卡可使用500m流量是什么意思
拔牙缝针后怎么刷牙? 今天拔了智齿,缝了几
宁夏杞乡源园林绿化工程有限公司地址在什么地
早上起来做清洁面膜有用吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?