找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机C语言使用数组点亮LED

[复制链接]
跳转到指定楼层
楼主
ID:115111 发表于 2016-4-28 03:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
P0口接了八个led,采用共阳的接法,通过以下程序可以让这八个led按要求点亮。单片机中经常会使用到数组,尤其以后的数码管和led点阵,所有这部分学习放在前面。
led采用共阳的接法的意思就是,led的两个引脚中,阳极通过一个限流电阻接在5V电源上,阴极接在可以控制的IO口上,这样八个led都通过这种方式接,接好后就如下图:



  1. #include <AT89X51.H>


  2. //定义数组

  3. unsigned char code table[]={0xfe,0xfd,0xfb,0xf7,


  4.                             0xef,0xdf,0xbf,0x7f,


  5.                             0xfe,0xfd,0xfb,0xf7,


  6.                             0xef,0xdf,0xbf,0x7f,


  7.                             0x7f,0xbf,0xdf,0xef,


  8.                             0xf7,0xfb,0xfd,0xfe,


  9.                             0x7f,0xbf,0xdf,0xef,


  10.                             0xf7,0xfb,0xfd,0xfe,


  11.                             0x00,0xff,0x00,0xff,


  12.                             0x01};

  13. //定义无符号的变量i


  14. unsigned char i;


  15.   

  16. //定义延时函数的声明及实现


  17. void delay(void)


  18. {

  19.   unsigned char m,n,s;


  20.   for(m=20;m>0;m--)


  21.           for(n=20;n>0;n--)


  22.                  for(s=248;s>0;s--);

  23. }


  24. void main(void)


  25. {


  26.   while(1)


  27.     {

  28.           //判断是否为数组最后一个元素,如不是,则继续执行


  29.           if(table[i]!=0x01)


  30.                 {

  31.                         //把第i个元素赋给p2口

  32.                           P2=table[i];

  33.                         //循环变量i自加

  34.                           i++;

  35.                         //调用延时函数

  36.                           delay();


  37.                 }


  38.            else

  39.           {

  40.             i=0;

  41.           }


  42.     }


  43. }

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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