ImageVerifierCode 换一换
格式:PPT , 页数:91 ,大小:620.50KB ,
资源ID:13366847      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/13366847.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(微机原理PPT课件:第7章-IO接口技术及接口芯片.ppt)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

微机原理PPT课件:第7章-IO接口技术及接口芯片.ppt

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,德 能 日 新,*,第七章,I/O,接口技术及接口芯片,7.1,系统与总线接口,7.1.1,总线技术,总线是一组公用导线,一些数据源中的任何一个都可以利用它传送数据到另一个或多个目的。总线是分时复用的,在特定时间周期内,总线只能为一个源专用,从属于一个源。也就是说,总线是一组能为多个部件分时共享的公共信息传送线路,分时和共享是总线的两个特点。,德 能 日 新,微处理器的外部结构表现为数量有限的输入输出引脚,这些引脚构成了微处理器级总线。微处理器通过微处理器级总线和其它逻辑线路连接组成微机的主机板系统,形成系统级

2、总线,简称系统总线。存储器和,I/O,设备通过接口电路连接在系统总线上,形成一个完整的微型计算机系统。,总线分为地址总线,数据总线和控制总线。微处理器级总线和系统级总线之间的接口电路称为总线控制逻辑,总线控制逻辑中的驱动器和接收器是为了提高总线的驱动能力和承受负载的能力。,德 能 日 新,7.1.2 PC,系统总线,PC,机系统采用,8086/8088,微处理器。该处理器要用,40,个引脚的双列直插式陶瓷封袋,均要用分时复用的地址,/,数据总线,这些引脚具有两种功能。微处理器有两种工作方式:最小方式和最大方式。最小方式用于由单微处理器组成小系统,由,8086/8088,直接产生小系统所需的全部

3、控制信号。最大方式用于多微处理器系统,,8086/8088,不直接提供用于存储器或,I/O,读写的读写命令等控制信号,只是将操作类型的状态信息输出,由总线控制器,8088,对状态信息进行译码而产生相应的控制信号。,德 能 日 新,7.1.3,总线技术接口,1.,总线周期,正常的,8088,(,86,)总线周期,不管是读还是写,都用,4,个时钟周期(,T,)。,在,T1,期间地址与数据复用信号线送出相应地址,AD0AD7,,同时送出地址锁存允许信号,ALE,。若利用,ALE,锁存有关地址信号,再加上其他不需要复用的地址信号,A8A19,,即可在锁存器的输出端得到完整的,20,位地址信号,A0A1

4、9,。一旦利用,ALE,的高电平锁存地址信号在此后的时钟周期里,利用有关的控制信号如,IO/M,,,RD,,,WR,等完成对内存或外设的读写操作。,德 能 日 新,当由于内存或外设速度慢,,4,个时钟周期不能正确的进行读写时,可以通过时钟发生器产生,READY,信号加到,CPU,上,可使,CPU,在,T3,和,T4,之间插入一个或若干个等待时钟周期,Tw,。,2.,锁存器与驱动器,在形成,8088,(,86,)系统总线时,常用到具有三态输出的信号锁存器,8282,和,8283,。,8282,和,8283,除前者是反向输出和后者是正向输出外,其它性能完全一样。对于数据总线,可采用双向驱动器。在构

5、成系统总线时,常用,8286,或,8287,。两者除,8286,是正向的,,8287,是反向的外,其它完全相同。,德 能 日 新,3.,系统总线的形成,(,1,)最小模式,(,2,)最大模式,为了实现最大模式下工作,形成系统总线要使用厂家提供总线控制器,8288,。,当系统总线形成以后,构成微型机的内存及各种接口就可以直接与系统总线相连接,从而构成所需微型机系统。,德 能 日 新,7.2,可编程定时器,/,计数器,8253,及使用,7.2.1,定时器系统概述,每个微处理器厂家都研制并提供与本厂的微处理器配合工作的定时器,/,计数器接口芯片。微机系统在实时控制及数据采集中,都可以用这类器件完成,

6、它可以作为计数器对外部事件的记数,也可以作为实时时钟对各种设备实现定时控制,早期的有,Z80CTC,,,Motorola,的,6840,和,6520,,,Intel,公司,80,系列的,8253,等。,德 能 日 新,7.2.2 8253,的内部结构和工作原理,8253,有三个结构相同又相互独立的记数单元,我们称其为计数器,0,、计数器,1,和计数器,2,。,每个记数单元包括:,一个,8,位的控制寄存器,用程序控制其工作方式。,一个,16,位的计数寄存器和,16,位的输出锁存器。,一个,16,位的计数工作单元,受控制寄存器控制。,德 能 日 新,8253,与总线的连接线主要是:,D0D7,:双

