44矩阵键盘仿真1

更新时间:2023-08-07 04:20:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单片机的矩阵键盘设计

摘 要

单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,

应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、

可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用

在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等

各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。单片机系统的开发

过程中,程序设计语言的选择尤为重要。C51提供高效的代码,结构化的编程和丰富的操

作符,多被采用。C51是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具

备汇编语言的功能,而且可以直接实现对硬件的控制。本课程设计以AT89S51芯片为核心,

程序设计采用汇编语言,辅以必要的电路,并运用proteus软件设计了4*4矩阵键盘仿真。

单片机的矩阵键盘设计

目 录

摘 要 ............................................................................................................................................. I

目 录 ............................................................................................................................................. I

前 言 ............................................................................................................................................. I

第一章 单片机的概述 ..................................................................................................................... 1

1.1 什么是单片机? .................................................................................................................. 1

1.2 MCS-51单片机内部结构 ..................................................................................................... 1

1.3单片机的应用领域 ................................................................................................................ 2

1.4 AT89C51简介 ....................................................................................................................... 3

第二章 软件的介绍及使用............................................................................................................. 6

2.1 Proteus软件的介绍和使用 ................................................................................................. 6

2.1.1 进入Proteus ISIS.................................................................................................... 6

2.1.2工作界面 ................................................................................................................... 6

2.1.3原理图仿真调试 ......................................................................................................... 7

2.2 Keil uVision2软件的介绍 ................................................................................................. 8

第三章 系统总体设计 ................................................................................................................. 13

3.1系统原理 ............................................................................................................................ 13

3.2电路组成 ............................................................................................................................ 13

3.2.1键盘部分 ................................................................................................................. 13

3.2.2 LED显示 ................................................................................................................. 14

3.2.3晶振电路 ................................................................................................................. 14

3.3功能和原理图 ..................................................................................................................... 15

3.3.1实现功能 ................................................................................................................. 15

3.3.2硬件电路原理图 ....................................................................................................... 15

3.4系统与硬件的连接 .............................................................................................................. 16

第四章 系统软件设计 ................................................................................................................. 17

4.1程序框图 ............................................................................................................................ 17

4.2源程序 ............................................................................................................................... 17

第五章 程序的编译调试与仿真 ................................................................................................. 22

5.1程序的编译 ........................................................................................................................ 22

5.2调试与仿真 ........................................................................................................................ 23

第六章 结束语 ............................................................................................................................. 25

6.1设计总结 ............................................................................................................................ 25

6.2工作展望 ............................................................................................................................ 25

参考文献 ....................................................................................................................................... 26

致 谢 ........................................................................................................................................... 27

单片机的矩阵键盘设计

前 言

随着人们生活水平的提高,19世纪兴起的数字电路以其先天的便捷、稳定的优点在现

代电子技术电路中占有越来越重要的地位。数字电路与模拟电路相比有显而易见的稳定

性。近年来,数字电路又有了巨大的发展。可编程逻辑器件(PAL、GAL等)的发展和普及

最终使IC的设计面向了用户(这是模拟电路无法做到的),而这毫无疑问会给用户带来巨

大的便捷,从而奠定它在电子电路中的对位。

单片机技术的出现给现代工业测控领域带来了一次技术革命。目前,单片机仍以

其高可靠性、高性价比,在工业控制系统、数据采集系统、智能画仪器仪表、智能家电等

诸多领域得到了广泛的应用。作为将要从事单片机应用系统开发方面的技术人员,掌握单

片机的应用技术是必要的。

在单片机的应用过程中,单片机只是应用系统的一个核心部件,为把单片机系统应用

于不同的领域,只掌握单片机的基础知识是远远不够的,要想构成一个完善的应用系统,

还要熟悉执行机构及硬件接口电路的应用特性,同时,还应该掌握系统的结构布局、印刷

电路板的结构布局及软件的设计技巧这些书本上学不到的知识,因此为设计出完善的应用

系统,必须在实际工作中勤于实践,逐步积累这方面的经验。单片机将计算机的基本部件

微型化,使之集成在一块芯片上的微机。单片机有着体积小、功耗低、功能强、性能价格

比高、易于推广应用等显著优点,在许多领域得到日益广泛的应用。

单片机系统的开发过程中,程序设计语言的选择尤为重要。C51提供高效的代码,

结构化的编程和丰富的操作符,多被采用。C51是一种编译型程序设计语言,它兼顾了多

