‘壹’ 求用c语言编写一个简单的2个闪烁的灯,同时闪烁。
前后的格式都是固定的,我就不写了,直接写最关键的代码了
while(1)
{
p0=0x03//led灯亮,p0^0和p0^1各接一灯,高电平亮,如果是低电平亮,取反就行了。
delay(500)//延时500ms
}
‘贰’ 51单片机8个灯每两个一起亮灯的c语言程序
//假设晶振12MHZ,P1控制LED低电平亮
#include "reg51.h"
unsigned int YSJS=0;
unsigned int P1BUF=0X03;
void main(void)
{
TMOD |= 0X10; //定时器1工作于方式1,16位定时器
TH1 = 0XFF; //定时器1定时时间=500uS
TL1 = 0X06;
ET1 = 1; //使能定时器1中断
EA =1; //开总中断
P1 = P1BUF;
while(1)
{
}
}
void TIMER1(void) interrupt 3 //定时器1中断函数使用默认寄存器组
{
TH1 = 0XFF; //定时器1定时时间=500us
TL1 = 0X06;
YSJS++;
if(YSJS==2000) //500uS*2000=1000000us=1s
{
P1 = P1BUF;
YSJS = 0
P1BUF = P1BUF<<2;
IF(P1BUF==0)P1BUF=0X03;
}
}
‘叁’ 用c语言控制两个灯的闪烁
delay()这个函数在哪?你没写啊,开头也没有声明。然后 如果你是想实现两个灯闪烁,你写的内容都要放在第一个while(1){} 里,因为while(1)这循环没有break语句,除了你调用子函数,其他的不会被执行到的。
‘肆’ 写出点亮2盏LED灯的c语言程序
单片机的话,如端口上电默认高电平,那直接led一头接电源一头接端口,一个led对应一个端口。
一、简单讲:想要灯亮,就将对应端口置0。反之就是灯灭。
二、详细讲:假设用keil编写,新建工程->选择单片机型号->新建源文件->设置output(点魔术棒图标勾选create hex file)。
我们用P2^0端口连接一个led(led另一端连电源)。先给端口起别名sbit led1=P2^0;之后代码中需要灯亮就写led1=0;即可。(头文件自行导入)。
程序写好,编译后将生成的hex(路径在之前的设置中)写入单片机或加载到仿真电路中运行。
‘伍’ c语言编程 两个灯同时点亮 两端往中间移动 再往两端移动 不断循环
没写过不过我想可以用for循环数组移位然后显示中间delay一下这样应该可以 要16*16点阵吗??这个C语言可以编写的,就是让字符往左移动 这是程序:
‘陆’ 如何用单片机c语言实现相邻的两个灯一起亮
这个挺好办的,比如想让P1.0的P1.1两个引脚上的灯同时亮,而且高电平是亮的话,那就可以写成
P1 = P1|0x03;实现同时亮,同理可以实现同时灭,P1 = P1&0xFC;
也可以实现一个亮一个灭,同时。
‘柒’ 两个led指示灯交替闪烁的c语言
如果是PC机需要配置一块MOXA的TTL板卡来实现高低电瓶输出:
1、先设定LED灯是低电平亮还是高电瓶亮,这里假设低电平;
2、设置一个定时器,在定时器里面写代码,分别发送高、低电瓶值可实现交替闪耀;
例程:
#include<reg51.h>
sbitled1=P0^0;
sbitled2=P0^1;
voiddelayms(unsignedintnMS)
{
unsignedchari,j;
while(nMS--)
{
for(i=12;i>0;i--)
{
for(j=246;j>0;j--);
}
}
}
voidmain()
{
while(1)
{
led1=0;
led2=1;//一亮一灭
delayms(100);
led1=1;
led2=0;//交换亮灭
delayms(100);
}
}