汇编语言+第15章+键盘程序设计.ppt_第1页
汇编语言+第15章+键盘程序设计.ppt_第2页
汇编语言+第15章+键盘程序设计.ppt_第3页
汇编语言+第15章+键盘程序设计.ppt_第4页
汇编语言+第15章+键盘程序设计.ppt_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

第十五章键盘程序设计 15 1键盘的种类与扫描码15 2IBMPC XT标准键盘接口15 3键盘中断程序设计 15 1键盘的种类与扫描码 5960F1F26162F3F46364F5F66566F7F86768F9F10 12 3 4 5 6 7 8 4243 444546474849505153 5455 Shift ZXCVBNM Shiftprtsc565758CapsAltSpacebarLock 69Num78ScrollLockLock717728739Home PgUp75476776 5 79180282End PgDn82883InsDel 74 78 28Enter 83键的键位布局和扫描码 41 2 3 4 5 6 7 8 ENTER42444546474849505153 5743 ShiftZXCVBNM Shift 5657CtrlAltSpacebarAltCtrl PageInsHomeUpPageDelEndDown 69Num74Lock 717728739Home PgUp754765776 791802813End PgDn8283InsDelEnter 78 1ESC 59606162F1F2F3F4 63646566F5F6F7F8 67686970F9F10F11F12 Prt70ScSRCPauseLock NumCapsScrollLockLockLock口口口 15 1键盘的种类与扫描码 101键的键位布局和扫描码 15 2IBMPC XT标准键盘接口 PA口PB7PB6 D1OECLRCLOCKM QQRSD DDQQ DB 8255A 74LS322 键盘数据 键盘时钟 CLK 8259AIRQ1 15 2IBMPC XT标准键盘接口 信号连接及使用 1 系统加电后 将8255A初始化为方式0 PA口为输入方式 PB口为输出方式 2 PB口的PB6用于控制键盘时钟 当PB6 0时 禁止键盘输出 当PB6 1时 允许键盘输出 3 PB口的PB7控制74LS322的输出 PB7 0时 允许74LS322输出 PB7 1时 禁止74LS322输出 同时 PB7还用于清除74LS322和中断请求触发器 4 中断请求触发器的Q接至8259A的IRQ1端 Q接至键盘数据输入端 以保证在键盘数据未取出之前 禁止74LS322接收新数据 15 2IBMPC XT标准键盘接口 2 工作过程 1 将8255A的PB6置为1 PB7置为0 键盘逻辑可正常工作 2 当用户按下某一键时 键位的扫描码的串行数据通过电缆送至74LS322的D1端 3 74LS322按串行数据格式接收完一个扫描码后 保存起来 串行数据的起始位通过M 端送入触发器 使触发器置1 产生中断请求信号 同时 封锁键盘数据线 4 CPU响应中断 从8255A中读取扫描码 然后通过PB7发出一个正脉冲信号 清除74LS322寄存器和中断请求触发器 以备接收下一个扫描码 键按下和键抬起各产生一次中断请求 由扫描码的最高位识别 最高位为0 表示键按下 最高位为1 表示键抬起 5 将读取的键位扫描码译为ASCII码 然后按需要进行解释 15 3键盘中断程序设计 例15 1编制从键盘上接收字符并在屏幕上显示出来的程序 按ESC键则返回系统 从键盘上接收字符利用键盘中断服务程序实现 每当按下一键时 就进入中断服务程序 中断服务程序读取按键的扫描码 并进行译码 放入键盘缓冲区 在屏幕上显示字符 利用DOS中断的2号功能实现 主程序从键盘缓冲区中读取字符 利用DOS中断的2号功能在屏幕上显示出来 由此可见 键盘中断服务程序和主程序通过键盘缓冲区交换信息 键盘中断服务程序向缓冲区中写信息 而主程序则从键盘缓冲区中读取信息 15 3键盘中断程序设计 键盘缓冲区是一个循环队列 按照先进先出的原则存取信息 当访问到最后一个单元时 再从头开始继续访问 示意如下 1 初始化后 头指针 头指针 用于指示要读的信息在缓冲区中的位置尾指针 用于指示要写入的单元的位置 尾指针 头指针 15 3键盘中断程序设计 2 写入4个数据后 尾指针 头指针 3 读取2个数据后 尾指针 头指针 4 写入1个数据后 尾指针 头指针 5 再写入1个数据后 尾指针 15 3键盘中断程序设计 头指针 6 此时再写入1个数据 尾指针 15 3键盘中断程序设计 缓冲区满状态 尾指针 2 MOD缓冲区的长度 头指针 缓冲区空状态 头指针 尾指针 SSEGSEGMENTSTACKDB80DUP 0 SSEGENDSDATASEGMENTKEYIPDW KEYCSDW BTOPDW BTLLDW BUFFDW16DUP 0 SCTABDB0 1BH 1234567890 08HDB09H QWERTYUIOP 0DHDB0 ASDFGHJKL DB0 ZXCVBNM 0DB0 0 20H 13DUP 0 DB 789 456 1230 0DATAENDS CODESEGMENTASSUMECS CODE DS DATA SS SSEGKBPRGPROCFARPUSHDSXORAX AXPUSHAXMOVBX DATAMOVDS BXCLICLDMOVES AXMOVDI 9 4MOVAX ES DI MOVKEYIP AXLEAAX KBINTSTOSW MOVAX ES DI MOVKEYCS AXMOVAX SEGKBINTSTOSWLEAAX BUFFMOVBTOP AXMOVBTLL AXINAL 21HANDAL 0FDHOUT21H ALSTINEXT MOVBX BTOPCMPBX BTLLJZNEXTCLIMOVAX BX ADDBX 2CMPBX OFFSETBUFF 32JNEDISPLEABX BUFFDISP MOVBTOP BXSTICMPAL 0JZNEXTCMPAL 1BHJEEXITMOVAH 2MOVDL ALINT21HCMPDL 0DHJNZNEXTMOVAH 2 MOVDL 0AHINT21HJMPNEXTEXIT CLISUBDI 4MOVAX KEYIPSTOSWMOVAX KEYCSSTOSWSTIRETKBPRGENDPKBINTPROCPUSHAXPUSHBXPUSHSI PUSHDSSTIMOVAX DATAMOVDS AXINAL 60HPUSHAXINAL 61HORAL 80HOUT61H ALANDAL 7FHOUT61H ALPOPAXTESTAL 80HJNZKBINT2MOVBX BTLLMOVSI BX ADDBX 2CMPBX OFFSETBUFF 32JNEKBINT1LEABX

温馨提示

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

评论

0/150

提交评论