一个简单的C程序,结果出乎我的意料

2019-03-25 19:39发布

MPLAB IDE 8.73    编译工具C18 V3.4  MCU:PIC18F452 本人在看书看到书有这么一段程序,让学生观察PORTB的变化,程序如下: #include<p18F452.h>
void main(void)
  {
     TRISB=0;
      for(;;)
          {
           PORTB=0xAA;
           PORTB=0x55;
           }
  } 下载后,按F7,观察后却发现PORTB的值要么为0x2A,要么为0x15,而WREG的值正常为AAH或者55H.  百思不得其解   以下为C18编译后LIST文件的一部分: 1:                 #include<p18F452.h>
2:                 void main(void)
3:                   {
4:                      TRISB=0;
  00E2    6A93     CLRF 0xf93, ACCESS
5:                       for(;;)
  00EC    D7FB     BRA 0xe4
6:                           {
7:                            PORTB=0xAA;
  00E4    0EAA     MOVLW 0xaa
  00E6    6E81     MOVWF 0xf81, ACCESS
8:                            PORTB=0x55;
  00E8    0E55     MOVLW 0x55
  00EA    6E81     MOVWF 0xf81, ACCESS
9:                            }
10:                  }
  00EE    0012     RETURN 0 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。