很简单,用rand函数和srand函数,这样将得到的值对8取余数,即rand%8,就可以点亮随机的灯了,至于其他如何点亮环节还有延时的你可以自己编写,想学单片机的人是必须学的,我也就不提示了,这只是个思路,要是全给你完整代码,你就等于没学了。。。好好编一个吧,,,相信你可以编出来的。
可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。 具体实现方法可以参考如下程序: #include #include #define uint unsigned int#define uchar unsigned charvoid delay(uint a);void main(){ P1=0xfe; while(1) { // 向左循环点亮LED for(i=0; i7; i++) { P1=_crol_(P1,1); // 左移一位,点亮下一位LED delay(55); } // 向右循环点亮LED for(i=0; i/ 右移一位,,点亮上一位LED delay(55); } }}// 延时函数,延时a毫秒void delay(uint a){ uint x,y; for(x=a;x0;x--) for(y=110;y0;y--);}
#includereg51.h
#define uint unsigned int
sbit LED=P2^0;
void delayms(uint t)
{
uint i,j;
for(i=0;it;i++)
for(j=0;j120;j++)
;
}
void main()
{
while(1)
{
LED=0;//亮
delayms(500);//延时
LED=1;//灭
delayms(500);//延时
}
}
1、首先打开桌面上的keil软件,在进行对51单片机进行编程时最常用的就是keil软件。
2、编写相应的代码:#includereg52.h //定义单片机的头文件sbit led=P2^0; //定义单片机的管脚,void main(void) //主函数{ while(1) //无限循环 {led=0x1f; //点亮前面三个灯。这里是十六进制的换算, //不懂得可以查一下资料 }。
3、打开烧写软件,点击【打开文件】,寻找刚刚编写的程序。
4、找到相应的文件夹以后,寻找HEX文件。这是所能烧写软件识别的程序。
5、找到程序以后,将单片机连接到电脑,并点击程序下载,将程序烧写进单片机。
6、程序下载进单片机以后就能够看到八个led点亮了前面三个。
用c啊,我想想:
1、和硬件有点儿关系,这个你清楚么?
2、假设led连接到p1口吧。第一个灯接到p1.0。阴极接io,阳极接5v。
#include
bit
secflag;
unsigned
char
ms;
void
display(unsigned
char
num,unsigned
char
sec)
{
num%=8;
p1=~(1
8;tl0=-50000;
ms++;
if(ms20){ms=0;secflag=1;}//12mhz,
50ms定时中断,1秒计时。
}
你很容易扩展出任意要求的闪烁流水灯啦。
display(2,1);
display(1,1);
display(3,2);
display(1,2);
……放到while里面就好了。祝你玩得开心。
单片机随机点亮一个灯c语言的介绍就聊到这里吧,感谢您花时间阅读,谢谢。
本文标签:单片机随机点亮一个灯c语言