微机原理11_并口8255Aok_第1页
微机原理11_并口8255Aok_第2页
微机原理11_并口8255Aok_第3页
微机原理11_并口8255Aok_第4页
微机原理11_并口8255Aok_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

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

文档简介

1、第十一章第十一章 并行可编程接口芯并行可编程接口芯片片8255及其应用及其应用主要内容主要内容 并行接口芯片并行接口芯片8255A 结构结构 工作方式工作方式 应用应用 键盘键盘 LED 打印机打印机*CPU与外设的接口与外设的接口 接口的组成和功能接口的组成和功能 数据锁存数据锁存/缓冲:速度匹配、信号隔离缓冲:速度匹配、信号隔离 控制命令和状态寄存器控制命令和状态寄存器 地址译码:内部端口选择地址译码:内部端口选择 读写控制读写控制 中断中断/DMA请求逻辑请求逻辑 可编程接口芯片特点可编程接口芯片特点 多通道多通道 多功能多功能 可编程:通过编程设置各个通道的工作模式可编程:通过编程设置

2、各个通道的工作模式 可编程微处理器、可编程芯片可编程微处理器、可编程芯片接口信号接口信号 CPU侧侧 CS*: AEN IOR*、IOW*: DMA、INT 地址总线地址总线 数据总线数据总线 外设侧:外设侧:STB*、RDY 输入接口:输入接口: 输入选通输入选通STB*:外设:外设-接口,接口, 输入准备好输入准备好RDY:接口:接口-外设,输入缓冲器满外设,输入缓冲器满IBF 输出接口:输出接口: ACK 接受数据回答:外设接受数据回答:外设-接口接口 输出缓冲器满输出缓冲器满OBF :接口:接口-外设外设 数据总线数据总线并行接口并行接口 8255A的工作方式和编程的工作方式和编程 8

3、255A的应用的应用 简易键盘的扫描程序简易键盘的扫描程序 LED数码管的多位显示数码管的多位显示并行数据传输方式并行数据传输方式 以计算机的字长(通常是以计算机的字长(通常是8位、位、16位或位或32位)为传输单位,一次传送一个字长的数位)为传输单位,一次传送一个字长的数据据 适合于外部设备与微机之间进行近距离、适合于外部设备与微机之间进行近距离、大量和快速的信息交换大量和快速的信息交换 例如:微机与并行接口打印机、磁盘驱动器例如:微机与并行接口打印机、磁盘驱动器 微机系统中最基本的信息交换方法微机系统中最基本的信息交换方法 例如:系统板上各部件之间,接口电路板上例如:系统板上各部件之间,接

4、口电路板上各部件之间各部件之间并行接口芯片并行接口芯片8255A 具有多种功能的可编程并行接口电路芯片具有多种功能的可编程并行接口电路芯片 最基本的接口电路:三态缓冲器和锁存器最基本的接口电路:三态缓冲器和锁存器 与与CPU间、与外设间的接口电路:状态寄存间、与外设间的接口电路:状态寄存器和控制寄存器器和控制寄存器 还有端口的译码和控制电路、中断控制电路还有端口的译码和控制电路、中断控制电路 分分3个端口,共个端口,共24个外设引脚个外设引脚 共三种输入输出工作方式共三种输入输出工作方式8255A的内部结构和引脚的内部结构和引脚数据数据总线总线缓冲器缓冲器内部控制线内部控制线内部数据线内部数据

5、线D0D7A组组控制控制A组组端口端口AA组组端口端口C上部上部B组组控制控制B组组端口端口BB组组端口端口C下部下部读写读写控制控制逻辑逻辑PC0PC3PB0PB7PC4PC7PA0PA7RDWRA0A1CSRESET1. 外设数据端口外设数据端口 端口端口A:PA0PA7 A组,支持工作方式组,支持工作方式0、1、2n常作数据端口,功能最强大常作数据端口,功能最强大 端口端口B:PB0PB7 B组,支持工作方式组,支持工作方式0、1 常作数据端口常作数据端口 端口端口C:PC0PC7 仅支持工作方式仅支持工作方式0 可作数据、状态和控制端口可作数据、状态和控制端口 分两个分两个4位,每位可

