【51单片机C语言】1-3使用矩阵键盘触发中断,控制LED流水灯方向和速度(速度有四档)

本文介绍了一款使用51单片机的程序,通过MatrixKey模块化矩阵键盘控制流水灯,可通过不同按键设置流水灯的切换方向和速度。定时器0实现时间间隔控制,LED Mode变量决定灯的移动方向,而按键s1-s5分别对应不同的时间间隔调整。
摘要由CSDN通过智能技术生成
#include <REGX52.H>
#include "Timer0.h"
#include "MatrixKey.h"    //文章最后有Timer0.h和MatrixKey.h的代码链接
#include <INTRINS.H>

unsigned char MKeyNum;
unsigned char LED_Mode=0;
unsigned int time=300;

void main()
{
	P2=0xfe;
	Timer0Init();
	while(1)
	{
		MKeyNum=MatrixKey();
		if(MKeyNum)
		{
			if(MKeyNum==1)
			{
				LED_Mode++;			//s1 每次按下更换流水方向(左/右) 默认右移模式
				if(LED_Mode>=2)LED_Mode=0;
			}
			if(MKeyNum==2)time=100;	//s2 更改流水速度间隔100ms
			if(MKeyNum==3)time=300;	//s3 更改流水速度间隔300ms 默认模式
			if(MKeyNum==4)time=500;	//s4 更改流水速度间隔500ms
			if(MKeyNum==5)time=1000;//s5 更改流水速度间隔1000ms
		}
	}
}

void Timer0_Routine() interrupt 1
{
	static unsigned int T0Count;
	TL0 = 0x66;
	TH0 = 0xFC;
	T0Count++;
	if(T0Count>=time)
	{
		T0Count=0;
		if(LED_Mode==0)
			P2=_crol_(P2,1);
		if(LED_Mode==1)
			P2=_cror_(P2,1);
	}
}

 配置代码中用到的两个头文件:

Timer0.h:【51单片机C语言】2-4模块化定时器_北方大陸網友的博客-CSDN博客

MatrixKey.h:【51单片机C语言】2-2模块化矩阵键盘_北方大陸網友的博客-CSDN博客 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值