单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,实验二,、,简单并行接口,一、实验目的,掌握简单并行接口的工作原理及,使用方法,,并进一步熟悉汇编编程二、实验设备,实验箱一个,接口卡一块,50,线扁平电缆一根,自锁紧导线,实验箱,总线插座及总线插孔,74,LS244,8251,A,ADC0809,DAC0832,8253,8255,A,逻辑电平开关与,LED,显示电路,实验箱,接口卡,50,线扁平电缆,自锁紧导线,三、实验原理,并行接口中各位数据都是并行传送的它以字节(或字)为单位与输入输出设备或被控对象进行信息交换并行接口能从,CPU,或,I/O,设备接收数据,然后再发送出去因此,在信息传送过程中,并行接口起着锁存或缓冲的作用并行接口分为不可编程并行接口和可编程并行接口不可编程并行接口(如:8212),是单一的工作方式,其工作方式及功能只由硬件连接来控制;,而可编程并行接口(如:8255),是多工作方式,其工作方式及功能可由软件来控制并行接口包括不可编程并行接口(8212)及可编程并行接口(8255),都具有以下功能和硬件支持:,有两个以上具有锁存器或缓冲器的数据交换端口(包括端口信号)和控制电路。
也就是基本的简单并行接口电路本节实验介绍这种简单并行接口工作原理及使用方法,简单,并行输出接口,中的锁存器由8个,D,型触发器组成用于锁存,CPU,送来的8位数据实验中,74,LS273,为,八,D,触发器),简单,并行输入接口,中的缓冲器由8个三态门组成用于将数据缓冲后输入到,CPU,实验中,74,LS244,为,八缓冲器),四、实验电路图,并行输出接口电路图,并行输入接口电路图,下一页,D1,D2,D3,D4,D5,D6,D7,D8,CLK,CLR,VCC,Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,GND,+5,3,4,7,8,13,14,17,18,11,1,2,5,6,9,12,15,16,19,D0,D1,D2,D3,D4,D5,D6,D7,+5,10,4,5,2,A8H,IOW,20,L0,L1,L2,L3,L4,L5,L6,L7,74,LS32,74,LS273,6,4.1并行输出接口电路图,电路图中:,八,D,触发器74,LS273,在通用插座,A,上,8个,D,输入端分别接收数据总线,D0-D7,8,个,Q,输出端接,LED,显示电路,L0-L7;,74,LS32,用实验台上的“或门”。
锁存器的时钟脉冲,CP,(CLK),由或门,(74,LS32),提供,当,CLK,脉冲到来时,便把数据输入线,(,D0D7,),信号锁存到,D,触发器中,即,Qi=Di,;,当,CLK,脉冲过后,,Q,端状态一直保持,锁存器可由,CLR,清除五、实验步骤,2.编程内容,编程从键盘输入一个字符或数字,将其,ASCII,码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性用逻辑电平预置某个字母的,ASCII,码,编程输入这个,ASCII,码,并将其对应字母在屏幕上显示出来连线,(图1、,图2),下页,1A1,1A2,1A3,1A4,2A1,2A2,2A3,2A4,2G,1G,VCC,1Y1,1Y2,1Y3,1Y4,1Y5,1Y6,1Y7,1Y8,GND,+5,2,4,6,8,11,13,15,17,19,1,18,16,14,12,9,7,5,3,K0,K1,K2,K3,K4,K5,K6,K7,10,1,2,2,A0H,IOR,20,D0,D1,D2,D3,D4,D5,D6,D7,3,74,LS244,74,LS32,4.2,并行输入接口电路图,电路图中:,八缓冲器74,LS244,在通用插座,B,上,8个数据输入端,iAi,分别接逻辑电平开关输出端,K0-K7,8,个数据输出端,iYi,分别接数据总线,D0-D7;74LS32,用实验台上的“或门”。
八缓冲器工作由启动信号,(,G1/G2),决定,且启动信号由或门,(74,LS32),提供当启动信号有效时将,iAi,数据缓冲后从,iYi,输入到数据总线,D0-D7;,无效时,三态门关,闭呈高阻态六、,编程提示:,上述并行输出接口的地址为2,A8H,并行输入,接口地址为2,A0H.,通过上述并行接口电路输出数据需要3条指令:,MOV AL,数据,MOV DX,2A8H,OUT DX,AL,通过上述并行接口电路输入数据需要2条指令:,MOV DX,2A0H,IN AL,DX,并行输出接口(273),流程图,并行输入接口(244),流程图,七、流程图,开 始,结 束,等待键盘输入,是,ESC,吗?,从端口2,A8H,输出其,ASC,码,N,Y,273程序流程图,cmp al,27,;,判断是否为,ESC,键,je exit,;,若是则退出,mov dx,2a8h,;,若不是,;从2,A8H,输出其,ASCII,码,out dx,al,jmp start,;,转,start,判断部分,code segment,assume cs:code,start:,code ends,end,mov ah,2,;,回车符,mov dl,0dh,int 21h,mov ah,1,;,等待键盘输入,int 21h,等待键盘输入,开 始,exit:mov ah,4ch,;,返回,DOS,int 21h,结束,code segment,assume cs:code,start:,mov ah,2 ;,回车符,mov dl,0dh,int 21h,mov ah,1 ;,等待键盘输入,int 21h,cmp al,27 ;,判断是否为,ESC,键,je exit ;,若是则退出,mov dx,2a8h ;,若不是,从2,A8H,输出其,ASCII,码,out dx,al,jmp start ;,转,start,exit:mov ah,4ch ;,返回,DOS,int 21h,code ends,end,273程序,下一页,开 始,结 束,自端口2,A0H,输入,ASC,II,码,保存输入,ASC,II,码至,DL,显示,ASC,II,码对应的字符,有键按下吗?,Y,N,244程序流程图,显示,ASC,II,码对应的字符,mov ah,02,;,显示,ASCII,为,DL,的数据,int 21h,mov dl,0dh,;,显示回车符,int 21h,mov dl,0ah,;,显示换行符,int 21h,exit:mov ah,4ch,;,返回,DOS,int 21h,结束,mov ah,06,;,是否有键按下,mov dl,0ffh,int 21h,jnz exit,je start,;,若无,则转,start,判断部分,自端口2,A0H,输入,ASC,II,码,mov dx,2a0h,;,从2,A0,输入一数据,in al,dx,mov dl,al,;,将所读数据保存在,DL,中,;,code segment,assume cs:code,start:mov dx,2a0h ;,从2,A0,输入一数据,in al,dx,mov dl,al ;,将所读数据保存在,DL,中,mov ah,02 ;,显示,ASCII,为,DL,的数据,int 21h,mov dl,0dh ;,显示回车符,int 21h,mov dl,0ah ;,显示换行符,int 21h,mov ah,06 ;,是否有键按下,mov dl,0ffh,int 21h,jnz exit,je start ;,若无,则转,start,exit:mov ah,4ch ;,返回,DOS,int 21h,code ends,end,244程序流程图,八、实验结果,并行输出接口,实验结果,并行输入接口,实验结果,九、软件编程,步骤,1,汇编语言的上机步骤是基于,DOS,平台的,如果是,WINDOWS,平台,那么可转换到,MS-DOS,程序方式,即建立,DOS,平台。
开始”菜单-“程序”-“附件”-“,MS-DOS,方式”,2,2,使用文本编辑工具软件,EDIT.COM,(基于,DOS,的工具软件,),编辑输入汇编语言源程序,,生成,ASM,文件,在“,Alt+F,”,中,选择“,EXIT,”,退出文本编辑环境,C:,EDIT,(进入文本编辑环境),输入汇编语言源程序,按下“,Alt+F,”,(进入文件菜单,),选择“,SAVE,”或“,SAVE AS,”保存在保存时注意:保存默认路径,“,C:,”,(因为汇编、连接软件都在,“,C:,”,,,这样便于找到文件,)如果“,File Name”,正下方显示如“,C:windows,”,即当前路径不是默认路径“,C:,”,,那么在“,File Name”,下方的“,Directories,”,选择“,.,”到上级目录保存时输入自命名的源程序“,XXX.ASM,”,(“.,ASM”,为扩展名),3,图1,图2,3,使用汇编程序,MASM.EXE,(微软工具,),,对源程序进行,汇编,,生成,OBJ,文件C:,MASM,(进入汇编环境),Source filename.ASM:,xxx.asm,Object filename XXX.OBJ:,Source listing NUL.LST:,Cross-refrence NUL.CRF:,如果,“,Warning Error,”、“,severe Error,”不为0,则源程序有错误,需要再次进入“,EDIT,”。
首先在“,EDIT,环境,打开,xxx.asm,源程序,参照提示的”,Warning Error,”和“,severe Error,”错误行来修改源程序,然后,保存修改源程序,退出,“,EDIT,环境,最终,返回“,MASM,环境,,重新汇编,重复以上三个步骤,一直到没有错误提示,此时生成正确,OBJ,文件4,4,使用连接程序,LINK.EXE,(微软工具,),,对,OBJ,文件进行,连接只有正确的,OBJ,文件,才能进行连接操作将,OBJ,文件,与库函数或其他目标,程序,进行连接成可执行的目标程序-,EXE,文件,C:,LINK,(进入连接环境),Object Modules.OBJ:,xxx.obj,Run File XXX.EXE:,List File NUL.MAP:,Libraries.LIB:,Warning:No STACK segment,(忽略,),There was 1 error detected.,C:,XXX.EXE,(执行程序,),。