Ⅰ 在单片机中发光二极管快闪十次慢闪五次如此循环
for(i=0; i<10; i++)
{
Led = 0;
delayms(100);
Led = 1;
delayms(100);
}
for(i=0; i<5; i++)
{
Led = 0;
delayms(500);
Led = 1;
delayms(500);
}
delayms (500) 是个含参延哗银喊时函数,
void delayms (unsigned int ms)
{
unsigned int x, y;
for(x=0; x<ms; x++)
{
for(y=0; y<115; y++);
}
}
基本就是乱野这样。上面两个for循环放在主循环里,搏隐,
Ⅱ 自闪发光二极管闪烁频率不一样
让发光二极管以1Hz闪烁,就裤拆芹是让发光二极管毎秒钟闪一下胡毕。
Hz(赫兹)是频率单位,指毎秒钟完成n个重复动作。本例1Hz,是指LED亮灭一次。
51单片机常用的晶振频率应该是11.0592MHz,是MHz,1MHz=1百万Hz。
11.0592MHz 转换成时间是 1千1百零5万9千2百分之1秒,即 0.000000090422.... 秒。
要想让发光二极管以1HZ闪烁,要求不高的情况下,编程时可以用500ms的延时函御握数,控制单片机连接LED的I/O口毎500毫秒进行高低电平切换。至于延时函数会根据不同类型的单片机会有所不同。
Ⅲ 编写程序,用单片机控制8支发光二极管每支闪烁5次,再移向下支闪烁5次,右循环不止
这个程序很简单,我觉得你自己在我的指导下也可以写出来,这样可以增加你的记忆,也可以多学一点东西。就是不明白为什么要从4000H开始执行,这样你的电路就要增EPROM(或EEPROM)了。
程序你可以这样写,
1、让一位亮(MOV P1.0,#0H )
2、闪的次数神哗(巧瞎扮MOV R1,#5H ) 命令后面不写了
3、调用2秒延时程序。
4、取反 。
5、调用2秒延时程序。
6、减一判断R1是否到0,没到返回4,到了向下执孝灶行。
7、左移一位。
8、转移到2。这样就完成一个循环了。
至于仿真软件proteus 那就简单了,你自己画,如果不会画,找一个图自己修改一下就可以了。
这样写好玩吧?我也好长时间没有用汇编写了,命令有一点小的瑕疵(取反的位数),你可以自琢磨一下再写。
Ⅳ 使用51单片机,控制三个发光二极管,上电后二极管闪烁,闪烁2次后熄灭
#include<reg51.h>
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2; //设为1亮 0灭
void delay();/森岩/租桥延时弊春猛函数自己写
main()
{
unsigned char i;
for(i=0;i<2;i++)
{
led1=led2=led3=1;delay();
led1=led2=led3=0;delay();
}
while(1);
}