目录

  • 1 绪论
    • 1.1 初识单片机
    • 1.2 单片机概述(一)
    • 1.3 单片机概述(二)
    • 1.4 Keil C软件的使用
    • 1.5 Protues软件的使用
  • 2 单片机的硬件结构
    • 2.1 MCS-51系列单片机的内部结构
    • 2.2 MCS-51系列单片机的引脚功能
    • 2.3 IO口功能及简单应用
    • 2.4 单片机的存储器结构 程序存储器
    • 2.5 数据存储器
    • 2.6 单片机的时序 低功耗节电模式
  • 3 C51语言编程基础
    • 3.1 C51的数据类型与运算
    • 3.2 C51程序设计的基本结构
  • 4 单片机中断系统
    • 4.1 单片机中断的概念
    • 4.2 中断控制、优先级管理
    • 4.3 中断程序设计
    • 4.4 中断程序设计举例
  • 5 单片机的定时器/计数器
    • 5.1 定时器/计数器结构及工作原理
    • 5.2 定时/计数器的关键寄存器
    • 5.3 定时/计数器计数初值计算
    • 5.4 定时/计数器的初始化
    • 5.5 定时器的应用
    • 5.6 计数器的应用
  • 6 单片机I/O口和外部存储器的扩展
    • 6.1 单片机并行I/O口的扩展
    • 6.2 单片机外部存储器的扩展
  • 7 单片机与键盘显示器的接口
    • 7.1 LED显示器原理
    • 7.2 LED显示器案例一
    • 7.3 LED显示器案例二
    • 7.4 独立式按键接口技术
    • 7.5 独立式按键程序设计
  • 8 应用篇
    • 8.1 数码管数字显示器的制作
    • 8.2 数码管计数器制作
    • 8.3 数码管电子钟的制作
    • 8.4 密码锁按键键值显示
    • 8.5 密码锁密码移位显示
    • 8.6 简易电子密码锁制
    • 8.7 8X8点阵模块显示数字
    • 8.8 LED点阵显示屏显示汉字
    • 8.9 LED点阵显示屏移位显示数字
    • 8.10 12864液晶显示数字
    • 8.11 12864液晶显示汉字和数字
    • 8.12 12864液晶显示图形
    • 8.13 12864液晶万年历制作
    • 8.14 1602液晶显示字符
    • 8.15 1602液晶显示计数器制作
    • 8.16 模拟电动葫芦制作
    • 8.17 工业加热炉控制器制作
    • 8.18 数字电压表制作
    • 8.19 智能家居系统制作(传感器新模块运用)
    • 8.20 数字温度计制作
    • 8.21 智能孵蛋控制系统制作
    • 8.22 智能仓储控制系统制作
  • 9 提高篇
    • 9.1 系统故障诊断及其排除技术
    • 9.2 电梯开关门控制器制作
    • 9.3 电梯桥箱内部控制器制作
    • 9.4 智能物料搬运控制系统制作(09年国赛题)
    • 9.5 智能物料分拣搬运控制系统制作(10年赛题)
    • 9.6 智能热水供应系统制作(11年赛题)
    • 9.7 地铁自动售票系统模拟制作(12年赛题)
    • 9.8 手机后盖智能喷涂系统制作(13年赛题)
    • 9.9 大赛点评
  • 10 技能大赛感言
    • 10.1 技能大赛感言
  • 11 借内外梦想之力 圆蓝领
    • 11.1 借内外梦想之力 圆蓝领
  • 12 基础篇
    • 12.1 单片机控制技术概述
    • 12.2 全国技能大赛技术分析
  • 13 键盘的控制
    • 13.1 独立键盘的控制原理
    • 13.2 矩阵键盘的控制原理及键盘编码
    • 13.3 矩阵键盘与蜂鸣器控制
    • 13.4 行扫描法工作原理
    • 13.5 键盘扫描识别子程序
  • 14 矩阵式键盘的设计与实现
    • 14.1 矩阵式键盘的设计与实现
    • 14.2 教学视频
    • 14.3 拓展阅读
  • 15 单片机及其开发环境
    • 15.1 初识单片机
      • 15.1.1 课前欣赏
      • 15.1.2 什么是单片机
      • 15.1.3 与单片机对话:二进制与十六进制之间的转换
    • 15.2 单片机应用系统及其开发环境
      • 15.2.1 单片机应用系统及其开发环境
      • 15.2.2 Protesu软件的操作视频
      • 15.2.3 Keil软件的操作视频
      • 15.2.4 思维导图的画法
      • 15.2.5 如何将程序烧入单片机芯片中
  • 16 单片机结构及工作原理
    • 16.1 MCS51单片机内部结构
    • 16.2 MCS51单片机引脚及功能
    • 16.3 MCS51单片机存储器
    • 16.4 MCS51单片机的时钟电路和复位电路
  • 17 基础篇
    • 17.1 单片机控制技术概述
    • 17.2 全国技能大赛技术分析
    • 17.3 YL-236实训平台与YL-G001智能物料搬运装置及YL-G003智能仓储系统
    • 17.4 如何建立单片机的编程环境
    • 17.5 配线与扎线工艺
    • 17.6 单片机控制 1个灯,3个灯 ,及流水灯控制技术
    • 17.7 讲解单片机按键控制技术
  • 18 应用篇
    • 18.1 数码管数字显示器的制作
    • 18.2 数码管计数器制作
    • 18.3 数码管电子钟的制作
    • 18.4 密码锁按键键值显示
    • 18.5 密码锁密码移位显示
    • 18.6 简易电子密码锁制
    • 18.7 8X8点阵模块显示数字
    • 18.8 LED点阵显示屏显示汉字
    • 18.9 LED点阵显示屏移位显示数字
    • 18.10 12864液晶显示数字
    • 18.11 12864液晶显示汉字和数字
    • 18.12 12864液晶显示图形
    • 18.13 12864液晶万年历制作
    • 18.14 1602液晶显示字符
    • 18.15 1602液晶显示计数器制作
    • 18.16 模拟电动葫芦制作
    • 18.17 工业加热炉控制器制作
    • 18.18 数字电压表制作
    • 18.19 智能家居系统制作(传感器新模块运用)
    • 18.20 数字温度计制作
    • 18.21 智能孵蛋控制系统制作
    • 18.22 智能仓储控制系统制作
  • 19 提高篇
    • 19.1 系统故障诊断及其排除技术
    • 19.2 电梯开关门控制器制作
    • 19.3 电梯桥箱内部控制器制作
    • 19.4 智能物料搬运控制系统制作(09年国赛题)
    • 19.5 智能物料分拣搬运控制系统制作(10年赛题)
    • 19.6 智能热水供应系统制作(11年赛题)
    • 19.7 地铁自动售票系统模拟制作(12年赛题)
    • 19.8 手机后盖智能喷涂系统制作(13年赛题)
    • 19.9 大赛点评
  • 20 技能大赛感言
    • 20.1 技能大赛感言
  • 21 借内外梦想之力 圆蓝领
    • 21.1 借内外梦想之力 圆蓝领
  • 22 认识单片机系统
    • 22.1 单元学习导引
    • 22.2 单灯闪烁控制
      • 22.2.1 跟我学:自动化与单片机
      • 22.2.2 跟我学:单片机的概念
      • 22.2.3 经验谈:如何学单片机
      • 22.2.4 跟我学:单片机的逻辑结构及信号引脚
      • 22.2.5 跟我学:单片机最小系统
      • 22.2.6 跟我练:基本元件的识别(电阻)
      • 22.2.7 跟我练:基本元件的识别(电容)
      • 22.2.8 跟我练:基本元件的识别(其他元件)
      • 22.2.9 跟我做:用面包板搭建最小系统
      • 22.2.10 跟我练:Keil C51项目工程的建立
      • 22.2.11 跟我练:单片机程序烧录与下载
      • 22.2.12 跟我做:完成单灯闪烁控制项目
      • 22.2.13 项目拓展
    • 22.3 声光报警控制的Proteus仿真调试
      • 22.3.1 跟我学:Proteus仿真软件概述
      • 22.3.2 跟我练:Proteus仿真软件使用入门
      • 22.3.3 跟我做:声光报警控制的Proteus仿真调试
      • 22.3.4 跟我学:声光报警控制的C51程序
      • 22.3.5 项目拓展:键控声光报警控制
    • 22.4 单元小结与拓展
    • 22.5 单片机概述