7、向数据线,用以传送数据,(计数器的计数值)和控制字。,CS,:,片选信号,低电平有效。只有当他,有效时,才能选中该芯片进行读写操,作。,RD,,,WR,:,读写控制信号。,德 能 日 新,A1A0,为,8253,计数器和控制寄存器选择信号:,A1 A0,0 0,选择计数器,0,0 1,选择计数器,1,1 0,选择计数器,2,1 1,选择控制寄存器,A1A0,与其它控制信号,CS,,,RD,,,WR,,,完成对,8253,的寻址和读写操作。,德 能 日 新,CLK0,CLK2,:,是各计数器的时钟输入端。,GATE0,GATE2,:,门控信号,是计数器的输入控制信号,用来控制计数器的工作。,OU

8、T0,OUT2,:,计数器输出信号,用来产生不同工作方式时的输出波形。,8253,计数器最基本的操作是:接收由数据线传来的控制字和计数初值,对,CLK,时钟脉冲进行减一操作,其计数工作受,GATE,门控信号控制。最后输出由控制寄存器控制的操作方式所产生的相应信号。,德 能 日 新,7.2.3 8253,的工作方式,1.8253,的工作方式,(,1,)方式,0,:记数结束产生中断,(,2,)方式,1,:可编程单稳,(,3,)方式,2,:频率发生器,(,4,)方式,3,:方波发生器,(,5,)方式,4,:软件触发选通,(,6,)方式,5,:硬件触发选通,德 能 日 新,2.8253,的控制字,82

9、53,的内部有一个,8,位的控制寄存器,通过对其编程实现为三个计数器工作方式的控制,控制字格式为:,SC1,、,SC0,计数器选择,(,D7 D6,),0 0,计数器,0,0 1,计数器,1,1 0,计数器,2,1 1,非法,德 能 日 新,RL1,、,RL0,计数长短选择,(D5 D4),0 0,将计数器中的数据锁存与缓冲器,0 1,计数器低,8,位字节的读或写,1 0,计数器高,8,位字节的读或写,1 1,选低,8,位和高,8,位字节的读或写,德 能 日 新,M2 M1 M0,工作方式选择,(D3 D2 D1),0 0 0,方式,0,0 0 1,方式,1,X 1 0,方式,2,X 1 1,

10、方式,3,1 0 0,方式,4,0 1,方式,5,BCD,位,(D0),用来定义所使用的计数值是二进制代码还是,BCD,代码。因为每个计数器都是,16,位,允许使用二进制数,0000HFFFFH,或十进制,000999,。由于计数器为减一操作,当初始值为,0,是最大计数值。,德 能 日 新,3.8253,的初始化,由于,8253,的每个计数器都有独立的地址,控制字中又有,SC1,、,SC0,两位指定计数器,就使的,8253,的编程初始化十分简单方便。,对计数器的编程可按任意顺序进行,并只对用到的计数器编程。当一个计数器长度不够时,可以将两个或三个计数器串连使用,即一个计数器的输出,OUT,信号

11、做一个计数器的,CLK,时钟输入。还可将多个,8253,串联起来使用。,通常在使用中要用这个对计数器初始化。先写入控制字,接着写入计数值。两个字节的计数值先写入低字节,后写入高字节。,德 能 日 新,4.8253,的寻址及连接,(,1,)寻址,8253,占用,4,个接口地址,地址由,CS,、,A0,、,A1,来确定。同时,再配合,RD,、,WR,控制信号,可以实现对,8053,的各种读写操作。上述信号的组合功能由表,7-1,来说明。,德 能 日 新,表,7-1,各寻址信号组合功能,CS A1 A0 RD WR,功 能,0 0 0 1 0,写计数器,0,0 0 1 1 0,写计数器,1,0 1

12、0 1 0,写计数器,2,0 1 1 1 0,写方式控制字,0 0 0 0 1,读计数器,0,0 1 0 0 1,读计数器,1,0 1 1 0 1,无 效,德 能 日 新,当对,8253,的计数器进行读操作时,可以读出计数值,具体实现方法有如下两种:,1,使计数器停止计数时,先写入控制字,规定好,RL1,和,RL0,的状态,也就是规定读一个字节还是两个字节。若其编码为,11,,则一定读两次,先读出计数值低,8,位再读出高,8,位。若读一次同样会出错。,为了使计数停止计数,可用,GATE,门控信号或自己设计的逻辑电路。,德 能 日 新,2,计数过程中读计数值。这是读出当前的计数值并不影响正在计数