种高级语言的特点,并具备汇编语言的功能,而且可以直接实现对硬件的控制。

此次设计选用的德国Keil公司开发的基于Windows平台的单片机集成开发环境,

是51单片机开发的优秀软件之一,它集编辑、编译、仿真功能于一体,支持C语言、汇

编语言的程序设计及调试,再加上单片处理器(89C51)、键盘、LED显示器及单片机的晶

振电路,最终实现基于单片机AT89C51的4*4矩阵键盘proteus仿真。

单片机的矩阵键盘设计

第一章 单片机的概述

单片微型计算机(single chip microcomputer)简称单片机,又称微控制器(micro

controller unit)或嵌入式控制器(embedded controller)。它将计算机的基本部件微

型化,使之集成在一块芯片上的微机。片内含有CPU、ROM、RAM、并行I/O、串行I/O、定

时器/计数器、中断控制、系统时钟及系统总线。单片机有着体积小、功耗低、功能强、

性能价格比高、易于推广应用等显著优点,在自动化装置、智能化仪器仪表、过程控制和

家用电器等许多领域得到日益广泛的应用。

用C51进行单片机程序设计是单片机开发与应用的必然趋势。采用C51可以很容易的

进行单片机的程序移植工作,有利于产品中的单片机的重新选型。随着国内单片机开发工

具研制水平的提高,现在的单片机仿真器普遍支持C51程序的调试,为单片机编程使用C51

提供了便利的条件。

1.1 什么是单片机?

单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系

统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价

格便宜、为学习、应用和开发提供了便利条件。单片机内部也用和电脑功能类似的模块,

比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件

1.2 MCS-51单片机内部结构

1. CPU

CPU即中央处理器的简称,是单片机的核心部件,它完成各种运算和控制操作,CPU

由运算器和控制器两部分电路组成。

(1)运算器电路运算器电路包括ALU(算术逻辑单元)、ACC(累加器)、B寄存器、

状态寄存器、暂存器1和暂存器2等部件,运算器的功能是进行算术运算和逻辑运算。运

算电路以ALU为核心单元,可以完成半字节、单字节以及多字节数据的运算操作,其中包

括加、减、乘、除、十进制调整等算术运算以及与、或、异或、求补和循环等逻辑操作,

运算结果的状态由状态寄存器保存。

(2)控制器电路

控制器电路包括程序计数器PC、PC加1寄存器、指令寄存器、指令译码器、数据指

针DPTR、堆栈指针SP、缓冲器以及定时与控制电路等。控制电路完成指挥控制工作,协

调单片机各部分正常工作。程序计数器PC用来存放即将要执行的指令地址,它可以完成

64K的外部存储器寻址,执行指令时,PC内容的高8位经P2口输出,低8位经P0口输出。数据指针DPTR为16位数据指针,它可以对64K的外部数据存储器和I/O口进行寻址,它

单片机的矩阵键盘设计

的低8位为DPL(地址82H),高8位为DPH(地址为83H)。堆栈指针SP在片内RAM(128

字节)中开辟栈区,并随时跟踪栈顶地址,它按先进后出的原则存取数据,上电复位后,

SP指向07H。

2. 定时器/计数器 MCS-51单片机片内有两个16位的定时/计数器,即定时器0和

定时器1。它们可以用于定时控制、延时以及对外部事件的计数和检测等。

3. 存储器 MCS-51系列单片机的存储器包括数据存储器和程序存储器,其主要特点

是程序存储器和数据存储器的寻址空间是相互独立的,物理结构也不相同。对MCS-51系

列(8031除外)而言,有4个物理上相互独立的存储器空间:即内、外程序存储器和内、

外数据存储器。对于8051其芯片中共有256个RAM单元,其中后128个单元被专用寄存

器占用,只有前128个单元供用户使用。

4. 并行I/O口 MCS-51单片机共有4个8位的I/O口(P0、P1、P2和P3),每一条

I/O线都能独立地用作输入或输出。P0口为三态双向口,能带8个TTL门电路,P1、P2和

P3口为准双向口,负载能力为4个TTL门电路。

5. 串行I/O口 MCS-51单片机具有一个采用通用异步工作方式的全双工串行通信接

口,可以同时发送和接收数据。它具有两个相互独立的接收、发送数据缓冲器,两个缓冲

器共用一个地址(99H),发送缓冲器只能写入,不能读出,接收缓冲器只能读出,不能写

入。

