课程设计(论文)-8255扫描键盘(4X4)显示设计.doc_第1页
课程设计(论文)-8255扫描键盘(4X4)显示设计.doc_第2页
课程设计(论文)-8255扫描键盘(4X4)显示设计.doc_第3页
课程设计(论文)-8255扫描键盘(4X4)显示设计.doc_第4页
课程设计(论文)-8255扫描键盘(4X4)显示设计.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录8255扫描键盘(4x4)显示:一、设计要求 1二、设计目的 1三、主要芯片及器件介绍 1四、电路原理图 5五、编程方法 7六、设计体会 10七、参考文献 108255扫描键盘(4x4)显示设计系 别:电子电气工程系 专业名称:电子信息工程 班 级:电子(3)班 学生姓名: 学 号:20048602115 指导教师: 2006 年8月29日一、设计要求利用可编程并行接口8255芯片与mcs-51单片机相连做一个有输入/输出的并行接口。输入端口接44的键盘,输出端口接8个七段数码管,作为输出显示。二、设计目的1理解mcs-51单片机输入输出的原理及工作方式。2掌握8255的编程方法。3掌握利用8279实现编码式键盘的连接和编程方法。4掌握多个七段数码管按位显示的实现方法。三、主要芯片及器件介绍1可编程并行接口 82558255是8位通用可编程并行输入输出接口芯片,它具有很强的功能,在使用时可利用软件编程来指定完成它的功能。18255的外部引线如图1:d0d7:双向数据信号线。用来传送数据和控制字。:读信号线。通常接系统总线的ior。:写信号线。通常接系统总线的iow。:片选输入端,低电平有效。a0 a1:口地址选择信号线。8255内部有3个口(即a口,b口,c口)还有一个控制寄存器,他们即可由程序寻址。a0 a1 上的不同编码可分别寻址上述3个口号一个控制寄存器,具体规定如下: a0 a1 选择 0 0 a口 0 1 b口 1 0 c口 1 1 控制寄存器 图 1 8255管脚图a0 a1与一起决定8255的接口地址。reset: 复位输入信号。此端的高电平可使8255复位。复位后,8255的a口,b口,c口均被定义为输入状态。pa0pa7:a口的8条输入输出信号线。该口的这8条线是工作与输入输出还是双向(输入/输出)方式可由软件编程来决定。pb0pb7:b口的8条输入输出信号线。利用软件编程可指定这8条线式输入还是输出。pc0pc7:c口的8条线根据其工作方式可作为数据输入或是输出线,也可以用作控制信号的输出或状态信号的输入线。28255的工作方式 8255有3种工作方式 1).工作方式0( 基本输入输出方式)在这种方式下,定义为输出的口均可以锁存数据,而定义为输入的口则无锁存能力 2)工作方式1(选通输入输出方式) 在这种方式下,a口和b口仍作为 数据的输入和输出口,同时还要利用c口的某些位作为控制和状态信号 3)工作方式2 (双向输入输出方式)这种工作方式只有a口才有。在a口工作于双向输入输出方式时,要利用c口的5条线才能实现。此时,b口只能工作在方式0或方式1,而c口剩下的3条线可作为输入输出线使用或作为b口方式1之下的控制线。 3 8255的方式控制字 8255的控制字由8位二进制书构成d7d6d5d4d3 d2d1d0 d7: 功能控制 (0:位操作;1:方式选择)d6 d5:方式选择 00:方式0; 01:方式1; 1x:方式2;d4: 控制a口8位 (0:输出; 1:输入)d3:控制c口高四位(0:输出; 1:输入)d2:方式选择 (0:方式0;1:方式1)d1:控制b口8位 (0:输出; 1:输入)d0 :控制c口低四位 (0:输出; 1:输入) 2 可编程键盘/显示器接口 82798279是一种可编程键盘/显示器接口芯片,它含有键盘输入和显示器输出两种功能。键盘输入时,它提供自动扫描,能与按键或传感器组成的矩阵相连,接收输入信息,它能自动消除开关抖动并能对多键同时按下提供保护。显示输出时,它有一个168位显示ram,其内容通过自动扫描,可由8或16 位led数码管显示。8279采用40引脚双列直插封装,其引脚排列及功能分别如图所示。其引脚功能如下:d0d7:数据总线,双向三态总线。clk:系统时钟输入端。reset:系统复位输入端,高电平有效,复位状态为:16个字符显示;编码扫描键盘双键锁定;程序时钟编程为31。:片选输入端,低电平有效。a0:数据选择输入端,a0=1时,cpu写入数据为命令字,读出状态字为状态字;a0=0时,cpu读、写均为数据。、:读、写信号输入端,低电平有效。irq:中断请求输出端,高电平有效。sl0sl3:扫描输出端,用于扫描键盘和显示器。可编程设定为编码(4中选1)或译码输出(16选1)。rl0rl7:回复线,它们是键盘或传感器的列信号输入端outa0outa3:a组显示信号输出端。outb0outb3:b组显示信号输出端 图2 8279管脚图3. 44的键盘图3 44的键盘.键盘的工作原理按键按照接口原理可分为编码键盘与非编码键盘两类,这两类键盘的主要区别是识别键符及给出相应键码的方法。编码键盘主要是用硬件来实现对键的识别,非编码键盘主要是由软件来实现键盘的定义与识别对于一组键或一个键盘,总有一个接口电路与cpu相连。cpu可以采用查询或中断方式了解有无将键输入并检查是哪一个键按下,将该键号送入累加器acc,然后通过跳转指令转入执行该键的功能程序,执行完后再返回主程序.按键结构与特点机械式按键在按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图7.2所示,抖动时间的长短与开关的机械特性有关,一般为510ms。图5 按键触点的机械抖动在触点抖动期间检测按键的通与断状态,可能导致判断出错。即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬件、软件两方面予以考虑。在键数较少时,可采用硬件去抖,而当键数较多时,采用软件去抖。在硬件上可采用在键输出端加r-s触发器(双稳态触发器)或单稳态触发器构成去抖动电路。在软件上采取的措施是:在检测到有按键按下时,执行一个10ms左右(具体时间应视所使用的按键进行调整)的延时程序后,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态;同理,在检测到该键释放后,也应采用相同的步骤进行确认,从而可消除抖动的影响。按键编码一组按键或键盘都要通过i/o口线查询按键的开关状态。根据键盘结构的不同,采用不同的编码。无论有无编码,以及采用什么编码,最后都要转换成为与累加器中数值相对应的键值,以实现按键功能程序的跳转。4. 七段数码管1)数码管结构数码管由8个发光二极管(以下简称字段)构成,通过不同的组合可用来显示数字0 9、字符a f。数码管又分为共阴极和共阳极两种结构。(a) 外型结构 (b) 共阴极 (c)共阳极图6 数码管结构图 2)数码管工作原理 共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起,通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。共阴极数码管的8个发光二极管的阴极(二极管负端)连接在一起,通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端,当某段驱动电路的输出端为高电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。四、电路原理图图7 74ls138译码电路连接图利用74ls138译码电路,实现8位七段数码管的按位逐个显示。e1 e2 e3为138的使能端,控制译码器的工作状态。a b c为地址选择端,通过abc的状态输入实现对y0y7的选择,被选中的输出端为低电平。图8 总电路图五、编程方法1.实验说明:在pa口与pb口组成的64点阵列上,把按键接在不同的点上,将得到不同的键码,本实验采用4x4的阵列,共可按16个键。显示部分由8279控制,由74ls138驱动8位数码管显示。2.实验流程图:图9 实验程序框图 图10 读键显示部分框图3.实验程序:8255接8500h,则命令字地址为8506h,pa口地址为8500h,pb口地址为8502h,pc口地址为8504h。8279接8700h,则8279的状态口地址为8701h; 8279的数据口地址为8700h。d8255 equ 8506h ;8255状态/数据口地址d8255a equ 8500h ;8255 pa口地址d8255b equ 8502h ;8255 pb口地址z8279 equ 8701h ;8279状态口地址d8279 equ 8700h ;8279数据口地址disptr equ 08h ;当前显示位置keyval equ 09h ;读到的键码org 0000hljmp startorg 0040hstart:mov sp,#60hlcall delay ;延时mov disptr,#30h ;显示缓冲区头指针mov dptr,#d8255mov a,#90h ;置8255状态 ;方式0,pb,pc口输出,pa口输入movx dptr,amov dptr,#z8279 ;置8279命令字mov a,#0d3hmovx dptr,a ;清led显示mov a,#00hmovx dptr,amov a,#38hmovx dptr,amov a,#0d1hkb_dis:lcall rd_kb ;读键盘mov a,#0ffhcjne a,keyval,disbuf ;判读到键sjmp kb_dis ;没有则继续读键disbuf:lcall disp ;把键移入显存lcall delay ;延时消抖lcall delaysjmp kb_disdisp: ;显存依次前移mov r1,#31h ;在最后加入新键值move:mov a,r1dec r1mov r1,ainc r1inc r1cjne r1,#38h,movemov 37h,keyvalmov keyval,#0ffhmov dptr,#z8279mov a,#90hmovx dptr,amov r0,#10h ;测试,依次显示09mov r1,#30hmov dptr,#d8279lp: mov a,r1movx dptr,ainc r1djnz r0,lpret;键盘扫描mov r0,#04h ;rd_kb:mov a,r0mov dptr,#d8255bmovx dptr,amov dptr,#d8255amovx a,dptrmov r1,#00hcjne a,#0ffh,keycal ;判键是否按下djnz r0,rd_kb ;扫描下一行sjmp nokey ;无键按下keycal: ;计算键码mov r0,#04hshift:rrc ajnc calcinc r1djnz r0,shiftcalc: ;换算显示码mov dptr,#dl_datmov a,r1movc a,a+dptrmov keyval,aretnokey: mov keyval,#0ffh ;返回无键标志retdelay: mov r0,#00h ;延时子程序delay1: mov r1,#00hdjnz r1,$djnz r0,delay1retdl_dat: db 3fh 06h 5bh 4fh 66h 6dh 7dh 07h 7fh 6fh ;09db 77h 7ch 39h 5eh 79h 71h ;afend六、设计体会这个设计是在一种紧张忙碌的气氛中结束的,虽然有点辛苦,但却学到了不少东西。 通过这个设计,我们对以前所学的理论知识温故知新,通过自己的思考与动手实践,使原来所学的理论知识得到进一步的巩固,同时,也学到了一些新的东西,进一步了解与单片机有关的一些技术是怎样与单片机结合在一起的。通过讨论8255扫描键盘显示的系统方案的论证设计、编程、软件硬件调试、查阅资料、绘图等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。这些东西都不是从课本上学的到的,正是在自己动手实践中,经历了一次一次的失败后,积累起来的。这是一笔宝贵的财富。这个设计,再次告诉我们,作实验或是其他任何事情时,需要有足够的细心与耐心。在作实验的过程中,总会碰到问题,因此,我们不仅要有较扎实的基础知识,还要有较强的心理素质。当实验的结果无法与理论值相一致时,不应该烦躁、气馁,而是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论