13、的计数器的工作。,为作到这一点,首先写入,85253,一个特定的控制字:,SC1,、,SC0 0 0 X X X X,,这是控制字的一种形式。其中两比特,SC1,和,SC0,与图,6-40,的定义一样。后面两位刚好定义,RL1,和,RL0,为,0 0,。将此控制字写入,8253,后,就可将选中的计数器的当前计数值锁存器中。而后,利用读计数器操作,两条输入指令即可把,16,位计数值读出。,德 能 日 新,(,2,)连接,主要解决,8253,与,8088,总线的连接。通过译码器,使的,8253,占用,4,个接口地址。,德 能 日 新,7.2.4,应用举例,设,PC,机中有一片,8253,。其分配的

14、I/O,地址为,040H,043H,,加在计数器,CLK,端的系统中主频(,4.77MHZ,)的,4,分频脉冲信号(,1.19318HHZ,)。,计数器,0,用以产生实时时钟信号。,计数器,1,用以形成动态存储器,(RAM),刷新,的定时信号。,计数器,2,用以产生驱动扬声器的信号,发出多种声音。,德 能 日 新,7.3,可编程并行接口,8255,7.3.1,并行接口技术概述,8255,是,intel,为其,80,系列微处理器生产的通用可编程并行输入输出接口。它具有很强的功能,在使用中可利用软件编程来指定它该完成的功能。因此,,8255,获得了广泛的应用。,德 能 日 新,1,、外部引线,D

15、o,D7,:双向数据信号线,用来传送数据和控制字。,RD,:读信号线,与其他信号线一起实现对,8255,接口的读操作。通常接系统总线的,IOR,信号。,WR,:写信号线,与其他信号一起实现对,8255,的写操作,通常系统总线的,IOW,。,CS,:片选信号线,当它为低平(有效)时,才能选中该,8255,芯片,也才能对,8255,进行操作。,德 能 日 新,A0,A1,:口地址选择信号线。,8255,内部有,3,个口,A,口,,B,口,,C,口和一个控制寄存器供软件编程选择。,A0,A1,的不同编码可分别选择上述,3,个口和一个控制,寄存器,具体规定如下:,A1 A0,选 择,0 0 A,口,0

16、 1 B,口,1 0 C,口,1 1,控制寄存器,通常,A0,、,A1,分别接总线的,A0,、,A1,地址线(对,8088,)。它们与,CS,一起共同决定,8255,的地址。,德 能 日 新,RESET,:复位输入信号,高电平有效复位,8255,。复位后,,8255,的,A,口、,B,口、,C,口均被定为输入。,PA0,PA7,:为,A,口的输入输出信号线。该口时是输入还是输出或双向,是由软件编程来决定的。,PB0,PB7,:为,B,口的输入输出信号线。可利用软件编程来规定它们是输入还是输出。,PC0,PC7,:有工作方式来决定,,PC0,PC7,可利用输入输出或 控制和状态线使用。,德 能

17、日 新,2,、内部结构,8255,有三个口,三个口均为,8,位。其中,A,口输出有锁存能力。输入亦有锁存能力。,B,口输入输出均有锁存能力。,C,口输出有锁存能力,输入没有锁存能力,在使用上要注意到这一点。,为了控制方便,将,8255,的三个口分成,A,、,B,两组。其中,A,组包括,A,口的,8,条线,PA0,PA7,和,C,口的高,4,位,PC4,PC7,。,B,组包括,B,口的,8,条线,PB0,PB7,和,C,口的低,4,位,PC0,PC3,。,A,组和,B,组分别由软件编程来加以控制。,德 能 日 新,7.3.3 8255,的控制字和工作方式,1.8255,的工作方式,8255,有三

18、种工作方式,这些工作方式,可用软件编程来指定。,(,1,),工作方式,0,,又称为基本输入输出方式,(,2,)工作方式,1,,即选通输入输出方式,(,3,)工作方式,2,,又称双向输入输出方式,德 能 日 新,2.,方式控制字及状态字,前面已叙述了可编程并行接口,8255,的工作方式。可以看到,,8255,由很强的功能,能够工作在各种工作方式下。在应用过程中,可以利用软件编程来指定,8255,的工作方式。也就是只要将不同的控制字装入芯片中的控制寄存器,即可确定,8255,的工作方式。,(,1,)控制字,8255,的控制字由,8,位二进制数构成,,德 能 日 新,(,2,)状态字,当,8255,