6. 中断控制系统 MCS-51单片机的中断功能较强,以满足控制应用的需要。8051

共有5个中断源,即外中断2个,定时/计数中断2个,串行中断1个。所有中断分为高

级和低级两个中断优先级。

7. 时钟电路 MCS-51芯片内部有时钟电路,但晶体振荡器和微调电容必须外接。时

钟电路为单片机产生时钟脉冲序列,振荡器的频率范围为1.2MHz~12MHz,典型取值为

6MHz。

8. 总线 以上所有组成部分都是通过总线连接起来,从而构成一个完整的单片机。

系统的地址信号、数据信号和控制信号都是通过总线传送的,总线结构减少了单片机的连

线和引脚,提高了集成度和可靠性。

1.3单片机的应用领域

单片机是随着大规模集成电路的出现极其发展,将计算机的CPU,RAM,ROM,定时/

计数器和多种I/O接口集成在一片芯片上,形成了芯片级的计算机,因此单片机早期的含

义称为单片微型计算机.它拥有优异的性价比、集成度高、体积小、可靠性高、控制功能

强、低电压、低功耗的显著优点.

单片机的应用领域 :

(1)单片机在智能仪器仪表中的应用;

(2)单片机在工业测控中的应用;

单片机的矩阵键盘设计

(3)单片机在计算机网络和通讯技术中的应用;

(4)单片机在日常生活及家电中的应用;

(5)单片机在办公自动化方面。

1.4 AT89C51简介

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微

处理器。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度、非

易失性存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚可以相兼容。由于

将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制

器, AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。引脚分布

如下图:

图1-1 引脚分布图

1.主要特性:

·与MCS-51 兼容

·4K字节可编程闪烁存储器

寿命:1000写/擦循环

数据保留时间:10年

·全静态工作:0Hz-24Hz

·三级程序存储器锁定

·128*8位内部RAM

·32可编程I/O线

·两个16位定时器/计数器

·5个中断源

·可编程串行通道

·低功耗的闲置和断电模式

单片机的矩阵键盘设计

·片内振荡器和时钟电路

2.管脚说明:

VCC:供电电压。

GND:接地。

P0口:P0口可作为通用的I/O口,但必须外接上拉电阻。作为输入口,每个引脚可

吸收8个TTL的灌电流。作为输入时,首先应将该引脚置为1。在访问外部数据存储器或

者程序存储器时,这组线分时转换地址(低8位)和数据总线。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL

门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平

时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地

址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个

TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作

为输入时,P2口的管脚被外部拉低,将输出电流。P2口当用于外部程序存储器或16位地

址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内

部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内

容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉

为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下所示:

管脚 备选功能

P3.0 RXD(串行输入口)

P3.1 TXD(串行输出口)

P3.2 /INT0(外部中断0)

P3.3 /INT1(外部中断1)

P3.4 T0(记时器0外部输入)

P3.5 T1(记时器1外部输入)

P3.6 /WR(外部数据存储器写选通)

P3.7 /RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字

节。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因

此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储

单片机的矩阵键盘设计

器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE

只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器

在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周

期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管

是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电

平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出

单片机的矩阵键盘设计

第二章 软件的介绍及使用

4*4矩阵键盘的仿真采用了两个软件: Keil uVision2和Proteus,现就这两个软件作

进一步的介绍。

2.1 Proteus软件的介绍和使用

它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,

该软件的特点是:

①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、

单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘

和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。

②支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、

AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。

③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同

时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些

功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。

④具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的

仿真软件,功能极其强大。

2.1.1 进入Proteus ISIS

双击桌面上的ISIS 6 Professional图标或者单击屏幕左下方的“开始”→“程序”

→“Proteus 6 Professional” →“ISIS 6 Professional”,进入Proteus ISIS集成

环境。

图2-1 Proteus启动时的屏幕

2.1.2工作界面

单片机的矩阵键盘设计

Proteus ISIS的工作界面是一种标准的Windows界面。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。

图2-2 Proteus ISIS的工作界面

2.1.3原理图仿真调试

原理图的绘制:

Proteus的智能化可以在你想要画线的时候进行自动检测。当鼠标的指针靠近一个对象的连接点时,跟着鼠标的指针就会出现一个“×”号,鼠标左键点击元器件的连接点,移动鼠标就出现了粉红色的连接线变成了深绿色。如果你想让软件自动定出线路径,只需左击另一个连接点即可。这就是Proteus的线路自动路径功能(简称WAR),如果你只是在两个连接点用鼠标左击,WAR将选择一个合适的线径。WAR可通过使用工具栏里的“WAR”命令按钮来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。如果你想自己决定走线路径,只需在想要拐点处点击鼠标左键即可。