6、独立操作位,每位可独立操作 A组控制高组控制高4位位PC4PC7 B组控制低组控制低4位位PC0PC32. 主板上的主板上的8255与处理器接口与处理器接口CS* A1 A0I/O地址读操作RD*写操作WR*0 0 00 0 10 1 00 1 160H61H62H63H读端口A读端口B读端口C非法写端口A写端口B写端口C写控制字8255A的工作方式的工作方式 方式方式0:基本输入输出方式基本输入输出方式 适用于适用于无条件传送无条件传送和和查询方式查询方式的接口电路的接口电路 查询方式下,可以使用查询方式下,可以使用C口作为握手控制口作为握手控制 方式方式1:选通输入输出方式选通输入输出方式

7、 适用于查询和中断方式的接口电路适用于查询和中断方式的接口电路 方式方式2:双向选通传送方式双向选通传送方式 适用于双向传送数据的外设适用于双向传送数据的外设 适用于查询和中断方式的接口电路适用于查询和中断方式的接口电路方式方式0输入时序输入时序datadata输入端口输入端口D0D7RD CS,A1,A0方式方式0输出时序输出时序WRdatadata输出端口输出端口D0D7 CS,A1,A0方式方式1输入引脚:输入引脚:A端口端口表示外设已经准备好数据表示外设已经准备好数据通知外设停止发送数据通知外设停止发送数据请求请求CPU接收数据接收数据PC4PC5PC3PA7PA0INTEAIBFAI

8、NTRASTBA中断允许触发器中断允许触发器注意:注意:PC7、PC6可以单独用于可以单独用于I/O方式方式1输入引脚:输入引脚:B端口端口PC2PC1PC0PB7PB0INTEBIBFBINTRBSTBB数据选通信号数据选通信号表示外设已经准备好数据表示外设已经准备好数据输入缓冲器满信号输入缓冲器满信号表示表示B口已经接收数据口已经接收数据中断请求信号中断请求信号请求请求CPU接收数据接收数据中断允许触发器中断允许触发器方式方式1输入联络信号输入联络信号 STB*选通信号,低电平有效选通信号,低电平有效 由外设提供的输入信号,当其有效时,将输入设备送由外设提供的输入信号,当其有效时,将输入设

9、备送来的数据锁存至来的数据锁存至8255A的输入锁存器的输入锁存器 IBF输入缓冲器满信号,高电平有效输入缓冲器满信号,高电平有效 8255A输出的联络信号。当其有效时,表示数据已锁输出的联络信号。当其有效时,表示数据已锁存在输入锁存器存在输入锁存器 INTR中断请求信号,高电平有效中断请求信号,高电平有效 8255A输出的信号,可用于向输出的信号,可用于向CPU提出中断请求,要提出中断请求,要求求CPU读取外设数据读取外设数据方式方式1输入时序输入时序dataINTRIBF dataPA/PBD0D7STBRD INTR高电平有效高电平有效 RD*清清INTR和和IBF方式方式1中断控制中断

10、控制 8255A的中断由中断允许触发器的中断由中断允许触发器INTE控制控制 置位允许中断,复位禁止中断置位允许中断,复位禁止中断 对对INTE的置位的置位/复位操作由端口复位操作由端口C的对应位实现的对应位实现 端口端口A的的INTEA对应对应PC4 端口端口B的的INTEB对应对应PC2PC4PC5PC3PA7PA0INTEAIBFAINTRASTBAPC2PC1PC0PB7PB0INTEBIBFBINTRBSTBB方式方式1输出引脚:输出引脚:A端口端口外设响应信号外设响应信号表示外设已经接收到数据表示外设已经接收到数据输出缓冲器满信号输出缓冲器满信号表示表示CPU已经输出了数据已经输出