19、的,A,口,,B,口工作在方式,1,或方式,2,时,可以通过读,C,口的状态,利用所读的,C,口的状态可以检测,A,口和,B,口的状态。,3.8255,的寻址及连接使用,8255,占外设编址的四个地址,即,A,口、,B,口、,C,口和控制寄存器各占一个外设接口地址。对同一个地址分别可以进行读写操作。例如,读,A,口可将,A,口的数据读出;写,A,口可将,CPU,的数据写入,A,口并输出。前面提到,8255,的片选信号及,A0,、,A1,的功能,再加上读写信号。即可方便的对,8255,进行寻址。这些信号的功能如表,7-2,所示。,德 能 日 新,表,7-2 8255,的寻址,CS A1 A0 I

20、OR IOW,操 作,0 0 0 0 1,读,A,口,0 0 1 0 1,读,B,口,0 1 0 0 1,读,C,口,0 0 0 1 0,写,A,口,0 0 1 1 0,写,B,口,0 1 0 1 0,写,C,口,0 1 1 1 0,写控制寄存器,1 X x 1 1 D0,D7,三态,德 能 日 新,7.3.4 8255,的应用举例,8255,可编程接口芯片的初始化十分简单,只要将控制字写入,8255,的控制寄存器即可实现。现在举例说明,8255,的应用。首先利用,8255,来实现打印机的接口。,德 能 日 新,接口将数据传给打印机的输入端,D0,D7,。利用一个负的锁存脉冲(,1us,宽度)

21、锁存于打印机内部,打印机进行处理。同时,打印机送出高电平的,BUSY,信号,表示打印机正忙。一旦,BUSY,变低,表示打印机又可以接收下一个数据。,为了与打印机接口,,A,组,,B,组均工作在方式,0,而用,A,口的,PA0,PA7,与打印机的,D0,D7,相连接,,C,口的,PC6,用作输出接,STROBE,,,PC2,为输入接打印机的忙信号,BUSY,。为此,应初始化,A,口为输出,,C,口的高,4,位为输出。,C,口的低,4,位为输入。,B,口保留,暂时未用。因此,在下面的初始化中用,B,口为输入。,德 能 日 新,MOV AL,,,10000011B,MOV DX,,,0383H,OU

22、T DX,,,AL,以上程序就是根据上述要求对,8255,进行的初始化程序。,若要将存于,AL,中的字符送打印机打印出来,则可以用下面的简单,程序来完成:,MOV DX,,,0382H,XCHG AX,,,BX,PWAIT,:,IN AL,,,DX,AND AL,,,04H,JNZ PWAIT,XCHG AX,,,BX,MOV DX,,,0380H,OUT DX,,,AL,上面的程序是首先判断打印机忙否?若忙则等待,不忙则将,AL,中的,字符送出打印。,德 能 日 新,7.4,可编程串行接口,8250,的使用,7.4.1,串行通信的基本概念,微型计算机与外设,(,包括其他微型计算机,),之间的

23、通信,通常应用两种形式的通信,即串行通信和并行通信。并行通信是构成一组数据的各位同时传送,例如,8,位数据或,16,位数据并行传送。串行通信是数据一位接一位顺序传送。并行通信用前面提到的并行接口可以实现。串行通信也已研制出许多可供使用的串行接口来实现。,德 能 日 新,并行与串行通信各有其优缺点。一般地说串行通信使用的线少,传送距离远,传送速率比较低。而并行却与此相反。,在串行通信中,经常采用两种最常用地通信方式,一种是同步通信,一种是异步通信。,德 能 日 新,1.,同步通信,所谓同步通信是指在约定的波特率,(,每秒钟传送位数,),下,发送端和接收端的频率保持一致,(,同步,),。因为发送和

24、接收每一位数据均保持同步,故传送信息的位数几乎不受限制,通常一次传送的数据有几十到几百个字节。这种通信的接收器和发送器比较复杂,成本比较高。,德 能 日 新,2,异步通信,异步通信是指收发端在约定的波特率下,不要求严格的同步,允许有相对的延迟。即两端的频率差别在,1/10,内,就能正确的实现通信。,德 能 日 新,异步通信传送一个字符由一位低电平的起始位开始,接着传送数据位,数据可以是,5,位,,6,位,,7,位或者,8,位,可由程序指定。在传送时,按低位在前,高位在后的顺序传送。数据位的后面可以加上一位奇偶校验位,也可以不加这一位,可由程序来指定。最后传送的是一位,一位半或两位高电平的停止位

