K1-K4 分组控制LED

更新时间:2024-06-13 00:27:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

13 K1-K4 分组控制LED

/* 名称:K1-K4 分组控制LED

说明:每次按下 K1 时递增点亮一只LED,全亮时再次按下则再次循环开始,

K2按下后点亮上面4 只LED,K3 按下后点亮下面4 只LED,K4 按下后关闭所有LED */

#include

#define uchar unsigned char #define uint unsigned int //延时

void DelayMS(uint x) {

uchar i;

while(x--) for(i=0;i<120;i++); }

//主程序 void main() {

uchar k,t,Key_State; P0=0xff; P1=0xff; while(1) { t=P1; if(t!=0xff) {

DelayMS(10); if(t!=P1) continue;

//取得4 位按键值,由模式XXXX1111(X 中有一位为0,其他均为1) //变为模式0000XXXX(X 中有一位为1,其他均为0)

Key_State=~t>>4; k=0;

//检查1 所在位置,累加获取按键号k while(Key_State!=0) { k++;

Key_State>>=1; }

//根据按键号k 进行4 种处理 switch(k) {

case 1: if(P0==0x00) P0=0xff; P0<<=1;

DelayMS(200); break;

case 2: P0=0xf0;break; case 3: P0=0x0f;break; case 4: P0=0xff; } } } }

本文来源:https://www.bwwdw.com/article/vj76.html

Top