可编程并行接口课件

上传人:无*** 文档编号:178548835 上传时间:2022-12-28 格式:PPT 页数:90 大小:786KB
返回 下载 相关 举报
可编程并行接口课件_第1页
第1页 / 共90页
可编程并行接口课件_第2页
第2页 / 共90页
可编程并行接口课件_第3页
第3页 / 共90页
点击查看更多>>
资源描述
可编程并行接口8255A 可编程并行接口第第9 9章章 可编程并行接口可编程并行接口8255A8255A 教学重点教学重点n 8255A的工作方式和编程n 8255A的应用n 键盘的扫描程序n LED数码管的多位显示可编程并行接口本章教学要求1.掌握8255A的结构特点和引脚功能2.掌握8255A的工作方式、编程及方式0、1的应用3.理解键盘的工作原理、抖动和重键问题及解决方法4.掌握键盘扫描程序(扫描法、行反转法)的编写5.掌握LED数码管的工作原理和多位显示方法6.了解并行打印机接口的引脚定义和接口时序并行数据传输方式n以计算机的字长,通常是8位、16位或32位为传输单位,一次传送一个字长的数据n适合于外部设备与微机之间进行近距离、大量和快速的信息交换n例如:微机与并行接口打印机、磁盘驱动器n微机系统中最基本的信息交换方法n例如:系统板上各部件之间,接口电路板上各部件之间9.1 8255A的内部结构 n具有多种功能的可编程并行接口电路芯片n最基本的接口电路:三态缓冲器和锁存器n与CPU间、与外设间的接口电路:状态寄存器和控制寄存器n还有端口的译码和控制电路、中断控制电路n分3个端口,共24个外设引脚n共三种输入输出工作方式数据数据总线总线缓冲器缓冲器内部控制内部控制线线内部数据内部数据线线D0D7A组组控制控制A组组端口端口AA组组端口端口C上部上部B组组控制控制B组组端口端口BB组组端口端口C下部下部读写读写控制控制逻辑逻辑PC0PC3PB0PB7PC4PC7PA0PA7RDWRA0A1CSRESET8255的三个并行数据端口n端口A:PA0PA7nA组,支持工作方式0、1、2n端口B:PB0PB7nB组,支持工作方式0、1n端口C:PC0PC7n仅支持工作方式0nA组控制高4位PC4PC7nB组控制低4位PC0PC3n端口端口A:PA0PA7n常作数据端口,功能最强大常作数据端口,功能最强大n端口端口B:PB0PB7n常作数据端口常作数据端口n端口端口C:PC0PC7n可作数据、状态和控制端口可作数据、状态和控制端口n分两个分两个4位,每位可独立操作位,每位可独立操作n控制最灵活,最难掌握控制最灵活,最难掌握9.2 8255A的引脚信号和功能 9.2 8255A的引脚信号和功能 CS A1 A0I/O地址读操作RD写操作WR0 0 00 0 10 1 00 1 160H61H62H63H读端口A读端口B读端口C非法写端口A写端口B写端口C写控制字D0 D7数据线A0 A1地址线RD 读信号WR 写信号CS 片选信号RESET复位信号n初始化编程:一个方式控制字n控制寄存器I/O地址:A1A011n工作过程中:通过数据端口对外设数据进行读写n数据读写利用端口A、B和C的I/O地址,A1A0依次等于00、01、10nIBM PC/XT机上,端口A、B、C和控制端口的I/O地址为60H、61H、62H和63H9.3 8255A的控制字和工作方式 方式控制字格式9.3.1 8255A的控制字格式1.写入方式控制字:示例n要求:nA端口:方式1输入nC端口上半部:输出,C口下半部:输入nB端口:方式0输出n方式控制字:10110001B或B1Hn初始化的程序段:mov dx,0fffeh;假设控制端口为0FFFEHmov al,0b1h;方式控制字out dx,al;送到控制端口2.读写数据端口n初始化编程后:n当数据端口作为输入接口时,执行输入IN指令将从外部输入设备得到外设数据n当数据端口作为输出接口时,执行输出OUT指令将把CPU的数据送给外部输出设备n8255A具有锁存输出数据的能力n对输出方式的端口同样可以输入n不是读取外设数据n读取的是上次CPU给外设的数据2.读写数据端口:示例n利用8255A的输出锁存能力,可实现按位输出控制 n对输出端口B的PB7位置位的程序段:mov dx,0fffah;B端口假设为0FFFAHin al,dx;读出B端口原输出内容or al,80h;使PB71out dx,al;输出新的内容3.读写端口C:归纳归纳1nC端口被分成两个4位端口,两个端口只能以方式0工作,可分别选择输入或输出n在控制上,在控制上,C端口上半部和端口上半部和A端口编为端口编为A组,组,C端口下半部和端口下半部和B端口编为端口编为B组组3.读写端口C:归纳归纳2n当A和B端口工作在方式1或方式2时,C端口的部分或全部引脚将被用做联络线被用做联络线n其余引脚仍可设定工作在方式其余引脚仍可设定工作在方式0输入或输出输入或输出3.读写端口C:归纳归纳3n对端口C的数据输出有两种办法n通过端口C的I/O地址:向C端口直接写入字节数据。这一数据被写进C端口的输出锁存器,并从输出引脚输出,但对设置为输入的引脚无效n通过控制端口:向C端口写入位控字,使C端口的某个引脚输出1或0,或置位复位内部的中断允许触发器端口C的位控制字n位控制字写入控制端口位控制字写入控制端口n特别便于置位复位内部特别便于置位复位内部中断允许触发器中断允许触发器INTEINTE3.读写端口C:归纳归纳4 4n读取的C端口数据有两种情况n未被A和B端口征用的引脚:将从定义为输入的端口读到引脚输入信息;将从定义为输出的端口读到输出锁存器中的信息n被A和B端口征用作为联络线的引脚:将读到反映8255A状态的状态字D7D6D5D4D3D2D1D0方式1输入I/OI/OIBFAINTEAINTRAINTEBIBFBINTRB方式1输出OBFAINTEAI/OI/OINTRAINTEBOBFBINTRB方式2双向OBFAINTE1IBFAINTE2INTRA端口C的状态字A组组B组组9.3.2 8255A的工作方式 n方式0:基本输入输出方式n适用于无条件传送和查询方式的接口电路n方式1:选通输入输出方式n适用于查询和中断方式的接口电路n方式2:双向选通传送方式n适用于与双向传送数据的外设n适用于查询和中断方式的接口电路方式0输入时序datadata输入端口输入端口D0D7RD CS,A1,A0请体会这里请体会这里8255A8255A的数据缓冲作用的数据缓冲作用方式0输出时序WRdatadata输出端口输出端口D0D7 CS,A1,A08255A8255A对对CPUCPU通过它输出给外设的数据进行锁存通过它输出给外设的数据进行锁存方式1输入引脚:A端口数据选通信号表示外设已经准备好数据输入缓冲器满信号表示A口已经接收数据中断请求信号请求CPU接收数据PC4PC5PC3PA7PA0INTEAIBFAINTRASTBA中断允许触发器方式1输入引脚:B端口PC2PC1PC0PB7PB0INTEBIBFBINTRBSTBB数据选通信号表示外设已经准备好数据输入缓冲器满信号表示A口已经接收数据中断请求信号请求CPU接收数据中断允许触发器方式方式1 1需借用端口需借用端口C C用做联络信号用做联络信号同时还具有中断请求和屏蔽功能同时还具有中断请求和屏蔽功能方式1输入联络信号nSTB选通信号,低电平有效n由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器nIBF输入缓冲器满信号,高电平有效n8255A输出的联络信号。当其有效时,表示数据已锁存在输入锁存器nINTR中断请求信号,高电平有效n8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据方式1输入时序dataINTRIBF data输入端口输入端口D0D7STBRDSTBSTB和和IBFIBF是外设和是外设和8255A8255A间间的一对应答联络信号,的一对应答联络信号,为的是可靠地输入数据为的是可靠地输入数据方式1中断控制n8255A的中断由中断允许触发器INTE控制n置位允许中断,复位禁止中断n对INTE的操作通过写入端口C的对应位实现,INTE触发器对应端口C的位是作应答联络信号的输入信号的哪一位,只要对那一位置位/复位就可以控制INTE触发器n选通输入方式下n端口A的INTEA对应PC4n端口B的INTEB对应PC2方式1输出引脚:A端口外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据PC6PC7PC3PA7PA0INTEAOBFAINTRAACKA中断允许触发器方式1输出引脚:B端口PC2PC1PC0PB7PB0INTEBOBFBINTRBACKB外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据中断允许触发器方式1输出联络信号nOBF输出缓冲器满信号,低有效n8255A输出给外设的一个控制信号,当其有效时,表示CPU已把数据输出给指定的端口,外设可以取走nACK响应信号,低有效n外设的响应信号,指示8255A的端口数据已由外设接受nINTR中断请求信号,高有效n当输出设备已接受数据后,8255A输出此信号向CPU提出中断请求,要求CPU继续提供数据端口端口A A的的INTEAINTEA对应对应PCPC6 6端口端口B B的的INTEBINTEB对应对应PCPC2 2方式1输出时序 INTR datadata输出端口输出端口D0D7WROBFACK OBFOBF和和ACKACK是外设和是外设和8255A8255A间间的一对应答联络信号,的一对应答联络信号,为的是可靠地输出数据为的是可靠地输出数据方式2双向方式n方式2将方式1的选通输入输出功能组合成一个双向数据端口,可以发送数据和接收数据n只有端口A可以工作于方式2,需要利用端口C的5个信号线,其作用与方式1相同n方式2的数据输入过程与方式1的输入方式一样n方式2的数据输出过程与方式1的输出方式有一点不同:数据输出时8255A不是在OBF有效时向外设输出数据,而是在外设提供响应信号ACK时才送出数据方式2双向引脚PC6PC7PC3PA7PA0INTE1OBFAINTRAACKAPC4PC5IBFASTBAINTE2用PC6设置INTE1(输出)用PC4设置INTE2(输入)输入和输出中断通过或门输出INTRA信号方式2双向时序data-out INTR data-outdata-indata-inPA0PA7D0D7IBF WROBFACKSTBRD9.4 8255A与系统总线的连接 18255A与系统数据总线的连接28255A与系统地址总线连接 3端口地址范围的确定 4其它控制信号的连接 可编程并行接口9.5 8255A的应用举例 作为通用的并行接口电路芯片,825A具有广泛的应用n应用在IBM PC/XT微机上n应用于打印机接口电路n连接简易键盘n驱动LED数码管n8255A在IBM PC/XT上的应用n工作在基本输入/输出方式0n端口A为方式0输入,用来读取键盘扫描码n端口B工作于方式0输出,例如控制扬声器等n端口C为方式0输入,读取系统状态和配置n系统的初始化编程:mov al,10011001b;方式控制字99Hout 63h,al9.5.1 键盘及其接口n键盘是微机系统最常使用的输入设备n小键盘:适用于单板机或以微处理器为基础的仪器,实现数据、地址、命令及指令等的输入n独立键盘:通过5芯电缆与PC微机主机连接简易键盘的工作原理+5V+5V+5Vn最简单的线性结构键盘n每一个引脚连接一个键n输入0/1反映键是否按下简易键盘的工作原理+5V+5V控制线控制线检检测测线线n常用的矩阵结构键盘n每行连接一个引脚n每列连接一个引脚n利用控制线为低、读取检测线来识别闭合键1.扫描法n先使第0行接低电平,其余行为高电平,然后看第0行是否有键闭合(通过检查列线电位实现)n此后,再将第1行接地,然后检测列线是否有变为低电位的线。如此往下一行一行地扫描,直到最后一行n在扫描过程中,当发现某一行有键闭合时,便在扫描中途退出n通过组合行线和列线可识别此刻按下的是哪一键第1段:是否有键按下key1:mov al,00mov dx,rowportout dx,al;使所有行线为低电平使所有行线为低电平 mov dx,colport in al,dx;读取列值读取列值cmp al,0ffh;判定是否有列线为低电平判定是否有列线为低电平jz key1;无闭合键,循环等待无闭合键,循环等待call delay;有,延迟有,延迟20ms清除抖动清除抖动键盘扫描程序第2段:识别按键(扫描)mov cx,8;行数送行数送CXmov ah,0feh;扫描初值送扫描初值送AHkey2:mov al,ahmov dx,rowportout dx,al;输出行值(扫描值)输出行值(扫描值)mov dx,colportin al,dx;读进列值读进列值键盘扫描程序第2段:识别按键(判断)cmp al,0ffh;判断有无低电平的列线判断有无低电平的列线jnz key3;有,则转下一步处理有,则转下一步处理rol ah,1;无,则移位扫描值无,则移位扫描值loop key2;准备下一行扫描准备下一行扫描jmp key1;所有行都没有键按下,则返回继续检测所有行都没有键按下,则返回继续检测key3:;此时,此时,al列值,列值,ah行值行值键盘扫描程序2.反转法n首先,将行线作为控制线接一个输出端口,将列线作为检测线接一个输入端口nCPU通过输出端口将行线(控制线)全部设置为低电平,然后从输入端口读取列线(检测线)n然后,将行线和列线的作用互换,即将列线作为控制线接输出端口,行线作为检测线接输入端口n将刚才读得的列值从列线所接端口输出,再读取行线的输入值n这样,当一个键被按下时,必定可以读得一对唯一的行值和列值条件:连接行线和列线的接口电路条件:连接行线和列线的接口电路必须支持动态改变输入、输出方式必须支持动态改变输入、输出方式第1段:是否有键按下;设置行线接输出端口,列线接输入端口设置行线接输出端口,列线接输入端口key2:mov al,00mov dx,rowportout dx,al;设置行线全为低设置行线全为低mov dx,colportin al,dx;读取列值读取列值cmp al,0ffhjz key2;无闭合键,循环等待无闭合键,循环等待push ax;有闭合键,保存列值有闭合键,保存列值 push ax键盘扫描程序第2段:识别按键(反转法);设置行线接输入端口,列线接输出端设置行线接输入端口,列线接输出端mov dx,colportpop axout dx,al;输出列值输出列值mov dx,rowportin al,dx;读取行值读取行值pop bx;组合行列值组合行列值mov ah,bl;此时,此时,al行值,行值,ah列值列值键盘扫描程序行列值表和键代码表;键盘的行列值表键盘的行列值表tabledw 0fefeh;键键0的行列值(键值)的行列值(键值)dw 0fdfeh;键键1的行列值的行列值dw 0fbfeh;键键2的行列值的行列值;其他键的行列值其他键的行列值;键盘的键代码表键盘的键代码表chardb;键键0的代码值的代码值db;键键1的代码值的代码值;其他键的代码值其他键的代码值键盘扫描程序第3段:查找键代码mov si,offset tablemov di,offset charmov cx,64;CX键的个数键的个数key3:cmp ax,si;与键值比较与键值比较 jz key4;相同,说明查到相同,说明查到inc si;不相同,继续比较不相同,继续比较inc siinc diloop key3jmp key1;全部比较完,仍无相同,说明是重键全部比较完,仍无相同,说明是重键键盘扫描程序第4段:等待按键释放key4:mov al,di;获取键代码送获取键代码送AL;判断按键是否释放,没有则等待判断按键是否释放,没有则等待call delay;按键释放,延时消除抖动按键释放,延时消除抖动;后续处理后续处理键盘扫描程序3.抖动和重键问题n机械按键存在抖动现象n当按下或释放一个键时,往往会出现按键在闭合位置和断开位置之间跳几下才稳定到闭合状态n抖动的持续时间通常不大于10msn采用硬件消抖电路或软件延时方法解决n重键指两个或多个键同时闭合n出现重键时,读取的键值必然出现有一个以上的0n是否给予识别和识别哪一个键重键问题的处理n简单情况:不予识别,认为是错误的按键n通常情况:只承认先识别出来的键n连锁法:直到所有键都释放后,读入下一个键n巡回法:等被识别的键释放以后,就可以对其他闭合键作识别,而不必等待全部键释放n正常的组合键:都识别出来9.5.2 打印机接口打印机接口 用8255A方式0与打印机接口BUSY DATA078255APC7PC2PA0PA7打印机打印机STROBE打印机接口的信号与时序BUSYDATA07ACKSTROBEn主机把数据送给引脚DATA0DATA7n同时送出数据选通信号STROBEn打印机在BUSY信号线上发出忙信号n打印机处理好输入的数据时n撤消忙信号n同时又送出一个响应信号ACK8255A的初始化mov dx,0fffeh;控制端口地址:控制端口地址:FFFEHmov al,10000001B;方式控制字:方式控制字:91Hout dx,al;A端口方式端口方式0输出,输出,C端口上输出、下输入端口上输出、下输入mov al,00001111B;端口端口C的复位置位控制字,使的复位置位控制字,使PC71out dx,al打印机程序1打印子程序:查询printcprocpush axpush dxprn:mov dx,0fffch;读取端口读取端口Cin al,dx;查询打印机状态查询打印机状态and al,04h;PC2BUSY0?jnz prn;PC21,打印机忙,则循环等待,打印机忙,则循环等待打印机程序1打印子程序:输出mov dx,0fff8h;PC20,打印机不忙,则输出数据,打印机不忙,则输出数据mov al,ahout dx,al;将打印数据从端口将打印数据从端口A输出输出打印机程序1打印子程序:打印mov dx,0fffeh;从从PC7送出控制低脉冲送出控制低脉冲mov al,00001110B;置置STROBE0out dx,alnop;产生一定宽度的低电平产生一定宽度的低电平nopmov al,00001111B;置置=1out dx,al;最终,最终,STROBE产生低脉冲信号产生低脉冲信号打印机程序1打印子程序:返回pop dxpop axretprintcendp打印机程序1用8255A方式1与打印机接口1000pf2K15321441LS123单稳单稳电路电路+5VDATA078255APC6INTRPC3PC7PA0PA7打印机打印机ACKACKOBFSTROBE8255A方式1与打印机接口时序配合PA0PA7(DATA07)ACKOBFSTROBE8255A的初始化mov dx,0fffehmov al,0a0hout dx,almov al,0ch;使使INTEA(PC6)为)为0,禁止中断,禁止中断out dx,almov cx,counter;打印字节数送打印字节数送CXmov bx,offset buffer;取字符串首地址取字符串首地址call prints;调用打印子程序调用打印子程序打印机程序2打印子程序:输出printsprocpush ax;保护寄存器保护寄存器push dxprint1:mov al,bx;取一个数据取一个数据mov dx,0fff8hout dx,al;从端口从端口A输出输出 打印机程序2打印子程序:查询mov dx,0fffchprint2:in al,dxtest al,80h;检测(检测(PC7)为)为1否否?jz print2;为为0,说明打印机没有响应,继续检测,说明打印机没有响应,继续检测 打印机程序2打印子程序:返回inc bx;为为1,说明打印机已接受数据,说明打印机已接受数据loop print1;准备取下一个数据输出准备取下一个数据输出pop dx;打印结束,恢复寄存器打印结束,恢复寄存器pop axret;返回返回printsendp打印机程序29.5.3 双机并行通信接口PA0PA7PC4PC08255A甲方(发送)甲方(发送)PA0PA7PC7PC68255A已方(接收)已方(接收)甲机的初始化mov dx,0fffehmov al,0a0hout dx,al;工作方式字:端口工作方式字:端口A方式方式1输出输出mov al,0dh;使使PC6(INTEA)1,允许中断,允许中断out dx,al双机并行通讯程序甲机发送程序trsmt:mov dx,0fffchin al,dx;查询查询PC3(INTRA)1?and al,08hjz trsmtmov dx,0fff8h;发送数据发送数据mov al,ahout dx,al双机并行通讯程序乙机的初始化mov dx,0fffehmov al,98hout dx,al;工作方式字:端口工作方式字:端口A方式方式0输入输入mov al,01h;使使PC0(ACK)1,因尚未收到数据,因尚未收到数据out dx,al双机并行通讯程序乙机:查询接收receive:mov dx,0fffchin al,dx;查询查询PC4(OBF)0?and al,10hjnz receivemov dx,0fff8h ;接收数据接收数据in al,dxmov ah,al双机并行通讯程序乙机:接收响应双机并行通讯程序mov dx,0fffehmov al,00h;使使PC0(ACK)0out dx,alnop;适当延时,产生一定宽度的低脉冲适当延时,产生一定宽度的低脉冲nopmov al,01h;使使PC0(ACK)1out dx,al;产生低脉冲产生低脉冲ACK信号信号9.5.4 LED数码管及其接口n发光二极管LED是最简单的显示设备n由8段LED组成的LED数码管nLED数码管广泛用于单板微型机、微型机控制系统及数字化仪器中nLED数码管可以显示内存地址和数据等nLED Light Emitting Diode1.LED数码管的工作原理n主要部分是主要部分是7段段LED发光管发光管n各段顺时针排列,分别称为各段顺时针排列,分别称为a、b、c、d、e、f、g、dp(或(或h,即小即小数点,有时不用)数点,有时不用)n通过通过7个发光段的不同组合可显示个发光段的不同组合可显示n可显示09十个数码n也可以显示AF(实现16进制数的显示)n还可以显示个别特殊字符,如、P、H 等abcdefgLED数码管的结构共阳极共阳极共阳极+5Vabcdefgh共阴极共阴极abcdefgh共阴极共阴极2.单个LED数码管的显示8255APA0PA1PA2PA3PA4PA5PA6PA7同同相相驱驱动动电电路路abcdefghcom+5V对一般数字电路而言,其灌电流(输出低电平)的能力对一般数字电路而言,其灌电流(输出低电平)的能力要大于拉电流(输出高电平)的能力要大于拉电流(输出高电平)的能力共阳数码管共阳数码管送送0点亮点亮送送0点亮点亮单个数码管的显示LEDtbdb 0c0h,0f9h,0a4h;共阳七段码表共阳七段码表db mov al,1;要显示的数码在表中的位置要显示的数码在表中的位置mov bx,offset LEDtb;bx指向七段码表指向七段码表xlat;通过换码取要显示的七段码通过换码取要显示的七段码;alds:bxalmov dx,portout dx,al;输出七段码输出七段码软件译码3.多个LED数码管的显示n以动态扫描显示8个数码管为例n硬件使用两个8位的输出端口,其中:n锁存输出七段码的端口,通过公用的段驱动电路来驱动多个数码管各段n锁存输出位选通码的端口,每次只点亮一个数码管n软件用轮流点亮(扫描)的方法实现多位数码显示,扫描频率应控制在16次/秒以上,当扫描频率达50次/秒时,显示将无闪烁感。多个LED数码管的显示8锁存锁存同相同相驱动驱动锁存锁存反相反相驱动驱动七段码端口七段码端口位选通码端口位选通码端口8共阳共阳数码管数码管控制控制控制控制数据数据送送0时点亮相应段,时点亮相应段,七段码:七段码:1111 1001B 将显示数码将显示数码“1”送送1时选通相应数码管,时选通相应数码管,选通码:选通码:0000 0001B 将选中最左边的数码管将选中最左边的数码管1段控制端口电路D0D1D2D3D4D5D6D7阳极阳极位位0a b c d e f g h位位1位位2段码D0D7段控制段控制锁锁存存/同同相相驱驱动动segport,-IOW段控制端口作用n控制哪些段点亮,决定具体显示什么数码n段控制端口送出七段码到数码管段控制端n此端口为8个数码管的共用端口段控制:段控制:Di0,相应段,相应段 点亮点亮D7D6D5D4D3D2D1D0hgfedcba通过位、段控制端口的共同作用才能确通过位、段控制端口的共同作用才能确定定哪个数码管哪个数码管显示显示什么数码什么数码通过位、段控制端口的共同作用通过位、段控制端口的共同作用才能确定才能确定哪个数码管哪个数码管显示显示什么数码什么数码位控制端口电路D7D6D5D4D3D2D1D0共阳极共阳极数位数位0数位数位1 数位数位2位码D0D7位控制位控制锁锁存存/反反相相驱驱动动bitport,-IOW共阳极共阳极共阳极共阳极位控制端口作用n位控制端口控制点亮哪位数码管(其余数码管暂不点亮)n当位控制端口的控制码某位为0时,经反相驱动,便在相应数码管的公共阳极上加了高电平,该数码管将点亮并显示数据位控制:位控制:Di0,相应数位的数码管可以发光,相应数位的数码管可以发光D7D6D5D4D3D2D1D0位7位6位5位4位3位2位1位0数码缓冲区 ;数据段数据段LEDdt db 8 dup(0);显示缓冲区,存放要显示显示缓冲区,存放要显示 ;数码在七段码表中的序号数码在七段码表中的序号 ;主程序主程序 mov si,offset LEDdt ;si指向显示缓冲区首址指向显示缓冲区首址 call LEDdisp ;调用显示子程序调用显示子程序LED显示程序获取显示代码LEDdispprocpush axpush bxpush dxmov bx,offset LEDtbmov ah,0feh;从最左边数码管开始从最左边数码管开始LED1:lodsb;取显示数据取显示数据xlat;换码得到要显示的七段码换码得到要显示的七段码;ALCS:BXALLED显示程序数码显示mov dx,segport;segport为段控制端口为段控制端口out dx,al;送出七段码送出七段码mov al,ah;取出位显示代码取出位显示代码 mov dx,bitport;bitport为位控制端口为位控制端口out dx,al;送出位选通码送出位选通码call delay;实现数码管延时显示实现数码管延时显示LED显示程序显示下位数码rol ah,1;选通码移位,指向下个数码管选通码移位,指向下个数码管 cmp ah,0feh;选通码又回最左边的数码管?选通码又回最左边的数码管?jnz LED1;否,显示下一个数字否,显示下一个数字pop dx;是,显示完一轮,退出是,显示完一轮,退出pop bxpop axretLEDtbdb 0c0h,0f9h;共阳七段码表共阳七段码表db LEDdispendpLED显示程序软件延时timer=10;延时常量延时常量delayprocpush bxpush cxmov bx,timer;外循环:外循环:timer确定的次数确定的次数delay1:xor cx,cxdelay2:loop delay2;内循环:内循环:216次循环次循环LED显示程序软件延时dec bxjnz delay1pop cxpop bxretdelayendp通过控制重复频率和延时时间就可以通过控制重复频率和延时时间就可以得到各种显示效果得到各种显示效果LED显示程序本章完本章完谢谢大家谢谢大家
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 压缩资料 > 基础医学


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!