• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

初学PIC单片机问题:为什么W的内容我改变不了?

刚刚开始学习PIC的单片机,在实验最简单的程序时,用单步运行方式,却发现我无论怎么修改 MOVLW  0FFH的值,W寄存器的内容总是0xFF,我怎么也不明白?望高手指点迷津,非常感谢!
delay                      
       movlw   0ffh     ;此处的0ffh我改成02h,或者D'2'  
      movwf   20h      ;但是20H单元中的内容却总是0xFF,
lp0    movlw   0ffh     ;不知道为什么?
       movwf   21h          
lp1    decfsz   21h,1    
       goto     lp1          
       decfsz    20h,1      
       goto     lp0              
       return              
       end
全部回复(10)
正序查看
倒序查看
ptan
LV.3
2
2006-10-25 23:27
这是因为20H的镜像地址是00H,你把20H改成10H看,这样就可以了.
PIC的RAM是要分页寻址的.
0
回复
caoyuan
LV.3
3
2006-10-26 21:17
@ptan
这是因为20H的镜像地址是00H,你把20H改成10H看,这样就可以了.PIC的RAM是要分页寻址的.
非常感谢您的回复!PIC的RAM分页我也知道,可能理解不正确吧.但是我就是在当前体0进行操作啊,而且,如果改为10H,那好象是T1CON用的啊,用户不能用呀.
    我就是用MOVLW  02H指令执行后,发现W寄存器的内容不是02H,我就是在当前体操作.还是不明白,能否再指点一下,谢谢!
0
回复
ptan
LV.3
4
2006-10-26 23:05
@caoyuan
非常感谢您的回复!PIC的RAM分页我也知道,可能理解不正确吧.但是我就是在当前体0进行操作啊,而且,如果改为10H,那好象是T1CON用的啊,用户不能用呀.    我就是用MOVLW  02H指令执行后,发现W寄存器的内容不是02H,我就是在当前体操作.还是不明白,能否再指点一下,谢谢!
你用的是什么仿真器?是硬件仿真器?还是软件仿真器?你用的是什么型号的PIC单片机?
0
回复
caoyuan
LV.3
5
2006-10-27 09:59
@ptan
你用的是什么仿真器?是硬件仿真器?还是软件仿真器?你用的是什么型号的PIC单片机?
我用的是PIC16.COM网站上推销的MCD2仿真器,单片机用的是PIC16F877A,没有用软件仿真器.按理说不应该出现这个问题.我就
是做个霹雳灯的仿真实验,主要是想用单步方式看看整个程序的运行过程,但是单步运行的速度太慢,所以我才想把循环的数值降低,以便可以观察整个情形,没有想到出现了这个问题,便搞不明白了.
    不可能是MCD2仿真器有问题吧?
0
回复
ptan
LV.3
6
2006-10-27 11:03
@caoyuan
我用的是PIC16.COM网站上推销的MCD2仿真器,单片机用的是PIC16F877A,没有用软件仿真器.按理说不应该出现这个问题.我就是做个霹雳灯的仿真实验,主要是想用单步方式看看整个程序的运行过程,但是单步运行的速度太慢,所以我才想把循环的数值降低,以便可以观察整个情形,没有想到出现了这个问题,便搞不明白了.    不可能是MCD2仿真器有问题吧?
不如你把你的程序发过,我用我的仿真器帮你仿真看,MCD2我也没用过,所以我不能说什么.
0
回复
ptan
LV.3
7
2006-10-27 11:03
@caoyuan
我用的是PIC16.COM网站上推销的MCD2仿真器,单片机用的是PIC16F877A,没有用软件仿真器.按理说不应该出现这个问题.我就是做个霹雳灯的仿真实验,主要是想用单步方式看看整个程序的运行过程,但是单步运行的速度太慢,所以我才想把循环的数值降低,以便可以观察整个情形,没有想到出现了这个问题,便搞不明白了.    不可能是MCD2仿真器有问题吧?
我的:lyc5018@163.com
0
回复
caoyuan
LV.3
8
2006-10-27 16:21
@ptan
我的:lyc5018@163.com
我已经给你发邮件了.请查看.
0
回复
ptan
LV.3
9
2006-10-27 19:47
@caoyuan
我已经给你发邮件了.请查看.
程序没问题,你可能是仿真过程不对,你做了修改后,要存盘,再编译,然后再仿真看看.应该就可以了的.
0
回复
caoyuan
LV.3
10
2006-10-27 21:10
@ptan
程序没问题,你可能是仿真过程不对,你做了修改后,要存盘,再编译,然后再仿真看看.应该就可以了的.
谢谢你的热心!的确是我的仿真过程不对.现在已经很好了.哎,刚开始,什么问题都会出现.但不遭遇问题,也不会长进,一句话,一个人自学,苦与乐共舞!
再次感谢!希望以后有问题再麻烦您!
0
回复
ptan
LV.3
11
2006-10-28 22:55
@caoyuan
谢谢你的热心!的确是我的仿真过程不对.现在已经很好了.哎,刚开始,什么问题都会出现.但不遭遇问题,也不会长进,一句话,一个人自学,苦与乐共舞!再次感谢!希望以后有问题再麻烦您!
不客气,你的今天,就是我的昨天,我们一起努力吧!
0
回复