44矩阵键盘仿真

更新时间:2024-06-22 20:13:02 阅读量: 综合文库 文档下载

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

一、毕业设计的任务和具体要求: 1. 任务:毕业设计的任务:利用单片机仿真软件实现4*4 ,16位矩阵式键盘设计 2. 毕业设计的具体要求: (1) 首先对设计题目进行分析,确定实现方法; (2) 绘制出原理框图,确定控制量,输出量; (3) 根据功能要求,绘制出程序流程图; (4) 根据程序流程图,编写汇编程序; (5) 将编写的程序输入计算机,进行仿真; (6) 用AT89S51的并行口P1接4×4矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7作输出线;在数码管上显示每个按键的“0-F”序号。: 二、毕业设计应完成的图纸: 图1-1:AT89C51引脚图 p4 图2-1:启动时的屏幕Proteus ISIS p7 图2-2:Proteus ISIS的工作界面 p8 图2-3:输入源程序 p9 图2-4:选择CPU型号对话框 p10 图2-5:添加文件到工程命令 p11 图2-6:选中ASM源程序,加入到工程 p11图2-7:文件成功加入工程 p12 图2-8:晶振频率设置 p12 图2-9:串口设置 p13 图2-10:源程序的编译 p13 图3-1:硬件电路原理图 p17 图4-1:程序框图 p18 图5-1:仿真与调试 设置对话框 p23 三、其他要求:认真做好试验前的准备工作构思好整个工程流程,分步开始连接各部分的实际元件做到认真仔细争取减少错误的产生,争取顺利完成电路的连接过程.最终达到预期的效果. 四、毕业设计的期限: 自 2008 年 9月 1 日至 2008 年 9月 30 日 五、毕业设计(论文)进度计划: 起 至 日 期 2008/9/1-2008/9/5 2008/9/6-2008/9/15 2008/9/16-2008/9/20 2008/9/20-2008/9/30 一分析阶段 工 作 内 容 备 注 选择适合自己的题目 程序设计 1.所用元器件的功能及工作原理的分析 2.所要实现的功能及任务的分析 二设计阶段 1.方案分析 2.编写源程序 3.源程序的编译调试与仿真 三 系统的完善 错误的纠正 四整理试验报告系统使用说明毕业总结

4*4矩阵键盘仿真

摘 要

单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。单片机系统的开发过程中,程序设计语言的选择尤为重要。C51提供高效的代码,结构化的编程和丰富的操作符,多被采用。C51是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能,而且可以直接实现对硬件的控制。本毕业设计以AT89S51芯片为核心,程序设计采用汇编语言,辅以必要的电路,并运用proteus软件设计了4*4矩阵键盘仿真。

目 录

前言??????????????????????????????1 第一章单片机的概述?????????????????????? 2

1.1什么是单片机?????????????????????????????2 1.2 MCS-51单片机内部结构???????????????????? 2 1.3单片机的应用领域???????????????????????????3 1.4 AT89C51简介?????????????????????????????4

第二章软件的介绍及使用???????????????????? 7

2.2 Proteus软件的介绍和使用 ?????????????????????? 7 2.1Keil uVision2软件的介绍和使用???????????????????? 9

第三章 系统总体设计??????????????????????14

3.1 系统原理?????????????????????????????? 14 3.2电路组成?????????????????????????????? 14 3.2.1键盘部分??????????????????????????????14 3.2.2LED显示?????????????????????????????? 15 3.2.3晶振电路??????????????????????????????16 3.3系统功能和原理图??????????????????????????? 16 3.3.1实现功能????????????????????????????? 16 3.3.2硬件电路原理图?????????????????????????? 16 3.4系统与硬件的连接??????????????????????????? 17

第四章 系统软件设计????????????????????????? 18

4.1程序流程图?????????????????????????????? 18 4.2源程序???????????????????????????????? 18

第五章 程序的编译调试与仿真????????????????????? 21

5.1程序的编译?????????????????????????????? 21 5.2调试与仿真?????????????????????????????? 22

