键盘扫描与LED数码管显示_第1页
键盘扫描与LED数码管显示_第2页
键盘扫描与LED数码管显示_第3页
键盘扫描与LED数码管显示_第4页
键盘扫描与LED数码管显示_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、会计学1键盘扫描与键盘扫描与LED数码管显示数码管显示第1页/共27页图图9.9 8285编程结构编程结构8255的内部结构的内部结构C下半部下半部第1页/共27页第2页/共27页PAPBPCD0D7RESETA0A1CSRDWRCS:片选:片选RD:读控制:读控制WR:写控制:写控制RESET:复位:复位A1, A0:端口选择:端口选择A1 A0选择选择0 0端口端口A0 1端口端口B1 0端口端口C1 1控制寄存器控制寄存器D0D7:数据线:数据线第2页/共27页第3页/共27页分别对应分别对应PA、PB、PC三个三个8位输入位输入/ /输输出端口出端口D0D7RESETA0A1CSRDW

2、RPAPBPC三个端口可通过三个端口可通过编程编程分别指分别指 定为输入或输出口。定为输入或输出口。 82558255外部引脚外部引脚 第3页/共27页第4页/共27页方式方式0:基本输入:基本输入/输出方式输出方式方式方式1:选通方式:选通方式方式方式2:双向方式:双向方式(仅仅A口口)输入输入输出输出置置0(低电平低电平)置置1(高电平高电平)第4页/共27页第5页/共27页8255工作方式控制字格式工作方式控制字格式第5页/共27页第6页/共27页对对20H端口的访问格式:端口的访问格式:直接寻址直接寻址IN AL,20H ;从地址为从地址为20H的端口输入一个字节到的端口输入一个字节到

3、ALOUT 20H,AL ;将;将AL的内容输出到地址为的内容输出到地址为20H的端口的端口对对200H端口的访问格式:端口的访问格式:间接寻址间接寻址MOV DX,200H ;将端口地址送将端口地址送DX寄存器寄存器IN AL,DX ;从地址为从地址为200H的端口输入一个字节到的端口输入一个字节到ALOUT DX,AL ;将;将AL的内容输出到地址为的内容输出到地址为200H的端口的端口2.2.端口寻址方式端口寻址方式第6页/共27页第7页/共27页v编程编程1 1:把把82558255工作方式设定为:工作方式设定为:A A口指定为方式口指定为方式0 0,输入,输入,C C口为输出;口为输

4、出;B B口指定为方式口指定为方式0 0,输出;设,输出;设82558255控制字寄存器端口地址为控制字寄存器端口地址为04a6H04a6H。v分析:分析:根据题目得工作方式命令代码是根据题目得工作方式命令代码是1 100001 10 00 00 00 0B B或或90H90H。v初始化程序段为:初始化程序段为:mov dx,04a6hmov dx,04a6h; ;控制寄存器地址控制寄存器地址mov ax,90hmov ax,90h; ;设置为设置为A A口输入,口输入,;B;B口输出口输出,C,C输出输出out dx,ax ;8255out dx,ax ;8255初始化初始化第7页/共27页

5、第8页/共27页共阴极共阴极:公共端接公共端接低电平低电平“L”发光段接发光段接高电平高电平“H”共阳极共阳极:公共端接公共端接高电平高电平“H”发光段接发光段接低电平低电平“L”A Ab bc cd de ef fg g分类:分类:h小数点小数点*a ab bc cd de ef fg g+5V+5V共阴极的情况下共阴极的情况下定义字形码:定义字形码:FECDBA9876543210 第8页/共27页第9页/共27页键盘的结构1 .键盘的工作原理键盘的工作原理第9页/共27页第10页/共27页PC0PC1PC22 .键的识别键的识别行扫描行扫描1 2 3第10页/共27页第11页/共27页掌

6、握掌握82558255的编程原理及使用方法的编程原理及使用方法三、实验目的三、实验目的用用82558255扩展扫描扩展扫描3X83X8行列式键盘,由一位行列式键盘,由一位LEDLED数码管数码管显示。显示。1 1、设计出、设计出82558255与与80868086接口对应硬件电路,并完成相接口对应硬件电路,并完成相应的连接;应的连接;2 2、调试对应、调试对应82558255、键盘、及数码管硬件接口电路及、键盘、及数码管硬件接口电路及相应接口软件相应接口软件3 3、当用键盘输入时在数码管上显示相应值;、当用键盘输入时在数码管上显示相应值;4 4、完成习题的内容。、完成习题的内容。四、实验内容四

