资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,一、复习,8255,及端口的寻址方式,实验,1,8255键盘扫描与LED数码管显示实验,8255,功能特性,三个独立的,8,位并行输入,/,输出端口,各端口均,具有数据输入、输出能力;,三种工作方式:,0,基本,、,1,选通、,2,双向;,可通过编程设置各端口的工作方式和数据传送,方向(入,/,出,/,双向)。,1.,数导线(,21,根),2.,下次实验时间是第,7,周,注意:,1.8255,相关知识,图,9.9 8285,编程结构,8255,的内部结构,C,下半部,PA,PB,PC,8255,外部引脚,连接系统端的引线:,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,工作前必须初始化,初始化时需设置:,工作方式,数据传送方向,PC,口各数据线的状态,(必要时),通过向,8255,的控制口写入,控制字,实现:,方式控制字*,用于控制,8255,各端口的工作方式和数据传输方向,位控字,控制,PC,端口在方式,0,(输出)时每一根输出线的状态,方式,0,:基本输入,/,输出方式,方式,1,:选通方式,方式,2,:双向方式,(,仅,A,口,),输入,输出,置,0(,低电平,),置,1(,高电平,),8255,工作方式控制字格式,对,20H,端口的访问格式:,直接寻址,IN AL,20H,;,从地址为,20H,的端口输入一个字节到,AL,OUT 20H,AL,;将,AL,的内容输出到地址为,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;,控制寄存器地址,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,扩展扫描,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,(列选择线),LED-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、编程并全速或单步运行。,3、全速运行时按动键盘,观察数码管的变化。,4,、编写实验报告。,本实验中,8255,的地址分配如下:,端口,A 04A0H,端口,B 04A2H,端口,C 04A4H,控制口,04A6H,八、实验程序流程图,采用行扫描法检测,九、编写实验报告,包括实验预习内容,实验目的,实验内容,实验步骤和正确的程序代码。,注意:,1,、编程前先在,E,盘目录下建一个文件夹,并取一个英名名字,即名字中不能有汉字和数字。编完程序将其存于该目录下。,3,、,做完实验将实验箱右上角的,CPU,板卸下,再关实验箱。,2,、,做实验之前先取下跳线冒。,十、实验程序,assume,cs:code,code 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,check0 ;,没有,无闭合键,则循环等待,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,dx,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,;,循环扫描下一行,确定行,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,;,左移三位即相当于减,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,
展开阅读全文