经典防抖动键C51源程序
更新时间:2023-04-16 03:27:01 阅读量: 实用文档 文档下载
- 经典轩逸抖动推荐度:
- 相关推荐
经典防抖动键C51源程序
/********************************************************/
//单片机四独立按键控制四LED;
//四个独立按键对应四个独立的LED.
//当某一按键按下时对应的LED亮,当第二次按下时灭。
//四个LED只能有一个亮,初学者可以参考以下程式:
/********************************************************/
#i nclude < reg52.h >
unsigned char k_scan();
unsigned char k_pro();
unsigned char k_new,k_old;
unsigned char k;
void delay(unsigned char m);
sbit k1=P1^4; sbit k2=P1^5;
sbit k3=P1^6; sbit k4=P1^7;
sbit led0=P0^0; sbit led1=P0^1;
sbit led2=P0^2; sbit led3=P0^3;
bit n;
/********************************************************/ void main(void)
{
P0=0xff;
k_old=0x00;
while(1)
{
k_new=k_scan();
if(k_new!=k_old)
{ delay(1);
if(k_new!=k_old)
{k_old=k_new;
k=k_pro();}
}
switch(k)
{
case 1:{if(n)led0=0;else if(!n)led0=1;} break;
case 2:{if(n)led1=0;else if(!n)led1=1;} break;
case 3:{if(n)led2=0;else if(!n)led2=1;} break;
case 4:{if(n)led3=0;else if(!n)led3=1;} break;
default: break;
}
}
}
/********************************************************/ unsigned char k_pro()
{
switch (k_new)
{
case 0x01:{k=1;if(led1&led2&led3){n=!n;}
else {P0=0xff;}}
break;
case 0x02:{k=2;if(led0&led2&led3){n=!n;}P0=0xff;}
break;
case 0x04:{k=3;if(led0&led1&led3){n=!n;}P0=0xff;}
break;
case 0x08:{k=4;if(led0&led1&led2){n=!n;}P0=0xff;}
break;
default:
break;
}
return(k);
}
/********************************************************/ unsigned char k_scan()
{
P1=0xff;
k_new=0x00;
k_new=k_new|(!k4);
k_new=k_new<<1;
k_new|=(!k3);
k_new=k_new<<1;
k_new|=(!k2);
k_new=k_new<<1;
k_new|=(!k1);
return(k_new); //无键按下 k_new=0x00
}
/********************************************************/
void delay(unsigned char m)
{
while(m--)
{
unsigned char i=255;
while(i--);
}
}
/********************************************************/
/*
还可以将k_scan 函数更改为:
unsigned char k_scan()
{
P1=0xff;
k_new=0x00;
k_new=(~(P1) & 0xf0)>>4;
return(k_new); //无键按下 k_new=0x00 }
*/
/********************************************************/
正在阅读:
经典防抖动键C51源程序04-16
IP培训.DC010001 MPLS协议原理 ISSUE1_109-02
育种学实验报告12-03
蒙牛之道10-20
建筑基础钻孔灌注桩施工规范(经典)03-22
实体墩台作业指导书08-19
vary教程板书 doc - 图文06-05
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 源程序
- 抖动
- 经典
- C51
- 2022年沈阳建筑大学市政与环境工程学院808传热学考研仿真模拟五
- 卧式电极挤压机挤压工安全操作规程示范文本
- 厦门论文网职称论文发表网-智能变电站数字化变电站原则单元组件
- 人教版高一英语必修第二册 Unit 1 Cultural Heritage 单元练习
- 2008-2009学年高一英语上学期期末考试测评试题及答案【黑龙江省
- 新员工入职培训会主持词
- 清华工商管理就业前景
- MPA复试英语自我介绍(中英文对照)
- 扬州树人学校中考二模数学试题及答案.doc
- 南宁生物制品产业园建设项目建议书
- 质量成本的基本分类
- 九年级上册数学 圆 几何综合单元试卷(word版含答案)
- 苏教版六年级数学上册期末复习计算题(口算题)专项练习四
- 停车场管理系统详细设计说
- 2022年南京师范大学商学院818经济学综合(政治经济学+宏微观经济
- 油田单井计量站联合站自动化监控模式研究
- 沪教版牛津英语二年级英语下册期中重点总结
- 山东省枣庄第八中学2014-2015学年高二第一学期第二次阶段性检测
- 顺德区私人住宅 建设规划管理规定
- 2022高考语文(全国通用版)大一轮复习(检测)专题三 默写常见的名