找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9648|回复: 49
打印 上一主题 下一主题
收起左侧

自己写的头文件中是否需要包含reg52.h

  [复制链接]
跳转到指定楼层
楼主
ID:154074 发表于 2017-5-2 22:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
比如自己写头文件lxxx.h和xxx.c,此时主程序main.c中已经有

#include<reg52.h>

那么在xxx.h和xxx.c中是否还需要也加#include<reg52.h>?不加的话是否可以运行,加上之后会不会重复包含?


新手有点迷糊,希望各位指点迷津!


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:194895 发表于 2017-5-3 08:52 来自手机 | 只看该作者
已经不需要添加了

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:192650 发表于 2017-5-3 11:09 | 只看该作者
要加头文件的

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:192650 发表于 2017-5-3 11:10 | 只看该作者
要加头文件 , 你在子程序中也用到了  不然会报错

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

5#
ID:196194 发表于 2017-5-3 21:42 | 只看该作者
要加头文件的
回复

使用道具 举报

6#
ID:187614 发表于 2017-5-3 22:18 | 只看该作者
加头文件是必须的,可在主程序中加,也可在自己写的头文件中加。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

7#
ID:196284 发表于 2017-5-3 23:03 | 只看该作者
所有的都要带这个
回复

使用道具 举报

8#
ID:196305 发表于 2017-5-3 23:49 | 只看该作者
如果是89C52就需要写。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

9#
ID:196294 发表于 2017-5-4 00:04 | 只看该作者
需要的 亲
回复

使用道具 举报

10#
ID:162841 发表于 2017-5-4 01:02 来自手机 | 只看该作者
这个要看情况来的
回复

使用道具 举报

11#
ID:196356 发表于 2017-5-4 09:47 | 只看该作者
两者加也可以不加,一般里面会有ifdef endif这种宏定义,不会重复
回复

使用道具 举报

12#
ID:170658 发表于 2017-5-4 10:44 | 只看该作者
需要的,一般
回复

使用道具 举报

13#
ID:194034 发表于 2017-5-4 10:51 | 只看该作者
当然了  
回复

使用道具 举报

14#
ID:196428 发表于 2017-5-4 11:36 | 只看该作者
需要不然会报错
回复

使用道具 举报

15#
ID:196405 发表于 2017-5-4 11:41 | 只看该作者
51的话,是需要加头文件的
回复

使用道具 举报

16#
ID:194982 发表于 2017-5-4 12:46 | 只看该作者
要 的  比如宏定义时
回复

使用道具 举报

17#
ID:196463 发表于 2017-5-4 13:57 | 只看该作者
要加头文件的
回复

使用道具 举报

18#
ID:154074 发表于 2017-5-4 14:03 | 只看该作者
谢谢各位的回复
回复

使用道具 举报

19#
ID:195401 发表于 2017-5-4 17:07 | 只看该作者
必须有
回复

使用道具 举报

20#
ID:196589 发表于 2017-5-4 17:16 | 只看该作者
需要也加#include<reg52.h>
回复

使用道具 举报

21#
ID:196590 发表于 2017-5-4 17:21 | 只看该作者
当然要了,这就相当于告诉单片机,我要写一段你的程序啦
回复

使用道具 举报

22#
ID:116078 发表于 2017-5-7 12:56 | 只看该作者
#ifndef __STC89C5xRC_RDP_H_
。。。。
。。。。#endif
头文件开头结尾,一般这样写,就是为了防止重复包含的
回复

使用道具 举报

23#
ID:190246 发表于 2017-5-9 09:54 | 只看该作者
都要加这个头文件的  不然里面一些宏定义和函数没办法使用
回复

使用道具 举报

24#
ID:199277 发表于 2017-5-10 21:00 | 只看该作者
要加,#include <reg52.h>,其余写#include "xxxx"
回复

使用道具 举报

25#
ID:194772 发表于 2017-5-11 19:05 | 只看该作者
都是要加的  尤其是项目化管理的时候
回复

使用道具 举报

26#
ID:199666 发表于 2017-5-11 19:58 | 只看该作者
您需要添加的~ 而且在keil中可以打开看regx.h
/*--------------------------------------------------------------------------
REG51.H

Header file for generic 80C51 and 80C31 microcontroller.
Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
All rights reserved.
--------------------------------------------------------------------------*/

#ifndef __REG51_H__
#define __REG51_H__

