单片机实验五报告单片机键盘实验_第1页
单片机实验五报告单片机键盘实验_第2页
单片机实验五报告单片机键盘实验_第3页
单片机实验五报告单片机键盘实验_第4页
单片机实验五报告单片机键盘实验_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

南昌大学试验汇报学生姓名:学号:专业班级:试验类型:⃞验证⃞综合■设计⃞创新试验日期:.05.18试验成绩:试验五单片机键盘试验(一)试验目的1.掌握单片机键盘控制;2.掌握数码管显示控制。(二)设计规定1.行列扫描按键键值为0~F;2.按键只支持单键按下,不支持多键同步按下;3.规定用数码管显示按键值。(三)试验原理1.矩阵式键盘的设计按键数目较多的杨合常采用矩阵式(也称行列式)键盘。键盘由行线和列线构成,按键位于行、列的交叉点上,如下图所示,一种4×4的行列构造可构成一种16个按键的键盘,需要一种8位的并行I/O口。很明显,在按键数目较多的场所,矩阵式键盘要比独立式键盘节省较多的I/O口线。对下图所示的矩阵式键盘的查询扫描,一般包括如下4个环节。(1)首先鉴别整个键盘有无按键按下措施为单片机驱动列线P0.0-P0.3输出全0,然后读行线P0.4-P0.7的状态,若全为1,则键盘上没有闭合键;若P0.4-P0.7,则有键按下。(2)清除键的抖动当鉴别出也许有键按下时,软件延时一段时间(10ms左右)再鉴别键盘的状态,若仍有键闭合,则认为键盘上有确定的键按下,否则是键抖动。(3)求出按下键的键号上图中的16个按键,键号依次为0,1,...15。各行的首键号分别为0,4,8,12,列号依次为0,1,2,3。行线通过上拉电阻接+5V,当无键按下时,行线为高电平,当有按键按下时,对应的行线与列线短接,行线的电平将由此行线相连的列线电平决定。假如把行线设置为单片机的输入口线,列线设置为单片机的输出口线,则按键号的识别过程是:先令0列线P0.0为低电平0,其他3根列线都为高电平,遂行检查行线状态。假如行线P0.4-P0.7都为高电平1,则P0.0这列上没有按键闭合,若P0.4-P0.7中有一行为低电平,则该行线与列线交叉的按键按下。假如P0.0这一列上没有按键闭合,接着再使P0.1为低电平,其他列线为高电平。用同样的措施检查P0.1这列上有无按键闭合,以此类推。这样采用逐列扫描(只有列为低),然后读入各行线的电平,即可求出设下键的键号N=行的首键号+列号。各行的首键号分别为0,4,8,12,列号依次为0,1,2,3。编程时设置1个列号计数器,初值为0,每扫描1列,列号计数器加1。(4)判闭合键与否松开假如松开则将键号送入对应的寄存器中保留,单片机根据按下键的键号,对该键的一次闭合仅作一次键功能处理。2.数码管显示键值上述的键盘扫面环节结束后,键号存储在对应的寄存器中,要把键号显示出来,只须向P4.0口输出对应的段码、位码以及向P4.3和P5.4口输出对应信号,运用74HC595芯片控制八段数码管从而到达显示对应键号的效果。电路图如下所示:(四)试验设备硬件:PC机、USB数据传播线、STC单片机综合试验箱软件:兼容51单片机的Keiluvision5集成开发环境、STC-ISP单片机烧录软件(五)试验成果试验源代码如(七)所示,对代码进行编译,提醒0错误0警告,生成hex文献将单片机试验箱和电脑通过USB数据线连接,打开STC-ISP检测串口点击点开程序文献,选择刚刚生成的hex文献,点击下载程序(六)成果讨论与心得体会成果分析讨论:将程序烧录至单片机后,可观测数码管最高位显示0(初始值),其他位消隐。按下矩阵键盘的键,数码管显示对应的键号,从0-F都能完整显示,完毕试验。心得体会:通过本次试验,我学会了怎样使用矩阵键盘,掌握了矩阵键盘的扫描原理,理解了矩阵键盘的电路构造以及数码管的显示方式。但愿通过自己多次尝试能在此后试验中纯熟使用矩阵键盘并将其运用到其他方面。(七)附录:试验源代码P4DATA 0C0HP5DATA 0C8HP0M1 DATA 0x93 ; P0M0 DATA 0x94 ; P4M1 DATA 0xB3 ; P4M0 DATA 0xB4 ; P5M1 DATA 0xC9 ; P5M0 DATA 0xCA ; P_HC595_SER BIT P4.0 ;P_HC595_RCLK BITP5.4 ;P_HC595_SRCLK BITP4.3 ;KeyState DATA 70H ;ORG 0000H LJMP F_MainORG 0100HF_Main:CLR AMOV P0M1, A ;MOV P0M0, A ;MOV P4M1, A ;MOV P4M0, A ;MOV P5M1, A ;MOV P5M0, A ;MOV psw, #00H ;MOV 27H , #40H ;MOV KeyState, #00H ;F_Main_Loop: LCALL KEY2 ;LCALL F_delay_ms ; LCALL F_DisplayScan ;AJMP F_Main_Loop ;KEY2:LCALL KS ;JNZ S1 ;LCALL F_delay_ms ;AJMP QUIT ;S1:LCALL F_delay_ms ;LCALL KS ;JNZ S2 ;AJMP QUIT ;S2:MOV R4, #0FEH ;MOV R5, #00H ;S3:MOV P0, R4 ;L0:JB P0.4, L1 ;MOV A, #00H ;AJMP LK ;L1:JB P0.5, L2 ;MOV A, #04H ; AJMP LK ;L2: JB P0.6, L3 ; MOV A, #08H ; AJMP LK ;L3: JB P0.7, NEXT ;MOV A, #0CH ;LK:ADD A, R5 ;PUSH ACC ;LJMP S4 ;NEXT:INC R5 ;MOV A, R4 ;JNB ACC.3, S4 ;RL A ;MOV R4, A ;AJMP S3 ;S4:LCALL KS ;JNZ S4 ;POP ACC ;MOV KeyState,A ;LJMP QUIT ;KS: MOV P0, #0FH ;MOV A, P0 ;XRL A, #0FH ;RETQUIT: RETF_delay_ms: MOV R2, #25 ;D1:MOV R3, #200DJNZ R3, $DJNZ R2, D1RETF_Send_595:PUSH 01H ;MOV R1, #8 ;L_Send_595_Loop:RLC A ;MOV P_HC595_SER,C ;SETB P_HC595_SRCLK ;CLR P_HC595_SRCLK ;DJNZ R1,L_Send_595_Loop ;POP 01H ;RETF_DisplayScan: PUSH ACC ;MOV A, #080H ; CPL A ;LCALL F_Send_595 ;POP ACC ;MOV A, KeyState ; MOV DPTR, #T_Display ;MOVC A, @A+DPTR ;LCALL F_Send_595 ;SETB P_HC595_RCLK ;CLR P_HC595_RCLKLCALL F_de

温馨提示

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

评论

0/150

提交评论