7、、实验内容五、实验设备五、实验设备 MUTMUT型实验箱、型实验箱、8086CPU8086CPU模块。模块。第11页/共27页第12页/共27页DB地址地址译码器译码器D0D7WRRDA1A0CS8255PAPBPCIOWIORA2A1D0D7A15A19系系统统总总线线 RL10RL17(列选择线)(列选择线) LED-ALED-DP (段控)(段控)KA10KA12(行选择线)(行选择线) LED1(位控位控) 第12页/共27页第13页/共27页电源电路电源电路复位键复位键3*8键盘键盘 8255并行接口并行接口 CPU板座板座LED数码管显示屏数码管显示屏RL10RL17LED1 LE

8、D6LED-ALED-DPKA10KA12跳线冒跳线冒第13页/共27页第14页/共27页七、实验步骤七、实验步骤1 1、实验接线实验接线CS0 CS0 CS8255CS8255(地址为(地址为04A0H04A0H););PA0PA0PA7PA7(输入输入)RL10RL10RL17RL17(列选择线列选择线);PB0PB0PB7PB7(输出输出)发光二极管发光二极管LED-ALED-DP ;PC0PC0PC2PC2(输出输出)KA10KA10KA12KA12(行选择线行选择线)PC3PC3(输出输出)LED1LED1 2 2、编程并全速或单步运行。、编程并全速或单步运行。3 3、全速运行时按动

9、键盘,观察数码管的变化。、全速运行时按动键盘,观察数码管的变化。4 4、编写实验报告。、编写实验报告。本实验中本实验中8255的地址分配如下:的地址分配如下:端口端口A 04A0H端口端口B 04A2H端口端口C 04A4H控制口控制口 04A6H第14页/共27页第15页/共27页采用行扫描采用行扫描法检测法检测第15页/共27页第16页/共27页九九 、编写实验报告、编写实验报告 包括实验预习内容,实验目的,实验内容,包括实验预习内容,实验目的,实验内容,实验步骤和正确的程序代码实验步骤和正确的程序代码 。注意:注意: 1 1、编程前先在、编程前先在E E盘目录下建一个文件夹,并取盘目录下

10、建一个文件夹,并取一个英名名字,即名字中不能有汉字和数字。编完一个英名名字,即名字中不能有汉字和数字。编完程序将其存于该目录下。程序将其存于该目录下。 3、做完实验将实验箱右上角的做完实验将实验箱右上角的CPUCPU板卸下,再板卸下,再关实验箱。关实验箱。 2、做实验之前先取下跳线冒。做实验之前先取下跳线冒。第16页/共27页第17页/共27页十、实验程序十、实验程序assume cs:codecode segment org 100hstart: mov dx,04a6h;控制寄存器地址控制寄存器地址 mov ax,90h;设置为设置为A口输入,口输入,;B口输出口输出,C输出输出 out

11、dx,ax ;8255初始化初始化check0: ; check0检测是否有健被按下检测是否有健被按下 mov ax,00h ;C口的口的PC0、PC1、PC2作为行选择线作为行选择线 mov dx,04a4h ;C口地址口地址 out dx,ax ; 写入写入C口内容口内容00H,即令所有行为低电平,即令所有行为低电平 mov dx,04a0h ;A口地址口地址 in ax,dx ;读入读入A口的内容口的内容 cmp al,0ffh ;判定是否有列线为低电平判定是否有列线为低电平 je check0 ;没有,无闭合键,则循环等待没有,无闭合键,则循环等待 mov cx,05ffh ;延迟常数

12、,延迟常数,可以修改来改变延时时间可以修改来改变延时时间 delay: loop delay ;有,则延迟清除抖动,当有,则延迟清除抖动,当cx=0时则停止该时则停止该 循环循环本实验中本实验中8255的地址分配如下:的地址分配如下:端口端口A 04A0H端口端口B 04A2H端口端口C 04A4H控制口控制口 04A6H第17页/共27页第18页/共27页; 行扫描键盘和列扫描键盘,确定被按键的行值和列值行扫描键盘和列扫描键盘,确定被按键的行值和列值 mov cl,3 ;行数行数 mov ah,0 mov al, 0fbh ; 0fbh=1111 1011Bcontin: push ax ;

13、将将ax的内容的内容(0fbh)入栈保存入栈保存 mov dx,04a4h ;C口地址口地址 out dx,al ;写入写入C口内容口内容0fbh=1111 1011B,即将第三行置为低电平,即将第三行置为低电平 mov dx,04a0h ;A口地址口地址 in al,dx ;读入读入A口的内容口的内容 mov ah,al ;将将A口的内容送入口的内容送入ah cmp ah,0ffh ;判断是否有列线为低电平判断是否有列线为低电平 jne next ;比较结果不等于比较结果不等于0则转移,即有列线为低电平则转移,即有列线为低电平 pop ax ; 比较结果等于比较结果等于0,即没有列线为低电平

