51多文件系统的书写

发布者:HappyHearted最新更新时间:2017-01-09 来源: eefocus关键字:多文件系统 手机看文章 扫描二维码
随时随地手机看文章

这两天在学着写多文件程序,开始的时候真的不会写,后来参照百度上得到,书写基本的还是会的,但是一到自己改的程序就不会了,后来找呀找呀,终于找到解决的方法,我觉得告我们这一行的千万千万不要着急,否则会丧失信心:

这里我总结一些我写多文件的经验:

第一,如何定义多文件的头文件:比如定义一个delay.h

参照格式:#ifndef __DELAY_H__

     #define_DELAY_H__

               .................................

              #endif

这种方法可能大家都知道,但是这是书写多文件程序的基本操作,还有几个点大家要值得注意,

1:就是全局变量extern的含义 对于大一点的程序,有很多c文件和头文件,这个时候全局变量就必须在头文件中声明(不需要初始化),然后在一个c文件中定义(该初始化的要初始化)。如果在头文件中定义,则编译的时候会出现重复定义的错误。如果只有头文件中声明就会出现没有定义有警告。

2:在声明全局变量,尤其是数组的时候,千万要小心,因为声明不能初始化,而且要注明数组的具体大小,这一个小错误让我白白的调试了一上午


关键字:多文件系统 引用地址:51多文件系统的书写

上一篇:看门狗的概念与应用以及如何用软件实现系统的复位
下一篇:单片机其他外围设备的使用

推荐阅读最新更新时间:2024-03-16 15:29

汉王电纸书N518听书版 销量猛增 势不可挡
又是年关将至,又到了购买年货和礼品的火爆时期。随着生活水平的攀升和科学技术的发展,人们对于礼品馈赠的认识也有了新提高,已经不再满足于赠送吃、穿或是类似脑白金这样的俗气礼品,人们追求着更加时尚、更高档次、更富技术含量和更有意义的文化礼品。 记者日前特意就此走访了北京各大卖场,探访今年的年货礼品走向,结果发现在09年里风靡全国的汉王电纸书( www.hw99.com )受到众多市民和礼品采购商的格外关注。这款结合了文化与科技,被称为将“全面代替传统书籍”的数码产品,近一年来火爆走俏,已悄然成为越来越多消费者青睐和认可的文化大礼。 由于汉王电纸书采用了电子油墨技术,所以显示效果能与纸书媲美,而且不伤眼睛,同时依托汉
[手机便携]
在C51中如何实现软复位?
可以定义一个指向复位向量(0x0000)的函数指针,然后在C程序中需要软复位的地方调用该函数: ((void (code *) (void)) 0x0000) (); 例如,以下程序不断地复位: void reset (void) {   ((void (code *) (void)) 0x0000) (); } void main (void) {   reset (); } 也许你会注意到前面所提到的复位程序并不恢复8051的中断系统,它也不去复位任何的8051外设。若上述代码在一个中断例程中执行,则8051 会阻止同级中断的产生。因此,在中断服务例程中不能使用这个复位程序。 以下的一小段汇编过程同样
[单片机]
keil下C51启动代码详解
由于CPU和程序启动代码文件STARTUP.a51的重要性,一些8051派生的CPU产品要求初始化CPU来满足设计中的相应的硬件,因此,有时候用户需要对STARTUP.a51进行修改,所以进行注释一下: ;--------------------------------------------------- ;startup.A51: 用户上电初始化程序 ;---------------------------------------------------- ; ;使用以下EQU命令可定义在CPU复位时需要用0进行初始化的内存空间 ; ;IDATA存储器的空间的绝对起始地址总是零 IDATALEN EQU 80H ;
[单片机]
51单片机8位数码管电子时钟仿真图及源代码
利用8位数码管显示时间,原理与4位数码管显示的基本一样 仿真图: 程序源代码: 本程序已经通过在线软件仿真和硬件制作. org 0000h ;程序开始入口地址 sjmp main ;跳转至主程序 org 000bh ;T0中断入口地址 ljmp inti0 ;跳转至T0中断程序 org 001bh ;T1中断入口地址 ljmp inti1 ;跳转至T1中断程序 org 0030h main:mov tmod,#11h ;设T0、T1为模式1 mov ie,#8ah ;开T0、T1允许中断 mov th0,#4ch ;赋T0 50ms初值 mov tl0,#00h mov th1,#4ch ;赋T1 50ms初值 mov t
[单片机]
<font color='red'>51</font>单片机8位数码管电子时钟仿真图及源代码
51单片机自动售水机程序
单片机源程序如下: #include stc.h #include button.h #include smg.h #include AT24C02.h sbit led1=P0^0; sbit bell=P0^6; sbit relay=P0^4; unsigned char flag_s7,flag_s6; int money=0,amount=0;//价格 容量 unsigned char count,flag_count; unsigned char state; //控制数码管两种显示界面 按键控制 #define EXE_EN P2 = (P2&0X1F)|0XA0; P2 &= 0X1F void
[单片机]
<font color='red'>51</font>单片机自动售水机程序
keil C51使用串口时程序跑死的问题
在使用STC51单片机的串口时,有时候会进入一种很奇怪的情况,就是程序进入了一下子跑死了,初始化代码如下: void UsartConfiguration(unsigned int bps) { SCON = 0X50; //设置为工作方式1 10位异步收发器 TL2 = RCAP2L = bps; //set auto reload value TH2 = RCAP2H = bps 8; T2CON = 0x34;//0011 0100 timer2 sart run ES = 1;//打开串口中断,注意打开开一定要写串口中断函数 EA = 1;//打开总中断 } 经过程序模拟DEBUG可以发现程序跑死在发
[单片机]
8051单片机指令定义详解——ACALL addr11(1)
8051单片机指令定义详解 (ACALL addr11) 符号说明 符 号 说 明 表示数据传送方向 () 表示单元的内容 (()) 表示间接寻址的内容 rrr 8个工作寄存器之一;000=R0,001=R1等 dddddddd 数据位 aaaaaaaa
[单片机]
以C8051F340单片机为核心的红外测温系统设计
引言 螺旋装药过程中,经常会因为内部药品温度分布不均匀导致在装药过程中药品内出现气泡的现象,这严重影响了弹体内的药品质量和弹药参数。因此,本文希望通过设计一种温度监测系统来实现对腔体内药品温度检测,寻找装药过程中温度与药品质量之间的关系。由于装药机结构的特殊性,我们无法通过传统的接触测温法获取药品的温度。因此本文设计了一种基于红外测温方法的系统来实现对药品温度的实时检测。 1 时分复用原理 复用方法的设计主要依据TN9红外传感器的信号特征及接口特点,TN9红外温度传感器具有5个接口,其中电源和地不需要接到CPLD上,其余三个接口分别为低电平有效的TN9工作使能接口,工作在主模式的SPI时钟接口和数据接口。采用复用模式是只需通过设置
[单片机]
以C80<font color='red'>51</font>F340单片机为核心的红外测温系统设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved