实验八键盘显示控制实验(1).docxVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机原理与接口技术之实验八 键盘显示控制实验 专业:计算机科学与技术 班级学号:201622235 姓名:龚旭 一、 实验目的 1、 掌握8255控制键盘及显示电路的基本功能及编程方法。 2、 掌握一般键盘和显示电路的工作原理。 二、 实验内容 1、编程:在小键盘上每按下一个键, 4位数码管上显示出相应字符,他们的对应关系如 下: ?环胡示0 ?环 胡示 0 - 0 c 一 c 1 — 1 D - d 2 — 2 E - E 3 — $ F — F 4 - 4 5 _ 5 6 — 7 _ 7 * _ H 9 一 9 A 一 R B 一 b ft fiT JW用煨盘 PM^TAQ /S25 dpa低殲阿售 (S/B2S5 n /m址 +5V SO低険辰晋 GMl STSI /LED#首管 辎程提示 ?H8255cnsfl输入、人口为数码if段码输出. 四、 图 三、编程提示 1、 设置8255C口键盘输入、A 口为数码管段码输出 2、 参考流程图完成编程。(上右图) 四、实验内容与过程 代码: a8255 equ 288H ;8255 A 口 c8255 equ 28aH ;8255 C 口 k8255 equ 28bH ;8255 控制口 data segment table1 dw 0770h,0B70h,0D70h,0E70h,07B0h,0BB0h,0DB0h,0EB0h dw 07D0h,0BD0h,0DD0h,0ED0h,07E0h,0BE0h,0DE0h,0EE0h 键盘扫描码表 LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH DB 39h,5EH,79h,71h,0ffh ;LED 段码表, 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f char db 0123456789ABCDEF ; 字符表 mes db 0ah,0dh,PLAY ANY KEY IN THE SMALL KEYBOARD! ,0ah,0dh db IT WILL BE ON THE SCREEN! END WITH E ,0ah,0dh,$ key_in db 0h data ends stacks segment stack ; 堆栈空间 db 100 dup (?) stacks ends code segment assume cs:code,ds:data,ss:stacks,es:data start: cli mov ax,data mov ds,ax mov es,ax mov ax,stacks mov ss,ax mov dx,offset mes ; 显示提示信息 mov ah,09 int 21h main_key: MOV DX,k8255 ;初始化 8255控制字 mov al,81h out dx,al call key ;get a char in (key_in) and display it call disply ; 调显示子程序 , 显示得到的字符 cmp byte ptr key_in,E jnz main_key mov ax,4c00h ;if (dl)=E return to EXIT! key proc near key_loop: int 21h ; 退出 mov ah,1 int 16h jnz exit ;pc 键盘有键按下则退出 mov dx,c8255 mov al,0fh out dx,al in al,dx ; 读行扫描值 and al,0fh cmp al,0fh jz key_loop ; 未发现有键按下则转 call delay ;delay for amoment mov ah,al MOV DX,k8255 mov al,88h out dx,al mov dx,c8255 mov al,ah or al,0f0h out dx,al in al,dx ; 读列扫描值 and al,0f0h cmp al,0f0h jz key_loop ; 未发现有键按下则转 mov si,offset table1 ; 键盘扫描码表首址 mov di,offset char ; 字符表首址 key_tonext: mov cx,16 ; 待查表的表大小 cmp ax,[si] ;cmp (col,row) with every word jz key_findkey ;in the table dec cx jz key_loop ; 未找到对应扫描码 add si,2 inc di jmp key_tonext key_findkey: mov dl,[di] mov ah,02 int 21

文档评论(0)

cooldemon0602 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档