最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

MDT10F630 PIC16F630 的差别与烧录档转换

IT圈 admin 34浏览 0评论

2024年2月19日发(作者:胥瑞绣)

PIC16F630 的差别与烧录档转换

MDT10F630 与

一、MDT10F630与PIC16F630的差别:

1、用外部晶振时, MDT10F630需要设置90H寄存器, 并在烧录选项选择相应的晶振模式。

PIC16F630通过烧录选项设置振荡类型。

MDT10F630 90H :MCU 振荡器控制寄存器.

Bit 7 Bit 6 Bit 5 Bit 4

INOSCR

Bit 3 Bit 2 Bit 1 Bit 0

REG REG ECKIN OSO2E- REG

OSC2O OSCIN

Bit6 ~ 4 : 普通寄存器位

ECKIN : 外部时钟输入使能位;

0 =不使能振荡器外部输入时钟

1 =使能振荡器外部时钟输入(外部RC振荡荡必须置1)

OSO2E :内部和外部振荡器使能位;

0 =只使用内部或外部振荡器

1 =使能内部和外部(仅LF模式)振荡器

OSC2O : OSC2/PA4 振荡器时钟输出使能位;

0 = 在内部或外部RC模式振荡模式下不使能OSC2/PA4时钟输出

1 = 在内部或外部RC模式振荡模式下使能OSC2/PA4时钟输出

OSCIN : MCU内部或外部振荡器选择位;

0 = 默认的 MCU 时钟基于内部4MHz 振荡器

1 = MCU时钟基于外部振荡器(通过OPTION选择类型),

当内部4MHz 振荡器变成外部振荡器时,必需等OST时间20ms。

注解:当 Bit2

被为设定为 "0" 内部振荡与外部振荡只有一种振荡会 Enable.

当 Bit2 被为设定为 "1" 内部振荡与外部振荡会同时 Enable, 而外部振荡模式强设为 LF type .

Bit3 为设定外灌 clock模式, PA4/osc2 pin会被强制为 I/O 无法作 clock output,

当 Bit3 & Bit0 同时被设定为 "1", 内部振荡将会停止, IC 的系统 clock 必须由PA5/OSC1 pin 直接给脉波才能动作 .

例子 : 改振荡器为外部振荡器 (振荡器从OPTION中选择类型)

BSR

LDWI

STWR

BCR

STATUS, PAGE ; 设置页 1

01H

10H

; 设置W数据为 01H

; 存储 01H 到寄存器90H (INOSCR)

STATUS, PAGE ; 设置页 0

; 设置页 1

; 设置W数据为 01H

; 存储 01H 到寄存器90H (INOSCR)

; 设置页 0

对应的16进制码是:

0A83

;BSR STATUS, 5 3A01 ;LDWI 01H

1190 ;STWR 10H

STATUS, 5 0283 ;BCR

2、PIC16F630 的 /MCLR 功能可以通过烧录选项设置,而 MDT10F630 的 /MCLR 功能须选用

MDT10F630P13 or MDT10F630S13

包装,则外部/MCLR的封装。无法通过烧录选择。

3、MDT10F630 无 Brown-out 功能。

4、其它使用方式一样。二、PIC16F630烧录档转成MDT10F630

由于两者设置内外部振荡器的方法不同,MDT需要用90H来设置振荡方式,而PIC16F630的90H是用来校正内部频率的,有的程序90H会被设一些值,有的无任何设置。所以PIC16F630烧录档转至10F630时,需要特别注意90H的设置。

如果有ASM档,在ASM档里按10F630规格修改90H值,再重新编译则可。

如果只有烧录档,就需要想办法把设置90H的指令加进去或修改原烧录档中90H的参数。

下面举例说明将设置90H参数加到烧录档里:

烧录档16F630。HEX,要求用外部振荡455K,则LF振荡模式。

步骤:1、 用MDT烧写器软件打开16F630。HEX,反编译:

2、保存反编译文档:

3、用WORD打开反编译文档,查找10H,注意当STATUS,5=1时,10H就是90H,有的10H不是表示寄存器而是地址或立即数,要注意辩认。

4、该程序查找的结果是没有对90H设置的,按MDT10F630规格书要求:LF需要将90H设为00001101B,则0DH,所以先找ROM中没有写代码的地方,如地址380H,将把指令填在此处。

5、开始填写指令,用鼠标双击需要填写的地方,弹出对话框,我们需要在380H填指令,所以在MCU复位地址0000H处先填上LJUMP 380H,则如下图对话框中的2B80,使程序跑到380H处。

6、再到380H处,填上如下数据,则

BSR

STATUS,5 ;

LDWI 0DH ;STWR 10H ;BCR STATUS,5 ;

LJUMP 200H ;千万别忘了,跳回原本应复位的地址200H

7、反编译检查填写无误后,保存成MDT烧录档,如上图。

8、最后再提醒一下,如果原代码中有设置90H的,修改原设置参数则可;有多处设置90H的(一般不会出现),则只保留上电复位时的设置,其它的设置删掉。