单片机电路的模拟

程序的编译:

该软件有自带编译器,在ISIS添加上编写好的程序,方法如下:

1.点击菜单栏“Source”,在下拉菜单点击“Add/Remove Source Files(添加或删除源程序)”出现一个对话框。

2.点击对话框的“NEW”按钮,在出现的对话框找到文件设计好的huayang.asm,点击打开;在“Code Generation Tool”的下面找到“ASEM51”,然后点击“OK” 按钮,设置完毕我们就可以编译了。

单片机的矩阵键盘设计

3.点击菜单栏的“Source”,在下拉菜单点击“Build All”,过一会,编译结果的对话框就会出现在我们面前。如果有错误,对话框会告诉我们是哪一行出现了问题,点击出错的提示,光标不能跳到出错地方,但是能告诉出错的行号。

模拟调试。

4.选中单片机AT899C51,左键点击AT89C51,在出现的对话框里点击Program File按钮,找到刚才编译得到的HEX文件,然后点击“OK”按钮就可以模拟了。点击模拟调试按钮的运行按钮[] ,进人调试状态。点击按键键盘,看到发光二极管,显示相应0~f的字符。

2.2 Keil uVision2软件的介绍

Keil单片机集成开发软件是目前最流行的MCS-51单片机开发软件,Keil提供了包括C编译器、宏汇编、连接器、库管理及一个功能强大的仿真调试器在内的完整开发方案,通过一个集成开发环境(uVisoin2)将这些部分组合在一起。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,使用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

Keil软件使用的基本步骤

输入源程序 → 新建工程 → 工程详细设置 → 源程序编译得到目标代码文件。 第一步: 双击Keil uVision2的桌面快捷方式,启动Keil集成开发开发软件。 第二步: 新建文本编辑窗。点击工具栏上的新建文件快捷按键,即可在项目窗口的右侧打开一个新的文本编辑窗。

第三步:输入源程序。在新的文本编辑窗中输入汇编语言程序,

图2-3: 输入源程序

第四步:保存源程序。保存文件时必须加上文件的扩展名,如果你使用汇编语言编程,那么保存时文件的扩展名为“.asm”,如果是C语言程序,文件的扩展名使用“*.C ”。注:第3步和第4步之间的顺序可以互换,即可以先输入源程序后保存,也可以先保存后输入源程序第五步:新建立Keil工程。,点击 "工程" → "新建工程" 命令,将出现保存

单片机的矩阵键盘设计

对话

第五步:在保存工程对话框中输入你的工程的文件名,Keil工程默认扩展名为".uv2",输入名称后保存,将出现"选择设备"对话框,在对话框中选择CPU的型号。

第六步:选择CPU型号。为工程选择CPU型号,本新建工程选择了ATMEL公司的AT89C51单片机。

图2-4: 选择CPU型号对话框

第七步:加入源程序到工程中。在选择好CPU型号后,点击"确定"按钮返回主界面,此时可见到工程管理窗中出现“Target 1”,点击“Target 1”前面的“+”号展开下一层的“Source Group 1”文件夹,此时的新工程是空的,“Source Group 1”文件夹中什么文件都没有,必须把刚才输入的源程序加入到工程当中。右击工程管理窗中的“Source Group 1”,出现下拉菜单,点击“增加文件到组'Source Group 1'”命令,将出现添加文件对话框

单片机的矩阵键盘设计

图2-5:添加文件到工程命令

在添加文件对话框中,找到要添加到工程中的源程序文件。注意:在对话框中的文件类型默认为"C 源文件 (*.c) ",如果你要添加到工程中的是汇编语言程序,则在文件类型中必须选中“Asm 源文件 (*.a*; *.src) ”, 以*.asm为扩展名的汇编源程序才会出现在文件列表框

双击该文件lich1.asm,即可将该文件添加到工程当中,另外也可以单击lich1.asm选中该文件,再点击"Add"按钮,也可以把文件加入工程中。

图2-6: 选中ASM源程序,加入到工程中

点击Add按钮后,把文件添加到工程中,再点击“关闭”按钮,返回到主界面。 当给工程添加源程序文件成功后,工程管理器中的“Source Group 1”文件夹的前面会出现一个“+”号,单击“+”号,展开文件夹,双击即可打开该文件进行编辑修改源程

