8051系列问题
请问8051的外部中断是Low动作还是High动作呢?
一般标准的8051都是Low动作或是Falling edge动作。
如果要设定为Falling edge动作请将IT0(1)设为1。
需注意的是如果要设为Falling edge需先设IT0(1)再清IE0(1),最后再开启Interrupt。
例:
IT0 = 1; //set falling edge
IE0 = 0; //clean External Interrupt flag
IE = 0x81; //enable External Interrupt 0
笙泉有哪些烧录器,各有什么特点?
有U1 Writer,U2 Writer,ISP Programmer,OCD ICE。
U1 Writer:可在线或脱机烧录笙泉8051所有型号IC;可以烧录硬件选项,ISP引导码。适合用于需要更改硬件选项或ISP代码。
U2 Writer:可在线或脱机烧录程序,需要IC内有ISP引导码(笙泉出厂默认已经有ISP引导码(USB系列除外));可在U2座子上烧录,或连线到目标板(三根线:VCC,SDA,GND)烧录; 连线到目标板烧录可选目标板或U2供电。
ISP Programmer:小巧方便携带;可在线或脱机烧录程序,需要IC内有ISP引导码(笙泉出厂默认已经有ISP引导码(USB系列除外));需连线到目标板(三根线:VCC,SDA,GND)烧录;只能由目标板供电。
OCD ICE:仅支持部分IC;可在线或脱机烧录程序;可以烧录硬件选项,ISP引导码;可用于仿真;需连线到目标板,并由目标板供电;适合用于开发阶段。
有哪些型号出厂默认支持串口烧录?
MA82G5Bxx
MA82G5Cxx
MA82G5Dxx
MA805-xx
MA806-xx
MA807
MA808
MA816
MG87Fx04
MG82FE216
MG103/MG104
Flash划分的三个区域AP区,IAP区,ISP区有什么区别?
IAP区: 用来存储用户资料,类似于EEPROM。但和EEPROM在写数据时有些区别,需先擦除一个页面(512字节),然后才能写入数据,擦写的次数会小于EEPROM的次数,且MTP和Flash 会不同,具体请参考说明书。
ISP区: 用来存储ISP引导码,该引导码可用来更新用户程序。
请问笙泉的IC 出厂的AP、IAP、ISP默认设置的地址分别是多少?
名称 | AP地址 | IAP地址 | ISP地址 |
MPC89x51 | 0x0000~0x0FFF(4KB) | 0x1000~0x37FF(10KB) | 0x3800~0x3BFF(1KB) |
MPC89x52 | 0x0000~0x1FFF(8KB) | 0x2000~0x37FF(6KB) | 0x3800~0x3BFF(1KB) |
MPC89x53 | 0x0000~0x37FF(14KB) | Non | 0x3800~0x3BFF(1KB) |
MPC89x54 | 0x0000~0x3FFF(16KB) | 0x4000~0xF7FF(46KB) | 0xF800~0xFBFF(1KB) |
MPC89x58 | 0x0000~0x7FFF(32KB) | 0x8000~0xF7FF(30KB) | 0xF800~0xFBFF(1KB) |
MPC89x515 | 0x0000~0xF7FF(62KB) | Non | 0xF800~0xFBFF(1KB) |
MPC82x52 | 0x0000~0x17FF(6KB) | 0x1800~0x1BFF(1KB) | 0x1C00~0x1FFF(1KB) |
MPC82x54 | 0x0000~0x33FF(13KB) | 0x3400~0x37FF(1KB) | 0x3800~0x3DFF(1.5KB) |
MPC82G516 | 0x0000~0xEFFF(60KB) | 0xF000~0xFBFF(3KB) | 0xFC00~0xFFFF(1KB) |
MA82G5A32 | 0x0000~0x7FFF(32KB) | 0x8000~0xF9FF(30.5KB) | 0xFA00~0xFFFF(1.5KB) |
MA82G5A64 | 0x0000~0xEFFF(60KB) | 0xF000~0xF9FF(2.5KB) | 0xFA00~0x3BFF(1.5KB) |
MA82G5B08 | 0x0000~0x15FF(5.5KB) | 0x1600~0x19FF(1KB) | 0x1A00~0x1FFF(1.5KB) |
MA82G5B16 | 0x0000~0x35FF(13.5KB) | 0x3600~0x39FF(1KB) | 0x3A00~0x3FFF(1.5KB) |
MA82G5B32 | 0x0000~0x75FF(29.5KB) | 0x7600~0x79FF(1KB) | 0x7A00~0x7FFF(1.5KB) |
MA82G5C32 | 0x0000~0x75FF(29.5KB) | 0x7600~0x79FF(1KB) | 0x7A00~0x7FFF(1.5KB) |
MA82G5C64 | 0x0000~0xEFFF(60KB) | 0xF000~0xF9FF(2.5KB) | 0xFA00~0xFFFF(1.5KB) |
MA82G5D08 | 0x0000~0x15FF(5.5KB) | 0x1600~0x19FF(1KB) | 0x1A00~0x1FFF(1.5KB) |
MA82G5D16 | 0x0000~0x35FF(13.5KB) | 0x3600~0x39FF(1KB) | 0x3A00~0x3FFF(1.5KB) |
名称 | AP地址 | IAP地址 | ISP地址 |
MG84FL54 | 0x0000~0x33FF(13KB) | 0x3400~0x37FF(1KB) | 0x3800~0x3FFF(2KB) |
MG84G564 | 0x0000~0xEFFF(60KB) | 0xF000~0xF5FF(1.5KB) | 0xF600~0xFFFF(2.5KB) |
MG87x52 | 0x0000~0x1FFF(8KB) | 0x1800~0x1BFF(1KB) | 0x1C00~0x1FFF(1KB) |
MG87Fx2051 | 0x0000~0x07FF(2KB) | 0x1800~0x1BFF(1KB) | 0x1C00~0x1FFF(1KB) |
MG87Fx4051 | 0x0000~0x0FFF(4KB) | 0x1800~0x1BFF(1KB) | 0x1C00~0x1FFF(1KB) |
MG87Fx6051 | 0x0000~0x17FF(6KB) | 0x1800~0x1BFF(1KB) | 0x1C00~0x1FFF(1KB) |
MA86x104 | 0x0000~0x07FF(2KB) | 0x0800~0x0BFF(1KB) | 0x0C00~0x0FFF(1KB) |
MA86x508 | 0x0000~0x17FF(6KB) | 0x1800~0x1BFF(1KB) | 0x1C00~0x1FFF(1KB) |
MA805/6-24 | 0x0000~0x5FFF(24KB) | 0x6000~0x69FF(2.5KB) | 0xFA00~0xFFFF(1.5KB) |
MA805/6-32 | 0x0000~0x7FFF(32KB) | 0x8000~0x89FF(2.5KB) | 0xFA00~0xFFFF(1.5KB) |
MA805/6-64 | 0x0000~0xEFFF(60KB) | 0xF000~0xF9FF(2.5KB) | 0xFA00~0xFFFF(1.5KB) |
为何使用小鱿鱼或U2烧录时,经常不能烧录?
A、先脱机下载,如果能下载成功,一般证明工具没有问题。
B、如果目标芯片选的是外振,要确认晶振已经接好。
C、口诀:先连接,后上电,再按按键。
如何确认IC 是新的?
如MPC89E52:

用工具烧录过后,不再有此信息。
用户程序如何操作IAP存储资料?
步骤1:将要修改的数据直接写入到MTP
其它系列(FLASH型)
步骤1:保存Flash数据到缓存
步骤2:擦除此页(使用页擦除模式)
步骤3:在缓存里修改要更新的数据
步骤4:将缓存里的数据写入到Flash(使用字节编程模式)
// 页擦除
bit bEA=EA;
IFADRH = ByteAddr; //送地址高字节
IFADRL= 0x00; //送地址低字节;
EA = 0; //关中断
ISPCR = 0x80; //允许ISP/IAP操作
IFMT =0x03; //页擦除
SCMD = 0x46;
SCMD = 0xB9;
nop();
IFMT=0;
ISPCR = 0; //清ISP/IAP特殊寄存器
EA = bEA; //恢复中断
// 字节编程
bit bEA=EA;
IFD = ByteData; //送所要写的数据
IFADRH = ByteAddr>>8; //送地址高字节
IFADRL= ByteAddr; //送地址低字节;
EA = 0; //关中断
ISPCR = 0x80; //允许ISP/IAP操作
IFMT =0x02; // 字节编程
SCMD = 0x46;
SCMD = 0xB9;
nop();
IFMT=0;
ISPCR = 0; //清ISP/IAP特殊寄存器
EA = bEA; //恢复中断
// 字节读取
bit bEA=EA;
IFADRH = ByteAddr>>8; //送地址高字节
IFADRL= ByteAddr; //送地址低字节;
EA = 0; //关中断
ISPCR = 0x80; //允许ISP/IAP操作
IFMT = 0x01; //字节读取
SCMD = 0x46;
SCMD = 0xB9;
nop();
IFMT=0;
ISPCR = 0; //清ISP/IAP特殊寄存器
EA = bEA; //恢复中断
return IFD;
哪些型号支持在线仿真(OCD)?
MA82G5Bxx,
MA82G5Cxx,
MA82G5Dxx,
MA805-xx,MA806-xx,
MA84G564,
MG82FE232
MPC82G516