25、这样,一个字符就传送完了。在两个字符传送的空闲期间,要由高电平,1,来填充。,异步通信每传送一个字符,要增加大约,20%,的附加信息位,这必然降低了传送速率。但是,这种通信方式可靠,实现容易,故广泛的应用于各种微型计算机系统中。,德 能 日 新,7.4.2 8250,的初始化编程,8250,可编程串行接口功能强,使用灵活,应用广泛。这里对它进行简要介绍,主要达到能够在应用中灵活使用它的目的。,1,、引线及功能,2,、内部寄存器,(,1,)通信控制寄存器,(,2,)通信状态寄存器,(,3,)发送数据寄存器,(,4,)接收数据寄存器,德 能 日 新,(,5,)除数锁存器,(,6,)中断允许寄存器

26、7,)中断标志寄存器,(,8,),MODEM,控制寄存器,(,9,),MODEM,状态寄存器,德 能 日 新,3,、,8250,的寻址及连接,8250,内部有,10,个与我们编程使用有关的寄存器,利用选片,CS0,,,CS1,和,CS2,可以选中该片,8250,。利用片上的,A0A1A2,三条地址线可以选择最多,8,个寄存器,三位地址线的不同编码。再利用通信控制字的最高位,除数锁定位(,DLAB,)来选中除数锁定寄存器。再加上有的寄存器是只写的,有的寄存器是只读的。这样还可以利用读写信号来加以选择。通过上述这些办法,可以顺利的对,8250,进行寻址。,德 能 日 新,4,、初始化及其应用

27、8250,初始化的顺序通常首先将通信控制字的,D7=1,即,DLAB,为,1,。在此条件下再将除数寄存器中该锁存的除数分底,8,位和高,8,位先后写入除数锁存器。此后,再按照寻址表中所规定的地址逐个的将控制字写入,8250,中。,德 能 日 新,下面是一个,8250,的初始化程序:,MOV DX,,,3FBH,MOV AL,,,80H,OUT DX,AL,;将通信控制寄存器,D7=1,即,DLAB=1,MOV DX,3F8H,;,MOV AL,60H,;,OUT DX,AL,;锁存除数低,8,位,INC DX,MOV AL,0,OUT DX,AL,;锁存除数高,8,位,MOV DX,3FBH

28、MOV AL,0AH,OUT DX,AL,;初始化通信控制寄存器,MOV DX,3FCH,MOV AL,03H,OUT DX,AL,;初始化,MODEM,控制器,MOV AL,3F9H,MOV AL,0,OUT DX,AL,;写中断允许寄存器,德 能 日 新,接在初始化程序之后,若采用查询方式发送数据,且要发送的数据放在,BX,中,要发送的数据顺序放在,SEDATA,为首地址的内存区中,则程序可如下实现:,SEDPG:MOV DX,3FDH,LEA SI,SEDATA,WAITSE:IN AL,DX,TEST AL,20H,JZ WAITSE,PUSH DX,MOV DX,3F8H,MOV

29、AL,SI,OUT DX,AL,POP DX,INC SI,DEC BX,JNZ WAITSE,德 能 日 新,同样,在初始化后,可以利用查询方式实现数据的接收。下面是由,8250,接收一个数据的程序:,REVPG:MOV DX,3EFDH,WAITRE:IN AL,DX,TEST AL,1EH,JNZ ERROR,TEST AL,01H,JZ WAITRE,MOV DX,3F8H,IN AL,DX,AND AL,SX,AND AL,7FH,德 能 日 新,7.4.3 8250,的应用举例,由于串行接口可以进行长距离的通信,但连接较长的引线容易遭受外部的意外破坏,如雷击、短路等引起串行通信不能

30、正常工作。通常可以通过测量端口的电压来判断串行接口电路是否正常,也可以通过软件的方法测试其是否正常工作。该程序采用查询方式,需将串口的收发端,2,、,3,短接即可运行。,德 能 日 新,串口测试程序:,STACK SEGMENT PARA STACK STACK,DB 500 DUP(0),STACK ENDS,DATA SEGMENT,TEXT DB THE QUICK BROWN FOX JUMPS OVER LAZY,DB DOG,0DH,0AH,LLL EQU$-TEXT,ERROR DB COM1 BAD!,0DH,0AH,$,DATA ENDS,德 能 日 新,CODE SEGME

31、NT,ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK,BEG:PUSH DS,MOV AX,0,PUSH AX,MOV AX,DATA,MOV DS,AX,MOV ES,AX,CALL I8250,MOV CH,10,德 能 日 新,AGAIN:MOV CL,LLL,MOV BX,OFFSET TEXT,TSCAN:MOV DX,3FDH,IN AL,DX,TEST AL,20H,JZ TSCAN,MOV AL,BX,SEND:MOV DX,3F8H,OUT DX,AL,德 能 日 新,MOV SI,0,RSCAN:MOV DX,3FDH,IN AL,DX,TE

