一个简单的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 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
zhangdaoyu
1楼-- · 2019-03-26 03:03
 精彩回答 2  元偷偷看……
hong7817
2楼-- · 2019-03-26 05:24
没人知道么???
Cheney_Xu
3楼-- · 2019-03-26 11:05
我这边用你的程序用SIM模拟了,没有问题,建议你检查一下MPLAB IDE的设置。

一周热门 更多>