问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

单片机编程:当按下按键K1时,LED亮1个灯;当按下K2时,LED亮2个灯;K3亮3个灯;K4亮4个灯。求程序,在线

发布网友 发布时间:2022-05-31 17:13

我来回答

2个回答

热心网友 时间:2023-10-20 15:11

LOOP:
JNB K1,CASE1
JNB K2,CASE2
JNB K3,CASE3
JNB K4,CASE4
AJMP LOOP
CASE1:
MOV LED,#01111111
AJMP LOOP
CASE2:
MOV LED,#00111111
AJMP LOOP
CASE3:
MOV LED,#00011111
AJMP LOOP
CASE4:
MOV LED,#00001111
AJMP LOOP

K1~K4对应按键输入口,LED对应LED输出,两者应为普通IO口

热心网友 时间:2023-10-20 15:11

/************************************************************************
程序名: 四个按键控制四个LED
编写人: zhatianyi
编写时间: 2011 年 4月 18日
硬件支持: 51单片机,12MHZ晶振
接口说明: 见接口定义(可自己修改)
修改日志:
NO.1-
/*************************************************************************
说明:当按下按键K1时,LED亮1个灯;当按下K2时,LED
亮2个灯;K3亮3个灯;K4亮4个灯。每次灯亮1秒后熄灭,等
待第二次按键(灯亮时按键无效)。
/*************************************************************************/
#include <REG51.h> //通用89C51头文件

sbit K1 = P1^0 ; //定义按键接口
sbit K2 = P1^1 ;
sbit K3 = P1^2 ;
sbit K4 = P1^3 ;
sbit LED1 = P1^4 ; //定义LED灯接口
sbit LED2 = P1^5 ;
sbit LED3 = P1^6 ;
sbit LED4 = P1^7 ;

/**************************************************************************
函数名:毫秒级CPU延时函数
调 用:DELAY_MS (?);
参 数:1~65535(参数不可为0)
返回值:无
结 果:占用CPU方式延时与参数数值相同的毫秒时间
备 注:应用于1T单片机时i<600,应用于12T单片机时i<125
/*************************************************************************/
void DELAY_MS (unsigned int a){
unsigned int i;
while( --a != 0){
for(i = 0; i < 600; i++);
}
}
/**************************************************************************/

/***************************************************************************
函数名:主函数
调 用:无
参 数:无
返回值:无
结 果:程序开始处,无限循环
备 注:
/***************************************************************************/
void main (void){
K1 = 1; //初始化按键
K2 = 1;
K3 = 1;
K4 = 1;
while(1){ //无限循环程序
LED1 = 1; //初始化LED
LED2 = 1;
LED3 = 1;
LED4 = 1;
if(K1 == 0){ //如果K1按下
LED1 = 0; //亮一盏灯
DELAY_MS(250); //亮一秒钟(当前灯未熄灭时按键无效)
}
if(K2 == 0){ //如果K2按下
LED1 = 0; //亮两盏灯
LED2 = 0;
DELAY_MS(250); //亮一秒钟
}
if(K3 == 0){ //如果K3按下
LED1 = 0; //亮三盏灯
LED2 = 0;
LED3 = 0;
DELAY_MS(250); //亮一秒
}
if(K4 == 0){ //如果K4按下
LED1 = 0; //亮四盏灯
LED2 = 0;
LED3 = 0;
LED4 = 0;
DELAY_MS(250);//亮一秒
}
}//while括号
}//主函数括号
/**********************************************************************************************/
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
dnf属性强化增加多少攻击力 上海青种多久能吃 上海青栽种多久可以吃 上海青种植几个月才能收获 1月播种上海青多久发芽 1月播种上海青发芽所需时间 上海青种植多久可以吃 上海青 多久 上海青种多久成熟 用可丽蓝十字验孕棒测了两次结果不同,这是怀孕了吗? PHP实现简单的发送HTML邮件 尖锐湿疣为什么会很容易复发 金蝶k3 + 网页服务器 这配置是否太奢侈?? skg按摩器k3和4098哪个更好 云南埃克森知识产权服务有限公司怎么样? 云南高校知识产权管理服务有限公司怎么样? 家里马桶堵塞怎么办 云南互动知识产权事务代理有限公司怎么样? 云南鼎誉知识产权服务有限公司怎么样? S抽水马桶堵塞自己怎么修理 s马桶堵了怎么办 S抽水马桶堵塞了怎么办 云南普道知识产权服务有限公司怎么样? 云南先行知识产权服务有限公司怎么样? 云南凡特知识产权服务有限公司怎么样? 云南博瑞知识产权服务有限公司 mouow摩箭K16键鼠套装键盘好用吗,好不好 qq空间怎么把空间名称弄没? 文章伪原创软件智媒ai怎么样? 电脑主机亮着键盘显示器鼠标不亮主机红灯不亮 显示器没反应 鼠标灯不亮 键盘灯闪一下 不亮 炒炉和猛火炉那个火力大 CAD2007激活!YC1T 28JA QVLX 3U53 3ADJ 7K3L怎么算 QQ怎样判断是被人删除了还是被拉黑了(他已不在我的好友列表里) 十二星座的最佳配对 摇钱树(植物)怎样才会养好 电磁炉配的锅上的透明玻璃盖子碎了,怎么办? 携程上订的火车票到时间没有坐到车怎么办? 紧急求问。携程上订的高铁票。没有去取票。过了开车时间。可以退吗。 在携程订的高铁得票,如果过了开车时间的话还能否取到票?谢谢 请问我在携程上订的汽车票如果超过了发车的时间,会不会自动推迟到下 玻璃锅盖突然碎裂 携程网订火车票,把时间搞错了,现想退订可以吗 在携程网订的火车票晚点了没取票能否改签 火车票订错日期了怎么办? 街头篮球辅助双开器现在不能开了? 携程在手买票后错过发车时间未取票第二天才发现错过会自动退款吗 如何销售商用开水器 请问在携程网里我订了火车票,支付成功了,但是如果过了次日十二点还未出票,那会怎么处理呢?尽快回复我 怎样开辅助器 请问助行器哪种比较好? 带有悦字的两字名字女名(写小说)