找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机头文件的内容

[复制链接]
跳转到指定楼层
楼主
ID:223571 发表于 2017-10-23 17:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
拿51为例,#include “reg51.h”,我知道reg51.h是51单片机的头文件,并且包含51的一些寄存器;我的问题是:头文件是把单片机硬件的所有内容都对应的包含了进来,还是只包含了局部特殊功能寄存器?
或者请阐明reg51.h里面有哪些东西和硬件的关系。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:123289 发表于 2017-10-24 07:11 | 只看该作者
所谓头文件,关键是个头字。
一般写程序的习惯上,会在开头写一些定义。故而,头文件是定义文件。
但是,对于编译系统说,它不管你是头、是中、是尾?统统进行翻译,待遇一样。
所以头文件也可以是子程序!
C语言强调了它的通用性,但是不同的单片机有不同的接口,是不可能通用的。为了解决通用问题,每种单片机就将不同一部份写出在一个头文件中,定义成一些通用的词汇,这样你只要INCLUDE 它就OK了。
其实不要头文件也可以,不过你得自己定义一些东西了,否则编译器不认识。楼主可以试试,这样可以帮助你更了解头文件。
事实是不仅是单片机,硬件也一样会被写成头文件形式,供你调用。
回复

使用道具 举报

板凳
ID:164602 发表于 2017-10-24 08:35 | 只看该作者
应该是包含全部特殊功能寄存器的寻址定义(甚至还有多的——这个系列的芯片,有的有这样的特殊功能寄存器,而另一种却没有,但这个头文件里就定义了全部,这个系列的芯片都可以用)。
我用过的REG51.H中,没有进行I/O口的位定义,其实是可以定义的。
我看到的STC15.H中,就把位也定义了,当然是可寻址的位,如:sbit P00=.....,程序中就可以直接用位P00了,而不再像51的,程序中要sbit LED=P0^0才能用。
回复

使用道具 举报

地板
ID:242428 发表于 2017-10-24 14:20 | 只看该作者

我看到的STC15.H中,就把位也定义了,当然是可寻址的位,如:sbit P00=.....,程序中就可以直接用位P00了,而不再像51的,程序中要sbit LED=P0^0才能用。
回复

使用道具 举报

5#
ID:212797 发表于 2017-10-24 16:49 | 只看该作者
#include 头文件:从本质上来说,include就是把对应的头文件直接拷贝到这一行;
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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