KEIL51调试时一些错误总结
示出错: 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
KEIL51 相关文章:
- Proteus运行Keil编写的51单片机C语言步骤(11-30)
- keil的51单片机仿真调试中如何查看内存的内容(11-24)
- keil 51启动代码(11-23)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)