32、ST AL,01H,JNZ RECEIVE,DEC SI,JNZ RSCAN,JMP ERR,德 能 日 新,RECEIVE:MOV DX,3F8H,IN AL,DX,AND AL,7FH,DISP:MOV AH,2,MOV DL,AL,INT 21H,INC BX,DEC CL,JNZ TSCAN,DEC CH,JNZ AGAIN,JMP RETURN,德 能 日 新,ERR:MOV AH,9,MOV DX,OFFSET ERROR,INT 21H,RETURN:RET,I8250 PROC,MOV DX,3FBH,MOV AL,80H,OUT DX,AL,MOV DX,3F9H,MOV A

33、L,00H,OUT DX,AL,德 能 日 新,MOV DX,3F8H,MOV AL,60H,OUT DX,AL,MOV DX,3FBH,MOV AL,03H,OUT DX,AL,MOV DX,3F9H,MOV AL,00H,OUT DX,AL,MOV DX,3FCH,MOV AL,00H,OUT DX,AL,RET,I8250 ENDP,CODE ENDS,END BEG,德 能 日 新,7.5,键盘接口,7.5.1,键盘输入设备,键盘是计算机最基本的一种输入设备,用以输,入信息,键盘提供了三种基本类型的键:,(,1,)字符键,(,2,)扩展功能键,(,3,)和其它键组合使用的控制键,字符键

34、给计算机传送一个,ASCII,码字符,而扩展,功能键产生一个动作,如按下,Home,键能把光标移,到屏幕的左上角,,END,键使用光标移到屏幕上文本,的末尾。使用控制键能改变其它键所产生的字符码。,德 能 日 新,7.5.2,键盘编码,当我们在键盘上“按下”或“放开”一个键盘时,如果键盘中断是允许的(,21H,)端口第,1,位,=0,),就会产生 一个类型,9,的中断,并转入到,BIOS,的键盘处理程序。该处理程序从,8255,可编程序外围接口芯片的输入端口,60H,读取一个字节,这个字节的低,7,位是键的扫描码,最高位为,0,或为,1,,分别表示键是“按下”状态还是“放开”状态,按下时,取得

35、的字节称为通码,放开时,取得的字节称为断码。如按下,Esc,键时产生一个通码为,01H,,放开,Esc,键时产生一个断码为,81H,。键盘上每个键都是对应一个扫描码,从,01H,(,Esc,)到,83,(,Del,),或从,01H,到,53H,,所以根据扫描码就能唯一地确定哪一个键改变了状态。,德 能 日 新,BIOS,键盘处理程序将取得的扫描码转换成相应的字符码,大部分键的籽符是一个标准的,ASCII,码,没有相应,ASCII,码的键,如,Alt,功能键(,F1F10,),字符码为,0,,还有一些非,ASCII,码键盘产生一个指定的操作,如打印屏幕内容等。转换成字符码以及扫描码存储在,ROM

36、 BIOS,数据区的键盘缓冲区,KB_BUFFER,中。,0040,:,0001H BUFF_HEAD DW,?;键盘缓冲区的首地址,0040,:,001C BUFF_TALK DW,?;键盘缓区的末地址,0040,:,001E KB_BUFFER DW,?,16 DUP,(?);,16,个输入量的空间,0040,:,003E KB_BUFFER_END LABEL WORD,德 能 日 新,这个缓冲区是一个先进先出的循环队列,,BUFF_HEAD,和,BUFF_TALL,是缓冲区两个地址指针。当,HEAD,指针和,TALL,指针相等时,说明缓冲区空。当,CPU,想要得到键盘输入时,就调用,B

37、IOS,键盘例行程序,它按其接收时的次序从缓冲区取出字符和扫描码,回送给,CPU,,缓冲区的大小可适应最快的打字员,但如果缓冲区已满又按下了一个键,,BIOS,不处理这个键,只发出“嘀”的响声。,德 能 日 新,7.5.3,键盘接口编程,类型,16,(键盘)中断提供了基本的键盘操作,类型,16,的中断处理程序包括,3,个不同的功能,分别根据,AH,寄存器的内容来选择,见表,7-3,所示。,表,7-3 BIOS,键盘中断(,INT 16H,),AH,功 能 返回参数,0,从键盘读一字符,AL=,字符码,AH=,扫描码,1,读键盘缓冲区的字符 如,ZF=0,AL=,字符码,AH=,扫描码,2,取键