矩阵式键盘的设计与实现

矩阵式键盘的设计与实现

4X4小键盘,16个键分别对应0~9、A~F;有键按下,数码管显示;无键按下,数码管无显示;通过输出的列码和读取的行码来判断按下什么键;有键按下,要有一定的延时,防止由于键盘抖动而引起误操作。

键盘的结构与原理:矩阵式键盘是单片机系统中,若使用按键较多时,通常采用矩阵式键盘,其结构如下图所示。由图可知,一个4×4的行、列结构,可以构成一个含有16个按键的键盘,节省了很多I/O口。 控制方式是先判断是否有键按下。如有,再判断哪一键按下,并得到键码值,然后根据键码值转向不同的功能程序。最常用的识别方法是键盘扫描法。 

判断按键按下的方法

判断是否有键按下的方法是:

向所有的列输出口线输出低电平(不能为高电平,因为若为高电平,按键按下与否都不会引起行线电平的变化),然后将行线的电平状态读入。若无键按下,所有的行线仍保持高电平状态;若有键按下,行线中至少应有一条线为低电平。例如:第2行与第2列交叉点的键被按下,则第2行与第2列导通,第2行电平被拉低,读入的行信号就为低电平,表示有键按下。

识别按键的方法:

按键识别的扫描方法:往列线上按顺序一列一列的送出低电平。先送第0列为低电平,其他列为高电平,读入的行的电平状态就表明了第0列的4个键的情况,若读入的行值全为高电平,则表示无键按下;再送第1列为低电平,其他列为高电平,读入的行的电平状态则显示了该行上的4个按键的情况;依次轮流给各列送出低电平,直至4列全部送完,再从第0列开始,依此循环。

