keil C遇到的小问题

来源:互联网 发布:淘宝我的卖家中心登陆 编辑:程序博客网 时间:2024/05/15 09:39

 1. 在用Keil C uVision2 编译C程序时遇到一个问题,当把变量定义语句写在非变量定义语句之后,进行编译,会显示改变量未定义。实际上,该变量的确是在使用之前定义的,只是有其他的,比如:P0=0xfe赋值语句被写在了变量定义语句之前,编译无法通过。(在Windows C语言编程里不存在这样的问题)   

处理办法:将所有的变量定义语句写在每一个函数的最前面。

2. 编程中需注意的小问题: A51中十六进制数写法为: 0x05,0x0fe,注意当0x后面的第一个数字大于9时,须在这个数字前面再加一个0,例如:0x0a5;  如果写形成0xa5编译会出错,错误提示为:Timer01.ASM(14): error A45: UNDEFINED SYMBOL (PASS-2)

3. 定时器溢出标志位TF0(寄存器TCON.5或者0x88.5):当定时器T0工作于中断方式时,TF0不会置1,当定时器T0工作与查询方式时,TF0会置1

4. RET&RETI返回位置的问题

(1)ACALL&LCALL 调用子程序结束后,执行RET指令,返回ACALL&LCALL的下一条指令开始执行;

(2)SJMP/AJMP/JMP… … 跳转指令返回问题,跳转不会自动返回,如在跳转到的程序段加RET指令将返回程序首地址

 

 

 

 

原创粉丝点击