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
#ifndef __DELAY_MS_H__
#define __DELAY_MS_H__
voi

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

被折叠的 条评论
为什么被折叠?



