用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--);
}
}
}
展开
 我来答
休闲居大伟
2014-03-21 · TA获得超过5419个赞
知道大有可为答主
回答量:6865
采纳率:91%
帮助的人:1.1亿
展开全部
#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--);
}
}
}

给你翻译了,希望能帮到你
百度网友b0cc76d
2020-03-18 · TA获得超过145个赞
知道答主
回答量:72
采纳率:100%
帮助的人:5.3万
展开全部
如果你连这个都看不懂 建议放弃
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zbl8888yg
2014-03-21 · TA获得超过124个赞
知道答主
回答量:75
采纳率:0%
帮助的人:36万
展开全部
  • 理解就OK了 再仔细分析哦~~

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式