




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
. . . . . 微 机 测 控 电 路 课 程 设 计题目:采用微机的键盘检测与提示电路及程序设计方案A05院 (系) 机电及自动化学院 专 业 测控技术与仪器(辅助)学 号 姓 名 级 别 2 0 0 9 指导老师 2012年6月目录1. 键盘接口技术- 2 -1.1 键盘的物理结构- 2 -1.2 按键的组成形式- 2 -1.3键盘的抖动、干扰和消除- 2 -1.4键盘的工作过程- 3 -1.5键盘的识别方式- 3 -1.6键盘的判别方法- 3 -2Msc-51单片机与8255A芯片的连接- 3 -2.1 Msc-51单片机的并行I/O口扩展- 3 -2.2 Msc-51单片机的并行I/O端口- 3 -2.3 8255A可编程并行I/O口扩展- 4 -2.4 Msc-51单片机与8255的连接- 4 -3.硬件连接与程序- 4 -3.1元器件选择以及硬件连接图- 4 -3.2 3X4键盘工作流程图以及相关程序- 5 -4.心得体会- 7 -参考文献:- 8 -采用微机的键盘检测与提示电路及程序设计 方案A051. 键盘接口技术1.1 键盘的物理结构本方案采用机械式结构键盘。机械式结构键盘一般使用类似金属接触开关的原理,实现触点的导通和断开。1.2 按键的组成形式本方案采用3X4矩阵式键盘。矩阵式键盘由行线、列线及位于行列线交叉点的按键等部分组成。矩阵式键盘由于其矩阵式结构,单片机一个I/O口的状态已不能满足要求,需通过连接到键盘上的两根I/O口线的状态来共同确定按键的状态。采用行线和列线信号的状体分别处理,综合考虑方可确定按键闭合的位置。1.3键盘的抖动、干扰和消除当按键被按下时会产生前沿抖动,当按键弹起时会产生后沿抖动。其抖动波形如图1所示。这是机械式触点式按键的共性。抖动时间的长短取决于按键的机械特性和操作状态。一般为10100ms,这是在设计程序时必须考虑的一个重要参数。按键闭合的时间取决于操作人员的按键时间,一般为零点几秒到几秒之间。为消除抖动的影响,可采用硬件消抖和软件消抖。本方案采用软件消抖的方法。软件消抖的基本原理是当检测出有按键被按下时,先执行一个延时程序以产生数毫秒的延时(一般为1020ms),待接通时间的前沿抖动消失后在判别按键是否还被按下。当按键释放时也需延时数毫秒,待后沿抖动消失后再判别按键是否真正释放。1.4键盘的工作过程键盘工作过程一般分为以下几个过程:单片机判断键盘是否有按键被按下;消除按键抖动;确定有按键被按下并且按键已弹起;确定按键的位置;进行键值译码,即执行相应键的操作;当有两个及两个以上按键同时被按下时执行先按下按键的相应操作。1.5键盘的识别方式键盘的扫描方式主要有主动扫描方式、中断触发方式和定时扫描方式等。本方案采用主动扫描方式。CPU对键盘的扫描采取此方式时,一旦进入键扫描状态,则反复地扫描键盘,等待用户从键盘上输入命令或数据,而在执行键入命令或处理键入数据过程中,CPU将不再相应键入要求,直到CPU返回重新扫描键盘为止。 1.6键盘的判别方法矩阵式键盘按键位置的判别方法主要有:扫描法和线反转法。本方案采用行扫描法。扫描法的基本过程是快速判断是否有按键被按下。逐行置零电平其余各行置为高电平,检查各列线电平的状态,此时,如果读到某一列电平变为零电平,则可确定此列与当前输出为零的行的交叉点上的按键被按下。即获得了被按下的键所处的行号与列号,根据行号与列号置信息便可得到当前按键的位置或键值。2Msc-51单片机与8255A芯片的连接2.1 Msc-51单片机的并行I/O口扩展51单片机功能较强,使用方便。但对于一些较大的应用系统来说,它毕竟是一块集成电路芯片,其内部功能略显不足,这时就需要在片外扩展一些外围功能芯片。在51单片机外围可以扩展存储器芯片、I/O口芯片及其他功能芯片。 51单片机共有4个并行I/O口,51单片机可提供给用户使用的外部扩展端口只有P1口和P3口部分口线,因此很多系统在进行设计时需要进行I/O口扩展。2.2 Msc-51单片机的并行I/O端口P0口和P2口可以作为并行扩展总线,可以扩展I/O口。P2口输出高8位地址A8A15,具有输出锁存功能,保留高8位的地址信息。P0作为地址/数据分时复用通道口,为保存地址信息,需外加地址锁存器低8位的地址信息,有地址锁存允许信号ALE的下降沿控制锁存操作。2.3 8255A可编程并行I/O口扩展(1)引脚说明D7D0三态双向数据线:与单片机数据总线连接,用来传输数据信息。/CS:片选信号线,低电平有效,表示芯片被选中/RD:读出信号线,低电平有效,控制数据的读出/WR:写入信号线,低电平有效,控制数据的写入PA7PA0:A口输入/输出线PB7PB0:B口输入/输出线PC7PC0:C口输入/输出线A1A0:地址线,用来选择8255内部端口扩展(2)工作方式选择8255有三种工作方式:方式0:基本输入输出方式1:选通输入输出方式2:双向传送工作方式的选择由工作方式控制字来决定。方式控制字的格式如下:D7D6D5D4D3D2D1D0置方式标志1:有效方式选择00:方式001:方式11X:方式2端口A1:输入 0:输出端口C(上半部)1:输入 0:输出方式选择1:方式10:方式0端口B1:输入0:输出端口C(下半部)1:输入0:输出2.4 Msc-51单片机与8255的连接连接时注意需要连接74LS373做地址锁存器。P0口为复用口,先输出低8位地址A0A7,用ALE信号的负跳变将A0A7打入地址锁存器以后,接着P0口作为数据总线使用传送数据。/G为数据锁存线:当/G为高电平时,输入与输出直通。当/OE为低电平时,输出三态门导通。3.硬件连接与程序3.1元器件选择以及硬件连接图本方案硬件由80C51单片机、接口芯片8255、12个按键构成3X4键盘、一个共阳极七段LED数码管,74LS373地址锁存器,若干电阻,电容等组成。其中8255的PA口为基本输出口,输出列状态。PC口为基本输入口,输入行状态。51单片机的P1口连接数码管。P0口接地址寄存器以及8255A芯片的D0D7口。硬件连接图如下:3.2 3X4键盘工作流程图以及相关程序 MOV DPTR,#7F03H ;DPTR作地址指针,指向控制口MOV A,#81H ;PA口输出,PC口输入,方式控制字应为81H(10000001B)MOVX DPTR,A ; 将81H写入控制寄存器KEY1:ACALL KS1;调用判断有无键按下子程序JNZ LK1;有按键按下时,(A)不等于0转消抖延时AJMP KEY1;无按键按下时返回LK1: ACALL TM12ms ;调12ms延时子程序ACALL KS1;查有无按键按下,若有,则确认按下JNZ LK2;键(A)不等于0逐列扫描AJMP KEY1;不是真有按键按下,则返回LK2:MOV R2,#0FEH;令第0列低电平MOV R4,#00H;将初始列(第0列)列号送入R4LK4:MOV DPTR,#7F00H ;DPTR指向PA口MOV A,R2 ;列扫描字送至8255A的PA口MOVX DPTR,AINC DPTR ;DPTR指向PC口INC DPTRMOVX A,DPTR ;从PC口读入行状态JB ACC.0,LONE ;若第0行无按键按下,则跳转至第一行MOV A,#00H;若第0行有按键按下,将00H赋值给AAJMP LKP;转求键码LONE:JB ACC.1,LTWO;查第1行无按键按下,转查下一行MOV A,#01H;第一行有按键按下,将01H赋值给AAJMP LKP;转求键码LTWO:JB ACC.2,NEXT;查第2行无按键按下,转查下一列MOV A,#02H;第2行有按键按下,将02H赋值给ALKP:;求键码,键码=行号x列数+列号 MOV B,#04H;共有4列 MUL AB;行号x列数 ADD A,R4PUSH ACC;键码进栈保护LK3:ACALL KS1;等待键码释放JNZ LK3;键未释放,等待POP ACC;键释放,键码赋值给AMOV DPTR,#TAB1;送段码表头地址 MOVC A,A+DPTR MOV P1, A;在P1口显示TAB1: DB 0C0H, 0F9H, 0A4H, 0B0HDB 99H,92H,82H,0F8H,80H,90H ,88HDB 83H, 0C6HRETNEXT:INC R4 ;准备扫描下一列,列号加1MOV A,R2 ;将列号送给AJNB ACC.3,KEND;判断3列扫描否?扫描完返回RL A;扫描字左移一位,变为下一扫描字MOV R2,A;扫描字送入R2AJMP LK4;转下一扫描KEND:AJMP KEY1KS1:MOV DPTR,#7F00H ;DPTR指向8255A的PA口MOV A,#00H;列状态全部置为低电平MOVX DPTR,AINC DPTR ;DPTR指向8255的PC口 INC DPTRMOVX A,DPTRCPL A;变正逻辑,以高电平表示有键按下ANL A,#0FH;屏蔽高4位,只保留低4位行线值RET;出口状态:(A)不等于0时有键按下;延时子程序TM12ms: MOV R7,#18HTM: MOV R6,#0FFHTM6: DJNZ R6,TM6DJNZ R7,TMRET4.心得体会 首先很高兴自己做的设计可以成功运行,这几天的努力终于有了成果。此次课程设计,第一次通过自己查询专业相关知识,研究消化专业内容,将老师上课所授与自学真正的运用在实践中。所以,当课设完成后,感觉自己收获了很多实实在在的专业知识,曾经冷冰冰的书本也不再是考试的工具。总结下来,此次设计的重难点有两个:1.程序的设计及其原理2.硬件的连接。此次课程设计,我的设计题目是A05,“运用3X4机械式按键+接口芯片8255构成矩阵式键盘+逐行扫描法+主动扫描方式”。通过阅读单片机教科书以及相关书籍,了解了键盘的工作方式等。随后,又搜集了大量的书籍资料了解8255A芯片的工作方式,引脚作用等。检测按键有效后需要有指示灯显示其有效,于是我简单查询了7段LED数码管的显示位数的原理,以及段码的求法。由于此次设计显示相对简单,我选择了静态驱动方式的数码管。在参考书籍及自我学习掌握了这些后,我便开始了Proteus的电路图设计以及在Keil上编译程序。在画图时,查找资料发现有的51单片机与8255A的连接有地址寄存器,而有的例子没有,但没有细细研究。在keil上编译程序时,发现自己的程序一直有问题。求助同学无果,后来发现即使是没有语法错误,但仍然无法使数码管显示,确定是逻辑错误,却发现自己并没有认真研究程序。随后认真学习研究了逐行扫描的一个例子后,终于很清楚地明白了自己的程序错在哪里,发现自己之前想走捷径的方法实在是吃力不讨好。而此时自己对于这个设计的兴趣大大的增强了。但是此时却不知道8255A的PA口地址是多少,于是求助老师,经提点,才发现自己对于51单片机的I/O端口的扩展并没有认真掌握。阅读书籍后明白地址寄存器的作用,以及4个I/O端口的作用,掌握了PA口地址的求法终于选择A口输出,C端口输入,得出A、B、C端口和控制字的地址分别为7F00H、7F01H、7F02H和7F03H。在熟练掌握硬件连接以及程序思想后,很有自信地将硬件以及程序纠错,最后成功地运行了出来。看到数码管显示相应的数字后,我的欣喜是无以言表的。虽然这次的课程设计只是一个简单的设计,但是我这是我第一次用所学专业知识做出实际的东西。在做设计的时候,发现自己有些老师上课教授过的知识还有所欠缺,也发现自我学习是多么重要的事情此次课程设计收获颇多,学到最重要的事情就是,一问地追求捷径,反而是在给自己铺设障碍。参考文献:1 李华.MCS-5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家具产品的社会责任与环保考量研究考题试题及答案
- 学习2025年创业扶持政策在地区间的差异试题及答案
- 家具行业设计中的创新思维方法试题及答案
- 幼儿园数学游戏性测验题及答案
- 炳烛而学试题及答案
- 老人驾校测试题及答案
- 教师开展反思型教育的原则与实践试题及答案
- 河南省南阳市地区2022-2023学年高一9月阶段检测语文 含解析
- 施工现场事故处理流程2025年试题及答案
- 施工安全管理中的团队协作挑战试题及答案
- 2022年中级经济法讲义
- GB/T 4927-2008啤酒
- GB/T 15707-2017高压交流架空输电线路无线电干扰限值
- 医学统计学练习题与答案
- 西班牙文化概况
- 桩侧摩阻力ppt(图文丰富共28)
- 预拌混凝土出厂合格证2
- 小学校本课程教材《鼓号队》
- 云南省饮用水生产企业名录534家
- 9E燃机系统培训演3.25
- 苏霍姆林斯基教育思想-PPT课件
评论
0/150
提交评论