/*  BYTE Register  */
sfr P0   = 0x80;
sfr P1   = 0x90;
sfr P2   = 0xA0;
sfr P3   = 0xB0;
sfr PSW  = 0xD0;
sfr ACC  = 0xE0;
sfr B    = 0xF0;
sfr SP   = 0x81;
sfr DPL  = 0x82;
sfr DPH  = 0x83;
sfr PCON = 0x87;
sfr TCON = 0x88;
sfr TMOD = 0x89;
sfr TL0  = 0x8A;
sfr TL1  = 0x8B;
sfr TH0  = 0x8C;
sfr TH1  = 0x8D;
sfr IE   = 0xA8;
sfr IP   = 0xB8;
sfr SCON = 0x98;
sfr SBUF = 0x99;


/*  BIT Register  */
/*  PSW   */
sbit CY   = 0xD7;
sbit AC   = 0xD6;
sbit F0   = 0xD5;
sbit RS1  = 0xD4;
sbit RS0  = 0xD3;
sbit OV   = 0xD2;
sbit P    = 0xD0;

/*  TCON  */
sbit TF1  = 0x8F;
sbit TR1  = 0x8E;
sbit TF0  = 0x8D;
sbit TR0  = 0x8C;
sbit IE1  = 0x8B;
sbit IT1  = 0x8A;
sbit IE0  = 0x89;
sbit IT0  = 0x88;

/*  IE   */
sbit EA   = 0xAF;
sbit ES   = 0xAC;
sbit ET1  = 0xAB;
sbit EX1  = 0xAA;
sbit ET0  = 0xA9;
sbit EX0  = 0xA8;

/*  IP   */
sbit PS   = 0xBC;
sbit PT1  = 0xBB;
sbit PX1  = 0xBA;
sbit PT0  = 0xB9;
sbit PX0  = 0xB8;

/*  P3  */
sbit RD   = 0xB7;
sbit WR   = 0xB6;
sbit T1   = 0xB5;
sbit T0   = 0xB4;
sbit INT1 = 0xB3;
sbit INT0 = 0xB2;
sbit TXD  = 0xB1;
sbit RXD  = 0xB0;

/*  SCON  */
sbit SM0  = 0x9F;
sbit SM1  = 0x9E;
sbit SM2  = 0x9D;
sbit REN  = 0x9C;
sbit TB8  = 0x9B;
sbit RB8  = 0x9A;
sbit TI   = 0x99;
sbit RI   = 0x98;

#endif
它是对单片机的每个管脚的定义
回复

使用道具 举报

27#
ID:183159 发表于 2017-5-11 21:01 | 只看该作者
头文件中如果用到了单片机的资源,比如IO口,内部寄存器等等就必须要添加,你可以打开头文件看看,里面就声明了单片机内部的资源,你要使用当然要调用。
回复

使用道具 举报

28#
ID:197752 发表于 2017-5-11 22:37 | 只看该作者
需要添加
回复

使用道具 举报

29#
ID:199787 发表于 2017-5-11 23:39 | 只看该作者
不用的
回复

使用道具 举报

30#
ID:199797 发表于 2017-5-12 00:13 | 只看该作者
最好还是加
回复

使用道具 举报

31#
ID:200344 发表于 2017-5-13 16:42 来自手机 | 只看该作者
应该需要吧
回复

使用道具 举报

32#
ID:200543 发表于 2017-5-14 10:57 | 只看该作者
要加的
回复

使用道具 举报

33#
ID:200543 发表于 2017-5-14 10:57 | 只看该作者
要加的 ,试试吧
回复

使用道具 举报

34#
ID:200271 发表于 2017-5-14 16:10 | 只看该作者
需要添加,不添加应该会报错
回复

使用道具 举报

35#
ID:201913 发表于 2017-5-17 20:11 | 只看该作者
不需要
回复

使用道具 举报

36#
ID:201873 发表于 2017-5-17 21:09 | 只看该作者
不需要  程序开头有就行    编完程保存时有    .c  文件就行
回复

使用道具 举报

37#
ID:201974 发表于 2017-5-17 21:58 | 只看该作者
.c一般需要,.h可加可不加
回复

使用道具 举报

38#
ID:185772 发表于 2017-5-17 23:25 | 只看该作者
不用全加,加上也不会重复
回复

使用道具 举报

39#
ID:409328 发表于 2019-7-17 18:54 | 只看该作者
要加上去,因为多文件编程时每个文件先编译后连接。所以只要你头文件对应的c文件里有用到reg52.h头文件就必须加上去。但c文件中只要加自己的头文件就可以了。
另外,多次加入reg52.h是没有问题的,因为它里面有宏定义预处理程序,不会重复加入。


回复

使用道具 举报

40#
ID:585970 发表于 2019-7-17 19:10 | 只看该作者
要加的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表