38、盘状态字节 如,ZF=1,,缓冲区空,AL=,键盘状态字节,德 能 日 新,利用,INT 16H,调用键盘,I/O ROM,例行程序时,先在,AH,放一个功能编号,0,、,1,或,2,,例如我们要查看按键的扫描和,ASCII,码,可以调用中断类型,16H,的,0,功能,该功能把扫描码回送到,AH,中,把,ASCII,码回送到,AL,中,然后调用二进制转换十六进制的子程序,BINIHEX,,把,AH,和,AL,中的内容打印出来。其指令序列为:,MOV AH,,,0,;,read character function,INT 16H,;,Keyboard I/O ROM call,MOV BX,A

39、X,;,move AX to BX,CALL BINIHEX,;,Print,scancode,&char,德 能 日 新,BIOS,键盘中断(,16H,),它能同时回送字符码和扫描码,这在使用功能键和变换键的程序中是很重要的。但对一般的键盘操作,我们最好使用适应能力更好的由,DOS,类型,21H,中断提供的键盘功能调用。,表,7-4,列出了与键盘输入有关,DOS 21H,功能调用,它包括把单字符读入,AL,和把一个字符串读入存储器等功能。在编写程序时,你会感到使用,DOS 21H,键盘功能调用非常方便。,德 能 日 新,表,7-4 DOS,键盘操作(,INT 21H,),AH,功 能,调用参

40、数,返回参数,1,从键盘上输入一个字符,并回显在屏幕上,AL=,字符,2,将字符显示在屏幕上,DL=,字符,6,读键盘字符,DL=0FFH,AL=,字符(有键按下),AL=0(,无键按下,),7,从键盘上输入一个字符,不回显,AL=,字符,8,从键盘上输入一个字符,不回显,检测,Ctrl_break,键,AL=,字符,A,输入字符到缓冲区,DS:DX=,缓冲区首址,B,读键盘状态,AL=0FFH,(有键按下),AL=00(,无键按下,),C,清除键盘缓冲区并调用一种键盘,功能,AL=,键盘功能号,(1,6,7,8,A),德 能 日 新,1.,单字符输入,DOS 21H,中断的功能,1,,,7,

41、和,8,都能从键盘读入一字符送入,AL,寄存器。功能,1,能把字符显示出来并检验是否按下了,Ctrl_Break,键,如果按下了,Ctrl_Break,键,就自动调用中断,23H,并结束程序。,21H,的功能,7,不能回打字符或检验,Ctrl_Break,。,21H,的功能,8,检验,Ctrl_Break,,但是不回显。,在交互程序中常常需要用户对一个提示做出应答,或通过输入一个字符或数字对菜单的各项进行选择,这时就要用到,21H,的单字符输入功能。例如程序显示出一串信息,要求你回答,Y,或,N,,回答,Y,,程序将转入标号为,YES,的程序段,,N,使程序转入为,NO,的程序段,按下其它键程

42、序就等待。这样的工作由下面的程序段来完成。,德 能 日 新,GET_KEY:MOV AH,1 ;Read a key,;with echo,INT 21H,CMP AL,Y ;Is it Y?,JE YES ;If,so,jump,to YES,CMP AL,N ;Is it N?,JE NO ;If,so,jump,to NO,JNE GET_KEY;,otherwise,wait,for,;Y to N,德 能 日 新,测试,Y,,,N,或其它字母,数字和符号可直接把它们写在,CMP,指令中,用引号括起来,但是如果想检测,Enter(Return,),键,就要在指令中写出它的,ASCII,

43、码,0D,(十六进制)或,13,(十进制)。例如,要求程序在按下,Return,键后才继续运行,用下面的指令:,WAIT_HERE:MOV AH,7,;Wait for enter,INT 21H,CMP AL,,,0DH,JNE WAIT_HERE,德 能 日 新,2.,输入字符串,在许多应用程序中,要求用户输入姓名、地址或其它字符串,,21H,中断的功能,A,能从键盘读入一串字符并把它存入用户定义的缓冲区中。缓冲区的第一个字节,保存最大字符数,这个最大字符数由用户程序给出。如果键入发字符比此数大,那就会发出“嘟嘟”声,而且光标不再向右移动。,第二个字节是实际输入字符的个数,这个数据是由功能

44、A,填入的,而不是由用户填入。在这两个字节之后,字符串就按字节存入缓冲区,最后结束字符串的回车符,0DH,还要占用一个字节,因此整个缓冲区的字节空间应为最大字符数(包括,RETURN,在内)加,2,。,德 能 日 新,MAXLEN DB 32,ACTLEN DB,?,STRING DB 32 DUP,(?),输入字符串的指令如下:,LEA DX,,,MAXLEN,;,make DX point to buffer,MOV AH,,,0AH,;,input the string,INT 21H,德 能 日 新,INT 21H,的功能,A,把实际字符数(不包括,RETURN,)填入缓冲区的第二个

