1、前言
线与
开关合上后,都是0(0&1 = 0)即,两端只要有一端是0,合上就是0,两端都是1,合上才是1;
线或
右边是高阻态;左边是0,合上就是0,左边是1,合上就是1.
2、独立键盘电路图
51单片机,P1、P2、P3均自带上拉电阻,只有P0需要单独接上拉电阻。
3、独立键盘的驱动原理:
查I/O口的状态;
检查过程,先给对应的I/O口置1,再读这个I/O口,若还是1,说明按键未被按下,若是0说明按键按下了。
例如:
P3 = 0xff; //需要先将I/O口输出1.,只有先输出1,才能被当做输入使用。
//按键按下,二极管亮,按键松,二极管灭;按键按下后数码管示数加1
#include sbit key1 = P3^2; sbit led1 = P2^0; unsigned char code smg_du[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void main() { P3 = 0xff; unsigned char num; while(1) { if(key1 == 0) { led1 = 0; //灯亮 num++; if(num ==10) num = 0; while(!key1);//按键按下时间相较单片机执行时间,很长,导致按一下,数码管跳变,故添加词条代码 } else led1 =1; //灯灭 P1 = smg_du[num]; } } 左图为软件消抖,右图为硬件消抖; //按键时间一般都20ms, #include sbit key1 = P3^2; sbit led1 = P2^0; unsigned char code smg_du[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //12MHz下,延时50us void delay_50us(unsigned int t) { unsigned char j; for(;t>0;t--); for(j =19;j>0;j--); } void main() { P3 = 0xff; unsigned char num; while(1) { if(key1 == 0) { delay_50us(200);//延时5ms if(key1 == 0) { led1 = 0; //灯亮 num++; if(num ==10) num = 0; while(!key1);//按键按下时间相较单片机执行时间,很长,导致按一下,数码管跳变,故添加词条代码 } delay_50us(200);//延时5ms; while(!key1); } else led1 =1; //灯灭 P1 = smg_du[num]; } }
上一篇:80C51定时器中断
下一篇:数码管简介
推荐阅读最新更新时间:2024-11-09 15:58
推荐帖子
- FAQ_ 关于STEVAL_IDB007V1 评估板无法通过BlueNRG-1 Navigator进行演示程序升级的问题
- 本文作者:ST工程师WeishengCHEN点击下载pdf文档查看:问题:为什么一些老版本的STEVAL_IDB007V1板子没法通过BlueNRG-1Navigator进行演示程序的升级?背景:当使用一些老版本的oldSTEVAL_IDB007V1评估板,在下载了DTM程序后可以和BlueNRGGUI正常通讯。但是没办法通过BlueNRG-1Navigator进行演示程序的升级,BlueNRG-1Navigator在其界面上提示错
- nmg 意法半导体-低功耗射频
- 申请ufun学习板,入门&深度学习模拟,工程技能
- 申请ufun学习板,入门&深度学习模拟,工程技能活动详情在此之前,咱们EEWorld已经举办过一期的UFUN学习活动:跟帖免费申请UFUN学习板开始啦,跟着张进东学习&进阶模拟、工程技能相信现在提到UFUN这个名字,坛子里有一波网友已经很熟悉并且收益颇多了~现在我们的UFUN学习活动又来了。即日起-2019年7月15日,进活动贴,点击我要申请,提交个人申请表单参加到ufun学习活动中来吧~想要学习模拟知识的趁着即将到来的假期赶紧学起来吧~
- okhxyyo 单片机
- 当理工男遭遇小“破“孩,一起来看发生了什么!
- 当理工男遭遇破小孩,会发生什么?尤其是让习惯逻辑思维的理工男给活(tiao)泼(pi)好(dao)动(dan)的小学生上课,你能想象是什么样的场景吗?老师授课会是这样:而听课的学生则是懵懵懂懂,或者叽叽喳喳,偏偏理工男老师却束手无策?对此,一位资深理工男表示:真相并不是这样哦,看看我们是如何做到的!就是这位:David,人称老魏,德州仪器电子工程师。工作之余的爱好是DIY很多有趣的产品。例如,他的行车记录仪就是自己用德州仪器的产品DIY的。
- maylove 模拟与混合信号
- LED无线通信技术 "光照上网"或将实现,中国也参与研究了?
- 在英国爱丁堡大学任教的德国物理学家哈拉尔德·哈斯13日晚为公众作了一场报告,名为“我的Li-Fi革命”。他说,Li-Fi光照上网利用LED(发光二极管)照明灯以极高频率闪烁形成的脉冲来传输数据,最近的实验表明,单色5毫瓦LED照明灯和接收设备在1米和10米的距离上,数据传输速率可分别达到3.5Gbps和1.1Gbps(1bps为每秒1比特),用不同颜色的光还可以成倍提高数据传输速率。1.哪些因素影响传输速率?接收距离、光的颜色、光线强度2.光照上网有哪些优点?不
- qwqwqw2088 LED专区
- 把小弟这两天DIY的过程分享一下,顺便晒一晒第二块板子O(∩_∩)O~
- 前两天做了个小板子,算是练了练手,承蒙大家夸奖正好要开始做第二块板子,看到有朋友问了,就把过程也写一下吧,谈不上经验,大家姑且看看;P首先是打印:我用的是硫酸纸,按理说阻焊应该是打在菲林上的,但是出去转了一圈没有愿意打的,就干脆都打到硫酸纸上了,最后再想办法然后裁好板子就是曝光了。把保护膜撕下来,用一块玻璃把线路图压在感光板上,然后拿到太阳下晒。我都是在中午太阳最高的时候晒的,无云,第一次晒了四分半,结果略微有点过了,腐蚀出来以后大面积的覆铜表面很粗糙(打印的时
- anqi90 PCB设计
- HDMI2.0和HDMI2.1有没有区别?
- 买线的时候你们有没有纠结过是买HDMI2.0还是买HDMI2.1的线,看商品详情写着这么大的差距,价格也是差的不少,到底应该怎么选择呢?HDMI2.0VSHDMI2.1区别在哪里?带宽和分辨率HDMI2.0:18Gbps带宽,蕞高支持4K@60Hz。适合大多数游戏需求。HDMI2.1:48Gbps带宽,蕞高支持8K@60Hz或4K@120Hz,会减少画面撕裂和输入延迟。HDMI2.0:支持多音频流和动态HDR。未来兼容性是适合目前大多数设备,但未来可能无法支持更高分辨率和刷
- SAMZHE山泽 测试/测量
设计资源 培训 开发板 精华推荐
- LTC2852、3.3V、20Mbps RS485/RS422收发器典型应用电路
- LT6230 的典型应用 - 215MHz、轨到轨输出、1.1nV/rtHz、3.5mA 运算放大器系列
- 智能温度变送器参考设计
- LTC3615EFE-1 双路 3A 同步降压型 DC/DC 转换器用于 DDR 存储器终端的典型应用
- DC1204A,具有集成 FET 的 LTC4358 正高压理想二极管控制器的演示板
- ADR5043B 3V 输出精密微功率并联模式电压基准的典型应用
- S12ZVMEVB: S12ZVM评估板
- AL3065EV1,基于 AL3065 高效升压控制器的评估板,用于驱动 WLED 背光
- LF50ABPT-TR 5V 顺序极低压降稳压器多输出电源的典型应用
- 【山东农院“立创杯”智能控制大赛】STM单片机
- 第二届英飞凌【碳化硅应用技术】发展论坛
- 瑞萨电子颠覆传统理念的嵌入式开发平台 Renesas Synergy™ 评估套件震撼来袭!答题即可免费申请!
- 寻人:熟悉“仪器仪表校准流程”的工程师来报到啦!
- TI 工业月,灵感不设限!深度挖掘工业设计的痛点和难点,读专题填问卷赢好礼!
- Keysight教你如何提高测试精度,答对问题还有礼品相送,速速参与!
- Sitara™ AM335x ARM® Cortex™-A8 团购
- KOL实战分享|无刷直流电机(BLDC)的驱动及控制方法
- 下载有礼!是德科技高速数字精选解决方案,专为您的数字设计而挑战!
- 【EEWORLD第三十七届】2012年04月社区明星人物揭晓!