找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3004|回复: 0
打印 上一主题 下一主题
收起左侧

单片机流水灯通俗讲解

[复制链接]
跳转到指定楼层
楼主
ID:108935 发表于 2016-3-15 02:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
笔记3_流水灯

学习目标::

1 延时函数的原理及使用

2 for循环语句的使用,while循环的使用。(最好看看书学这些语法)

目的:使8个或多个LED灯按照你的设计亮灭。

各种软件分享:

http://www.51hei.com/bbs/dpj-897-1.html
延时函数:


yanshi(注:这个名字自己起) (int a)

{

     int i,j,a;

    for(i=0;i<a;i++)

      for(j=0;j<110;j++)

}

每一条语句的执行都会用一点时间,这个函数就是让单片机不停的执行没有什么用的语句,从而消耗时间,达到延时的目的。




让8个灯闪烁的程序:

#include<reg52.h>

yanshi (int a)

{

     int i,j,a;

    for(i=0;i<a;i++)

      for(j=0;j<110;j++)

}

main ()

{

   while(1)

   {

    P1=1;

    yanshi (100);//延时100毫秒,让灯亮100ms

    P1=0;

     yanshi (100);//让灯灭100毫秒。

   }

}

用从上面的程序可以试着去改写一个流水灯程序。


不管程序多长,它都是模块化的,不要看见程序很长就不敢读,一个模块一个模块的读,弄懂每一个模块的功能就很简单了。




答案:

#include<reg52.h>

yanshi (int a)

{

     int i,j,a;

    for(i=0;i<a;i++)

      for(j=0;j<110;j++)

}

main ()

{

   while(1)

   {

    P1=0;//让全部的灯灭。

P1^0=1

    yanshi (100);//让灯1亮100ms

P1^1=1;

    yanshi (100);//让灯2亮100ms

P1^2=1

    yanshi (100);//让灯3亮100ms

P1^3=1

    yanshi (100);//让灯4亮100ms

P1^4=1

    yanshi (100);//让灯5亮100ms

P1^5=1

    yanshi (100);//让灯6亮100ms

P1^6=1

    yanshi (100);//让灯7亮100ms

P1^7=1

    yanshi (100);//让灯8亮100ms

   }

}

真的没想到会有这么多人会关注我的公众号,这个公众号刚刚开通的时候一直没有人关注,我以为或许是我的方法不被人接受,结果今天看了一下竟然增加了这么多人。感谢大家的认可,我也会认真学习,把学习过程中的经验给大家分享。或许我不能教你们什么,但希望新手能在入门时少走弯路。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表