博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
头文件里应该写些什么
阅读量:5907 次
发布时间:2019-06-19

本文共 2749 字,大约阅读时间需要 9 分钟。

1、输入输出接口函数声明如extern void InitLcd1602();

2、全局变量声明

3、声明自定义数据类型:结构体,枚举体

typedef  signed    char    int8;
main.h #ifndef _MAIN_H#define _MAIN_Henum eStaSystem {      E_NORMAL, E_SET_TIME, E_SET_ALARM};#ifndef _MAIN_Cextern enum eStaSystem staSystem;#endifvoid RefreshTemp(uint8 ops);void ConfigTimer0(uint16 ms);#endif
main.c #define  _MAIN_C#include "config.h"#include "Lcd1602.h"#include "LedBuzzer.h"#include "keyboard.h"#include "DS1302.h"#include "DS18B20.h"#include "Infrared.h"#include "Time.h"#include "main.h"bit flag2s = 0;    bit flag200ms = 0;uint8 T0RH = 0;   uint8 T0RL = 0;   enum eStaSystem staSystem = E_NORMAL;  //ϵͳÔËÐÐ״̬void main(){
//通用头文件,每个.c都引用#ifndef _CONFIG_H#define _CONFIG_H/* ͨÓÃÍ·Îļþ */#include 
#include
/* Êý¾ÝÀàÐͶ¨Òå */typedef signed char int8; // 8λÓзûºÅÕûÐÍÊýtypedef signed int int16; //16λÓзûºÅÕûÐÍÊýtypedef signed long int32; //32λÓзûºÅÕûÐÍÊýtypedef unsigned char uint8; // 8λÎÞ·ûºÅÕûÐÍÊýtypedef unsigned int uint16; //16λÎÞ·ûºÅÕûÐÍÊýtypedef unsigned long uint32; //32λÎÞ·ûºÅÕûÐÍÊý/* È«¾ÖÔËÐвÎÊý¶¨Òå */#define SYS_MCLK (11059200/12) //ϵͳÖ÷ʱÖÓƵÂÊ£¬¼´Õñµ´Æ÷ƵÂÊ¡Â12/* IOÒý½Å·ÖÅ䶨Òå */sbit KEY_IN_1 = P2^4; //¾ØÕó°´¼üµÄɨÃèÊäÈëÒý½Å1sbit KEY_IN_2 = P2^5; //¾ØÕó°´¼üµÄɨÃèÊäÈëÒý½Å2sbit KEY_IN_3 = P2^6; //¾ØÕó°´¼üµÄɨÃèÊäÈëÒý½Å3sbit KEY_IN_4 = P2^7; //¾ØÕó°´¼üµÄɨÃèÊäÈëÒý½Å4sbit KEY_OUT_1 = P2^3; //¾ØÕó°´¼üµÄɨÃèÊä³öÒý½Å1sbit KEY_OUT_2 = P2^2; //¾ØÕó°´¼üµÄɨÃèÊä³öÒý½Å2sbit KEY_OUT_3 = P2^1; //¾ØÕó°´¼üµÄɨÃèÊä³öÒý½Å3sbit KEY_OUT_4 = P2^0; //¾ØÕó°´¼üµÄɨÃèÊä³öÒý½Å4sbit ADDR0 = P1^0; //LEDλѡÒëÂëµØÖ·Òý½Å0sbit ADDR1 = P1^1; //LEDλѡÒëÂëµØÖ·Òý½Å1sbit ADDR2 = P1^2; //LEDλѡÒëÂëµØÖ·Òý½Å2sbit ADDR3 = P1^3; //LEDλѡÒëÂëµØÖ·Òý½Å3sbit ENLED = P1^4; //LEDÏÔʾ²¿¼þµÄ×ÜʹÄÜÒý½Å#define LCD1602_DB P0 //1602Òº¾§Êý¾Ý¶Ë¿Úsbit LCD1602_RS = P1^0; //1602Òº¾§Ö¸Áî/Êý¾ÝÑ¡ÔñÒý½Åsbit LCD1602_RW = P1^1; //1602Òº¾§¶ÁдÒý½Åsbit LCD1602_E = P1^5; //1602Òº¾§Ê¹ÄÜÒý½Åsbit DS1302_CE = P1^7; //DS1302ƬѡÒý½Åsbit DS1302_CK = P3^5; //DS1302ͨÐÅʱÖÓÒý½Åsbit DS1302_IO = P3^4; //DS1302ͨÐÅÊý¾ÝÒý½Åsbit I2C_SCL = P3^7; //I2C×ÜÏßʱÖÓÒý½Åsbit I2C_SDA = P3^6; //I2C×ÜÏßÊý¾ÝÒý½Åsbit BUZZER = P1^6; //·äÃùÆ÷¿ØÖÆÒý½Åsbit IO_18B20 = P3^2; //DS18B20ͨÐÅÒý½Åsbit IR_INPUT = P3^3; //ºìÍâ½ÓÊÕÒý½Å#endif

 

——程序引自金沙滩工作室

 

有人讲过:

“我们又如何区分全局变量哪个是定义声明,哪个是引用声明呢?这个比函数要复杂一些, 一般在C语言中有如下几种模型来区分:

1、 初始化语句模型

顶层声明中,存在初始化语句是,表示这个声明是定义声明,其他声明是引用声明。C语言的所有文件之中,只能有一个定义声明。

按照这个模型,我们可以在first.h中定义如下TPYE G_test=1;那么就确定在first中的是定义声明,在其他的所有声明都是引用声明。

 

2 省略存储类型说明

在这个模型中,所有引用声明要显示的包括存储类extern 而每个外部变量的唯一定义声明中省略存储类说明符。”——引用博主流窜的风http://www.cnblogs.com/light-wind/archive/2012/11/25/c_1.html

转载于:https://www.cnblogs.com/yifan2015/p/5143021.html

你可能感兴趣的文章
c++ ios_base register_callback方法使用
查看>>
Java中为什么需要Object类,Object类为什么是所有类的父类
查看>>
angularjs-paste-upload
查看>>
linux基础命令 head
查看>>
objective c:import和include的区别, ""和<>区别
查看>>
The Shared folder with you
查看>>
sax方式解析XML学习笔记
查看>>
Springboot配置(上)
查看>>
java--Eclipse for mac 代码提示(代码助手,代码联想)快捷键修改
查看>>
left join on/right join on/inner join on/full join on连接
查看>>
template.helper 多参数
查看>>
Android 四大组件之一(Activity)
查看>>
扫描(一)
查看>>
Centos7安装rabbitmq server 3.6.0
查看>>
iostat命令学习
查看>>
html video的url更新,自动清缓存
查看>>
【11】ajax请求后台接口数据与返回值处理js写法
查看>>
Python菜鸟之路:Jquery Ajax的使用
查看>>
LeetCode算法题-Maximum Depth of Binary Tree
查看>>
Cox 教学视频5
查看>>