1. 单片机控制发光二极管闪烁
#include<reg51.h> // 头文件 ;
sbit LED =P0^7; // 定义LED接至P0.7 ;
#define uint unsigned int
void delay(uint x); // 声明延时函数;
/*主函数*/
void main()
{
while(1)
{
LED = 0; // 输出低电平,点亮LED;
delay(50); // 延时;
LED = 1; // 输出高电平,熄灭LED;
delay(50); // 延时;
}
}
/*延时函数*/
void delay(uint x)
{
uint i,j;
for(i=0;i<x;i++)
for(j=0;j<1200;j++);//大约10 ms;
}
2. 单片机是怎样控制发光二极管的亮与不亮
1.LED的阳极接地,阴极接单片机IO口,那么IO口高电平,LED灭,低电平,LED亮
2.LED的阴极接地,阳极接单片机IO口,那么IO口高电平,LED亮,低电平,LED灭
3. 怎么用单片机驱动MOS管控制发光二极管的亮灭
用单片机的输出口连接MOS管的控制极,MOS管与发光二极管串联后接到电源。用程序使单片机输出口的相应位置0或置1,即可控制发光二极管的亮灭。
4. 单片机一个按键控制一个发光二极管
以下是用C语言实现的:
#include<reg51.h>
sbit KEY=P1^0;
sbit LED=P1^1;
void delay();
void main()
{
while(1) //不断循环
{
if(KEY==0) //判断键盘是否被按下
{
delay(); //调用延时函数,作用消抖
if(KEY==0) //再次读键盘,以判断刚才判断到的是否为抖动
LED=~LED; //取反P1.1电平状态,也就是改变发光管的状态
}
}
}
void delay()
{
unsigned int i=50000;
while(i--); //不断循环的自减,直到i变为0
}
以下是用汇编实现的:
ORG 0000H
AJMP MAIN ;跳转到主程序
ORG 0100H
MAIN:JB P1.0,MAIN ;判断P1.0是否被按下,若不是则再判断,是则向下执行
CALL DELAY ;调用延时子程序,延时一段时间,用于键盘消抖
JB P1.0,MAIN ;再次判断按键状态,用于判断是否为抖动,不是则向下执行
CPL P1.1 ;取反P1.1,也就是改变一次发光二极管的状态
JNB P0.0,$ ;等待按键释放(等待P1.0电平变高)
AJMP MAIN
DELAY:
MOV R0,#200
LOOP: MOV R1,#200
DJNZ R1,$
DJNZ R0,LOOP
RET
END
这些都是刚刚写好的,希望能令你满意,有问题可以hi我!
5. c51单片机按键控制二极管亮灭
做按键用的脚通过一个常开按钮开关接地,按下开关就使这个脚接地,即电压为0,在程序中要先将此脚写1再判断此脚是否为0,为0时说明已经按下了此开关,再用程序延时10-20mS消抖,再判一次,如果还是0说明不是干扰,就执行控制二极管的程序,点亮二极管的脚最好用低电平驱动,就是不亮时写1,需要亮时写0,原理是这样,用C还是用汇编都一样,很简单