头文件主要是对单片机片内寄存器地址的声明和定义,以及一些位定义等,如果两个单片机的寄存器地址是一样的,当然可以共用同一个头文件,传统的51就是这样,甚至随着代数更新,例如P口,也是有寄存器地址保持不变的,目的是尽可能向旧版本保持兼容,但是当使用一些单片机的特殊资源的时候,就需要手动添加寄存器(sfr语句),或者修改、更换头文件,例如,在STC增强型51中使用P4口的时候,传统的reg51.h里没有对于P4口的位定义,这个时候就需要手动添加(或者更改适配头文件)。 再举个例子,当使用STC15系列单片机的时候,比如IAP15W4K48S4,就需要包含STC15.H这个头文件;在使用STC12C2052的时候,就需要包含STC12C2052.h,这些都是根据你使用的单片机进行更改的。 我想你应该明白了,如果还有困惑,我再补充一个例子,当使用STC89C52的时候,严格来说,应该包含的是STC89C5xRC.H,而不是reg52.h。 |
最好单片机与头文件相对应 |
一般就reg51.h够了,除开MCU有一些特别的功能寄存器就自己加相关的宏定义到程序中 |
现在新发展的51单片机一般都会向下兼容传统51单片机,所以对于一般应用,如果只使用传统51单片机的功能和端口,reg52.h 完全可以用的。其实对于简单应用,不用头文件也可以的。 |
初学者看热闹 |
ISIS为啥仿真不起呢?第四位不亮,第二位闪烁亮;a f b g c dp d e分别为 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 |
AT89X51.h里面已经定义好了io口,你可以直接调用!reg52.h需要自己定义! |
任何51内核的单片机包含<reg52.h>都不会有问题. 头文件里一般都是定义一些特殊功能寄存器.就跟买个新手机的说明书一样. 刚开始学的时候看不明白头文件很正常,不必再这上面花太多时间,看看例程照着葫芦画瓢即可. 等你慢慢熟练一些寄存器的作用,回头去看,会发现可以轻松看懂.甚至可以看着手册写自己风格的头文件. |
#include<AT89X51.H.>里面I/O口是已经定义好了,比如你用#include<reg51.h> 还要定义I/O口的地址,但是#include<AT89X51.H.>,所以说#include<AT89X51.H.>的范围更广一些,或者说更好用一些,前提是,你得熟悉他的文件里的各种设置 |
现在新发展的51单片机一般都会向下兼容传统51单片机,所以对于一般应用,如果只使用传统51单片机的功能和端口,reg52.h 完全可以用的。其实对于简单应用,不用头文件也可以的。 |
接口都是自己定义的吧 |
reg51.h需要定义sbit比较麻烦 |
不是自己可以定义么 |