11.
12.
13.ram2ramrom2rammath;RAM到RAM的数据传递;ROM到RAM的数据传递;基本运算程序
实例说明
1.初始化
1)当程序上电复位时,一个完整的用户寄存器初始化或清零动作是非常重要的,否则容易造成程序执行的不确定性。
例如:
pre_clrRAM:
b0movy,#0;清RAMbank0
b0movz,#48
@@:
clr@yz
decmsz
jmp@b
clr@yz
ret
2)系统寄存器必须进行初始化,比如说I/O口方向和输出电平等。
需要特别说明的是输出口的初始化必须按照下列顺序来处理:
(1)设定相应I/O口输出高低电平
(2)将相应I/O口为输出口
如此可确保MCU的I/O口从输入模式转为输出模式时不会有脉冲的存在。而在I/O口控制频繁变化(如通信)时更要引起注意。
例如:
(3)mova,#11111111b
;如果p1.0和p1.1原来为输入高电平,当直接切换为输出方式时会有高电平脉冲的输出,而这不是所希望的。
b0movp2m,a
mova,#11111100b
b0movp2,a
(4)mova,#00001100b
b0movp2,a
;这样处理p1.0和p1.1就避免了高电平脉冲的输出
mova,#11111111b;
b0movp2m,a
开机时后IOtoggle的作法
利用暂时没有用到的IO来做toggle可有效观察以下几点
1)系统是否正常开机
2)是否发生resetorwatchdogreset现象
3)程序是否重头运行
观察IOtogglepulsewidth可以了解InternalRC频率的准确性或是协助调整外部RC数值以上方法可以有效协助量产生产问题