51单片机入门(模块化编程篇)

模块化编程

模块化编程:把各个模块的代码放在不同的.c文件中,这样可使多人同时合作完成一个项目,相比放在同一个.c文件效率更高。

注意事项

  • .c文件:函数,变量的定义。
  • .h文件:可被外部调用的函数,变量的声明。
  • 使用到的.h文件必须要放在编译器可寻找到的地方(安装目录,工程文件夹根目录,自定义)
  • 任何自定义的变量,函数在调用前必须有定义或声明(同一个.c)

C语言的预编译

  • C语言的预编译以#开头,是为了在真正开始编译之前,对代码做一些预处理

解释#ifdef和#endif组成括号:

理解:如果定义了AAA就参与编译

一般来说,bfoahdaiu是会报错的,但是并未定义AAA,此时#ifdef和#endif组成括号,且括号内的内容不参与编译

当AAA被定义后,则就会报错

当是#ifndef时,理解为:如果没有定义AAA就参与编译

实例运用:

解释:在#ifndef下一行再定义_DELAY_H_是为了防止接下来的代码以是否定义_DELAY_H_来判断期间(接下来的代码)的代码能否编译

  • 还有#ifdef,#if等

模块化的实例:LCD1602调试工具

通过模块化编程实现延时亮灯

LCD1602调试工具

将“LCD1602.h”和“LCD1602.c”加入到文件夹中(可从B站江协科技的百度网盘下载)

对其中的部分函数进行解释:

LCD_ShowString(行,列,字符串)

对于列的要求:1~16若输入的字符串远长于这个区间,则会显示乱码

LCD_ShowNum(行,列,输入的数字,数字的长度)

对于上图的例子来说:

  • 若LCD_ShowNum(1,9,123,4),则会显示0123(高位补0)
  • 若LCD_ShowNum(1,9,123,2),则会显示23(高位删去)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值