11、了数据中断请求信号中断请求信号请求请求CPU再次输出数据再次输出数据PC6PC7PC3PA7PA0INTEAOBFAINTRAACKA中断允许触发器中断允许触发器方式方式1输出引脚:输出引脚:B端口端口PC2PC1PC0PB7PB0INTEBOBFBINTRBACKB外设响应信号外设响应信号表示外设已经接收到数据表示外设已经接收到数据输出缓冲器满信号输出缓冲器满信号表示表示CPU已经输出了数据已经输出了数据中断请求信号中断请求信号请求请求CPU再次输出数据再次输出数据中断允许触发器中断允许触发器方式方式1输出联络信号输出联络信号 OBF*输出缓冲器满信号,低有效输出缓冲器满信号,低有效 825

12、5A输出给外设的一个控制信号,当其有效时,表输出给外设的一个控制信号,当其有效时,表示示CPU已把数据输出给指定的端口,外设可以取走已把数据输出给指定的端口,外设可以取走 ACK*响应信号,低有效响应信号,低有效 外设的响应信号,指示外设的响应信号,指示8255A的端口数据已由外设接的端口数据已由外设接受(受(“完成时态完成时态”!) INTR中断请求信号,高有效中断请求信号,高有效 当输出设备已接受数据后,当输出设备已接受数据后,8255A输出此信号向输出此信号向CPU提出中断请求,要求提出中断请求,要求CPU继续提供数据继续提供数据 端口端口A的的INTEA对应对应PC6 端口端口B的的I

13、NTEB对应对应PC2 PC4、PC5可以单独用于可以单独用于I/O方式方式1输出时序输出时序 INTR datadataPA/PBD0D7WROBFACK 当当ACK、OBF都为高时,都为高时,INTR有效有效方式方式2双向方式双向方式 方式方式2将方式将方式1的选通输入输出功能组合成一个的选通输入输出功能组合成一个双向数据端口,可以发送数据和接收数据双向数据端口,可以发送数据和接收数据 只有只有端口端口A可以工作于方式可以工作于方式2,需要利用端口,需要利用端口C的的5个信号线,其作用与方式个信号线,其作用与方式1相同相同 方式方式2的数据输入过程与方式的数据输入过程与方式1的输入方式一样

14、的输入方式一样 方式方式2的数据输出过程与方式的数据输出过程与方式1的输出方式有一的输出方式有一点点不同不同:数据输出时:数据输出时8255A不是在不是在OBF*有效时有效时向外设输出数据,而是在外设提供响应信号向外设输出数据,而是在外设提供响应信号ACK*时才送出数据时才送出数据方式方式2双向引脚双向引脚PC6PC7PC3PA7PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用用PC6设置设置INTE1(输出用)(输出用)用用PC4设置设置INTE2(输入用)(输入用)输入和输出中断通过输入和输出中断通过或门或门输出输出INTRA信号信号方式方式2双向时序双向

15、时序data-out INTR data-outdata-indata-inPA0PA7D0D7IBF WROBFACKSTBRD 4.88255A的编程的编程 初始化编程:一个方式控制字初始化编程:一个方式控制字 采用控制采用控制I/O地址:地址:A1A011 工作过程中:通过数据端口对外设数据工作过程中:通过数据端口对外设数据进行读写进行读写 数据读写利用端口数据读写利用端口A、B和和C的的I/O地址,地址,A1A0依次等于依次等于00、01、10 IBM PC/XT机上,端口机上,端口A、B、C和控制和控制端口的端口的I/O地址为地址为60H、61H、62H和和63H1. 写入方式控制字

16、:控制字格式写入方式控制字:控制字格式写入方式控制字:示例写入方式控制字:示例 要求:要求: A端口:方式端口:方式1输入输入 C端口上半部:输出,端口上半部:输出,C口下半部:输入口下半部:输入 B端口:方式端口:方式0输出输出 方式控制字:方式控制字:10110001B,即,即B1H 初始化的程序段:初始化的程序段:mov dx,0243h;假设控制端口为假设控制端口为0243Hmov al,0b1h;方式控制字方式控制字out dx,al;送到控制端口送到控制端口2. 读写数据端口读写数据端口 初始化编程后:初始化编程后: 当数据端口作为输入接口时,执行输入当数据端口作为输入接口时,执行

17、输入IN指指令将从输入设备得到外设数据令将从输入设备得到外设数据 当数据端口作为输出接口时,执行输出当数据端口作为输出接口时,执行输出OUT指令将把指令将把CPU的数据送给输出设备的数据送给输出设备 8255A具有锁存输出数据的能力具有锁存输出数据的能力 可以读入输出方式的端口锁存器中的值,进可以读入输出方式的端口锁存器中的值,进行按位处理后再次输出行按位处理后再次输出 注意:不是读取外设数据,而是读取上一次注意:不是读取外设数据,而是读取上一次CPU发给外设的数据发给外设的数据读写数据端口:示例读写数据端口:示例 利用利用8255A的输出锁存能力,可实现按位的输出锁存能力,可实现按位输出控制

18、输出控制 对输出端口对输出端口B的的PB7位置位的程序段:位置位的程序段:mov dx,0241h;B端口假设为端口假设为0241Hin al,dx;读出读出B端口原输出内容端口原输出内容or al,80h;使使PB71out dx,al;输出新的内容输出新的内容3. 端口端口C的说明的说明 C端口被分成端口被分成两个两个4位端口位端口,两个端口只能,两个端口只能以方式以方式0工作,可分别选择输入或输出工作,可分别选择输入或输出 在控制上,在控制上,C端口上半部和端口上半部和A端口编为端口编为A组,组,C端口下半部和端口下半部和B端口编为端口编为B组组 当当A和和B端口工作在方式端口工作在方式

19、1或方式或方式2时,时,C端端口的部分或全部引脚将口的部分或全部引脚将被征用被征用,即,即被征用被征用引脚的功能不由方式字定义,而是由引脚的功能不由方式字定义,而是由A、B口的工作方式确定口的工作方式确定 其余引脚仍可设定工作在方式其余引脚仍可设定工作在方式0写端口写端口C 对端口对端口C的数据输出有两种办法的数据输出有两种办法 通过端口通过端口C的的I/O地址:向地址:向C端口直接写入字端口直接写入字节数据。这一数据被写进节数据。这一数据被写进C端口的输出锁存器,端口的输出锁存器,并从输出引脚输出,但对设置为输入的引脚并从输出引脚输出,但对设置为输入的引脚无效无效 通过控制端口:向通过控制端

20、口:向C端口写入位控字,使端口写入位控字,使C端端口的某个引脚输出口的某个引脚输出1或或0,或置位复位内部的,或置位复位内部的中断允许触发器中断允许触发器端口端口C的位控制字的位控制字写入11口读端口读端口C 读取的读取的C端口数据有两种情况端口数据有两种情况 未被未被A和和B端口征用的引脚:将从定义为输入端口征用的引脚:将从定义为输入的端口读到外设输入的数据;将从定义为输的端口读到外设输入的数据;将从定义为输出的端口读到输出锁存器中的信息出的端口读到输出锁存器中的信息 被被A和和B端口征用作为联络线的引脚:将读到端口征用作为联络线的引脚:将读到反映反映8255A状态的状态的状态字状态字D D

21、7 7D D6 6D D5 5D D4 4D D3 3D D2 2D D1 1D D0 0方式方式1输入输入I/OI/OIBFAINTEA INTRAINTEBIBFBINTRB方式方式1输出输出OBFAINTEAI/OI/OINTRAINTEBOBFBINTRB方式方式2双向双向OBFAINTE1IBFAINTE2INTRA端口端口C的状态字的状态字A组组B组组8255A的应用的应用作为通用的并行接口电路芯片,作为通用的并行接口电路芯片,8255A具有广泛的应用具有广泛的应用 连接简易键盘连接简易键盘 驱动驱动LED数码管数码管 打印机接口电路打印机接口电路 键盘及其接口键盘及其接口 键盘是

22、微机系统最常使用的输入设备 标准键盘:通过5芯电缆与PC微机主机连接 编码键盘 小键盘:适用于单板机或以微处理器为基础的仪器,实现数据、地址、命令及指令等的输入 非编码键盘键位置和扫描码键位置和扫描码Esc0181 10282234=0-QAZSWPLM,03040510111E1F2C83848590919E123451112131617253031394450519FAC键位置键位置接通扫描码接通扫描码断开扫描码断开扫描码键名称键名称标准键盘简介标准键盘简介 键盘服务键盘服务BIOS功能调用功能调用(INT 16H) AH功能描述功能描述出口参数出口参数说明说明00从键盘读取单个字从键盘读

23、取单个字符符 AH键盘的扫描码键盘的扫描码 AL字符的字符的ASCII码码 一直等待到有键按下一直等待到有键按下10从从增强键盘增强键盘中获取中获取按键按键 同上同上同上同上01读取键盘字符或状读取键盘字符或状态态 AH键盘的扫描码键盘的扫描码 AL字符的字符的ASCII码码 不等待,有键按下同不等待,有键按下同00,无键按下,无键按下AL011读取读取增强键盘增强键盘字符字符或状态或状态 同上同上同上同上02获取键盘状态字节获取键盘状态字节信息信息 ALBIOS键盘状态键盘状态标志标志 状态标志见后状态标志见后12获取获取增强键盘增强键盘状态状态字节信息字节信息 ALBIOS键盘状态键盘状态

24、标志标志 状态标志见后状态标志见后BIOS 键盘状态标志(键盘状态标志(1字节)字节) 位位含义含义765432101已按下右已按下右Shift键键 1已按下左已按下左Shift键键 1已按下已按下Ctrl键键 1已按下已按下Alt键键 1已启用已启用ScrollLock 1已启用已启用Num Lock 1已启用已启用Caps Lock 1已转换已转换Insert键键 简易键盘的工作原理简易键盘的工作原理行行列列1111+5V控制线控制线检检测测线线接地接地按下,检测线按下,检测线0释放,检测线释放,检测线1简易键盘接口简易键盘接口A口:输入口:输入B口:输出口:输出按键抖动按键抖动 机械按键

25、存在抖动现象机械按键存在抖动现象 当按下或释放一个键时,往往会出现按键在闭合当按下或释放一个键时,往往会出现按键在闭合位置和断开位置之间跳几下才稳定到闭合状态位置和断开位置之间跳几下才稳定到闭合状态 抖动的持续时间通常不大于抖动的持续时间通常不大于10ms 采用硬件消抖电路或软件延时方法解决采用硬件消抖电路或软件延时方法解决前沿抖动前沿抖动后沿抖动后沿抖动键稳定键稳定键按下键按下扫描法键盘识别扫描法键盘识别 扫描(注意,参考扫描(注意,参考P287图,与前图行列相反)图,与前图行列相反) 先使第先使第0行接低电平,其余行为高电平,然后看行接低电平,其余行为高电平,然后看第第0行是否有键闭合(通

26、过检查列线电位实现)行是否有键闭合(通过检查列线电位实现) 此后,再将第此后,再将第1行接地,然后检测列线是否有变行接地,然后检测列线是否有变为低电位的线。如此往下逐行扫描,直到最后一为低电位的线。如此往下逐行扫描,直到最后一行行 在扫描过程中,当发现某一行有键闭合时,在扫描过程中,当发现某一行有键闭合时,便在扫描中途退出便在扫描中途退出 通过组合行线和列线可识别此刻按下的是哪通过组合行线和列线可识别此刻按下的是哪一键一键;是否有键按下(;是否有键按下(行输出,列输入行输出,列输入)key1:mov al,00mov dx,rowport ;设置行地址端口设置行地址端口out dx,al;使所

27、有行线为低电平使所有行线为低电平 mov dx,colport;设置列地址端口设置列地址端口 in al,dx;读取列值读取列值cmp al,0ffh ;是否有列线为低电平是否有列线为低电平jz key1;无闭合键,循环等待无闭合键,循环等待call delay;有,延迟有,延迟20ms清除抖动清除抖动键盘扫描程序第1段mov cx,8;按键扫描按键扫描,行数送行数送CXmov ah,0feh;扫描初值送扫描初值送AHkey2:mov al,ahmov dx,rowportout dx,al;输出行值(扫描值)输出行值(扫描值)mov dx,colportin al,dx;读进列值读进列值键盘

28、扫描程序第2段cmp al,0ffh;按键识别有低电平的列线?按键识别有低电平的列线?jnz key3;有,则转下一步处理有,则转下一步处理rol ah,1;无,则移位扫描值无,则移位扫描值loop key2;准备下一行扫描准备下一行扫描jmp key1 ;所有行都没有键按下,则返回继续检测所有行都没有键按下,则返回继续检测key3: ;此时,此时,al列值,列值,ah行值行值键盘扫描程序第3段;键盘行列值表和键代码表键盘行列值表和键代码表tabledw 0fefeh;键键0的行列值(扫描码)的行列值(扫描码)dw 0fdfeh;键键1的行列值的行列值dw 0fbfeh;键键2的行列值的行列值

29、 ;其他键的行列值其他键的行列值;键盘的键代码表键盘的键代码表chardb ;键键0的代码值的代码值db ;键键1的代码值的代码值 ;其他键的代码值其他键的代码值键盘扫描程序第4段;查找键代码mov si,offset tablemov di,offset charmov cx,64 ;CX键的个数键的个数key3:cmp ax,si ;与键值比较与键值比较 jz key4 ;相同,说明查到相同,说明查到inc si ;不相同,继续比较不相同,继续比较inc siinc diloop key3jmp key1;全部比较完,仍无相同,说明是重键全部比较完,仍无相同,说明是重键键盘扫描程序第5段k

30、ey4:mov al,di;获取键代码送获取键代码送AL;后续处理后续处理键盘扫描程序第6段硬件消抖动电路硬件消抖动电路+5V3.6K+5V3.6K输出信号输出信号+5V输出信号输出信号双稳态电路双稳态电路斯密特电路斯密特电路重健问题的处理重健问题的处理 重键指两个或多个键同时闭合重键指两个或多个键同时闭合 出现重键时,读取的键值必然出现有一个出现重键时,读取的键值必然出现有一个以上的以上的0 是否给予识别和识别哪一个键是否给予识别和识别哪一个键 简单情况:不予识别,认为是错误的按键简单情况:不予识别,认为是错误的按键 正常的组合键:必须都识别出来正常的组合键:必须都识别出来 重健问题的处理重

31、健问题的处理 重键识别重键识别(一般有三种情况):一般有三种情况):A键键B键键1、A键先按后放,键先按后放, B键键后按先放。一般可以认为后按先放。一般可以认为是按是按A键带下键带下B键,可以键,可以A键认不认键认不认B键。键。2、A键先按先放,键先按先放, B键键后按后放。认为是快速输后按后放。认为是快速输入,入,A键、键、B键顺序承认。键顺序承认。A键键B键键重健问题的处理重健问题的处理A键键B键键3、A键、键、 B键同时按下,键同时按下, A键先放,键先放, B键后放。按键后放。按第第1,第,第2两种方式承认和两种方式承认和处理的都有,根据设计者处理的都有,根据设计者自己的方式选择。自

32、己的方式选择。 通常,扫描发现键按下时,开始记录时间和键值,通常,扫描发现键按下时,开始记录时间和键值,然后继续扫描,在一定的时间范围内,检测到按键已释然后继续扫描,在一定的时间范围内,检测到按键已释放,就承认该键输入有效;如果键按下时间超过某个时放,就承认该键输入有效;如果键按下时间超过某个时间限,则认为是连续多次按下该键,输入多个键值。间限,则认为是连续多次按下该键,输入多个键值。LED数码管及其接口数码管及其接口 发光二极管发光二极管LED是最简单的显示设备是最简单的显示设备 由由7段段LED就可以组成的就可以组成的LED数码管数码管 LED数码管广泛用于单板微型机、微数码管广泛用于单板

33、微型机、微型机控制系统及数字化仪器中型机控制系统及数字化仪器中 LED数码管可以显示内存地址和数据等数码管可以显示内存地址和数据等1. LED数码管的工作原理数码管的工作原理 主要部分是主要部分是7段发光管段发光管 顺时针分别称为顺时针分别称为a、b、c、d、e、f、g 有的产品还附带有一个小数点有的产品还附带有一个小数点h 通过通过7个发光段的不同组合个发光段的不同组合 显示显示09 显示显示AF(实现(实现16进制数的显进制数的显示)示) 显示个别特殊字符,如、显示个别特殊字符,如、P 等等hgfedcbaLED数码管的结构数码管的结构共阳极共阳极共阳极共阳极+5Vabcdefgh共阴极共

34、阴极abcdefgh共阴极共阴极2. 单个单个LED数码管的显示数码管的显示8255APA0PA1PA2PA3PA4PA5PA6PA7驱驱动动电电路路abcdefgh单个数码管的显示LEDtb db 3fh,06h,5bh,;显示代码表显示代码表mov al, 1 ;AL要显示的数字要显示的数字mov bx, offset LEDtbxlat ;换码:换码:ALDS:BXALmov dx, portout dx, al;输出显示输出显示 4.153. 多个多个LED数码管的显示数码管的显示 8个数码管:用个数码管:用2个个8位输出端口控制位输出端口控制 硬件上用公用的驱动电路来驱动各数码硬件上

35、用公用的驱动电路来驱动各数码管管 软件上用扫描方法实现数码显示软件上用扫描方法实现数码显示 每个显示每个显示2ms 程序参见程序参见P2908个个LED数码管的接口电路数码管的接口电路段选择码段选择码(字符)(字符)位选择码位选择码多个多个LED数码管的显示数码管的显示 为了节约硬件资源,根据视觉暂留原理,采为了节约硬件资源,根据视觉暂留原理,采用扫描方式显示。用扫描方式显示。 8个数码管的段码共用个数码管的段码共用1个个8位输出端口控制,位输出端口控制,再用再用1个个8位输出端口控制位输出端口控制8个数码管的公共端,个数码管的公共端,称为位码。称为位码。 软件扫描方法:软件扫描方法: 1、从

36、输出缓冲区取一位换码输出段码,开启、从输出缓冲区取一位换码输出段码,开启对应位码,点亮一位,延迟;对应位码,点亮一位,延迟; 2、再从输出缓冲区取下一位,点亮,延、再从输出缓冲区取下一位,点亮,延迟,迟,依次扫描将依次扫描将8位全部点亮一遍;位全部点亮一遍; 3、回到第一步,循环扫描输出。、回到第一步,循环扫描输出。并行打印机接口并行打印机接口 一般采用一般采用Centronics标准接口或其简化接口标准接口或其简化接口 Centronics接口是的一个并行接口协议接口是的一个并行接口协议 该协议规定了该协议规定了36脚簧式插头座和信号含义(见脚簧式插头座和信号含义(见P292 表表8-4)

37、其中前其中前11条线是关键信号,它们是条线是关键信号,它们是8条数据线、条数据线、3条联条联络线(选通、响应和打印机忙)络线(选通、响应和打印机忙) 还有一些特殊控制线、状态线还有一些特殊控制线、状态线 PC系列机的并行打印机接口是一个系列机的并行打印机接口是一个25针针D型型插口插口打印机接口打印机接口 接口信号接口信号 数据数据 控制控制 握手握手 STB*:负脉冲的宽度在接收端应大于:负脉冲的宽度在接收端应大于0.5 s,数据才可靠,数据才可靠地存入打印机数据缓冲区,主机发出地存入打印机数据缓冲区,主机发出 ACK*:打印机接收一个数据字节后就回送一个响应的负:打印机接收一个数据字节后就

38、回送一个响应的负脉冲信号(脉宽约为脉冲信号(脉宽约为5 s),表示打印机已准备好接收新),表示打印机已准备好接收新数据数据 INIT*:初始化信号:初始化信号 AUTOFEEDXT:自动换行:自动换行 SLCTIN*:选择打印机(:选择打印机(CPU -打印机打印机) 打印机状态打印机状态 BUSY:打印机忙:打印机忙 SLCT:打印机与主机联机:打印机与主机联机 PE:缺纸:缺纸 ERR*:当打印机处于无纸、脱机或错误状态之一时:当打印机处于无纸、脱机或错误状态之一时打印机工作过程打印机工作过程 通信过程通信过程 主机把数据送给引脚主机把数据送给引脚DATA0DATA7 同时送出数据选通信号

39、同时送出数据选通信号STROBE* 打印机在打印机在BUSY信号线上发出忙信号信号线上发出忙信号 打印机处理好输入的数据时打印机处理好输入的数据时 撤消忙信号撤消忙信号 同时又送出一个响应信号同时又送出一个响应信号ACK* 注意:注意: 此时选通(此时选通(STROBE*)与应答()与应答(ACK*)信)信号的方向与前述一般接口的信号定义相反号的方向与前述一般接口的信号定义相反打印机信号与时序打印机信号与时序BUSYDATA07ACKSTROBE用用8255A方式方式0与打印机接口与打印机接口BUSY DATA078255APC7PC2PA0PA7打印机打印机STROBE注意:不考虑ACK*,

40、A0不用,控制口:0fffeh,c口:口:0fffch8255A的初始化mov dx,0fffeh;控制端口地址:控制端口地址:0fffehmov al,10000001B;方式控制字:方式控制字:91Hout dx,al;A端口方式端口方式0输出,输出,C端口上输出、下输入端口上输出、下输入mov al,00001111B;端口端口C的复位置位控制字,使的复位置位控制字,使PC71out dx,al打印子程序:查询printcprocpush axpush dxprn: mov dx,0fffch ;读取端口读取端口Cin al,dx;查询打印机状态查询打印机状态and al,04h;PC2

41、BUSY0?jnz prn;PC21,打印机忙,则循环等待,打印机忙,则循环等待打印子程序:输出;PC20,打印机不忙,则输出数据到,打印机不忙,则输出数据到8255mov dx,0fff8hmov al,ah;ah字符字符out dx,al;将打印数据从端口将打印数据从端口A输出输出打印子程序:控制打印机打印mov dx,0fffeh;从从PC7送出控制低脉冲送出控制低脉冲mov al,00001110B ;置置STROBE*0out dx,alnop;产生一定宽度的低电平产生一定宽度的低电平nopmov al,00001111B ;置置=1out dx,al;最终,最终,STROBE*产生

42、低脉冲信号产生低脉冲信号打印子程序:返回pop dxpop axretprintcendp用用8255A方式方式1与打印机接口与打印机接口1000pf2K15321441LS123单稳单稳电路电路+5VDATA078255APC6INTRPC3PC7PA0PA7打印机打印机ACKACKOBFSTROBE8255A方式方式1与打印机接口时序配合与打印机接口时序配合PA0PA7(DATA07)ACKOBFSTROBE8255A的初始化mov dx,0fffehmov al,0a0h;A口方式口方式1输出输出out dx,almov al,0ch ;使使INTEA(PC6)为)为0,禁止中断,禁止中

43、断(查询模式查询模式)out dx,almov cx,counter;打印字节数送打印字节数送CXmov bx,offset buffer;取字符串首地址取字符串首地址call prints;调用打印子程序调用打印子程序打印子程序:输出Prints proc push ax ;保护寄存器保护寄存器 push dxprint1: mov al,bx ;取一个数据取一个数据 mov dx,0fff8h out dx,al ;从端口从端口A输出输出 mov dx,0fffchprint2: in al,dx test al,80h ;检测(检测(PC7)为)为1否否? ;1,说明,说明OBF*已经无效,一次打印完成已经无效,一次打印完成 jz print2 ;为为0,打印尚未完成,继续检测,打印尚未完成,继续检测 inc bx ;为为1,打印机已接受数据,准备取下一个,打印机已接受数据,准备取下一个 loop print1 pop dx ;打印结束

温馨提示

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

评论

0/150

提交评论