单片机的矩阵键盘设计

图2-7: 文件成功加入工程

第八步:工程目标'Target 1'属性设置。如下图7所示,在工程项目管理窗中的"Target 1"文件夹上右击,出现下拉菜单,点击“目标'Target 1'属性”命令,就进入目标属性设

工程目标'Target 1'属性设置对话框大部分使用默认设置即可,我们主要设置其中的“目标”、“输出”、“调试”三个页面,下面对这三个页面的设置进行介绍。

1、工程目标属性设置。该页面单片机的晶振频率,把晶振的频率改为

11.0592 置界面。

图2-8:晶振频率设置

2、工程输出设置。该页面设置注意:如果要进行单片机写片实验,则一定要把“E生成HEX文件”选项选中,程序编译后才能生成我们写单片机需要的HEX格式目标文件。

3、工程调试设置。“调试”页面设置。该页分为左右两半,左半边是软件仿真设置,而右半边是硬件仿真设置,当你使用软件仿真时,选中左边的“S使用仿真器”;如果你使用硬件仿真器,那么就按下图所示设置硬件仿真,同时把仿真器连接到你的电脑串口上。

4、串口设置 。把通信波特率选择38400。

单片机的矩阵键盘设计

图2-9:串口设置

第九步:源程序的编译与目标文件的获得。至此,我们已经完成了从源程序输入、工程建立、工程详细设置的工作,接下来我们在文本编辑窗中继续输入或修改我们的源程序,使程序实现我们的目标,在检查程序无误后保存工程。接着如下图12所示,点击“构造目标”快捷按钮,进行源程序的编译连接,源程序编译相关的信息会出现在输出窗口中的“构造”页中。下图12显示编译结果为0错误,0警告,同时产生了目标文件lich1.hex。我们可以对源程序进行反复修改,再编译,直到没有错误为,每次修改源程序后一定要保存。

图2-10:源程序的编译

单片机的矩阵键盘设计

第三章 系统总体设计

3.1系统原理

键盘为4*4矩阵式连接,一共有16个按键。

工作原理为:P1端的低四位为列,高四位行。所先置低四位为低,高四位为高,当有按键按下时高四位就会有某位被拉低。只要判断高四位不为全高就说明有按键按下。判断有按键按下后就要判断是某位按下的,方法为,选将高四位的某一位置低。判断低四位是否有低电平出现。依次对高四位的每位置低并判断低四位出现的低电平。如高四位某位置低后低四某也有出现低电平。这样就能判断出低四位与高四位相连的位某位按键被按下了。通过定义好的编码就可以查出是某个按键被按下了,程序将按键值通过查表并发送到LED上显示。

3.2电路组成

3.2.1键盘部分

键盘是一组按键的集合,它是最常用的单片机输入设备,操作人员可以通过键盘输入数据或命令,实现简单的人机通讯。键是一种常开型按钮开关,平时(常态)键的两个触点处于断开状态,按下键时它们才闭合(短路)。键盘分编码键盘和非编码键盘,闭合键的识别由专用的硬件译码实现,并能产生键编号或键值的称为编码键盘,如BCD码键盘、ASCII码键盘等;而缺少这种键盘编码电路要靠自编软件识别的称为非编码键盘。在单片机组成的电路系统及智能化仪器中,用得更多的是非编码键盘。

判别键值方法:

我们选用的4×4键盘,使用扫描法扫描键值。过程如下:

① 判别有无键按下。由单片机I/O口向键盘送(输出)扫描字,然后读入(输入)行线状态来判断。其方法是:向列线输出全扫描字00H,即把全部列线置为低电平,然后将行线的电平状态读入累加器A中。如果有按键按下,总会有一根行线被拉至低电平,从而使行输入不全为“1”。

②判断键盘中哪一个键按下。由列线逐列置低电平后,检查行输入状态。其方法是:依次给列线送低电平,然后查所有行线状态,如果全为“1”,则所按下之键不在此列。如果不全为“1”,则所按下之键必在此列,而且是在与低电平行线相交的交点上的那个键。

③ 确定键盘上每个键的键值。键值赋值的最直接办法是将行、列线按二进制顺序排列,当某一键按下时,键盘扫描程序执行到该列置“0”电平,读出各行状态为非全“1”状态,这时的行、列数据组合成键值

