目录

  • 一、任务简述
  • 1.1 基本要求
  • 二、实现方法
  • 三、参考代码

一、任务简述

在CT107D单片机上,首先将J5处的跳帽接到2-3引脚,使按键S4-S7四个按键的另外一端接地从而成为4个独立键盘。在扫描按键的过程中,发现有按键触发信号后,先做去抖动处理,当确认为按键按下时,才进行相应的功能处理。

1.1 基本要求

按下的按键——LED亮的灯
S7 —— LED1
S6 —— LED2
S5 —— LED3
S4 —— LED4
按键松开即LED灯熄灭,按键均需做去抖动处理。

二、实现方法

实现方法很简单,先弄清逻辑总线:
LED部分:要想用P0去控制LED灯,首先需要M74HC573MIR锁存器导通,就是要Y4C输入高电平,也就是需要74HC02输出高电平,因为它是一个或非门,当51单片机上电复位后,各输出口的状态都是1,当执行指令MOVX@DPTr,A时,这是51单片机写,对应的WR为低电平,则Y4必定为低电平,这样才能通过或非门输出高电平;再利用74HC138译码器使得P25,P26,P27为0,0,1,则三个输入端A,B,C为0,0,1。

按键部分:
首先将J5处的跳帽接到2-3引脚,使按键S4-S7四个按键的另外一端接地从而成为4个独立键盘。然后可以根据原理图知道控制四个按键开关的引脚为P30,P31,P32,P33。

三、参考代码

#include "reg52.h"sbit S7 = P3^0;
sbit S6 = P3^1;
sbit S5 = P3^2;
sbit S4 = P3^3;sbit LED1 = P0^0;
sbit LED2 = P0^1;
sbit LED3 = P0^2;
sbit LED4 = P0^3;void Select_HC573(unsigned char channel)
{switch(channel){case 4:P2 = (P2 & 0x1f) | 0x80;break;case 5:P2 = (P2 & 0x1f) | 0xa0;break;case 6:P2 = (P2 & 0x1f) | 0xc0;break;case 7:P2 = (P2 & 0x1f) | 0xe0;break;}
}void delay()//20ms延时子程序
{unsigned char i,j;for(i=0;i<100;i++)for(j=0;j<100;j++);
}       void Scan_Key()
{if(S7 == 0){delay();if(S7 == 0){LED1 = 0;while(S7 == 0);LED1 = 1;}}if(S6 == 0){delay();if(S6 == 0){LED2 = 0;while(S6 == 0);LED2 = 1;}}if(S5 == 0){delay();if(S5 == 0){LED3 = 0;while(S5 == 0);LED3 = 1;}}if(S4 == 0){delay();if(S4 == 0){LED4 = 0;while(S4 == 0);LED4 = 1;}}
}void main()
{Select_HC573(4);while(1){Scan_Key();}
}

学习来源于:https://www.bilibili.com/video/BV1Bt41187hw?p=3