2024年2月19日发(作者:胥瑞绣)

PIC16F630 的差别与烧录档转换

MDT10F630 与

一、MDT10F630与PIC16F630的差别:

1、用外部晶振时, MDT10F630需要设置90H寄存器, 并在烧录选项选择相应的晶振模式。

PIC16F630通过烧录选项设置振荡类型。

MDT10F630 90H :MCU 振荡器控制寄存器.

Bit 7 Bit 6 Bit 5 Bit 4

INOSCR

Bit 3 Bit 2 Bit 1 Bit 0

REG REG ECKIN OSO2E- REG

OSC2O OSCIN

Bit6 ~ 4 : 普通寄存器位

ECKIN : 外部时钟输入使能位;

0 =不使能振荡器外部输入时钟

1 =使能振荡器外部时钟输入(外部RC振荡荡必须置1)

OSO2E :内部和外部振荡器使能位;

0 =只使用内部或外部振荡器

1 =使能内部和外部(仅LF模式)振荡器

OSC2O : OSC2/PA4 振荡器时钟输出使能位;

0 = 在内部或外部RC模式振荡模式下不使能OSC2/PA4时钟输出

1 = 在内部或外部RC模式振荡模式下使能OSC2/PA4时钟输出

OSCIN : MCU内部或外部振荡器选择位;

0 = 默认的 MCU 时钟基于内部4MHz 振荡器

1 = MCU时钟基于外部振荡器(通过OPTION选择类型),

当内部4MHz 振荡器变成外部振荡器时,必需等OST时间20ms。

注解:当 Bit2

被为设定为 "0" 内部振荡与外部振荡只有一种振荡会 Enable.

当 Bit2 被为设定为 "1" 内部振荡与外部振荡会同时 Enable, 而外部振荡模式强设为 LF type .

Bit3 为设定外灌 clock模式, PA4/osc2 pin会被强制为 I/O 无法作 clock output,

当 Bit3 & Bit0 同时被设定为 "1", 内部振荡将会停止, IC 的系统 clock 必须由PA5/OSC1 pin 直接给脉波才能动作 .

例子 : 改振荡器为外部振荡器 (振荡器从OPTION中选择类型)

BSR

LDWI

STWR

BCR

STATUS, PAGE ; 设置页 1

01H

10H

; 设置W数据为 01H

; 存储 01H 到寄存器90H (INOSCR)

STATUS, PAGE ; 设置页 0

; 设置页 1

; 设置W数据为 01H

; 存储 01H 到寄存器90H (INOSCR)

; 设置页 0

对应的16进制码是:

0A83

;BSR STATUS, 5 3A01 ;LDWI 01H

1190 ;STWR 10H

STATUS, 5 0283 ;BCR

2、PIC16F630 的 /MCLR 功能可以通过烧录选项设置,而 MDT10F630 的 /MCLR 功能须选用

MDT10F630P13 or MDT10F630S13

包装,则外部/MCLR的封装。无法通过烧录选择。

3、MDT10F630 无 Brown-out 功能。

4、其它使用方式一样。二、PIC16F630烧录档转成MDT10F630

由于两者设置内外部振荡器的方法不同,MDT需要用90H来设置振荡方式,而PIC16F630的90H是用来校正内部频率的,有的程序90H会被设一些值,有的无任何设置。所以PIC16F630烧录档转至10F630时,需要特别注意90H的设置。

如果有ASM档,在ASM档里按10F630规格修改90H值,再重新编译则可。

如果只有烧录档,就需要想办法把设置90H的指令加进去或修改原烧录档中90H的参数。

下面举例说明将设置90H参数加到烧录档里:

烧录档16F630。HEX,要求用外部振荡455K,则LF振荡模式。

步骤:1、 用MDT烧写器软件打开16F630。HEX,反编译:

2、保存反编译文档:

3、用WORD打开反编译文档,查找10H,注意当STATUS,5=1时,10H就是90H,有的10H不是表示寄存器而是地址或立即数,要注意辩认。

4、该程序查找的结果是没有对90H设置的,按MDT10F630规格书要求:LF需要将90H设为00001101B,则0DH,所以先找ROM中没有写代码的地方,如地址380H,将把指令填在此处。

5、开始填写指令,用鼠标双击需要填写的地方,弹出对话框,我们需要在380H填指令,所以在MCU复位地址0000H处先填上LJUMP 380H,则如下图对话框中的2B80,使程序跑到380H处。

6、再到380H处,填上如下数据,则

BSR

STATUS,5 ;

LDWI 0DH ;STWR 10H ;BCR STATUS,5 ;

LJUMP 200H ;千万别忘了,跳回原本应复位的地址200H

7、反编译检查填写无误后,保存成MDT烧录档,如上图。

8、最后再提醒一下,如果原代码中有设置90H的,修改原设置参数则可;有多处设置90H的(一般不会出现),则只保留上电复位时的设置,其它的设置删掉。

发布评论

评论列表 (0)

  1. 暂无评论