14、,(即没有列线为低电平,(ax)=00fbh ror al,1 ; fbh(1111 1011B)循环右移)循环右移,(,(al)=1111 1101检测下一行检测下一行 loop contin ;循环扫描下一行,确定行循环扫描下一行,确定行 jmp check0 ;若所有行都没有被按下,则返回若所有行都没有被按下,则返回check0重新检测重新检测next: mov ch,cl ;保存行值至保存行值至ch第18页/共27页第19页/共27页 mov cl,7 ;列值从列值从0开始编号开始编号0-7begin0: shl ah,1 ; ah为为A口的内容,逻辑左移口的内容,逻辑左移1位,末位补

15、位,末位补0 jnc goon ;无进位则转移,即可确定列无进位则转移,即可确定列 loop begin0 ;继续循环,确定列继续循环,确定列 jmp check0 goon: ;计算显示码在计算显示码在discode中的位置:(行数中的位置:(行数-1)*8 +列值列值 mov bl, cl ;保存列值至保存列值至BL dec ch ;行数减行数减1 mov cl,3 shl ch, cl ;左移三位即相当于减左移三位即相当于减1之后的行数之后的行数*8 add bl, ch ;确定显示码在确定显示码在discode表中的偏移量,表中的偏移量, 即(行数即(行数-1)*8+列值列值 mov

16、bh,0 mov cx,bx ;显示码在显示码在discode表中的偏移量送表中的偏移量送CX 第19页/共27页第20页/共27页display:;显示输出显示输出mov si, offset discode add si, cx ;显示码偏移地址显示码偏移地址 mov dx,04a4h ;C口地址口地址 mov al,0fh out dx,al ;写入写入C口内容,使位控(口内容,使位控(LED1)有效)有效 mov al,si ; 取被按键的显示字形码送入取被按键的显示字形码送入al mov dx,04a2h ;B口地址口地址 out dx,al ; 将显示字形码送将显示字形码送B口输出

17、显示口输出显示 nop nop jmp check0 discode db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h;(0-7) db 7fh,6fh,77h,7ch,39h,5eh,79h,71h ;(8-F) db 01h,02h,04h,08h,10h,20h,40h,80h;(abcde fgh) ;显示字形码表显示字形码表 code endsend start第20页/共27页第21页/共27页PAPBPCD0D7RESETA0A1CSRDWRCS:片选:片选RD:读控制:读控制WR:写控制:写控制RESET:复位:复位A1, A0:端口选择:端口选择A1 A0

18、选择选择0 0端口端口A0 1端口端口B1 0端口端口C1 1控制寄存器控制寄存器D0D7:数据线:数据线第21页/共27页第22页/共27页分别对应分别对应PA、PB、PC三个三个8位输入位输入/ /输输出端口出端口D0D7RESETA0A1CSRDWRPAPBPC三个端口可通过三个端口可通过编程编程分别指分别指 定为输入或输出口。定为输入或输出口。 82558255外部引脚外部引脚 第22页/共27页第23页/共27页8255工作方式控制字格式工作方式控制字格式第23页/共27页第24页/共27页电源电路电源电路复位键复位键3*8键盘键盘 8255并行接口并行接口 CPU板座板座LED数码

19、管显示屏数码管显示屏RL10RL17LED1 LED6LED-ALED-DPKA10KA12跳线冒跳线冒第24页/共27页第25页/共27页; 行扫描键盘和列扫描键盘,确定被按键的行值和列值行扫描键盘和列扫描键盘,确定被按键的行值和列值 mov cl,3 ;行数行数 mov ah,0 mov al, 0fbh ; 0fbh=1111 1011Bcontin: push ax ;将将ax的内容的内容(0fbh)入栈保存入栈保存 mov dx,04a4h ;C口地址口地址 out dx,al ;写入写入C口内容口内容0fbh=1111 1011B,即将第三行置为低电平,即将第三行置为低电平 mov dx,04a0h ;A口地址口地址 in al,dx ;读入读入A口的内容口的内容 mov ah,al ;将将A口的内容送入口的内容送入ah cmp ah,0ffh ;判断是否有列线为低电平判断是否有列线为低电平 jne next ;比较结果不等于比较结果不等于0则转移,即有列线为低电平则转移,即有列线为低电平 pop ax ; 比较结果等于比较结果等于0,即没有列线为低电平,(即没有列线为低电平

温馨提示

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

评论

0/150

提交评论