微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > KEIL51调试时一些错误总结

KEIL51调试时一些错误总结

时间:09-26 来源:互联网 点击:

示出错:

MAIN.C(22): error C141: syntax error near 'P3'

改正: P1后加";"

(9)C129汇编与C后缀问题

例如写这么一段小程序,保存为c0.c,编译时出现error c129,miss ; before 0000;

如果保存为:c0.asm就不会出现这个错误,保存为c的话,先调用c51编译器,按c语言的要求编译,所以出现错误;可以参考一些书,专门介绍keilc这个编译器的;

(10)C101和C141关于数组引号问题

定义了如下的数组:

unsigned char a[36]={'0xfe','0xfd','0xfb','0xf7','0xef','0xdf','0xbf','0x7f','0x7e','0x7d','0x7b','0x77','0x6f','0x5f','0x3f','0x3e','0x3d','0x3b','0x37','0x2f','0x1f','0x1e','0x1d','0x1b','0x17','0x0f','0x0e','0x0d','0x0b','0x07','0x06','0x05','0x03','0x02','0x01','0x00'};

可是编译的时候总通不过,错误提示如下:

Build target 'Target 1'

compiling shaomiao.c...

SHAOMIAO.C(3): error C101: ''0': invalid character constant

SHAOMIAO.C(3): error C141: syntax error near 'xfe'

SHAOMIAO.C(3): error C101: ''}': invalid character constant

Target not created

解决方法:去掉'...'引号

(11)C100和C141和C129程序有中文标点

用keil编译时出现错误,如下:D:\KEIL\C51\INC\REG52.H(1): error C100: unprintable character 0xA1 skipped

同上错误有很多个,还有D:\KEIL\C51\INC\REG52.H(2): error C141: syntax error near '#'

D:\KEIL\C51\INC\REG52.H(2): error C129: missing ';' before '<'

但是reg52.h头文件是keil 自带的(见下),为何会报错呀。

----

回答:程序里有带中文标点,用英文重新写一遍即可

(12)A45汇编出现数字、字母混淆

MOV PO,A ;put on next 11

...

MOV RO,#0FFH ; 14

MOV R1,#OFFH ; 15

...

DJNZ RO,DLY_LP ;19

MOV R0,#OFFH ; 20

...

编译后:

ledtest.asm(11): error A45: UNDEFINED SYMBOL (PASS-2)

ledtest.asm(14): error A45: UNDEFINED SYMBOL (PASS-2)

ledtest.asm(15): error A45: UNDEFINED SYMBOL (PASS-2)

ledtest.asm(19): error A45: UNDEFINED SYMBOL (PASS-2)

ledtest.asm(20): error A45: UNDEFINED SYMBOL (PASS-2)

Target not created

---------

注意:

字母“O” 和 数字 “0”。主要错在这里。

应该输入数字 “0”,而你输入字母“O”了。

(13)C141错误

提示 001.C(23): error C141: syntax error near 'unsigned'

这行之前的语句"bit flag_Key_Service_song=0"少分号了

(14)C129错误

提示 001.C(22): error C129: missing ';' before 'flag_Key_Service_song'

定义里 "bi flag_Key_Service_song=0;"

改为bit

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top