你的代码里,某一行代码没有写 ; 句尾符。程序进行语法编译时报错。
【1】可能存在汉字的分号;【2】uchar code 干脆写成 code char 。忽视那个#define uchar unsigned char;【3】头文件 "1602.h" 有鬼!(有残缺) 你可以先屏蔽掉,或者搞个空文件给她引用,看看是否任然有错。
应该是头文件有问题,编译器不认识BYTE导致的尝试在前面加上一句:typedef unsigned char BYTE;
这个是说在代码前面掉了;修改出错代码,在前面加上;
define unsigned uchar char;这句语法错了,应该是#define uchar unsigned char;
先添加:define uchar unsigned char define uint unsigned int 再增加单片机特有寄存器定义,具体地址请自己查询,这里地址仅做示例:sfr P1M0 = 0xC9;sfr P1M1 = 0xCA;再之后的问题要你自己搞清楚外部函数调用问题了。
你好!!在头文件下添加预处理宏定义:define uchar unsigned char 你出现的编译警告,应该是头文件内定义的函数没有被使用出的警告
uchar code ss2[]={0X7F,0X3F,0X9F,0XCF,0XE7,0XF3,0XF9,0XFE}; //是uchar非unchar 0x非Ox void delay(uchar a){ uchar i;i=a;while(i--){ ;} } void main(void){ uchar m, n;for(n=0;n<2;n++){ for(m=0;m<8;m++){ P1=ss1[m]; // 大写P delay(2);} f...
这行:#define int unsigned int 改为:#define uint unsigned int
这也是一样的问题,应该是 unsigned int voidmain(void),这也有一个空格的,应该这样 void main(),这用一个空括号就行。voidt0(void) interrupt 1 using 0 ,为什么不打空格呢?都犯一个毛病呢 应该是 void t0() interrupt 1 using 0,时刻别忘了:空格,空格,空格!!!