原创 C51总结之一

2009-8-2 16:09 3070 4 7 分类: MCU/ 嵌入式

C51的一些毛病--------------


今天调试一个彩屏程序。


头文件定义如下:


//----宏定义如下----


#define KKM  P0^1


#define KKN  P0^2


//------宏定义如下---


#define KKM_H()  KKM="1";


#define KKN_L()  KKN="0";


 


问题:在程序中调用的时候,发现有个问题它总是报错,说少了一个“=”。相当的郁闷,查来查去,也不知道什么毛病。


//--------------------------------------------------------------------------------


解决:郁闷后,干脆使用比尔定义:


sbit KKM="P0"^1;
sbit KKN="P0"^2;


这个时候就没有报错了,结论OK了。


//----------------------------------------------------------------------- 


看来在C51中,如果使用宏定义去定义一个IO口,再对IO口做函数宏定义的话,会有错。


正确的描述如下:


//-----定义IO口-----


sbit KKM="P0"^1;


sbit KKN="P0"^2;


//----函数宏定义----


#define KKM_H() KKM="1";


#define KKN_L() KKN="0";


 


//-------------------------------------------------------------------


 

PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户216937 2009-8-3 15:20

TO 1楼:P1^1的引号是系统加上去,俺并没有加。 TO 2楼:定义方法可以用比尔定义,也可以用宏定义

用户124183 2009-8-3 09:58

sbit KKM=P0^1; 大家一直就是这么定义的

tengjingshu_112148725 2009-8-3 09:19

学习了,不过为什么 "P1"^1 要加引号?
相关推荐阅读
用户216937 2010-10-29 10:26
CODE RW RO ZI
学习使用keil,总结一点学习经验。解释几个名词:编译的一个ARM的程序,编译结果中的一句话Program Size: Code=8044 RO-data=52 RW-data=56 ZI-data=...
用户216937 2009-09-18 15:37
MDK报警:Warning : L6305W
ADS 编译警告:Warning : L6305W : Image does not have an entry point2007-08-23 10:37        ADS 编译时出现警告:“W...
用户216937 2009-09-10 17:44
关于KEIL的若干BUG修复
//-------------------------------------------------------------  一: 光标问题        Keil uv3 中会出现光标定位不准的...
用户216937 2009-09-10 17:29
ARM之RO、RW、ZI解释
//-------------------------------------------------------------------    一般而言,一个程序包括只读的代码段和可读写的数据段。 ...
用户216937 2009-08-19 23:15
Keil for ARM的编译错误之一
症状,在KEIL中建立了工程之后,编译就出现这样的提示can't execute 'C:\Keil\C51\BIN\A51.EXE'在百度上找到了以下的解答出错原因;被打开的KEIL程序的编译器安装在...
用户216937 2009-08-09 11:57
c51总结之三:关于KEIL51编译汉字
https://static.assets-stash.eet-china.com/album/old-resources/2009/8/9/ff312653-399c-463d-8979-dc8ec...
EE直播间
更多
我要评论
3
4
关闭 站长推荐上一条 /3 下一条