45、字节,并保持,DS,:,DX,指向缓冲区的第一个字节。如果想把实际字符数放入,CX,寄存器,并把指针(,DS,:,DX,)指向字符串的第一个字符。,德 能 日 新,3.,清除键盘缓冲区,从键盘输入的字符实际上先放在一个,16,字节的键盘缓冲区内,功能,1,,,7,,,8,和,0AH,实际上是从键盘缓冲区取得字符。,INT 21H,的功能,0CH,能清除键盘缓冲区,然后执行在,AL,中指定的功能,,AL,指定的功能 可以是,1,,,6,,,7,,,8,或,0 AH,,使用,0CH,可以使程序在输入一个字符之前,将以前键入的字符清除掉。,功能,0CH,的用法如下:,MOV AH,,,0CH,MOV

46、 AL,,,08H,INT 2 1H,德 能 日 新,4.,检验键盘状态,DOS 21H,的功能,0BH,能检验一个键是否被按动,如果按下一个键,则在,AL,寄存器中放入,0FFH,,如果没有按下键,则,AL,中放,00,,无论哪种情况都将继续执行程序中的下一条指令。有是这是一种不可少的功能,例如希望程序保持运行状态,同时又检验键盘,看用户是否按下任意一个键来终止程序或退出循环。下面指令序列是特点是,在未按键之前,程序总是不断循环执行,只要按下任何一个键,程序就退出循环并返回。,德 能 日 新,SOUNDER:,:,:,MOV AH,0BH,INT 21H,INC AL,JNZ SOUNDER

47、RET,德 能 日 新,DOS 21H,的功能,06H,同样能检验一个键是否被按动,只是要在,DL,中放,0FFH,,若有键按下,返回该键的,ASC,码在,AL,中,否则,AL=0,。,MOVDL,0FFH,MOV AH,06H,INT21H,CMP,AL,q,JZDONG,RET,DONG,:,MOV AH,4CH,INT21H,德 能 日 新,7.6,显示器与打印机接口,7.6.1,显示器,I/O,显示器可通过两种适配器板连接到,IBM PC,机上。单色显示和并行打印机适配器连接,IBM,单色显示器和并行打印机。彩色,/,图形监视器适配器连接监视器或标准的电视机(彩色,TV,或黑白,TV

48、单色适配器只能显示字符,只能用于黑白显示器。字符由标准字母、数字和符号组成,加上一些简单的图形,如菱形、矩形及笑脸等符号。,德 能 日 新,显示器的屏幕被划分成,80,列,25,行,适配器就是在这个,2000,个(,2580,)网格位置上显示字符。屏幕上的每个网格位置也称为一个“象素”。对应屏幕上的每个象素,存储器中都有一毡相应单元,因此我们说屏幕是“存储器映象”的。这种存储器映象,使显示器电路很容易知道哪个单元的内容对应屏幕上哪个位置。,德 能 日 新,1.,属性,单色显示屏幕上的每个字符在存储器中由两个字节表示,一个字节保存字符的,ASCII,码,另一个字节保存字符属性。字符的属性

49、确定了每个模显示字符的特性,如字符是否闪烁显示,是否被加亮,是否反相显示。,德 能 日 新,属性可以有不同的组合,例如可以在屏幕是显示白底黑字(反相显示)代替通常的黑底白字。正常的属性是,07,(二进制,00000111,)即背景为黑色(,000,),前景为白色(,111,),而闪烁位为正常(,0,),加强亮度位也是正常(,0,)。为改变成反相显示,必须使背景为白色(,111,),前景为黑色(,000,),所以属性字节的值应为,70,,即二进制,01110000,。如果想要黑底白字及闪烁显示,属性值应为,87,(,10000111,)。背景为,000,,前景为,001,,这种组合可产生下划线。

50、德 能 日 新,2.BIOS,显示中断,3.,控制光标,光标不是,ASCII,字符表中的字符,计算机有专门的硬件来控制光标。我们熟悉的光标一般是一个下划线或方块符。,利用,INT 10H,的功能,1,使光标显现或关闭。这个功能也控制光标行的开始和结束,也就是说控制光标的大小。表示光标行开始和结束的数据分别放在,CH,和,CL,的低四位(,0,3,),当,CH,的第,4,位为,1,时,光标不显现出来(关闭);当第,4,位为,0,时,光标在屏幕上显现出来。单色显示器的光标大小的范围从,0,到,13,。,德 能 日 新,4.,读光标位置,10H,的功能,3,是读光标位置,页号必须在,BH,中指定。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服