用AT89C51单片机控制8个Led的流水灯的C程序看不懂
用的是AT89C51#include<reg51.h>#include<intrins.h>voidDelay10ms(unsignedintc);main(){unsi...
用的是AT89C51
#include<reg51.h>
#include<intrins.h>
void Delay10ms(unsigned int c);
main()
{
unsigned int LED;
LED=0xfe;
while(1)
{
P2=LED;
Delay10ms(50);
LED=LED<<1;
if (P2==0x00)
{
LED=0xff;
}
}
}
void Delay10ms(unsigned int c)
{
unsigned char a, b;
for(;c>0;c--)
{
for(b=38;b>0;b--)
{
for(a=130;a>0;a--);
}
}
} 展开
#include<reg51.h>
#include<intrins.h>
void Delay10ms(unsigned int c);
main()
{
unsigned int LED;
LED=0xfe;
while(1)
{
P2=LED;
Delay10ms(50);
LED=LED<<1;
if (P2==0x00)
{
LED=0xff;
}
}
}
void Delay10ms(unsigned int c)
{
unsigned char a, b;
for(;c>0;c--)
{
for(b=38;b>0;b--)
{
for(a=130;a>0;a--);
}
}
} 展开
3个回答
展开全部
#include<reg51.h> 包含单片机专用头文件
#include<intrins.h> 这个是什么俺也不知道,但这个程序不需要这个头文件
void Delay10ms(unsigned int c); 自定义的延时函数声明
main() 主函数
{
unsigned int LED; 建立一个数值型变量,变量名 LED
LED=0xfe; 给这个变量赋值,0xfe 换成二进制数为 1111 1110
while(1) 主循环
{
P2=LED; 点亮发光管,即先点亮右边的第一个
Delay10ms(50); 延时一段时间
LED=LED<<1; 点亮的发光管,向左移动一位
if (P2==0x00) 判断是否8个全部点亮了
{
LED=0xff; 如果全部点亮,则将全部发光管熄灭
}
}
}
void Delay10ms(unsigned int c)延时函数主程序
{
unsigned char a, b;建立两个变量 a b
for(;c>0;c--)循环语句,不断改变变量数值,已达到延时目的
{
for(b=38;b>0;b--)
{
for(a=130;a>0;a--);
}
}
}
给你翻译了,希望能帮到你
#include<intrins.h> 这个是什么俺也不知道,但这个程序不需要这个头文件
void Delay10ms(unsigned int c); 自定义的延时函数声明
main() 主函数
{
unsigned int LED; 建立一个数值型变量,变量名 LED
LED=0xfe; 给这个变量赋值,0xfe 换成二进制数为 1111 1110
while(1) 主循环
{
P2=LED; 点亮发光管,即先点亮右边的第一个
Delay10ms(50); 延时一段时间
LED=LED<<1; 点亮的发光管,向左移动一位
if (P2==0x00) 判断是否8个全部点亮了
{
LED=0xff; 如果全部点亮,则将全部发光管熄灭
}
}
}
void Delay10ms(unsigned int c)延时函数主程序
{
unsigned char a, b;建立两个变量 a b
for(;c>0;c--)循环语句,不断改变变量数值,已达到延时目的
{
for(b=38;b>0;b--)
{
for(a=130;a>0;a--);
}
}
}
给你翻译了,希望能帮到你
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询