第六章结束语??????????????????????????????24

6.1论文总结???????????????????????????????24 6.2工作展望???????????????????????????????24

参考文献????????????????????????????????25 致谢?????????????????????????????????? 25

基于Proteus软件的4*4矩阵键盘设计与仿真

前言

随着人们生活水平的提高,19世纪兴起的数字电路以其先天的便捷、稳定的优点在现代电子技术电路中占有越来越重要的地位。数字电路与模拟电路相比有显而易见的稳定性。近年来,数字电路又有了巨大的发展。可编程逻辑器件(PAL、GAL等)的发展和普及最终使IC的设计面向了用户(这是模拟电路无法做到的),而这毫无疑问会给用户带来巨大的便捷,从而奠定它在电子电路中的对位。

单片机技术的出现给现代工业测控领域带来了一次技术革命。目前,单片机仍以其高可靠性、高性价比,在工业控制系统、数据采集系统、智能画仪器仪表、智能家电等诸多领域得到了广泛的应用。作为将要从事单片机应用系统开发方面的技术人员,掌握单片机的应用技术是必要的。

在单片机的应用过程中,单片机只是应用系统的一个核心部件,为把单片机系统应用于不同的领域,只掌握单片机的基础知识是远远不够的,要想构成一个完善的应用系统,还要熟悉执行机构及硬件接口电路的应用特性,同时,还应该掌握系统的结构布局、印刷电路板的结构布局及软件的设计技巧这些书本上学不到的知识,因此为设计出完善的应用系统,必须在实际工作中勤于实践,逐步积累这方面的经验。单片机将计算机的基本部件微型化,使之集成在一块芯片上的微机。单片机有着体积小、功耗低、功能强、性能价格比高、易于推广应用等显著优点,在许多领域得到日益广泛的应用。

单片机系统的开发过程中,程序设计语言的选择尤为重要。C51提供高效的代码,结构化的编程和丰富的操作符,多被采用。C51是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能,而且可以直接实现对硬件的控制。

此次设计选用的德国Keil公司开发的基于Windows平台的单片机集成开发环境,是51单片机开发的优秀软件之一,它集编辑、编译、仿真功能于一体,支持C语言、汇编语言的程序设计及调试,再加上单片处理器(89C51)、键盘、LED显示器及单片机的晶振电路,最终实现基于单片机AT89C51的4*4矩阵键盘proteus仿真。

1

基于Proteus软件的4*4矩阵键盘设计与仿真

第一章 单片机的概述

