怎样c51自定义头文件

我自己自定义了一个头文件可在写主函数的时候总是提示不能打开,我不知道是什么原因,请各位指教,应该怎样正确定义一个头文件并调用。大家谈谈自己写头文件的一些技巧和注意事项先谢谢了,
我的头文件如下请指教:
#ifndef _lcd1602_
#define _lcd1602_
uchar tab1[]={'0','1','2','3','4','5','6','7','8','9'};
void delay(uint x)
{
uint a,b;
for(a=x;a>0;a--)
for(b=5;b>0;b--);
}
void write_com(uchar x)
{
P1=x;
rs=0;
en=0;
en=1;
en=0;
delay(10);
}
void write_data(uchar x)
{
P1=x;
rs=1;
en=0;
en=1;
en=0;
delay(10);
}
void init()
{
write_com(0x38);
delay(10);
write_com(0x0c);
delay(10);
write_com(0x06);
delay(10);
}
void write(uchar add,uchar date)
{
uchar a,b;
a=add;
b=date;
init();
write_com(a);
delay(10);
write_data(b);
delay(10);

}
endif

头文件是可以有函数的,和c文件一样,函数要有声明,在头文件的开头。如果头文件在系统文件夹下的话有#include<*.*>,和c文件在同一文件夹下的话用#include"*.*"。
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-07-30

如新建一个头文件init.h.函数声明,init.c函数定义.举例说明.

    建立一个c51工程之后,选择新建一个文件,并保存为init.h,

    在新建一个文件,并保存为init.c.

    把init.c文件添加到当前工程中.

    在主函数中把init.h包含进去即可.

    这样在主函数中就可以调用init.h中的函数.

第2个回答  2012-06-27
定义方法;
#define 宏名(参数表)

c51头文件的种类和作用
absacc.h---包含允许直接访问8051不同存储区的宏定义assert.h---文件定义assert宏,可以用来建立程序的测试条件ctype.h---字符转换和分类程序intins.h---文件包含指示编译器产生嵌入式固有代码的程序的原型math.h---数学程序reg51.h---51的特殊寄存器reg52.h---52的特殊寄存器setjmp.h---定义jmp_buf类型和setjmp和longjmp程序的原型stdarg.h---可变长度参数列表程序stdlib.h---存储器分配程序stdio.h---流输入和输出程序string.h---字符转操作程序,缓冲区操作程序
第3个回答  2009-08-12
#ifndef _lcd1602_
#define _lcd1602_
应该是:
#ifndef _lcd1602_H_
#define _lcd1602_H_
而且头文件中应该是不能有函数的吧,只能申明函数:
void delay(uint x);
void write_com(uchar x);
void write_data(uchar x);
void init();
void write(uchar add,uchar date);
相似回答