学习笔记——独立按键的基本操作相关推荐

  1. 学习笔记——独立按键的扩展运用

    目录 一.任务简述 1.1 扩展要求 二.实现方法 三.参考代码 一.任务简述 在CT107D单片机上,按键S7和S6为选择键,确定控制键控制哪组LED指示灯.按键S5和S4为控制键,按键该键点亮指定 ...

  2. 【单片机学习】独立按键的基本操作

    题目: 按下s7点亮L1指示灯,松开按键熄灭.s6点亮L2指示灯,s5点亮L2指示灯,s5点亮L2指示灯,都是松开熄灭.按键均作去抖. 1.首先将J5处的跳帽接到2~3引脚,使按键s4~s7四个按键的 ...

  3. STM32学习笔记:按键实验

    STM32学习笔记:按键实验 一.所使用的函数 1.时钟使能函数 RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState New ...

  4. [MyBatis学习笔记] 二、Mybatis基本操作及相关标签介绍

    [MyBatis学习笔记] 二.Mybatis基本操作及相关标签介绍 一.Mybatis简介 二.简单的CRUD操作 1.构建SqlSessionFactory (1)编辑mybatis-config ...

  5. 学习笔记 | 独立成分分析(ICA, FastICA)及应用

    学习笔记 | 独立成分分析[ICA, FastICA]及应用 1 背景说明 2 算法原理 2.1 ICA简介 2.2 形式化表达 3 算法步骤与代码 4 算法改进:FastICA 5 ICA实例与应用 ...

  6. 数据结构学习笔记——顺序表的基本操作(超详细最终版+++)建议反复看看ヾ(≧▽≦*)o

    目录 前言 一.顺序表的定义 二.顺序表的初始化 三.顺序表的建立 四.顺序表的输出 五.顺序表的逆序输出 六.顺序表的插入操作 七.顺序表的删除操作 八.顺序表的按位和按值查找 基本操作的完整代码 ...

  7. 蓝桥杯单片机学习4——独立按键矩阵按键

    上期学习了数码管的静态显示,这次我们来学习独立按键&矩阵按键 独立按键 原理很简单,当作为独立按键使用时,跳线帽的23接在一起,此时按键如果按下,则按键连接的IO口电平会被拉低,通过捕获IO的 ...

  8. PIC单片机学习之独立按键

    硬件电路:独立按键接RA5 效果:让RD0口的LED,当独立按键为0时,点亮. 注意:PORTA口的默认状态不是数字IO口,我们要将他配置成数字IO口.这涉及到了ADCON1寄存器. 代码 //201 ...

  9. 【单片机学习】独立按键的扩展应用

    题目: 按键S7和S6为选择键,确定控制键控制那组LED指示灯.按键S5和S4为控制键,按键该键点亮指定的LED指示灯,松开后熄灭. 按下S7点亮L1指示灯,L1点亮后,S6不响应操作,S5控制L3, ...

最新文章

  1. SAP HUM 将HU与交货单解绑
  2. 三星S4接电话黑屏无法挂断通话
  3. FPGA自定义UART传输(包含:matlab数据拆分)
  4. WPS菜单栏自动隐藏的解决方法
  5. Identity Server 4 原理和实战(完结)_建立Identity Server 4项目,Client Credentials 授权实例...
  6. C#-WinForm跨线程修改UI界面
  7. Spark入门(十一)之排序
  8. Ubuntu 安装中文
  9. mysql怎样修改my ini_mysql修改my.ini报错怎么办
  10. 从0到1设计业务系统
  11. java循环输入_【图文+视频新手也友好】Java一维数组详细讲解(内含练习题答案+详解彩蛋喔~)...
  12. 网站建设十大忠告,新手建站必看
  13. Android中activity的生命周期
  14. Java 后台sendHttp时出现java.net.UnknownHostException
  15. Android Studio 中 gradle 下载失败的解决办法
  16. java maven 配置环境变量_maven 环境变量的配置详解
  17. Windows右键菜单项管理讲解(RightMenuMgr)
  18. built a JNCIS LAB系列:Chapter 1 Routing Policy
  19. USB总线转串口芯片:沁恒CH340
  20. liquibase介绍与使用

热门文章

  1. 如何减少压力--重塑心灵
  2. 第四讲 Django编程填空题的测评
  3. 疑难杂症之——启动eclipse提示找不到Java虚拟机(你没有见过的船新版本)
  4. php 把数字变成大写数字,PHP数字金额转换成中文大写显示
  5. sew 31系列服务器报警12,SEW变频器MOVITRAC-31C系列故障代码详表
  6. 向量沿着另一个向量旋转
  7. TX1安装使用rplidar 安装串口转usb驱动
  8. 医疗系统的触摸屏界面的设计是怎么做的呢?
  9. 齐治堡垒机任意用户登录漏洞
  10. 《炬丰科技-半导体工艺》磷化铟晶片的研磨减薄