【07】封装延时库
本课资源下载
共 3 个资源课程笔记
本节目标概括
创建工程 > 创建delay.c文件 > 封装延时函数 > 在主函数里调用
1.创建工程
创建新工程 "P07封装延时库",并添加 main.c文件。
2.封装delay.c源代码文件和delay.h头文件
像创建main.c一样,创建一个名为delay.c的C语言文件
类似的步骤,创建delay.h头文件
3.封装延时函数
首先在AICube-ISP的软件延时计算器中生成一个1毫秒的延时函数
粘贴到delay.c中,并且将其改名为Delay_ms,原先是void的参数也改为unsigned int t,原先的循环过程则用一个循环t的while循环包裹起来。
这样原先只循环1毫秒的过程就变成循环t毫秒了。
delay.c
C语言高亮 3,7
1#include <STC89C5xRC.H>23void Delay_ms(unsigned int t) //@11.0592MHz4{5 unsigned char data i, j;67 while(t--) {8 _nop_();9 i = 2;10 j = 199;11 do12 {13 while (--j);14 } while (--i);15 }16}
注意还要插入#include <STC89C5xRC.H>,否则会有报错。
随后,需要在delay.h头文件中进行函数声明:
delay.h
C语言高亮 4
1#ifndef __DELAY_H__2#define __DELAY_H__34void Delay_ms(unsigned int t);56#endif
其中,delay.h代码中的1,2和6行,是常用的防止头文件被重复包含的策略。
3.在主函数里调用
随后,我们就可以在main.c中引入delay.h头文件,并且使用Delay_ms函数啦。
C语言
1#include <STC89C5xRC.H>2#include <delay.h>3int main(){4 unsigned char i;5 while (1){6 for(i = 0; i < 8; i++) {7 P0 = ~(0x01 << i); // 依次将 0 移动到对应引脚(取反实现低电平点亮)8 Delay_ms(100); // 逐个灯亮起的时间间隔9 }10 }11}