标题:
单片机C语言使用数组点亮LED
[打印本页]
作者:
51黑ele
时间:
2016-4-28 03:12
标题:
单片机C语言使用数组点亮LED
P0口接了八个led,采用共阳的接法,通过以下程序可以让这八个led按要求点亮。单片机中经常会使用到数组,尤其以后的数码管和led点阵,所有这部分学习放在前面。
led采用共阳的接法的意思就是,led的两个引脚中,阳极通过一个限流电阻接在5V电源上,阴极接在可以控制的IO口上,这样八个led都通过这种方式接,接好后就如下图:
#include <AT89X51.H>
//定义数组
unsigned char code table[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f,
0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f,
0x7f,0xbf,0xdf,0xef,
0xf7,0xfb,0xfd,0xfe,
0x7f,0xbf,0xdf,0xef,
0xf7,0xfb,0xfd,0xfe,
0x00,0xff,0x00,0xff,
0x01};
//定义无符号的变量i
unsigned char i;
//定义延时函数的声明及实现
void delay(void)
{
unsigned char m,n,s;
for(m=20;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
void main(void)
{
while(1)
{
//判断是否为数组最后一个元素,如不是,则继续执行
if(table[i]!=0x01)
{
//把第i个元素赋给p2口
P2=table[i];
//循环变量i自加
i++;
//调用延时函数
delay();
}
else
{
i=0;
}
}
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1