44矩阵键盘仿真1Word文档格式.docx
- 文档编号:8184299
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:27
- 大小:636.94KB
44矩阵键盘仿真1Word文档格式.docx
《44矩阵键盘仿真1Word文档格式.docx》由会员分享,可在线阅读,更多相关《44矩阵键盘仿真1Word文档格式.docx(27页珍藏版)》请在冰点文库上搜索。
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的设计面向了用户(这是模拟电路无法做到的),而这毫无疑问会给用户带来巨大的便捷,从而奠定它在电子电路中的对位。
单片机技术的出现给现代工业测控领域带来了一次技术革命。
目前,单片机仍以其高可靠性、高性价比,在工业控制系统、数据采集系统、智能画仪器仪表、智能家电等诸多领域得到了广泛的应用。
作为将要从事单片机应用系统开发方面的技术人员,掌握单片机的应用技术是必要的。
在单片机的应用过程中,单片机只是应用系统的一个核心部件,为把单片机系统应用于不同的领域,只掌握单片机的基础知识是远远不够的,要想构成一个完善的应用系统,还要熟悉执行机构及硬件接口电路的应用特性,同时,还应该掌握系统的结构布局、印刷电路板的结构布局及软件的设计技巧这些书本上学不到的知识,因此为设计出完善的应用系统,必须在实际工作中勤于实践,逐步积累这方面的经验。
单片机将计算机的基本部件微型化,使之集成在一块芯片上的微机。
单片机有着体积小、功耗低、功能强、性能价格比高、易于推广应用等显著优点,在许多领域得到日益广泛的应用。
单片机系统的开发过程中,程序设计语言的选择尤为重要。
此次设计选用的德国Keil公司开发的基于Windows平台的单片机集成开发环境,是51单片机开发的优秀软件之一,它集编辑、编译、仿真功能于一体,支持C语言、汇编语言的程序设计及调试,再加上单片处理器(89C51)、键盘、LED显示器及单片机的晶振电路,最终实现基于单片机AT89C51的4*4矩阵键盘proteus仿真。
第一章单片机的概述
单片微型计算机(singlechipmicrocomputer)简称单片机,又称微控制器(microcontrollerunit)或嵌入式控制器(embeddedcontroller)。
它将计算机的基本部件微型化,使之集成在一块芯片上的微机。
片内含有CPU、ROM、RAM、并行I/O、串行I/O、定时器/计数器、中断控制、系统时钟及系统总线。
单片机有着体积小、功耗低、功能强、性能价格比高、易于推广应用等显著优点,在自动化装置、智能化仪器仪表、过程控制和家用电器等许多领域得到日益广泛的应用。
用C51进行单片机程序设计是单片机开发与应用的必然趋势。
采用C51可以很容易的进行单片机的程序移植工作,有利于产品中的单片机的重新选型。
随着国内单片机开发工具研制水平的提高,现在的单片机仿真器普遍支持C51程序的调试,为单片机编程使用C51提供了便利的条件。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件…
1.2MCS-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.4AT89C51简介
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.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器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矩阵键盘的仿真采用了两个软件:
KeiluVision2和Proteus,现就这两个软件作进一步的介绍。
2.1Proteus软件的介绍和使用
它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:
①实现了单片机仿真和SPICE电路仿真相结合。
具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;
有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
②支持主流单片机系统的仿真。
目前支持的单片机类型有:
68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
③提供软件调试功能。
在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;
同时支持第三方的软件编译和调试环境,如KeilC51uVision2等软件。
④具有强大的原理图绘制功能。
总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。
2.1.1进入ProteusISIS
双击桌面上的ISIS6Professional图标或者单击屏幕左下方的“开始”→“程序”→“Proteus6Professional”→“ISIS6Professional”,进入ProteusISIS集成环境。
图2-1Proteus启动时的屏幕
2.1.2工作界面
ProteusISIS的工作界面是一种标准的Windows界面。
包括:
标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。
图2-2ProteusISIS的工作界面
2.1.3原理图仿真调试
原理图的绘制:
Proteus的智能化可以在你想要画线的时候进行自动检测。
当鼠标的指针靠近一个对象的连接点时,跟着鼠标的指针就会出现一个“×
”号,鼠标左键点击元器件的连接点,移动鼠标就出现了粉红色的连接线变成了深绿色。
如果你想让软件自动定出线路径,只需左击另一个连接点即可。
这就是Proteus的线路自动路径功能(简称WAR),如果你只是在两个连接点用鼠标左击,WAR将选择一个合适的线径。
WAR可通过使用工具栏里的“WAR”命令按钮来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。
如果你想自己决定走线路径,只需在想要拐点处点击鼠标左键即可。
单片机电路的模拟
程序的编译:
该软件有自带编译器,在ISIS添加上编写好的程序,方法如下:
1.点击菜单栏“Source”,在下拉菜单点击“Add/RemoveSourceFiles(添加或删除源程序)”出现一个对话框。
2.点击对话框的“NEW”按钮,在出现的对话框找到文件设计好的huayang.asm,点击打开;
在“CodeGenerationTool”的下面找到“ASEM51”,然后点击“OK”按钮,设置完毕我们就可以编译了。
3.点击菜单栏的“Source”,在下拉菜单点击“BuildAll”,过一会,编译结果的对话框就会出现在我们面前。
如果有错误,对话框会告诉我们是哪一行出现了问题,点击出错的提示,光标不能跳到出错地方,但是能告诉出错的行号。
模拟调试。
4.选中单片机AT899C51,左键点击AT89C51,在出现的对话框里点击ProgramFile按钮,找到刚才编译得到的HEX文件,然后点击“OK”按钮就可以模拟了。
点击模拟调试按钮的运行按钮[],进人调试状态。
点击按键键盘,看到发光二极管,显示相应0~f的字符。
2.2KeiluVision2软件的介绍
Keil单片机集成开发软件是目前最流行的MCS-51单片机开发软件,Keil提供了包括C编译器、宏汇编、连接器、库管理及一个功能强大的仿真调试器在内的完整开发方案,通过一个集成开发环境(uVisoin2)将这些部分组合在一起。
掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,使用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
Keil软件使用的基本步骤
输入源程序→新建工程→工程详细设置→源程序编译得到目标代码文件。
第一步:
双击KeiluVision2的桌面快捷方式,启动Keil集成开发开发软件。
第二步:
新建文本编辑窗。
点击工具栏上的新建文件快捷按键,即可在项目窗口的右侧打开一个新的文本编辑窗。
第三步:
输入源程序。
在新的文本编辑窗中输入汇编语言程序,
图2-3:
输入源程序
第四步:
保存源程序。
保存文件时必须加上文件的扩展名,如果你使用汇编语言编程,那么保存时文件的扩展名为“.asm”,如果是C语言程序,文件的扩展名使用“*.C”。
注:
第3步和第4步之间的顺序可以互换,即可以先输入源程序后保存,也可以先保存后输入源程序第五步:
新建立Keil工程。
,点击"
工程"
→"
新建工程"
命令,将出现保存对话
第五步:
在保存工程对话框中输入你的工程的文件名,Keil工程默认扩展名为"
.uv2"
,输入名称后保存,将出现"
选择设备"
对话框,在对话框中选择CPU的型号。
第六步:
选择CPU型号。
为工程选择CPU型号,本新建工程选择了ATMEL公司的AT89C51单片机。
图2-4:
选择CPU型号对话框
第七步:
加入源程序到工程中。
在选择好CPU型号后,点击"
确定"
按钮返回主界面,此时可见到工程管理窗中出现“Target1”,点击“Target1”前面的“+”号展开下一层的“SourceGroup1”文件夹,此时的新工程是空的,“SourceGroup1”文件夹中什么文件都没有,必须把刚才输入的源程序加入到工程当中。
右击工程管理窗中的“SourceGroup1”,出现下拉菜单,点击“增加文件到组'
SourceGroup1'
”命令,将出现添加文件对话框
图2-5:
添加文件到工程命令
在添加文件对话框中,找到要添加到工程中的源程序文件。
注意:
在对话框中的文件类型默认为"
C源文件(*.c)"
,如果你要添加到工程中的是汇编语言程序,则在文件类型中必须选中“Asm源文件(*.a*;
*.src)”,以*.asm为扩展名的汇编源程序才会出现在文件列表框
双击该文件lich1.asm,即可将该文件添加到工程当中,另外也可以单击lich1.asm选中该文件,再点击"
Add"
按钮,也可以把文件加入工程中。
图2-6:
选中ASM源程序,加入到工程中
点击Add按钮后,把文件添加到工程中,再点击“关闭”按钮,返回到主界面。
当给工程添加源程序文件成功后,工程管理器中的“SourceGroup1”文件夹的前面会出现一个“+”号,单击“+”号,展开文件夹,双击即可打开该文件进行编辑修改源程序
图2-7:
文件成功加入工程
第八步:
工程目标'
Target1'
属性设置。
如下图7所示,在工程项目管理窗中的"
Target1"
文件夹上右击,出现下拉菜单,点击“目标'
属性”命令,就进入目标属性设置界面。
属性设置对话框大部分使用默认设置即可,我们主要设置其中的“目标”、“输出”、“调试”三个页面,下面对这三个页面的设置进行介绍。
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码键盘、A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 44 矩阵 键盘 仿真