单片微型计算机(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的外部

2

基于Proteus软件的4*4矩阵键盘设计与仿真

存储器寻址,执行指令时,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接口集成在一片芯片上,形成了芯片级的计算机,因此单片机早期的含义称为单片微型计算机.它拥有优异的性价比、集成度高、体积小、可靠性高、控制功能

3

基于Proteus软件的4*4矩阵键盘设计与仿真

强、低电压、低功耗的显著优点. 单片机的应用领域 :

(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

4

基于Proteus软件的4*4矩阵键盘设计与仿真

·三级程序存储器锁定 ·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(串行输入口)

5

基于Proteus软件的4*4矩阵键盘设计与仿真

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:来自反向振荡器的输出。

6

基于Proteus软件的4*4矩阵键盘设计与仿真

第二章 软件的介绍及使用

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分析于一身的仿真软件,功能极其强大。 (1)进入Proteus ISIS

双击桌面上的ISIS 6 Professional图标或者单击屏幕左下方的“开始”→“程序”→“Proteus 6 Professional” →“ISIS 6 Professional”,进入Proteus ISIS集成环境。

图2-1 Proteus启动时的屏幕

7

基于Proteus软件的4*4矩阵键盘设计与仿真

(2)工作界面

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

图2-2 Proteus ISIS的工作界面

(3)原理图仿真调试 原理图的绘制

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

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

? 点击菜单栏“Source”,在下拉菜单点击“Add/Remove Source Files(添加或删除

源程序)”出现一个对话框。

8

基于Proteus软件的4*4矩阵键盘设计与仿真

? 点击对话框的“NEW”按钮,在出现的对话框找到文件设计好的huayang.asm,

点击打开;在“Code Generation Tool”的下面找到“ASEM51”,然后点击“OK” 按钮,设置完毕我们就可以编译了。

? 点击菜单栏的“Source”,在下拉菜单点击“Build All”,过一会,编译结果的对话

框就会出现在我们面前。如果有错误,对话框会告诉我们是哪一行出现了问题,点击出错的提示,光标不能跳到出错地方,但是能告诉出错的行号。

模拟调试

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

2.2 Keil uVision2软件的介绍

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

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

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

9

基于Proteus软件的4*4矩阵键盘设计与仿真

图2-3: 输入源程序

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

在保存工程对话框中输入你的工程的文件名,Keil工程默认扩展名为\,输入名称后保存,将出现\选择设备\对话框,在对话框中选择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'”命令,将出现添加文件对话框

10

基于Proteus软件的4*4矩阵键盘设计与仿真

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

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

双击该文件lich1.asm,即可将该文件添加到工程当中,另外也可以单击lich1.asm选中

该文件,再点击\按钮,也可以把文件加入工程中。

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

点击Add按钮后,把文件添加到工程中,再点击“关闭”按钮,返回到主界面。

当给工程添加源程序文件成功后,工程管理器中的“Source Group 1”文件夹的前面会出现一个“+”号,单击“+”号,展开文件夹,双击即可打开该文件进行编辑修改源程序

11

基于Proteus软件的4*4矩阵键盘设计与仿真

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

第八步:工程目标'Target 1'属性设置。如下图7所示,在工程项目管理窗中的\

1\文件夹上右击,出现下拉菜单,点击“目标'Target 1'属性”命令,就进入目标属性设置界面。

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

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

图2-8:晶振频率设置

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

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

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

12

基于Proteus软件的4*4矩阵键盘设计与仿真

图2-9:串口设置

第九步:源程序的编译与目标文件的获得

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

图2-10:源程序的编译

13

基于Proteus软件的4*4矩阵键盘设计与仿真

第三章 系统总体设计

3.1系统原理

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

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

3.2电路组成

3.2.1键盘部分

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

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

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

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

③ 确定键盘上每个键的键值。键值赋值的最直接办法是将行、列线按二进制顺序排

14

基于Proteus软件的4*4矩阵键盘设计与仿真

列,当某一键按下时,键盘扫描程序执行到该列置“0”电平,读出各行状态为非全“1”状态,这时的行、列数据组合成键值。 ④ 键盘与单片机接口

矩阵式键盘适用于按键数量较多的场合,它由行线和列线组成,按键位于行、列的交叉点上。一个4*4的行、列结构可以构成一个有16个按键的键盘。 3.2.2LED显示

单片机应用系统中使用的显示器主要有发光二极管显示器,简称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的一个口线。当轮

15

基于Proteus软件的4*4矩阵键盘设计与仿真

流选通每个数码管的公共极时,则数码管将轮流显示有关字符。由于入的视觉特性、所能看到的是同时燃亮的字符。 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硬件电路原理图

16

基于Proteus软件的4*4矩阵键盘设计与仿真

RP1C130pFRESPACK-8X1119CRYSTALXTAL1C21830pFXTAL2R110K9RSTP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617RR1RR2RR3RR4CR1CR2CR3CR4C310uF293031PSENALEEA12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51048C159D26AE37BF23456789CR4CR3CR2CR1RR4RR3RR2RR1 图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。

17

基于Proteus软件的4*4矩阵键盘设计与仿真

第四章 系统软件设计

4.1程序框图

图4-1 :程序框图

4.2源程序

汇编语言(Assembly Language)是面向机器的程序设计语言.汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编作为一门语言具有编程语言的一般特性,而高级语言大都编译为汇编指令,最终转化为机器指令得以执行。

本设计是采用汇编语言设计的,4×4矩阵式键盘程序如下: 扫描结果是0,1,2,3, 4,5,6,7, 8,9,a,b, c,d,e,f

检测按键子程序

18

基于Proteus软件的4*4矩阵键盘设计与仿真

BUTTON_NUMBER EQU 55H ;键盘扫描结果 KEY_TEST:

MOV P1,#0F0H; MOV A,P1 ORL A,#0FH CPL A

JNZ PRESS_BUTTON AJMP BACK1 PRESS_BUTTON:

CALL DELAY_20MS

MOV R2,#0; MOV R4,#4; MOV R1,#11111110B; MOV A,R1 L1:

MOV R3,#4 MOV P1,A MOV A,P1

RRC A; RRC A RRC A RRC A L2:

RRC A JNC FIND

INC R2; DJNZ R3,L2; MOV A,R2

ADD A,#4; MOV R2,A

存放按键值,从0开始 列扫描次数

扫描第一行 先右循环移动4次,使高四位变成第四位 在1列内没找到,使数字加1 判断4列扫描完了没 在1行上没找到,使数字加4 19

基于Proteus软件的4*4矩阵键盘设计与仿真

MOV A,R1

RL A;左移扫描下一行 MOV R1,A

DJNZ R5,L1;判断4行扫描完了没 AJMP BACK1 FIND: CHECK_LOOSE:

MOV P1,#0F0H MOV A,P1 ORL A,#0FH CPL A

JNZ CHECK_LOOSE CALL DELAY_20MS MOV BUTTON_NUMBER,R2 AJMP BACK1 DELAY_20MS:

MOV R1,#0C8H L4: MOV R3,#018H L3: NOP NOP

DJNZ R3,L3 DJNZ R1,L4 BACK1: RET

20

基于Proteus软件的4*4矩阵键盘设计与仿真

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

5.1程序的编译

第一步: 双击Keil uVision2的桌面快捷方式,启动Keil集成开发开发软件。软件启动后的界面

第二步: 新建文本编辑窗。点击工具栏上的新建文件快捷按键,即可在项目窗口的右侧打开一个新的文本编辑窗

第三步:输入源程序。在新的文本编辑窗中输入源程序,输入汇编语言程序。 第四步:保存源程序。保存文件时必须加上文件的扩展名,如果你使用汇编语言编程,那么保存时文件的扩展名为“.asm”。

第五步:新建立Keil工程。点击 \工程\\命令。在保存工程对话框中输入你的工程的文件名,Keil工程默认扩展名为\,输入名称后保存,将出现\选择设备\对话框,在对话框中选择CPU的型号。

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

双击该文件lich1.asm,即可将该文件添加到工程当中,另外也可以单击lich1.asm选中该文件,再点击\按钮,也可以把文件加入工程中。此时此时应该点击“确定”按钮,返回到前一对话框,再点击“关闭”按钮,返回到主界面。

当给工程添加源程序文件成功后,工程管理器中的“Source Group 1”文件夹的前面会出现一个“+”号,单击“+”号,展开文件夹,可以看到lich1.a,双击即可打开该文件进行编辑修改源程序

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

①工程目标属性设置。该页面单片机的晶振频率、存储器等,我们把晶振的频率改为11.0592,

21

基于Proteus软件的4*4矩阵键盘设计与仿真

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

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

④串口设置。串口号根据你的仿真器实际连接来设置,如你把仿真器接到COM2,那么就选择COM2;通信波特率选择38400即可。 第九步:源程序的编译成功

此时我们可以在文本编辑窗中继续输入或修改我们的源程序,使程序实现我们的目标,在检查程序无误后保存工程。接着点击“构造目标”快捷按钮,进行源程序的编译连接,源程序编译相关的信息会出现在输出窗口中的“构造”页中。即显示编译结果为0错误,0警告,同时产生了目标文件lich1.hex。我们可以对源程序进行反复修改,再编译,直到没有错误为止。注意:每次修改源程序后一定要保存。

5.2调试与仿真

1、假若Keil与Proteus均已正确安装在C:\\Program Files的目录里,把C:\\Program Files\\Labcenter Electronics\\Proteus 6 Professional\\MODELS\\VDM51.dll复制到C:\\Program Files\\keilC\\C51\\BIN目录中。

2、用记事本打开C:\\Program Files\\keilC\\C51\\TOOLS.INI文件,在[C51]栏目下加入:

TDRV5=BIN\\VDM51.DLL (\其中“TDRV5”中的“5”要根据实际情况写,不要和原来的重复。

3、进入Keil μVision2开发集成环境,创建一个新项目(Project),并为该项目选定合适的单片机CPU器件(如:Atmel公司的AT89C51)。并为该项目加入Keil源程序

4、单击“Project菜单/Options for Target”选项或者点击工具栏的“option for ta rget”按钮弹出窗口,点击“Debug”按钮,出现如图所示页面。

22

基于Proteus软件的4*4矩阵键盘设计与仿真

图5-1 : 仿真对话框

在出现的对话框里在右栏上部的下拉菜单里选中“Proteus VSM Monitor一51 Driver”。并且还要点击一下“Use”前面表明选中的小圆点。

再点击“Setting”按钮,设置通信接口,在“Host”后面添上“127.0.0.1”,在“Port”后面添加“8000”。设置好的情形如图所示,点击“OK”按钮即可。最后将工程编译,进入调试状态,并运行。

5、Proteus的设置

进入Proteus的ISIS,鼠标左键点击菜单“Debug”, 选中“use romote debuger monitor”,如图所示。此后,便可实现Keil与Proteus连接调试。

6、Keil与Proteus连接仿真调试

单击仿真运行开始按钮

,我们能清楚地观察到每一个引脚的电频变化,红色

代表高电频,蓝色代表低电频。在LED显示器上,显示0~f相应的字符。

23

基于Proteus软件的4*4矩阵键盘设计与仿真

第六章结束语

6.1论文总结

毕业论文是我们学习阶段一次非常难得的理论与实际相结合的机会,通过这次比较完整系统设计,我摆脱了单纯的理论知识学习状态,锻炼了我综合运用所学的专业基础知识,解决实际工程问题的能力,同时也提高我查阅文献资料及电脑制图等其他专业能力水平,而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我的能力得到了锻炼,经验得到了丰富。

此次的毕业设计给我奠定了一个实践基础,我会在以后的学习,生活中磨练自己,使自己适应于以后的竞争。通过本次设计,让我在以后的人生道路上走的更宽更远!

6.2工作展望

在这次毕业设计中,我不仅对以前所学知识有了更深的理解,而且也学会了很多新的知识。在竞争日益加剧的社会,要想在社会上有一定的立足之地,就必须发挥自己的专业所长,我们即将走出校门,对社会的认识还很肤浅,应该踏踏实实的做好每一件事,使自己以后的学习和工作中能更进一步!

24

基于Proteus软件的4*4矩阵键盘设计与仿真

参考文献

文献、资料名称 单片机典型模块设计实例导航 MCS-51 单片机原理及接口技术 51系列单片机高级实例开发指南 电路基本分析 模拟电子技术 数字电子技术 微机原理、汇编语言及接口技术 单片机原理与应用 编著者 求是科技 孙玉德 张颖 李军 石 生 胡宴如 杨志忠 姜 荣、王芹 出版单位 人民邮电出版社 哈尔滨工业大学出版社 北京航空航天大学出版社高等教育出版社 高等教育出版社 高等教育出版社 西安交通大学出版社 徐进强、左翠红、姜荣等 威海职业学院 致谢

首先衷心地感谢我的导师***。本文从选题到完成,从理论上的探讨到实际问题的解决,无处不饱含着***的心血。***老师的悉心指导和建议给了我极大的帮助和支持,使我受益匪浅,在此论文完成之际,谨向***老师致以深深的谢意和崇高的敬意。

25

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

Top