导航:首页 > 操作系统 > 单片机用矩阵控制3种灯

单片机用矩阵控制3种灯

发布时间:2022-09-14 17:18:00

㈠ 51单片机3*3矩阵指示灯控制C语言程序

矩阵指示灯控制?
有木有电路原理图,这个不算难,但是必须有原理图才能写代码。

㈡ 如何用单片机汇编语言实现每次有3个指示灯亮

通过一位 F 的16进制 转换为 2进制的 1111 然后移动一位 有三极管开关所改变。0的时候发光,1的时候变暗。所以一开始0FFH表示高8位为0;
低8位为1111 1111,表示全暗,然后右移变为1111 1110亮第一个等。 以此类推

㈢ 单片机如何控制矩阵中LED灯的亮灭。

如果你的单片机端口有强的推挽输出能力,那就很好办了。假设端口是P1,LX3~0接P1.7~1.4,LY3~0接P1.3~1.0,那么电量D115就在P1输出00101011,你想电量哪个灯,就在LX3~0上选择对应的输出1,LY3~0上对应的输出0.

㈣ C51单片机,如何用矩阵键盘控制,使LED灯实现4中不同闪烁方式

我这里用的是按键,,不知道你说的开关是不是按键,,要不是我再重新编
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit led=P1^6 ; // 控制LED的口
sbit key=P1^0; // 按键状态检测口
void delay(uint z) //延时函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
uint a=0;
key=1;
led=1;
if(key==0)
{
delay(5);
if(key==0)
a++;
while(!key);
delay(5);
while(!key);
}
if(a==1)
{
while(key!=0)
{ led=0;
delay(1000);
led=1;}
led=1;a=0;
}
else led=1;
}

㈤ 单片机一个按键控制3个led灯,多种状态

#include <reg51.h>

sbit key =P1^1;
sbit led1=P1^2;
sbit led2=P1^3;
sbit led3=P1^4;
bit key_flag;
bit flag_500ms;

void InitTimer0(void)
{
TMOD |= 0x01;
TH0 = 0x3C;
TL0 = 0x0B0;
EA = 1;
ET0 = 1;
TR0 = 1;
}
unsigned char stat;
void main(void)
{
InitTimer0();
key_flag=0;
stat=0;
while (1)
{
if (key_flag) stat++;
stat%=3;
switch (stat)
{
case 0:
led3=led2=1;
led1=flag_500ms;
break;
case 1:
led1=led3=1;
led2=flag_500ms;
break;
case 2:
led1=led2=1;
led3=flag_500ms;
break;
default :break;

}
}
}
unsigned char key_time,time_500;
void Timer0Interrupt(void) interrupt 1 //50ms
{
TH0 = 0x3C;
TL0 = 0x0B0;
//add your code here!

key=1;
if (!key) key_time++;
else key_time=0;
if (key_time>5)
{
key_time=5;
}

if (key_time==4)key_flag=1;

if (time_500)time_500--;
else
{flag_500ms=1;time_500=10;}

}

㈥ 单片机89c51一个键分别控制三个灯点亮的程序

这个很简单呀,按一下键,你就付一个键值,使键值在0~2之间切换,当键值为0,1,2时分别点亮对应的三个灯就可以了。

㈦ c51单片机 2*2矩阵按键控制四个灯,按1键亮一个灯,按2键亮两个灯,以此

sbit hang1=P1.0;//行线作为输出
sbit hang2=P1.1;
sbit lie1=P1.2;//列线作为输入
sbit lie2=P1.3;
sbit led1=P1.4;//定义LED管脚
sbit led2=P1.5;
sbit led3=P1.6;
sbit led4=P1.7;
void main(void)
{
lie1=1;lie2=1;
led1=0;led2=0;led3=0;led4=0;//全部不亮
while(1)
{
hang1=0;hang2=1;
if(lie1=0)
{ delay_ms(10);
led1=1;
led2=0;
led3=0;
led4=0;}
if(lie2=0)
{ delay_ms(10);
led1=1;
led2=1;
led3=0;
led4=0;}
hang1=1;hang2=0;
if(lie1=0)
{ delay_ms(10);
led1=1;
led2=1
led3=1;
led4=0;}
if(lie2=0)
{ delay_ms(10);
led1=1;
led2=1;
led3=1;
led4=1;}
}
}

㈧ 如何用单片机一个按钮开关控制3个灯3种效果。流水。闪烁。还有一直亮。用keil编程

下面是用C51编写的简单程序:
#include <reg51.h>
#include <intrins.h>
sbit io_Key = P1 ^ 1;
sbit led1 = P1 ^ 2;
sbit led2 = P1 ^ 3;
sbit led3 = P1 ^ 4;
unsigned char ucCount = 0;
bit flag05s = 0;
//---------------------------------
void delay125us(void) //@12.000MHz
{
unsigned char i;
i = 60;
while (--i);
}

