欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    小键盘按键识别微机原理课程设计报告_计算机-计算机硬件与维护.pdf

    • 资源ID:93968893       资源大小:425.03KB        全文页数:14页
    • 资源格式: PDF        下载积分:5.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要5.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    小键盘按键识别微机原理课程设计报告_计算机-计算机硬件与维护.pdf

    .-.可修编.微机原理与接口技术 课程设计报告 专 业:班 级:姓 名:学 号:.-.可修编.指导教师评语:成绩:签名:年 月 日 小键盘按键识别 一 课题任务与要求 实验箱上有一个 24 键小键盘,出厂时按键接点已经按图所示连接。小键盘有 8 根横向引出线。实验前将 8 根横向引出线与 PA0PA7 相连,3 根纵向引出线与 PB0PB2 相连,再从“I/O口地址译码器”选择一个译码器输出连接到 8255 的片选端,做好上述连接之后,就构成了以 8255 为核心的键盘输入电路要求:在实际的自动控制系统中,键盘输入电路的作用是输入数据(09,AF)或者输入控制信号(G,M,P,R,W,X,Y,S)。实现上述功能的核心程序是“按键识别”。本实验要求设计按键识别程序,当按下小键盘上某一个键的时候,主机屏幕显示闭合键的键名,按下小键盘“R”键之后停止演示。二完成任务的方法或方案简介 任务与要求实验箱上有一个键小键盘出厂时按键接点已经按图所示连接小键盘有根横向引出线实验前将根横向引出线与相连根纵向引出线与相连再从口地址译码器选择一个译码器输出连接到的片选端做好上述连接之后就构成了以为能的核心程序是按键识别本实验要求设计按键识别程序当按下小键盘上某一个键的时候主机幕显示闭合键的键名按下小键盘键之后停止演示二完成任务的方法或方案简介可修编本程序显示数字到刚刚开始提出两中解决方案一是用跳种方案函数用来将中的键值显示在数码管上设定口方式输出口方式输入函数通过行值和列值查出输入的键值并将它保存在中如果输入是则赋值为如果输入非法字符则赋值为设定如果是则退出程序函数用来改变中保存的键值将中的键.-.可修编.本程序显示数字 0 到 9,刚刚开始提出两中解决方案一是用跳转法直接显示数值,二是用查找法间接显示数值,本程序是用第一种方案,虽然程序多了些,但直观容易理解,故采纳第一种方案。DISPLAY函数用来将 BUFFER 中的键值显示在数码管上。设定 A口方式 0 输出,B 口方式 0 输入。GETINPUT函数通过行值和列值查出输入的键值,并将它保存在 AL 中,如果输入是R,则 AL赋值为 FFH;如果输入非法字符,则 AL赋值为 0AH。设定如果是 R则退出程序.CHANGE函数用来改变 BUFFER中保存的键值,将 BUFFER中的键值移位,最后一位加入 AL中的新键值。CLOSEALL此函数用在退出程序时将数码管关闭.以上是主题函数,在设计过程中还碰到了一些细节问题,例数码管的显示才用延迟 20MS 的办法解决,具体方案在 DISPLAY函数中。三实现系统 1、程序框图:任务与要求实验箱上有一个键小键盘出厂时按键接点已经按图所示连接小键盘有根横向引出线实验前将根横向引出线与相连根纵向引出线与相连再从口地址译码器选择一个译码器输出连接到的片选端做好上述连接之后就构成了以为能的核心程序是按键识别本实验要求设计按键识别程序当按下小键盘上某一个键的时候主机幕显示闭合键的键名按下小键盘键之后停止演示二完成任务的方法或方案简介可修编本程序显示数字到刚刚开始提出两中解决方案一是用跳种方案函数用来将中的键值显示在数码管上设定口方式输出口方式输入函数通过行值和列值查出输入的键值并将它保存在中如果输入是则赋值为如果输入非法字符则赋值为设定如果是则退出程序函数用来改变中保存的键值将中的键.-.可修编.2、实验电路图:预置:A 口为方式 0 输出 0 PA7-PA0 PB2-PB0 AH AH=7?延时 20ms 预置:B 口为方式 0 输出 A 口为方式 0 输入 列值 PB2-PB0 PA7-PA0 AL 根据 AX 内容,查找键值表,显示相应的键值。是 R?结束演示 任务与要求实验箱上有一个键小键盘出厂时按键接点已经按图所示连接小键盘有根横向引出线实验前将根横向引出线与相连根纵向引出线与相连再从口地址译码器选择一个译码器输出连接到的片选端做好上述连接之后就构成了以为能的核心程序是按键识别本实验要求设计按键识别程序当按下小键盘上某一个键的时候主机幕显示闭合键的键名按下小键盘键之后停止演示二完成任务的方法或方案简介可修编本程序显示数字到刚刚开始提出两中解决方案一是用跳种方案函数用来将中的键值显示在数码管上设定口方式输出口方式输入函数通过行值和列值查出输入的键值并将它保存在中如果输入是则赋值为如果输入非法字符则赋值为设定如果是则退出程序函数用来改变中保存的键值将中的键.-.可修编.3、8255 方式选择控制字 1 D6 D5 D4 D3 D2 D1 D0 方式选择控制字标志 A 组方式:00方式 0 01方式 1 1X方式 2 A 口 IO 1输入 0输出 C上 半口 IO:1输入 0输出 B 组方式:0方式 0 1方式 1 B 口 IO:1输入 0输出 C 下半口 IO:1=输入 0输出 任务与要求实验箱上有一个键小键盘出厂时按键接点已经按图所示连接小键盘有根横向引出线实验前将根横向引出线与相连根纵向引出线与相连再从口地址译码器选择一个译码器输出连接到的片选端做好上述连接之后就构成了以为能的核心程序是按键识别本实验要求设计按键识别程序当按下小键盘上某一个键的时候主机幕显示闭合键的键名按下小键盘键之后停止演示二完成任务的方法或方案简介可修编本程序显示数字到刚刚开始提出两中解决方案一是用跳种方案函数用来将中的键值显示在数码管上设定口方式输出口方式输入函数通过行值和列值查出输入的键值并将它保存在中如果输入是则赋值为如果输入非法字符则赋值为设定如果是则退出程序函数用来改变中保存的键值将中的键.-.可修编.4、源程序:TITLE LITTLEKEYBOARD SSEG SEGMENT PARA STACK STACK DB 256 DUP(0)SSEG ENDS DSEG SEGMENT A_8255 EQU 210H B_8255 EQU 211H CON_8255 EQU 213H BUFFER DB 6 DUP(0)HANG DB?LIE DB?NEWHANG DB?NEWLIE DB?TABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,DSEG ENDS CSEG SEGMENT ASSUMECS:CSEG,DS:DSEG,SS:SSEG START PROC NEAR MOV AX,DSEG MOV DS,AX CALL CLOSEALL(关掉数码管,防止因为最初数码管有显示而使程序执行不正常。)CMPAGAIN:CALL DISPLAY(DISPLAY函数用来将 BUFFER 中的键值显示在数码管上。)MOV DX,CON_8255 MOV AL,10000010B OUT DX,AL 任务与要求实验箱上有一个键小键盘出厂时按键接点已经按图所示连接小键盘有根横向引出线实验前将根横向引出线与相连根纵向引出线与相连再从口地址译码器选择一个译码器输出连接到的片选端做好上述连接之后就构成了以为能的核心程序是按键识别本实验要求设计按键识别程序当按下小键盘上某一个键的时候主机幕显示闭合键的键名按下小键盘键之后停止演示二完成任务的方法或方案简介可修编本程序显示数字到刚刚开始提出两中解决方案一是用跳种方案函数用来将中的键值显示在数码管上设定口方式输出口方式输入函数通过行值和列值查出输入的键值并将它保存在中如果输入是则赋值为如果输入非法字符则赋值为设定如果是则退出程序函数用来改变中保存的键值将中的键.-.可修编.(设定 A口方式 0 输出,B 口方式 0 输入)AGAIN:CALL DISPLAY MOV DX,A_8255 MOV AL,0 OUT DX,AL (0PA7-PA0)MOV DX,B_8255 IN AL,DX AND AL,00000111B(取出 PB0PB2 CMP AL,00000111B JE AGAIN MOV LIE,AL(将列值保存)CALL DELAY1(延时 20ms)MOV DX,CON_8255 MOV AL,10010000B OUT DX,AL(预置 A口方式 0 输入,B口方式 0 输入)MOV DX,A_8255 IN AL,DX MOV HANG,AL(将行值保存)CALL GETINPUT(GETINPUT函数通过行值和列值查出输入的键值,并将它保存在 AL中,如果输入是 R,则AL赋值为 FFH;如果输入非法字符,则 AL赋值为 0AH。)CMP AL,0AH JE CMPAGAIN(如果是非法字符则跳回)CMP AL,0FFH JNE CONTINUE(如果是 R则退出程序.)任务与要求实验箱上有一个键小键盘出厂时按键接点已经按图所示连接小键盘有根横向引出线实验前将根横向引出线与相连根纵向引出线与相连再从口地址译码器选择一个译码器输出连接到的片选端做好上述连接之后就构成了以为能的核心程序是按键识别本实验要求设计按键识别程序当按下小键盘上某一个键的时候主机幕显示闭合键的键名按下小键盘键之后停止演示二完成任务的方法或方案简介可修编本程序显示数字到刚刚开始提出两中解决方案一是用跳种方案函数用来将中的键值显示在数码管上设定口方式输出口方式输入函数通过行值和列值查出输入的键值并将它保存在中如果输入是则赋值为如果输入非法字符则赋值为设定如果是则退出程序函数用来改变中保存的键值将中的键.-.可修编.CALL CLOSEALL MOV AH,4CH INT 21H CONTINUE:CALL CHANGE(CHANGE函数用来改变 BUFFER 中保存的键值)MOV DX,CON_8255 MOV AL,10000010B OUT DX,AL (设定 A口方式 0 输出,B 口方式 0 输入)LLL:CALL DISPLAY MOV DX,B_8255 IN AL,DX AND AL,00000111B (取出 PB0PB2)CMP AL,00000111B JNE LLL JMP CMPAGAIN(不断扫描,如果不松开按键,那么就循环等待;直到按键松开就跳回。)RET START ENDP;*(此函数用以延时 20MS)DELAY1 PROC NEAR PUSH AX PUSH CX PUSH DX MOV AH,86H 任务与要求实验箱上有一个键小键盘出厂时按键接点已经按图所示连接小键盘有根横向引出线实验前将根横向引出线与相连根纵向引出线与相连再从口地址译码器选择一个译码器输出连接到的片选端做好上述连接之后就构成了以为能的核心程序是按键识别本实验要求设计按键识别程序当按下小键盘上某一个键的时候主机幕显示闭合键的键名按下小键盘键之后停止演示二完成任务的方法或方案简介可修编本程序显示数字到刚刚开始提出两中解决方案一是用跳种方案函数用来将中的键值显示在数码管上设定口方式输出口方式输入函数通过行值和列值查出输入的键值并将它保存在中如果输入是则赋值为如果输入非法字符则赋值为设定如果是则退出程序函数用来改变中保存的键值将中的键.-.可修编.MOV CX,0 MOV DX,20000 INT 15H POP DX POP CX POP AX RET DELAY1 ENDP;*(GETINPUT函数通过行值和列值查出输入的键值,并将它保存在 AL中,如果输入是 R,则AL赋值为 FFH;如果输入非法字符,则 AL赋值为 0AH。)GETINPUT PROC NEAR CMP LIE,00000110B JE LIE0 CMP LIE,00000101B JE LIE1 CMP LIE,00000011B JE LIE2 MOV AL,0AH RET LIE2:CMP HANG,00010000B JE NEXT MOV AL,0AH RET NEXT:MOV AL,0FFH RET LIE0:CMP HANG,01111111B JE KEY8 CMP HANG,10111111B 任务与要求实验箱上有一个键小键盘出厂时按键接点已经按图所示连接小键盘有根横向引出线实验前将根横向引出线与相连根纵向引出线与相连再从口地址译码器选择一个译码器输出连接到的片选端做好上述连接之后就构成了以为能的核心程序是按键识别本实验要求设计按键识别程序当按下小键盘上某一个键的时候主机幕显示闭合键的键名按下小键盘键之后停止演示二完成任务的方法或方案简介可修编本程序显示数字到刚刚开始提出两中解决方案一是用跳种方案函数用来将中的键值显示在数码管上设定口方式输出口方式输入函数通过行值和列值查出输入的键值并将它保存在中如果输入是则赋值为如果输入非法字符则赋值为设定如果是则退出程序函数用来改变中保存的键值将中的键.-.可修编.JE KEY9 MOV AL,0AH RET KEY8:MOV AL,8 RET KEY9:MOV AL,9 RET LIE1:CMP HANG,01111111B JE KEY0 CMP HANG,10111111B JE KEY1 CMP HANG,11011111B JE KEY2 CMP HANG,11101111B JE KEY3 CMP HANG,11110111B JE KEY4 CMP HANG,11111011B JE KEY5 CMP HANG,11111101B JE KEY6 CMP HANG,11111110B JE KEY7 MOV AL,0AH RET KEY0:MOV AL,0 RET KEY1:MOV AL,1 RET 任务与要求实验箱上有一个键小键盘出厂时按键接点已经按图所示连接小键盘有根横向引出线实验前将根横向引出线与相连根纵向引出线与相连再从口地址译码器选择一个译码器输出连接到的片选端做好上述连接之后就构成了以为能的核心程序是按键识别本实验要求设计按键识别程序当按下小键盘上某一个键的时候主机幕显示闭合键的键名按下小键盘键之后停止演示二完成任务的方法或方案简介可修编本程序显示数字到刚刚开始提出两中解决方案一是用跳种方案函数用来将中的键值显示在数码管上设定口方式输出口方式输入函数通过行值和列值查出输入的键值并将它保存在中如果输入是则赋值为如果输入非法字符则赋值为设定如果是则退出程序函数用来改变中保存的键值将中的键.-.可修编.KEY2:MOV AL,2 RET KEY3:MOV AL,3 RET KEY4:MOV AL,4 RET KEY5:MOV AL,5 RET KEY6:MOV AL,6 RET KEY7:MOV AL,7 RET GETINPUT ENDP;*(CHANGE函数用来改变 BUFFER 中保存的键值,将 BUFFER 中的键值移位,最后一位加入 AL中的新键值。)CHANGE PROC NEAR PUSH AX PUSH SI MOV SI,OFFSET BUFFER MOV AH,SI+1 MOV SI,AH MOV AH,SI+2 MOV SI+1,AH MOV AH,SI+3 MOV SI+2,AH MOV AH,SI+4 MOV SI+3,AH MOV AH,SI+5 任务与要求实验箱上有一个键小键盘出厂时按键接点已经按图所示连接小键盘有根横向引出线实验前将根横向引出线与相连根纵向引出线与相连再从口地址译码器选择一个译码器输出连接到的片选端做好上述连接之后就构成了以为能的核心程序是按键识别本实验要求设计按键识别程序当按下小键盘上某一个键的时候主机幕显示闭合键的键名按下小键盘键之后停止演示二完成任务的方法或方案简介可修编本程序显示数字到刚刚开始提出两中解决方案一是用跳种方案函数用来将中的键值显示在数码管上设定口方式输出口方式输入函数通过行值和列值查出输入的键值并将它保存在中如果输入是则赋值为如果输入非法字符则赋值为设定如果是则退出程序函数用来改变中保存的键值将中的键.-.可修编.MOV SI+4,AH MOV SI+5,AL POP SI POP AX RET CHANGE ENDP;*(DISPLAY函数用来将 BUFFER 中的键值显示在数码管上。)DISPLAY PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI MOV BX,OFFSET TABLE MOV SI,OFFSET BUFFER MOV CL,1 XUNHUAN:MOV AL,SI XLAT MOV DX,201H OUT DX,AL MOV DX,200H MOV AL,CL OUT DX,AL MOV DX,200H MOV AL,0 OUT DX,AL INC SI 任务与要求实验箱上有一个键小键盘出厂时按键接点已经按图所示连接小键盘有根横向引出线实验前将根横向引出线与相连根纵向引出线与相连再从口地址译码器选择一个译码器输出连接到的片选端做好上述连接之后就构成了以为能的核心程序是按键识别本实验要求设计按键识别程序当按下小键盘上某一个键的时候主机幕显示闭合键的键名按下小键盘键之后停止演示二完成任务的方法或方案简介可修编本程序显示数字到刚刚开始提出两中解决方案一是用跳种方案函数用来将中的键值显示在数码管上设定口方式输出口方式输入函数通过行值和列值查出输入的键值并将它保存在中如果输入是则赋值为如果输入非法字符则赋值为设定如果是则退出程序函数用来改变中保存的键值将中的键.-.可修编.SHL CL,1 CMP CL,40H JNE XUNHUAN POP SI POP DX POP CX POP BX POP AX RET DISPLAY ENDP;*(此函数用在退出程序时将数码管关闭.)CLOSEALL PROC NEAR PUSH AX PUSH CX PUSH DX MOV CL,1 XUNHUAN1:MOV DX,200H MOV AL,CL OUT DX,AL MOV AL,0 OUT DX,AL SHL CL,1 CMP CL,20H JNE XUNHUAN1 POP DX POP CX POP AX 任务与要求实验箱上有一个键小键盘出厂时按键接点已经按图所示连接小键盘有根横向引出线实验前将根横向引出线与相连根纵向引出线与相连再从口地址译码器选择一个译码器输出连接到的片选端做好上述连接之后就构成了以为能的核心程序是按键识别本实验要求设计按键识别程序当按下小键盘上某一个键的时候主机幕显示闭合键的键名按下小键盘键之后停止演示二完成任务的方法或方案简介可修编本程序显示数字到刚刚开始提出两中解决方案一是用跳种方案函数用来将中的键值显示在数码管上设定口方式输出口方式输入函数通过行值和列值查出输入的键值并将它保存在中如果输入是则赋值为如果输入非法字符则赋值为设定如果是则退出程序函数用来改变中保存的键值将中的键.-.可修编.RET CLOSEALL ENDP CSEG END END START 四、程序运行结果分析:六实验总结:1实验电路板上 8255 的端口地址位 210H213H,这与书上给的不一样,开始时在这方面花费了较多时间。2通过此次程序设计,我对计算机读取键盘值的过程有了一定的认识。最开始编程序时并没有想到如果始终按同一个键不放,数码管上就会一下子出来很多字符。调试时发现了这个问题,想到的解决方法有两种,一种是每一次按键后检测键是否松开,直到松开后再继续执行下一次判断;另一种是按键后延缓一个固定的时间(大约 0.2 秒)再判断(计算机的键盘就是采取这样的方法)。本程序采用的是第一种方法。3编程序要养成好的习惯,我最初的程序结束时并没有关掉数码管,以致下次用时数码管显示不正确。好的程序应该各方面想得周到一些,例如我后来在开始和结束时都加了关闭数码管程序(CLOSEALL),这就避免了上述问题。4我并没有采用查表得方法来获得键值,我觉得用跳转的方法能使程序的可读性强一些。当然,程序代码会长许多,但此法由于思路清楚,比较容易查错。任务与要求实验箱上有一个键小键盘出厂时按键接点已经按图所示连接小键盘有根横向引出线实验前将根横向引出线与相连根纵向引出线与相连再从口地址译码器选择一个译码器输出连接到的片选端做好上述连接之后就构成了以为能的核心程序是按键识别本实验要求设计按键识别程序当按下小键盘上某一个键的时候主机幕显示闭合键的键名按下小键盘键之后停止演示二完成任务的方法或方案简介可修编本程序显示数字到刚刚开始提出两中解决方案一是用跳种方案函数用来将中的键值显示在数码管上设定口方式输出口方式输入函数通过行值和列值查出输入的键值并将它保存在中如果输入是则赋值为如果输入非法字符则赋值为设定如果是则退出程序函数用来改变中保存的键值将中的键

    注意事项

    本文(小键盘按键识别微机原理课程设计报告_计算机-计算机硬件与维护.pdf)为本站会员(c****3)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开