8255键盘扫描与LED数码管显示课件



《8255键盘扫描与LED数码管显示课件》由会员分享,可在线阅读,更多相关《8255键盘扫描与LED数码管显示课件(21页珍藏版)》请在装配图网上搜索。
1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,一、复习,8255,及端口的寻址方式,实验,1,8255键盘扫描与LED数码管显示实验,8255,功能特性,三个独立的,8,位并行输入,/,输出端口,各端口均,具有数据输入、输出能力;,三种工作方式:,0,基本,、,1,选通、,2,双向;,可通过编程设置各端口的工作方式和数据传送,方向(入,/,出,/,双向)。,1.,数导线(,21,根),2.,下次实验时间是第,7,周,注意:,1.8255,相关知识,图,9.9 8285,编程结构,8255,的内部结构,C,下半部,PA,PB,PC,8255,外部引脚,连
2、接系统端的引线:,D0,D7,RESET,A0,A1,CS,RD,WR,CS,:片选,RD,:读控制,WR,:写控制,RESET,:复位,A1,A0,:端口选择,A1 A0,选择,0 0,端口,A,0 1,端口,B,1 0,端口,C,1 1,控制寄存器,D0,D7,:数据线,分别对应,PA,、,PB,、,PC,三个,8,位输入,/,输出端口,D0,D7,RESET,A0,A1,CS,RD,WR,PA,PB,PC,三个端口可通过,编程,分别指,定为输入或输出口。,连接外设端的引线,:,PA0PA7,PB0PB7,PC0PC7,8255,外部引脚,8255,的初始化,8255,工作前必须初始化,初
3、始化时需设置:,工作方式,数据传送方向,PC,口各数据线的状态,(必要时),通过向,8255,的控制口写入,控制字,实现:,方式控制字*,用于控制,8255,各端口的工作方式和数据传输方向,位控字,控制,PC,端口在方式,0,(输出)时每一根输出线的状态,方式,0,:基本输入,/,输出方式,方式,1,:选通方式,方式,2,:双向方式,(,仅,A,口,),输入,输出,置,0(,低电平,),置,1(,高电平,),8255,工作方式控制字格式,对,20H,端口的访问格式:,直接寻址,IN AL,20H,;,从地址为,20H,的端口输入一个字节到,AL,OUT 20H,AL,;将,AL,的内容输出到地
4、址为,20H,的端口,对,200H,端口的访问格式:,间接寻址,MOV DX,200H,;,将端口地址送,DX,寄存器,IN AL,DX,;,从地址为,200H,的端口输入一个字节到,AL,OUT DX,AL,;将,AL,的内容输出到地址为,200H,的端口,2.,端口寻址方式,编程,1,:,把,8255,工作方式,设定为:,A,口指定为方式,0,,输入,,C,口为输出;,B,口指定为方式,0,,输出,;,设,8255,控制字寄存器端口地址为,04a6H,。,分析:,根据题目得,工作方式命令代码是,1,00,1,0,0,0,0,B,或,90H,。,初始化程序段为:,mov,dx,04a6h;,
5、控制寄存器地址,mov,ax,90h;,设置为,A,口输入,,;B,口输出,C,输出,out,dx,ax,;8255,初始化,共阴极,:,公共端接,低电平“,L”,发光段接,高电平“,H”,共阳极,:,公共端接,高电平“,H”,发光段接,低电平“,L”,分类:,h,小数点,*,3.,LED,数码管,a,b,c,d,e,f,g,+5V,共阴极的情况下,定义字形码:,FECDBA9876543210,二、键盘工作原理及键的识别方式,键盘的结构,1.,键盘的工作原理,PC,0,PC,1,PC,2,2.,键的识别,行扫描,1 2 3,掌握,8255,的编程原理及使用方法,三、实验目的,用,8255,扩
6、展扫描,3X8,行列式键盘,由一位,LED,数码管显示,。,1,、设计出,8255,与,8086,接口对应硬件电路,并完成相应的连接,;,2,、调试对应,8255,、键盘、及数码管硬件接口电路及相应接口软件,3,、当用键盘输入时在数码管上显示相应值,;,4,、完成习题的内容。,四、实验内容,五、实验设备,MUT,型实验箱、,8086CPU,模块。,六、,8255,与,8086,及,8255,与键盘的电路连接,DB,地址,译码器,D0D7,WR,RD,A1,A0,CS,8255,PA,PB,PC,IOW,IOR,A2,A1,D0D7,A15,A19,系统总线,RL10,RL17,(列选择线),L
7、ED-A,LED-DP,(段控),KA10,KA12,(行选择线),LED1,(,位控,),电源电路,复位键,3*8,键盘,8255,并行接口,CPU,板座,LED,数码管显示屏,RL10,RL17,LED1,LED6,LED-A,LED-DP,KA10,KA12,跳线冒,七、实验步骤,1,、,实验接线,CS0,CS8255(地址为04A0H);,PA0PA7,(,输入,),RL10,RL17,(,列选择线,),;,PB0PB7,(,输出,),发光二极管,LED-A,LED-DP,;,PC0,PC2,(,输出,),KA10,KA12,(,行选择线,),PC3,(,输出,),LED1,2、编程并
8、全速或单步运行。,3、全速运行时按动键盘,观察数码管的变化。,4,、编写实验报告。,本实验中,8255,的地址分配如下:,端口,A 04A0H,端口,B 04A2H,端口,C 04A4H,控制口,04A6H,八、实验程序流程图,采用行扫描法检测,九、编写实验报告,包括实验预习内容,实验目的,实验内容,实验步骤和正确的程序代码。,注意:,1,、编程前先在,E,盘目录下建一个文件夹,并取一个英名名字,即名字中不能有汉字和数字。编完程序将其存于该目录下。,3,、,做完实验将实验箱右上角的,CPU,板卸下,再关实验箱。,2,、,做实验之前先取下跳线冒。,十、实验程序,assume,cs:code,co
9、de segment,org 100h,start:,mov,dx,04a6h;,控制寄存器地址,mov,ax,90h;,设置为,A,口输入,,;B,口输出,C,输出,out,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,check
10、0 ;,没有,无闭合键,则循环等待,mov,cx,05ffh ;,延迟常数,,可以修改来改变延时时间,delay:loop delay;,有,则延迟清除抖动,当,cx,=0,时则停止该 循环,本实验中,8255,的地址分配如下:,端口,A 04A0H,端口,B 04A2H,端口,C 04A4H,控制口,04A6H,;,行扫描键盘和列扫描键盘,确定被按键的行值和列值,mov,cl,3 ;,行数,mov,ah,0,mov,al,0fbh ;0fbh=1111 1011B,contin,:push ax ;,将,ax,的内容,(0fbh),入栈保存,mov,dx,04a4h ;C,口地址,out,d
11、x,al,;,写入,C,口内容,0fbh=1111 1,011,B,,即将第三行置为低电平,mov,dx,04a0h ;A,口地址,in,al,dx,;,读入,A,口的内容,mov,ah,al,;,将,A,口的内容送入,ah,cmp,ah,0ffh ;,判断是否有列线为低电平,jne,next ;,比较结果不等于,0,则转移,即有列线为低电平,pop ax ;,比较结果等于,0,即没有列线为低电平,(,ax,),=00fbh,ror,al,1 ;,fbh,(,1111 1011B,)循环右移,,(,al,),=1111 1101,检测下一行,loop,contin,;,循环扫描下一行,确定行,
12、jmp,check0 ;,若所有行都没有被按下,则返回,check0,重新检测,next:,mov,ch,cl,;,保存行值至,ch,mov,cl,7 ;,列值从,0,开始编号,0-7,begin0:,shl,ah,1 ;ah,为,A,口的内容,逻辑左移,1,位,末位补,0,jnc,goon ;,无进位则转移,即可确定列,loop begin0;,继续循环,确定列,jmp,check0,goon:;,计算显示码在,discode,中的位置:(行数,-1,)*,8,+,列值,mov,bl,cl,;,保存列值至,BL,dec,ch,;,行数减,1,mov,cl,3,shl,ch,cl,;,左移三位
13、即相当于减,1,之后的行数*,8,add,bl,ch,;,确定显示码在,discode,表中的偏移量,,即(行数,-1,)*,8+,列值,mov,bh,0,mov,cx,bx,;,显示码在,discode,表中的偏移量送,CX,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,口输出显示,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 ends,end start,
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。