微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于51单片机头文件包含的问题

关于51单片机头文件包含的问题

时间:10-02 整理:3721RD 点击:
我在1.h中声明了变量 a,现在需要在1.c中定义 a = p1,可是总是报错说是p1未定义,请教大神解决啊

你的P1指的是51的P1端口么 ?如果是  那就要用大写“P1” 而不是小写的 “p1”

大写的也不行唉 大神你知道在这种头文件包含中 端口的操作应该是怎么做呢?谢谢

外部变量a 声明    extern

你是不是想用变量a来代替P1 口来操作,如果是你可以用       #define a  P1     这样的宏定义
你可你把它放在1.c #include <reg51.h>的后面,也可是直接放在1.h文件中 记得在1.c中包含1.h之后就可以 a = 0x0f;之类的操作了

5楼正解。P1是个特殊寄存器类型的。

5楼正解。P1是个特殊寄存器类型的。

如果你要在1.c中使用P1,要么在1.c中包含<REG52.h>(或类似的包含P1寄存器声明的头文件),要么在1.h包含<REG52.h>,然后1.c再包含1.h

首先感谢你的细心解答 我最后搞得到处都是错误 我再说的清楚点吧 我想把LCD1602做成头文件,以后方便调用,该怎么做成头文件呢?谢谢你

客气了,这是我现在用的头文件
#ifndef _LED1602_H_   
#define _LED1602_H_
/********IO引脚定义***********************************************************/
sbit LCD_RS = P3^6;//定义引脚
sbit LCD_RW = P3^7;
sbit LCD_E  = P3^5;
sbit LCD_LED= P2^0;
/*把你需要被外部引用的函数放在下面声明下*/
/***********初始化********************************************************/       
void LCDInit(void);   
/***********按指定位置显示一个字符*******************************************/       
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);
/*******Function1**********/
//void Function1()
…………
#endif
这样你在别的.c文件开始引用#include "LED1602"就好啦

非常感谢!谢谢 谢谢

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

网站地图

Top