按键编码

键值:对按键进行编码,并把得到的编码称为键值。

键值的计算方法:键值=列号+行号×4。

矩阵式键盘电路设计:

键盘扫描程序具体实现方法

判断有无键按下、去除按键的抖动、求按键的键值、判断闭合键是否释放。

判断有无键按下:P0.4~P0.7输出0,然后读P0口;若低4位P0.0~P0.3全为1,则键盘上没有键按下;若P0.0~P0.3不全为1,则有键按下。

去除按键的抖动:当判断到键盘上有键按下后;延时一段时间再判断键盘的状态;若仍为有键按下状态,则认为有一个键按下,否则当作按键抖动来处理。

求按键的键值:对键盘的列线进行扫描,P0.4~P0.7循环输出1110、1101、1011和0111,依次读P0口,若低4位全为1,则断定该列上没有键按下;否则,该列上就有键按下,并且就是行线为0,列线为0的交叉点,行号和列号按公式:rol*4+col 计算得到按下键的键值。例如,P0.4~P0.7输出1101时,P0口的低四位读入的值为1011,不全为1,就可以断定有键按下,并且是第2行和第1列交叉点的键。于是,该键的键值=2×4+1=9。按照相同的方法可以得到所有键的键值。如:return(rol*4+col);  

判断闭合键是否释放:按键闭合一次只能进行一次功能操作,因此,等按键释放后才能根据键号执行相应的功能键操作。