单片机的矩阵键盘设计

④ 键盘与单片机接口。矩阵式键盘适用于按键数量较多的场合,它由行线和列线组成,按键位于行、列的交叉点上。一个4*4的行、列结构可以构成一个有16个按键的键盘。

3.2.2 LED显示

单片机应用系统中使用的显示器主要有发光二极管显示器,简称LED(Light Emitting Diode),近几年也有配置CRT显示器的。而目前在单片机系统中,通常用LED数码显示器来显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。

单片机中通常用七段LED构成字型“8”,另外,还有一个小数点发光二极管以显示小数位!这种显示器有共阴和共阳两种!发光二极管的阳极连在一起的(公共端)称为共阳极显示器,阴极连在一起的称为共阴极显示器。

(1) LED显示结构与原理

LED(Light Emintng Diode)是当外加电压超过额定电压时发生击穿而发出可见光。LED的工作电流通常在2—20mA范围内,工作压降2V左右,使用时必须加限流电阻。单片机应用系统通常使用8个发光二被管显示器。其中7个发光二极管构成7笔字形,另一个构成小数点,通称7段LED。LED分为共阴极接法(8个发光二极管阴极连在一起)和共阳极接法(8个发光二极管的阳极接在—起)。通过控制这个公共端,可使该位亮或暗。如共阴极端接地或共阳极接高电平,则该位显示器有效,反之无效。

一位显示器由8个发光二极管组成,其中,7个发光二极管构成字型“8”的各个笔划(段)

a_g,另一个小数点为dp发光二极管。当在某段发光二极管上施加一定的正向电压时,该段笔画即亮;不加电压则暗。为了保护各段LED不被损坏,需外加限流电阻。

(2) LED显示器接口及显示方式

LED显示器有静态显示方式和动态显示方式两种。静态显示就是当显示器显示某个字符时,相应的段恒定的导通或截止,直到显示另一个字符为止。LED显示器工作于静态显示方式时,各位的共阴极接地;若为共阳极则接+5V电源。正因为如此,静态显示器的亮度较高。这种显示方式编程容易,管理也较简单,但占用I/O口线资源较多。因此,在显示位数较多的情况下,一般都采用动态显示方式。动态扫描是将各个LED数码管的7段字线并联使用,而每个数码管的公共极(共阴极或共阳极)分别通过驱动器接I/O的一个口线。当轮流选通每个数码管的公共极时,则数码管将轮流显示有关字符。由于入的视觉特性、所能看到的是同时燃亮的字符。

3.2.3晶振电路

简单地说没有晶振电路就没有时钟周期,没有时钟周期,就无法执行程序代码,单片机就无法工作。

单片机的矩阵键盘设计

单片机工作时,是一条一条地从ROM中取指令,然后一步一步的执行。单片机访问一次存储器的时间,称之为而一个机器周期,这是一个时间基准。一个机器周期包括12个时钟周期。如果一个单片机选择了12MHZ晶振,它的时钟周期是1/12us,它的一个机器周期是12*(1/12)us,也就是1us。

单片机的晶振电路是一种典型电路,分为内部时钟方式和外部时钟方式两种。内部时钟的晶振频率一般选择在4MHZ~12MHZ之间,外接两个谐振电容,该电容的典型值为30pF但是在实际应用时,需根据实际起振情况选择。如果单片机的时钟必须使用某一个外接的时钟信号,就不要外界晶振。由于此时的外接晶振引脚上没有晶振信号输入,内部的时钟电路将停振。这种方式称为外部时钟方式。

3.3功能和原理图

3.3.1实现功能

矩阵式键盘中的键实际上就是一个机械开关,该开关位于行线和列线的交点处。本设计使用的是4行*4列的16键阵列式键盘,当键被按下时,其交点的行线和列线接通,相应行线或列线的电平发生变化,从而确定被按下的功能键。在仿真软件中,按下相应的功能键后,LED显示器就会显示出0~f相应的字符。

3.3.2硬件电路原理图

图3-1 :硬件电路原理图

单片机的矩阵键盘设计

3.4系统与硬件的连接

(1)把“单片机系统”区域中的P3.0-P3.7端口连接到“4X4行列式键盘”区域中的C1-C4 R1-R4端口上。

(2)把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口连接到“四路静态数码显示模块”区域中的任一a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b, ,P0.7/AD7对应着h。

本文来源:https://www.bwwdw.com/article/ypcj.html

Top