标题: 单片机C语言使用数组点亮LED [打印本页]

作者: 51黑ele    时间: 2016-4-28 03:12
标题: 单片机C语言使用数组点亮LED
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. }

复制代码





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1