将一个用for循环实现的流水灯C程序模块化

博客讲述了如何将一个C语言实现的流水灯程序进行模块化,特别是将延时函数delay_ms独立出来,通过创建delay.c和delay.h文件并添加到Keil项目中。接着,文章探讨了使用定时器替代延时函数以提高精度,详细介绍了C51单片机的定时器工作原理和相关寄存器,以及如何配置定时器以实现精确的1ms延时。
摘要由CSDN通过智能技术生成

1、原来所有的代码都被编写在一个.c文件中。创建keil project(89C52)并且仿真流水灯

一旦代码复杂,会很难修改。而且如果延时函数常用,也不方便移植。将延时函数模块化,可以使延时函数变得容易移植。

#include <reg52.h>
void delay_ms(unsigned int t);
unsigned char tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

void main(void)
{
	unsigned char i;

	while(1)
	{
		for(i=0;i<8;i++)
		{
			P2=tab[i];
			delay_ms(5000); 
		} 
	}
}

void delay_ms(unsigned int t)
{
	unsigned int x,y;
	for(x=t;x>0;x--)
	for(y=50;y>0;y--);
}

2、将延时子函数delay_ms模块化。创建delay.c 和 delay.h。delay.c 存放子函数,delay.h 存放函数声明。并且将delay.c 添加到项目工程中,以及指明delay.h的路径。
2.1 delay.h

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值