【51为例】单片机编程技巧(一)——写自己的库
前言
为什么要写自己库呢?
因为随着项目的越来越复杂,如果代码都堆再一个main.c文件里的话管理起来会比较难。你出现想找到某部分的代码得上下翻找。因此把各部的代码建立一个独立的库会使代码管理起来相对容易。想找到某部分的代码只需找到相应的c文件即可。
一、 开始
我使用的是keil4
先用keil4建立一个新项目。
二、
步骤
1. 建立一个头文件
保存为.h 文件,名字可以自己取。我这里就当写个led闪烁库吧。
编写.h文件的内容,一般是一个固定格式。
如果需要用的单片机的资源要包含它的头文件,不然会报错。
2.建立c文件
编写.c文件的内容
必须包括加入#include"led.h".
然后将.c 文件加入代码中(必要的).文件可以不用加
3. 编写库
可以在.c 文件里写相关的函数,这些函数是可以通过…h 函数这个桥梁被
main.c中的main函数调用。
代码如下:
#include "led.h"//延时函数
void delay(unsigned int i)
{while(i--);
}//让led闪烁
void LED_Flash(void)
{led = 0;delay(5000);led = 1;delay(5000);
}
4.将led.c 中的函数放到.h头文件声明
代码如下:
#ifndef __LED_H_
#define __LED_H_#include "reg52.h"sbit led = P2^0;void LED_Flash(void);
void delay(unsigned int i);#endif
5.在main.c中实现对库的调用
第一步:声明将要调用库的头文件。
第二步:在main()中调用库中的函数。
代码如下:
#include "reg52.h"
#include "led.h"void main()
{while(1){LED_Flash();}
}
编译通过,收工
也兼容普中开发板,小伙伴们快点跑起来。
【51为例】单片机编程技巧(一)——写自己的库相关推荐
- 单片机编程技巧_编程技巧
单片机编程技巧 From the desk of a brilliant weirdo #1: 从辉煌的怪胎#1的桌子上: Thank you for taking the time to check ...
- 51单片机编程简单入门——点亮实验板上的LED灯
1.使用uVision4创建项目 2.选择MCU的型号:Atmel->AT89C52 3.是否创建C51启动文件,选否.启动文件以前汇编常用,现在少用了. 4.新建文件,需指定命名为.c文件 5 ...
- 32单片机编程简单吗?单片机程序与桌面编程哪个难?
STM32单片机编程对很多新手来说就像"天书". 我当初是学习了51单片机,然后就去找工作了,这已经是10年前了. 刚进入公司,老板先是让我维护老产品,也就是stc单片机做的项目, ...
- 华为上机考试注意事项及编程技巧
华为上机考试注意事项及编程技巧 这是一篇关于华为招聘软件类职位上机考试的博客,主要介绍一下华为机考的流程.注意事项以及一些机试题中常用的编程技巧,写得有点长,但都是尽心尽力敲的,如果真的要参加华为招聘 ...
- 单片机应用编程技巧100问
单片机应用编程技巧100问 单片机应用编程技巧100问 1.C语言和汇编语言在开发单片机时各有哪些优缺点? 答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言.其主要优点 ...
- 单片机应用编程技巧---MCU专家答网友问
单片机应用编程技巧---MCU专家答网友问 单片机应用编程技巧 Holtek MCU专家--邓宏杰答网友问 (转自电子工程专辑网站) 1. C语言和汇编语言在开发单片机时各有哪些优缺点? 答:汇 ...
- 单片机应用编程技巧问答
C语言和汇编语言在开发单片机时各有哪些优缺点? 答:汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言.其主要优点是占用资源少.程序执行效率高.但是不同的CPU,其汇编语言可 ...
- 单片机编程软件很简单(九),Keil单片机编程软件高级调试技巧讲解
单片机编程软件必不可少,近来文章中,小编主要为大家讲解Keil单片机编程软件.上篇中,主要阐述了Keil单片机编程软件的辅助功能.而在本文中,将介绍Keil单片机编程软件的高级调试技巧.如果你对单片机 ...
- 单片机ofeh_EH78系列单片机的编程技巧
笔者在某智能水表开发中使用了EM78P447芯片,对EM78系列芯片有了较深认识,在实践中总结了一些开发此类芯片应注意的问题,同时给出了应用中的编程技巧. 市面上常见的介绍EM78系列的参考书中,都给 ...
最新文章
- Vue 路由 过渡动效 数据获取
- 配置linux下node节点的ip
- 工具类--Excel 导出poi
- ospf hello时间和dead_图文并茂解释OSPF邻居关系建立失败的几种常见情况(太实用了!)...
- 搬运机器人举杯贺所需的条件_智能搬运机器人比赛规则
- mysql判断域为空_MySQL EXPLAIN 字段说明
- oracle数据库建立主键约束,数据库-Oracle主键约束和唯一索引的黑与白
- 区块链的有趣应用:买彩票、云养鸡、查茅台
- python 插值_有序点列的样条插值
- 60 秒 Linux 检查清单,快速初步定位你的性能问题
- Java学习笔记——dubbo服务之底层通讯协议Protocol
- java7-3 继承
- java中程序定义book类_Java基础_0302:类和对象
- phpwind升级php7,【原创文章】升级phpwind为https
- html竖版古诗,古诗竖版手抄报版面设计图
- android 紫外线传感器,Arduino光线传感器-UV Sensor V1.0-ML8511紫外线传感器
- 安装TypeScript
- Mathematica 命令大全
- Python基于OpenCV的交通路口红绿灯控制系统设计
- 软考系统架构师倒计时第6天
热门文章
- 开机提示CPU Fan Error解决方法
- Javascript 数组求和的方法
- html里ajax使用、webpy服务在img显示图片、ajax修改table里的数据、$.post()、window,onload、$(button).click、mjpg_streamer
- SpringBoot-23.7.7学习
- 今天找到一个电子书 百家讲坛——于丹《论语》心得
- Review of Operating Systems
- 低成本2.4G无线收发器芯片
- ssm框架mybatis的作用
- mysql时间相差大于两小时然后以这个时间越大越往前排列_mysql求时间差
- 低代码时代:快速开发成为主流,全民开发不是梦