void Timer0Init(void) //10毫秒@12MHz
{
TMOD &= 0xF0; //设置定时器模式
TMOD |= 0x01; //设置定时器模式
TL0 = 0xF0; //设置定时初值
TH0 = 0xD8; //设置定时初值
TR0 = 1; //开定时器0
ET0 = 1; //开定时器0中断
EA = 1; //开总中断
}
//T0中断用来计数器溢出
void zd0(void) interrupt 1
{
TL0 = 0xF0; //设置定时初值
TH0 = 0xD8; //设置定时初值
if(++ucCount >= 50)
{
ucCount = 0;
flag05s = 1; //g_flag05s = isYes定时0.52秒到,用于测量周期延时
}

}

void main(void)
{
unsigned char CountTemp = 0, ucState = 0;
Timer0Init();

while(1)
{
//-------------------------------
//简单的按键检测程序:
io_Key = 1;
_nop_();
if( io_Key == 0 )
{
CountTemp = 0;
do
{
delay125us();
if( io_Key != 0 ) break;
} while(++CountTemp > 160); // 延时20ms去抖动

if(CountTemp > 160)//如果按键时间有效,改变状态
{
switch(ucState)
{
case(0):
{
ucState = 1;

led1 = 0;
led2 = 0;
led3 = 0;
}
break;
case(1):
{
ucState = 2;
led1 = 0;
led2 = 0;
led3 = 0;
}
break;
case(2):
{
ucState = 0;
led1 = 0;
led2 = 1;
led3 = 1;
}
break;

}
while(io_Key == 0); //等待按键释放
}

}
//------------------------------
//每0.5秒改变一下LED状态
if(flag05s == 1)
{
flag05s = 0;
switch(ucState)
{
case(0):
{
led1 = !led1;
led2 = !led2;
led3 = !led3;
}
break;
case(1):
{
bit ledTemp = led1;
led1 = led2;
led2 = led3;
led3 = ledTemp;
}
break;
//LED常亮可以忽略改变LED状态
/*
case(2):
{
led1 = 0;
led2 = 0;
led3 = 0;
}
break;
*/

}

}

}

}
//-----------------------------------------------
//上面程序中有很多地方可以优化,这里只是给出一个参考供学习。

㈨ 单片机如何控制矩阵型LED灯的亮灭。

这个你要看原理图。流水灯的控制是通过单片机p口接上595芯片来驱动,软件实现移位实现流水灯现象
具体的步骤:
1:画出你的原理图,最小系统,外加led,595芯片
2:些软件程序,通过keil编译并下载到你的单片机
3:观测效果
具体的程序根据你的原理图
可以参考《吴鉴鹰单片机项目实战精讲》里面关于摇摇棒的设计

㈩ 本人写的是单片机3*3矩阵键盘,控制LED灯(0为亮),为什么只有当按键按下时灯才亮,case 0xf3:P1=~0x07;

刚看了你的程序有一种想死的冲动,好像看到自己以前的程序。思路太乱、逻辑错误太多。
随便写一个程序给你参考,因时间不多程序中没有加按键防抖,也未经过调试,可能存在错误,能说明方法即可。望见谅。
code uchar key_code[3]={0xfe,0xfd,0xfb};
sbit LINE1=P2^3;
sbit LINE2=P2^4;
sbit LINE3=P2^5;
uchar keyscan()

{
uchar i,j;
uchar key;
key=0;
j=0;
for(i=0;i<3;i++)
{
P2= key_code[i];
_nop();
_nop();
if(!LINE1)j=1;
if(!LINE2)j=2;
if(!LINE3)j=3;
if(j!=0)break;
}
key=i*3+j;
if(key<9)
P1=key;
}

阅读全文

与单片机用矩阵控制3种灯相关的资料

热点内容
各大网站的服务器地址 浏览:368
服务器连接不到因特网什么意思 浏览:739
如何在文件夹中显示页码 浏览:354
云服务器登不上qq 浏览:417
程序员四级工程师 浏览:715
薄荷app怎么把体重清零 浏览:644
草料二维码加密怎么制作 浏览:851
04s519隔油池图集pdf 浏览:242
程序员搞测试 浏览:552
苹果app应用隐藏了怎么办 浏览:660
PDF调取 浏览:199
独立柱加密需要什么条件 浏览:814
php培训出来找不到工作 浏览:106
小程序克隆源码 浏览:448
python整数整除负数 浏览:880
遮天用什么小说app看 浏览:645
什么可以发类似朋友圈的app 浏览:495
cmd查找命令行 浏览:661
如何申请域名需要虚拟服务器 浏览:497
气体流量的算法 浏览:634