单片机8255A2x8键盘键值识别课设

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

成绩评定表学生姓名班级学号专业机械设计制造及其自动化课程设计题目键值识别评语组长签字:成绩日期20年月日课程设计任务书学院机械工程学院专业机械设计制造及其自动化学生姓名班级学号课程设计题目键值识别实践教学要求与任务:工作计划与进度安排:指导教师:岳国胜韩辉201年月日专业负责人:201年月日学院教学副院长:201年月日目录0.前言1.课程设计的目的和要求1.1、课程设计的目的1.2、课程设计的基本要求2.总体设计2.1、实验原理2.2、实验步骤2.3、实验电路2.4、程序框图2.5、程序接线3.硬件设计介绍4软件设计4.1参考程序5.所选元件清单5.1元件清单5.2程序实际接线6.结束语7.参考文献前言自单片机出现至今,单片机技术已走过了近20年的发展路程。纵观20年来单片机发展历程可以看出,单片机技术的发展以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,以广泛的应用领域拉动,表现出较微处理器更具个性的发展趋势。单片机长寿命这里所说的长寿命,一方面指用单片机开发的产品可以稳定可靠地工作十年、二十年,另一方面是指与微处理器相比的长寿命。随着半导体技术的飞速发展我国开始使用单片机是在1982年,短短五年时间里发展极为迅速。1986年在上海召开了全国首届单片机开发与应用交流会,有的地区还成立了单片微型计算机应用协会,那是全国形成的第一次高潮。截止今日,单片机应用技术飞速发展,我们上因特网输入一个“单片机”的搜索,将会看到上万个介绍单片机的网站,这还不包括国外的。随着微电子技术的高速发展,单片机在国民经济的各个领域得到了广泛的应用。首先,单片机技术不断进步,出现了许多新的技术和新的产品。本文以IntelMCS-51系列单片机为模型,阐述单片机的一般原理、应用以及单片机的影响,较为详细地介绍当前主要单片机厂家的产品系列及发展动向。主要内容包括:单片机的基本原理、硬件结构、发展趋势以及具体的应用介绍。本文主要目的是想让大家对单片机有一个更为深入的了解。科技的进步需要技术不断的提升。试想,曾经一块大而复杂的模拟电路花费了您巨大的精力,繁多的元器件增加了您的成本。而现在,只需要一块几厘米见方的单片机,写入简单的程序,就可以使您以前的电路简单很多。相信您在使用并掌握了单片机技术后,不管在您今后开发或是工作上,一定会带来意想不到的惊喜。1课程设计目的和要求1.要求利用8255A可编程并行接口芯片和矩阵键盘,编写程序,做到在键盘上每按一个数字键(0~F),用发光二极管将该代码显示出来。2.了解键盘电路的工作原理。本实验要求在电脑软件上,用并行接口实验为PC机扩展可编程并行接口;利用16位拨动开关提供输入数据,用数码管显示输出结果;。3掌握键盘接口电路的编程方法。设计人机界面接口,要求在微机屏幕上动态地显示当前实验的内容和实验的结果,包括8255A的工作方式,输入的数据和输出的结果设计人机界面接口,要求在微机屏幕上,以菜单方式列出并行接口8255A原理实验的内容,并根据实验内容设置好工作方式选择跳线开关,用户可以通过键盘选择实验的内容。方式08255为方式0、A口输入、B口输出,可用无条件传送方式控制输入/出。方式1其它要求同方式0,改用查询方式控制输入/出,用中断方式也可以,通过读取C口的状态字来获取状态。方式2使A口既能接受开关状态又能控制LED指示灯显示;要求先接收A口的开关数据,可用查询方式控制输入/出。2总体设计2.1、实验原理:1、识别键的闭合,通常采用行扫描法和行反转法。行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如所读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。本实验例程采用的是行反转法。行反转法识别键闭合时,要将行线接一并行口,先让它工作于输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口往各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上的输入值,那么,在闭合键所在的行线上的值必定为0。这样,当一个键被按下时,必定可以读得一对唯一的行线值和列线值。2、程序设计时,要学会灵活地对8255A的各端口进行方式设置。可将各键对应的键值(行线值、列线值)放在一个表中,将要显示的0~F字符放在另一个表中,通过查表来确定按下的是哪一个键并正确显示出来。3、利用实验箱上的8255A可编程并行接口芯片和矩阵键盘,编写程序,做到在键盘上每按一个数字键(0~F),用发光二极管将该代码显示出来。2.2、实验步骤:将键盘RL0~RL15接8255A的PB0~PB7;KA14~KA15接8255A的PA0~PA2;PC0~PC6接数码管a~g;接数码管dp接地。8255A芯片的片选信号8255CS接AT89C52D的P2.7/A15。2.3、实验电路:图2-1实验电路图2.4、程序框图:图2-2程序框图2.5、程序接线键盘RL0接8255APB0,PA0键盘RL2接8255APB1,PA0键盘RL4接8255APB2,PA0键盘RL6接8255APB3,PA0键盘RL8接8255APB4,PA0键盘RL10接8255APB5,PA0键盘RL12接8255APB6,PA0键盘RL14接8255APB7,PA0键盘RL1接8255APB0,PA1键盘RL3接8255APB1,PA1键盘RL5接8255APB2,PA1键盘RL7接8255APB3,PA1键盘RL9接8255APB4,PA1键盘RL11接8255APB5,PA1键盘RL13接8255APB6,PA1键盘RL15接8255APB7,PA18255A芯片的片选信号8255CS接AT89C523硬件设计介绍3.1、8255A芯片说明:8255A是Intel公司生产的可编程输入输出接口芯片,它具有3个8位的并行I/O口,具有三种工作方式,可通过程序改变其功能,因而使用灵活,通用性强,可作为单片机与多种外围设备连接时的中间接口电路。8255有三种基本工作方式,三种工作方式由工作方式控制字决定,方式控制字由CPU通过输入/输出指令来提供.三个端口中PC口被分为两个部分,上半部分随PA口称为A组,下半部分随PB口称为B组.其中PA口可工作与方式0、1和2,而PB口只能工作在方式0和1。8255共有40个引脚,采用双列直插式封装,各引脚功能如下:D0--D7:三态双向数据线,与单片机数据总线连接,用来传送数据信息。CS:片选信号线,低电平有效,表示芯片被选中。RD:读出信号线,低电平有效,控制数据的读出。WR:写入信号线,低电平有效,控制数据的写入。Vcc:+5V电源。PA0--PA7:A口输入/输出线。PB0--PB7:B口输入/输出线。PC0--PC7:C口输入/输出线。RESET:复位信号线。A1、A0:地址线,用来选择8255内部端口。GND:地线。3.2、74LS373芯片介绍:74LS373是带有三态门的八D锁存器,当使能信号线OE为低电平时,三态门处于导通状态,允许1Q-8Q输出到OUT1-OUT8,当OE端为高电平时,输出三态门断开,输出线OUT1-OUT8处于浮空状态。G称为数据打入线,当74LS373用作地址锁存器时,首先应使三态门的使能信号OE为低电平,这时,当G端输入端为高电平时,锁存器输出(1Q-8Q)状态和输入端(1D-8D)状态相同;当G端从高电平返回到低电平(下降沿)时,输入端(1D-8D)的数据锁入1Q-8Q的八位锁存器中。当用74LS373作为地址锁存器时,它们的G端可直接与单片机的锁存控制信号端ALE相连,在ALE下降沿进行地址锁存。引脚说明如下:D0~D7:锁存器8位数据输入线Q0~Q7:锁存器8位数据输出线GND:接地引脚Vcc:电源引脚,+5V有效OE:片选信号引脚G:锁存控制信号输入引脚。3.3、AT89C52芯片介绍AT89C52是美国Atmel公司生产的低电压、高性能CMOS8位单片机,片内含8KB的可反复檫写的程序存储器和12B的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内配置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89C52单片机可灵活应用于各种控制领域。AT89C52单片机属于AT89C51单片机的增强型,与Intel公司的80C52在引脚排列、硬件组成、工作特点和指令系统等方面兼容。其主要工作特性是:片内程序存储器内含8KB的Flash程序存储器,可擦写寿命为1000次;片内数据存储器内含256字节的RAM;具有32根可编程I/O口线;具有3个可编程定时器;中断系统是具有8个中断源、6个中断矢量、2个级优先权的中断结构;串行口是具有一个全双工的可编程串行通信口;具有一个数据指针DPTR;低功耗工作模式有空闲模式和掉电模式;具有可编程的3级程序锁定位;AT89C52工作电源电压为5(1+0.2)V,且典型值为5V;AT89C52最高工作频率为24MHz。4软件设计4.1参考程序ORG0000HSJMPSTARTORG0030H;--------------------------------------DUMA:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H//共阴段码DB7FH,6FH,77H,7CH,39H,5EH,79H,71H;--------------------------------------START:MOVDPTR,#7F03H//8255初始化MOVA,#90HMOVX@DPTR,AMOVA,#16;--------------------------------------KEY1:ACALLKS1//判断有无键按下,返回PA口状态存放在A中JZKEY1//无则返回ACALLDELAY//调用延时子程序ACALLKS1//再次判断有无键按下JZKEY1//无则返回;MOVR2,#0FEH//初始列扫描字MOVR3,#8//检查8次MOVR4,#0//初始键号LK4:MOVDPTR,#7F01H//指向PB口MOVA,R2MOVX@DPTR,AMOVDPTR,#7F00H//指向PA口MOVXA,@DPTRJNBACC.0,LK3INCR4JNBACC.1,LK3INCR4MOVA,R2RLA//无则左移一位列扫描字,继续判断下一列MOVR2,ADJNZR3,LK4LK3:ACALLKS1JNZLK3//判断按下的键有没有弹起,无则原地等待继续判断;MOVA,R4//键号放于A中MOVDPTR,#0030H//指向段码表首址MOVCA,@A+DPTR//键号转成相应的段码MOVDPTR,#7F02H//指向PC口MOVX@DPTR,A//数码管显示;SJMPKEY1;--------------------------------------KS1:MOVDPTR,#7F01H//指向PB口MOVA,#0MOVX@DPTR,AMOVDPTR,#7F00H//指向PA口MOVXA,@DPTRCPLAANLA,#03HRET//返回PA口数据存放在A中,若有键按下,则A不等于零;--------------------------------------DELAY://延时子程序,约10msMOVR7,#20D1:DJNZR6,$DJNZR7,D1RETEND5所选元件清单5.1元件清单:表5-1元件清单原件数量AT89C52174LS37318255A1数码管1按键165.2程序实际接线数码管的不同笔段的组合构成了不同字符的字形。为了获得不同的字形,各笔段所加的电平也不同,因此各个字形所形成的编码是不一样的。例如,对于共阳极数码管,如果要显示字符2,则笔段a、b、g、e、d发光,对应的引脚为低电平;其余各笔段不发光,对应的引脚为该电平。所以字符2的字

1 / 14
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功