在上篇日志中提到的怪异的问题,今天中午吃饭时终于想到原因了。读取端口老是为1的原因主要是我数据类型运用的不当,即读取端口某位数据应该用sbit类型,我用了bit类型,用bit类型时,C51编译器不允许直接访问某一位。以下面程序为例:
在程序中An_的取值不是P0的第四位,而是P0寄存器与0x04的按位异或。所以每次计算都是1.要想读取P0口的值,应该改为:
这样就可以读取P0口的值,也就是要通过sbit类型的变量来访问P0口。
在上篇日志中提到的怪异的问题,今天中午吃饭时终于想到原因了。读取端口老是为1的原因主要是我数据类型运用的不当,即读取端口某位数据应该用sbit类型,我用了bit类型,用bit类型时,C51编译器不允许直接访问某一位。以下面程序为例:
在程序中An_的取值不是P0的第四位,而是P0寄存器与0x04的按位异或。所以每次计算都是1.要想读取P0口的值,应该改为:
这样就可以读取P0口的值,也就是要通过sbit类型的变量来访问P0口。