重庆大学计算机硬件基础复习.ppt_第1页
重庆大学计算机硬件基础复习.ppt_第2页
重庆大学计算机硬件基础复习.ppt_第3页
重庆大学计算机硬件基础复习.ppt_第4页
重庆大学计算机硬件基础复习.ppt_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

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

文档简介

1、(2)总线,所谓总线,就是一组用于信息公共传输的信号线,连在总线上的所有部件均能使用的公共线路,但使用必须是分时的。按传输信息方向,总线分为只能单方向传输信息的单向总线和可以双向传送信息的双向总线。按传输信息类别,总线分为传输数据信息的数据总线(Data Bus ,DB)、传输地址信息的地址总线(Address Bus ,AB )和传输控制信息的控制总线(Control Bus, CB)。,(3)数据总线、地址总线、控制总线,用于实现CPU与内存储器或I/O设备间的信息交换。DB是双向总线。DB的位数越多(宽),一次传输的数据信息量就越大,8位DB一次只能传输1个字节的数据信息,而64位DB则

2、一次可以传输8个字节的数据信息。,数据总线DB,用来确定CPU要访问的内存单元或I/O端口的地址信号,它是由微处理器发出,故AB为单向总线。AB的位数越宽,寻址的空间就越大。对于地址总线为16位的微处理器而言,即有AB15AB0 16条地址线,寻址范围为216=64KB;对于地址总线为32位微处理器而言,其寻址范围为232=4GB。,地址总线AB,CPU有20条地址线,可寻址的地址空间为 220=1MB 80486CPU有32条地址线,可寻址的存储空间为 232=4GB (210=1KB=1024B; 211=2KB; 212=4KB; 213=8KB; 214=16KB ; 215=32KB

3、; 216=64KB; 217=128KB; 218=256KB; 219=512KB; 230=1GB),逻辑与:“” 表示与 (逻辑与)是逻辑运算符。and “逻辑与”相当于生活中说的“并且”,就是两个条件都同时成立的情况下“逻辑与”的运算结果才为“真”。 逻辑运算符把各个运算的变量(或常量)连接起来组成一个逻辑表达式。,逻辑或,是逻辑运算符 (or)。 “逻辑或”相当于生活中的“或者”,当两个条件中有任一个条件满足,“逻辑或”的运算结果就为“真” 异或(xor)是一个数学运算符。它应用于逻辑运算。异或符号为“”。 两个值不相同,则异或结果为真。反之,为假。 不同为1,相同为0,如1001

4、异或1010等于0011. 异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0异或0=0,1异或0=1,0异或1=1,1异或1=0,这些法则与加法是相同的,只是不带进位。,第二节 微处理器的内部硬件结构 及简单工作过程,1.微处理器,微处理器是微型计算机的运算和控制指挥中心。它主要由运算器、控制器和寄存器组三个主要部件以及内总线组成。, 运算器,由累加器(Accumulator,A)、暂存器(Temporary,TMP)、算术逻辑单元(Arithmetic Logic Unit,ALU)、标志寄存器(Flag Registers,F)和

5、一些逻辑电路组成。,累加器,算术逻辑单元,标志寄存器,如:两无符号数A、B进行比较 :,=,若AB 后有 ZF=1,则 A B 若AB 后有 CF=1,则 A B,若是带符号数进行大小比较,能用CF标志来判断?,例:A=FFH,B=01H;AB=FEH,此时CF=0,AB?,对带符号数的大小判断有两种方法,例:若A0 ,B0 ,应有AB 成立, A=100D,B=50D, AB有:,1 0 0 1 0 1 1 0 B,SF = 1 AB ?, A=15D,B=5D, AB有:,0 0 0 1 0 1 0 0 B,SF = 0 AB ?,所以对带符号数的大小判断应先判溢出标志 OF 。即:,(见

6、下页程序例),程序如下: ORG1000H 地址 对应机器码 1:MOV A,5CH (01011100H)92D; 1000H: B0H 5CH 2:ADD A,2EH (00101110H)46D; 1002H: 04H 2EH 3:JO 100AH ;溢出转移 1004H: 70H 0AH 4:MOV (0200H),A; 1006H: A2H 00H 02H 5: HLT ; 1009H: F4H,0 1 0 1 1 1 0 0,0 0 1 0 1 1 1 0,1 0 0 0 1 0 1 0,有溢出, 控制器,实现取指令、分析指令(指令译码)和执行指令。, 寄存器阵列,寄存器阵列主要包

7、含两类寄存器,一是通用寄存器,供用户使用;二是一些用途固定的专用寄存器,如程序计数器、堆栈指示器。,程序计数器PC,用于存放下一条要执行的指令在存储器中存放的地址。,堆栈和堆栈指示器SP,堆栈是一块设在内存中按先进后出(First In Last Out,FILO)原则组织的存储区域,用于存放数据。数据存入栈区称为压入(PUSH),从栈区中取出数据称为弹出(POP)。,四、简单工作过程,取指令、分析指令、执行指令,在计算机中,无论数值还是数的符号,都只能用0、1来表示。通常专门用一个数的最高位作为符号位:0表示正数,1表示负数。 +18=00010010 -18=10010010 符号位 符号

8、位,例:机器数10000001 所表示的真值为-1,00101010所表示的真值为+42,一、 机器数和真值,二 、有符号数的原码、反码和补码 在计算机中,机器数可以有不同的表示方法。对有符号数,机 器数常用的表示方法有原码、反码和补码三种。 1. 原码 最高位表示符号、数值位用二进制绝对值表示的方法。 +1原=00000001 -1原=10000001 +0原=00000000 -0原=10000000 原码表示简单、直观,与真值间转换方便。但运算不方便,0有 两种表示方法。,2. 反码 正数的反码表示与原码相同;负数的反码是将其原码除符号位 外取反得到。 +3反=00000011; -3反

9、=11111100 3 .补码 正数的补码表示与原码相同;负数的补码是将其原码除符号 外,其余各位外取反加1得到。 +3补=00000011; -3补=11111101 n位补码表示数值的范围:-2n-1+(2n-1-1); 0的补码只有一 个 补码原码真值,而X原=X补补,三 、补码运算及溢出判别,1.补码运算 XY补=X补+Y补 一个变为其相反数采用求补运算。整数取反指令NEG,例:NEG BX 例如: X=33,Y=45,求X+Y、X-Y X补=00100001,Y补=00101101, -Y补=11010011 X+Y补= X补+ Y补=01001110 X-Y补= X补+ -Y补=1

10、1110100 真值: X+Y=X+Y补补=01001110=(+78)10 X-Y=X-Y补补=10001100=(-12)10,2. 溢出和溢出判断 当结果超出补码表示范围称为溢出。大于最高值称为正溢出,小 于最小值称为负溢出。 计算机多采用“双高判别”法进行判断。 即OF=C1C2 设C1为次高位,C2为最高位,则C1、C2 同时有进、借位或无进、 借位,不产生溢出;否则产生溢出 例:55+66=00110111+01000010=01111001(正数) C1=C2=0 ;即C1、C2都无进借位, 故不溢出,结果正确; 98+45=01100010+00101101=1001000(负

11、数) C2=0,C1=1;即C1向C2有进借位,而C2向高位无进借位,产生 溢出,结果不正确。,段寄存器为8086/8088采用存储器分段管理提供了主要的硬件支持。8086/8088可寻址的存储器空间为1MB。通过分段管理,把1MB的物理存储空间分成若干逻辑段,每段最大为64KB。段的起始单元地址叫段基址。 存储器的分段方式不是唯一的,各段之间可以连续、分离、部分重叠和完全重叠。这主要取决于对各个段寄存器的预置内容。一个具体的存储单元的物理地址,可以属于一个逻辑段,也可以同属于几个逻辑段。 8086/8088的4个当前段分别称为:代码段、数据段、堆栈段、附加段,采用存储器分段管理后,存储器地址

12、有物理地址和逻辑地址之分。CPU访问存储器时,地址总线AB上送出的是物理地址。,编程时则采用逻辑地址,逻辑地址有段基址和段内偏移地址两部分组成,两者都是16位。 采用分时复用技术,段寄存器CS、DS、ES、SS,指令队列主要使8086/8088的EU和BIU并行工作,取指令操作、分析指令操作重叠进行,从而形成了两级指令流水线结构,减少了CPU为取指令而必须等待的时间,提高了CPU的利用率,加快了整机运行速度,也降低了对存储器存取速度的要求。,IP,指令的物理地址 段基址16偏移量,CS IP,IP -指令指针寄存器,20位地址加法器,例如:CS=2530H,IP=4200H,则目标指令的存放地

13、址为:,2530H164200H=25300H 4200H=29500H,例如:DS=2000H,SI=0250H,则目标数据的存放地址为:,2000H160250H=20000H 0250H=20250H,第一节80486微处理器的寻址方式,一、操作数寻址方式,80X86的寻址方式可分为两类:操作数的寻址方式和转移地址的寻址方式。,由于操作数作为指令的操作对象,可以存储在存储器中(称为存储器操作数)、寄存在寄存器中(称为寄存器操作数)或直接包含在指令中(称为立即数),因此,与之对应有多种寻址方式。80X86粗略地划分可有3类10种寻址方式,其中访问存储器操作数有8种寻址方式。,(1)立即数寻

14、址,在这种寻址的方式下,操作数作为立即数直接存在指令中,可为8位,16位和32位。,例: MOV AX,1234H MOV BL,78H MOV ECX,12345678H,(2)寄存器寻址,在这种方式下,操作数存放在CPU某个8位、16位或32位寄存器中。,例: MOV EAX,EDX INC CL MOV DS,AX,该寻址方式指令码短,且无需从存储器取操作数,故执行速度快,(3)直接寻址,在这种方式下,指令中的操作数部分直接给出了操作数的有效地址EA,它和操作码一起放在存储器的代码段中,可以是16位或32位整数。但操作数一般在数据段DS中。,例:MOV AX,DS:1000H,;将DS段

15、中1000H和1001H单元 的内容送到AX中。,应注意的是,指令中的DS不能省略。,直接寻址示意图,若(DS) =2000H 则物理地址= 20000H+1000H=21000H,这种寻址方式下,操作数所在内存单元的EA由规定的寄存器指出。,如果操作数不在上述规定的默认段,而是在其他的段,则必须在指令中相应的操作数前加上段超越前缀。例如:,MOV AX,ES:SI MOV AX,DS:BP,16位寻址时,EA可以由SI,DI,BP或BX提供。(其中BX、BP也称基址寄存器,SI、DI称变址寄存器),若以SI,DI,BX间接寻址,则默认操作数在DS段中。若以BP间接寻址,则默认操作数在SS段中

16、,MOV SI,1000H MOV AX,SI,(4)寄存器间接寻址 (P51 图3.3间接寻址示意图),寄存器间接寻址示意图,寄存器间接寻址示意图,(5)寄存器相对寻址方式,MOV EAX,BX+24 ;也可以写成 MOV EAX,24BX MOV DX ,EAX+1500;也可以写成 MOV DX,1500EAX,MOV DX ,BX+SI,(6)基址变址寻址方式,(7)相对基址变址寻址方式,MOV DX ,BX+SI+24,(8)比例变址寻址方式,MOV DX ,变址寄存器比例因子+位移量,其中比例因子可以是1,2,4,8中的任一个数。除ESP外的任何通用寄存器均可作变址寄存器,且EBP

17、默认SS作段寄存器,其余以DS作段寄存器。,这种寻址方式只适合于32位寻址的一种情况。,二、转移地址寻址方式,在指令系统中,有一组指令为程序转移指令。程序转移指令的寻址方式涉及如何确定转移的目标地址。目标地址可以在段内,也可以在段外。, 段内直接寻址,转移的目标地址是当前IP寄存器的内容和一个8位或16位位移量之和。,指令的汇编语言格式表示为: JMP NEAR PTR PROGRM JMP SHORT PTR OUTSET, 段内间接寻址,该方式中,转移的目标地址是寄存器或存储单元的内容。寄存器或存储单元的内容可以用数据寻址方式中除立即数以外的任何一种寻址方式取得,所得到的内容将用来取代IP

18、寄存器的值。,段内间接寻址转移指令的汇编格式可以表示为: JMP CX JMP WORD PTR BX+TAB1, 段间直接寻址,这种寻址方式用于段间转移,指令中直接提供了目标地址的段基址和偏移地址,所以,只要用指令中指定的偏移地址取代IP寄存器的内容,用指令中指定的段基址取代CS寄存器的内容就完成了从一个段到另一个段的转移操作。,指令的汇编语言格式可表示为: JMP FAR PTR NEXT, 段间间接寻址,该方式下,用存储器中两个相继字的内容来取代IP和CS寄存器中的原始内容,以达到段间转移的目的。这里,存储单元的地址是由指令指定除立即数方式和寄存器方式以外的任何一种数据寻址方式取得。,指

19、令的汇编语言格式可表示为: JMP DWORD PTR REL+BX,完成数据的传送工作,不影响任何标志,基本传送指令 MOV,可完成:,注意:目的操作数不能是CS!,一 、数据传送指令,1)通用数据传送指令:,交换指令XCHG,可完成:,TAB1 DB10,20,30,40,50 TAB2 DB10 DUP(0),MOVAH,4CH;设置功能号 INT21H;返回DOS CODE ENDS ENDSTART,。486 DATASEGMENT,DATAENDS,CODE SEGMENT ASSUMECS:CODE,DS:DATA,ES:DATA ORG2000H START: MOVAX,DA

20、TA MOVDS,AX MOVES,AX,LEA SI, TAB1 ; (TAB1=2000H) LEA DI, TAB2 ; (TAB2=200AH),MOVCX,5 AGAIG: MOVSB ;字符串字节传送指令 LOOP AGAIG,例:将数据段中TAB1开始的字符串传送到附加段TAB2开始的地址位置。设数据段和附加段的起始地址为DATA。,将十六进制数转换为ASCII编码 寻找 NUM=06H的ASCII编码 设TAB=2000H DATA SEGMENTTAB DB 0123456789ABCDEFNUM DB? DATA ENDSMOV AX,DATA MOV DS,AXLEA B

21、X,TAB MOV AL,NUM XLAT . . . .,二 、算术运算指令,1)基本四则运算 加/减法指令ADD/SUB,例: ADD AL,BL,;设 AL=17H, BL=09H, CF=1, 则指令执行后 AL= BL= CF= SF= ZF=,20H,09H,0,0,0,带进/借位加/减法指令ADC/SBB,OP1、OP2不能同时为存储器操作数,OP1不能是立即数,例: ADC AL ,BL,;设 AL =17H, BL=09H, CF=1, 则指令执行后 AL = BL= CF= SF= ZF=,21H,09H,0,0,0,该类指令要影响所有状态标志,例:完成 143265457

22、84322H98786765432322H运算,完成该7字节加法运算的程序段为:,200EH,2007H DP2,加1 /减1指令INC /DEC,格式:,该类指令不影响CF标志,例:INC CX,执行前:CX=1234H,CF=1;执行后:CX= CF=,1235H,1,求补指令NEG,格式:,NEG OP1,比较指令CMP,CMP OP1,OP2,格式:,;OP1 OP2,一、中断的基本概念 在CPU正常运行程序时,由于内部或外部某个非预料事件的发生,使CPU暂停正在运行的程序,而转去执行处理引起中断事件的程序,然后再返回被中断了的程序,继续执行。这个过程就是中断。,第二节中断及中断控制器

23、8259A,什么是中断,中断源与中断向量表,中断源 能够引发CPU中断的信息源,称为中断源。80X86微机系统中最多允许有256种中断源,其中中断源类型编号为0255。,按中断源的性质可以把中断分为内中断和外中断两类。,内中断(软中断) 指CPU执行某些特殊操作或由INT指令引起的中断,通常分为以下三类: 被零除操作或OF=1时执行INTO指令引起 使用调试程序中的单步或断点设置操作引起 执行INTn 指令引起,外中断(硬中断) 指外部芯片通过CPU的INTR、NMI两条外部中断请求输入线向CPU申请中断请求而引起的中断。, 可屏蔽中断 它是通过CPU的INTR引脚产生,当INTR上有高电平信

24、号且中断允许标志位IF置“1”时即产生中断。 CPU是否响应INTR引脚上的中断请求取决于IF标志: IF=1,CPU响应INTR引脚上的中断请求 IF=0,CPU不响应INTR引脚上的中断请求 即当IF=0时,将INTR引脚上的中断申请屏蔽。, 非屏蔽中断 它通过CPU NMI引脚产生,当NMI上有正跳变信号时,即产生一个内部引导的类型2中断。即NMI引脚上的中断请求不受IF标志的控制,IF不能屏蔽NMI引脚上的中断请求。,但在系统通电瞬间或屏蔽寄存器最高位置“0”可屏蔽NMI。将最高位置“1”又可以开放NMI。 MOV DX,A0H;A0HBFH为屏蔽寄存器 MOV DX,A0H MOV

25、AL,00H; MOV AL,80H OUT DX,AL;屏蔽NMI OUT DX,AL;开放NMI,中断向量表 在实模式下,中断向量表就是中断服务程序入口地址。,从中断子程返回断点处,靠的是执行中断子程最后的指令IRET; 从堆栈中取出断点地址给CS:IP,继续执行被中断的程序。 故中断子程最后要安排 IRET 指令。,中断向量表的设置 当CPU响应中断时,将从中断向量表中读取中断向量送给CS和IP,转去执行中断服务程序。因此,用户必须将中断服务程序的入口地址填入系统的中断向量表中,填入的方法有两种。,用程序设置中断向量表,假设中断类型号为32H,中断服务程序入口处的标号为INTSUB。,用

26、DOS功能设置中断向量表,利用INT 21H 的 35H 号功能可实现保存原中断向量,所取得中断向量放在ES:BX中。,MOVAL,N;N为被保存的中断类型号 MOVAH,35H INT21H; ES:BX中为原中断向量 PUSHES PUSHBX,利用INT 21H 的 25H 号功能可实现设置新中断向量,新中断向量应放在DS:DX中。,CLI PUSHDS MOVAX,SEG INTSUB ;INTSUB段基址存入DS MOVDS,AX MOV DX,OFFSET INTSUB ;INTSUB有效地址存入DX MOVAL,N;中断类型号 N MOVAH,25H INT21H;将DS:DX放

27、置中断向量表中 POPDS STI,若要在主程序结束前恢复原中断向量可采用以下程序段实现: 、 POPDX POPDS;将保存于堆栈的原中断向量弹出,送入DS:DX MOVAL,N MOVAH,25H INT21H 、,中断描述符表,80486工作在保护模式下时,采用“中断描述符”来描述中断服务程序,用中断描述符表(IDT)取代中断向量表。 IDT可位于线性地址空间中的任何地方,CPU通过中断描述符表寄存器IDTR确定IDT的基地址,该寄存器保存有32位的基地址和IDT界限。,微机系统实现定时功能,主要有三种方法:软件定时、不可编程硬件定时和可编程硬件定时。,软件定时是通过执行一个固定的程序段

28、来实现定时。由于CPU执行每条指令都需要一定时间,因此执行一个固定的程序段就需要一个固定的时间。定时或延时时间的长短可通过改变循环次数来控制。,不可编程的硬件定时常采用中小规模集成电路实现。如使用555定时器等,硬件定时方案不占用CPU时间,但电路连接好后,定时值就不能改变。,可编程硬件定时用可编程定时器/计数器来实现,本节主要介绍IBM PC系列微机使用的Intel 8254可编程定时器/计数器。,第四节可编程定时器/计数器8254及其应用,一、8254的内部结构和引脚功能,计数器0、1、2的内部结构,地址:,三、8254的工作方式,二、8254接口设计,计数时:,计数初值N即为所需脉冲数,

29、例:选计数器通道0为计数方式,每计50个脉冲中断一次;计数器通 道1为定时方式,定时时间为20ms (设CLK0 引入的时钟频率为2MHZ), 请编制出有关的初始化程序。, 通道0的方式控制字, 通道0的计数初值, 通道1的计数初值, 通道1的方式控制字,0 0 0 1 0 1 0 1 B,(只读/写低字节、方式2、BCD计数),N=50D,0 1 1 1 0 1 0 0 B,2. 计数初值(N),N=T/tCL,初始化程序如下:,MOV DX,20FH MOV AL,00010101B OUT DX,AL,MOV DX,20CH MOV AL,50D OUT DX,AL,MOV DX,20F

30、H MOV AL,01110100B OUT DX,AL,MOV DX,20DH MOV AX,40000D OUT DX,AL,MOV AL,AH OUT DX,AL,;计数器0初始,;计数器0送TC,;计数器1初始,;计数器1送TC,;先写低字节,;后写高字节,例如:在时钟频率为2MHZ前提下,要求利用8254某通道完成1秒 钟的定时,16位计数器,TC的最大值为:,0 (65536次),最大定时时间为T,T=655360.5us33ms1s,定时1s所需的时间初值为,TC = 1s/0.5us = 1106/0.5 =,2000000D,五、计数器量程的扩展, 软件法,设置中断次数计数器

31、, 硬件法, 级联,时钟信号,此时,通道0定时20ms,通道1计数50次,可完成1s定时!,通道0定时20ms中断一次,中断次数计数器计50次即1s,二、接口电路,地址:,IBF,INTR, 输入时的联络信号(应答信号):,将8255锁存 的数据送入 CPU,输入缓冲器满信号:,CPU执行 IN指令,INTE,输入选通信号:,中断请求信号:,中断允许/禁止:, 输出时的联络信号(应答信号):,输出缓冲器满:,CPU执行OUT指令,外设响应信号:,INTR,中断请求信号:,仅有A口可工作于该方式下。, 输入时与方式1完全相同。,方式0、方式1、方式2,方式0、方式1,方式0,A口:,B口:,C口

32、:,3. 方式2:选通的双向传送方式,3.初始化举例,例如,若规定端口A为方式1输出,端口C上半部分为输出,端口B指定为方式0输入,端口C下半部分为输入,则方式选择控制字应是:10100011B或A3H。 若将此控制字的内容写入8255A的控制寄存器,即完成了对8255A的初始化。初始化程序段为:,MOV DX, 210H ;假设控制端口的地址为210H MOV AL, 0A3H ;方式选择控制字 OUT DX, AL ;送到控制端口,又如:要使端口C的PC5置“1”,PC2置“0”,可通过下面的程序段实现(假设8255A的控制端口地址为83H):,MOV AL,0BH ;PC5置“1” OU

33、T 83H,AL ;送到控制端口 MOV AL,04H ;PC2置“0” OUT 83H,AL ;送到控制端口,4.8255的应用举例,A9 A8 A7 A6 A5 A4 A3 A2 A1 A0,地址:314H317H,例. 电路如图所示。要求开关Ki每拨动一次,其LEDi便随Ki改变一次状态, 问: 根据给出的端口地址画出74LS138的连接图。 各端口的工作方式是什么? 写出控制字,编制相关的初始化程序。 编制能完成题目要求的程序段。,初始化程序,MOV DX,317H MOV AL,82H OUT DX,AL,MOV DX,315H IN AL,DX DEC DX OUT DX,AL J

34、MP AGAIN,程序功能段,AGAIN:,5. 综合应用举例,利用 8254 和 8255 实现对A口所接的八个发光二极管的定时控制 (PAi 接 Li),让8个发光二极管任何时刻都只有一个点亮,每隔1s 改变一次状态,且从L0到L7依次循环点亮。 (PAi=1,Li亮; PAi=0,Li灭),定时1s的功能可通过8254 的两个通道级联实现:,8254通道0定时20ms,CLK0上的时钟脉冲频率为2MHz,OUT0接到CLK1,通道1计数50次,OUT1接到8259的IR3。,非编码键盘接口,(3)找到被按下的键。从0行开始,顺序逐行扫描,即该行输出“0”。每扫描一行,读入列线数据,找出为

35、“0”的列;若无,则顺序扫描下一行,并检查其各列;若找到某列线为“0”,则该列与检查行交点的按键为被按下的按键;,(1)识别有键按下否。PA的三线输出均为“0”,读入PB的四根输入线,只要有一线为“0”,即表明有键被按下;,(2)去抖动。延时20ms左右,等按键通、断引起的抖动消失,若还有键闭合,则认为按键已稳定;,(4)根据找到的键号,转去执行该键相应的子程序。,下面给出按行扫描的有关子程序。设8255A端A的地址为60H,端口B的地址为61H,控制寄存器的地址为63H。,判别有无键按下的程序段如下:,MOV AL,82H ;8255A初始化,方式0,A口输出,B口输入 OUT 63H,AL

36、 MOV AL,0 OUT 60H,AL ;各行线为“0” WAIT: IN AL,61H ;读列线数据 AND AL,0FH ;屏蔽无关位 CMP AL,0FH ;列线有“0”否? JZ WAIT ;无,等键按下,检测哪个键按下的程序段如下:,BEGIN: MOV BL,3 ;行数 MOV BH,4 ;列数 MOV AL,0FEH ;起始数据,0行为“0” MOV CL,0FH ;键盘屏蔽码 MOV CH,0FFH ;起始键号为“-1” LOOP1: OUT 60H,AL ;扫描一行 ROL AL ;修改扫描码,准备扫描下一行 MOV AH,AL ;保存 IN AL,61H ;读列线值 AN

37、D AL,CL ;屏蔽无关位 CMP AL,CL ;有列线为“0”? JNZ LOOP2 ;有,转去找该列线,ADD CH,BH ;否,修改键号,指向该行末列键号 MOV AL,AH ;取回扫描码 DEC BL ;行数减1 JNZ LOOP1 ;未完转下一行 JMP BEGIN ;重新开始 LOOP2:INC CH ;键号加1,指向本行首列键号 RCR AL ;带进位循环右移一位 JC LOOP2 ;该列非“0”,检查下一列 MOV AL,CH ;是,键号送AL CMP AL,0 ; 0号键按下? JZ KEY0 ;是,转0号键子程序 CMP AL,1 ; 1号键按下? JZ KEY1 ;是,

38、转1号键子程序 . . . CMP AL,0AH ;10号键按下? JZ KEY10 ;是,转10号键子程序 CMP AL,0BH ;11号键按下? JZ KEY12 ;是,转11号键子程序,一、LED显示器及工作原理,1.LED显示器的分类,第三节八段LED显示器接口技术,a,b,c,d,e,f,g,dp,显示1:b,c 两段点亮,2.工作原理,显示原理,段 选 开 关,位 选 开 关,a,b,c,d,e,f,g,dp,显示1:b,c 两段点亮,显示4:b,c,f,g 四段点亮,2.工作原理,显示原理,段 选 开 关,位 选 开 关,二、LED显示器与CPU的接口电路,例1:要求LED0显示

39、“7 ”,其它LEDi不显示任何内容,0 0 0 1 1 1 1 1,0 0 0 0 0 0 0 1,MOV AL, 1FH,OUT 90H, AL,MOV AL, 01H,OUT 91H, AL,例2. 要求LED0LED5都显示“5 ”,0 1 0 0 1 0 0 1,0 0 1 1 1 1 1 1,MOV AL, 49H,OUT 90H, AL,MOV AL, 3FH,OUT 91H, AL,三、显示管理程序 (1) 解决字符段代码的转换问题,LED4 LED5,03H,9FH,25H,段代码表,三、 显示管理程序 (1) 解决字符段代码的转换问题,LED4 LED5,段代码表,SEGP

40、T,0 1 2 3 4 5 6,03H,9FH,25H,0DH,99H,49H,41H, ,(2) 多位LED“同时”显示不同字符的问题,显 缓 区,段代码表,0 1 2 3 4 5 6,显示过程如下: 建立六个待显字符的 显示缓冲区 查出第一个字符的字 形码 送段形码至段选口 使最左一位LED发光 延时1ms 指向下一位LED 直至最后一位LED显示 完为止,例: 多位LED“同时”显示123456,假设LED显示器的段选口接8255的A口,位选口接8255的B口,开关K1接8255C口的PC0,当K1向上时,程序运行停止。,显 缓 区,段代码表,DISMEM,0 1 2 3 4 5 6,C

41、0H,F9H,程序如下:,DISMEM DB 1, 2, 3, 4, 5, 6 SEGPT DB 0C0H,0F9H, 0A4H, DB 0B0H,99H, 12H, 82H, MOV DX,20BH MOV AL,81H OUT DX,AL,MOV CL,20H LEA DI,DISMEM MOV AL,DI LEA BX,SEGPT,INC DI SHR CL,1,DISP:,MOV DX,20AH IN AL,DX ANDAL, 01H JZ NEXT ,NEXT:,MOV DX,208H OUT DX,AL INC DX,MOV AL,CL OUT DX,AL,JNC DISP,XLA

42、T,微机系统大都采用总线结构。这种结构的特点是采用一组公共的信号线作为微机各部件间的通信线。这组公共信号线就称为总线。采用总线结构可简化系统的软、硬件设计及系统结构,使系统易于扩充和升级。,一、总线的分类,根据总线所处的物理位置不同,可将总线分为如下4类:片内总线、元件级总线、系统总线及外总线。,片内总线,是集成电路芯片内部用以连接各功能单元的信息通路。它一般由芯片生产厂家设计,但当用户需设计符合自己要求的专用芯片时,便应掌握片内总线技术。,第一节概述,元件级总线(又称片总线或在板局部总线)是印刷电路板上连接各芯片之间的公共通路。这种总线与芯片引脚关系密切,难以形成总线标准。,系统总线(又称内

43、总线)是模块式微机机箱内的底板总线,用以连接微机系统的各插件板,一般为并行总线。例如,多处理机系统中各CPU板之间的通信通道,即为系统总线。常用的系统总线有ISA和PCI等。,外总线(又称通信总线)用于微机系统与系统之间、微机系统与仪器或其他外部设备(例如打印机)之间的连接。外总线可以是并行或串行总线,其数据传输率一般比系统总线低。这种总线非微机专用,一般是利用电子工业其他领域已有的总线标准。,二、总线信号线类型,总线通常少则有几十条,多则有百多条信号线,大体上可分成以下几种类型:,地址总线,数据总线,控制总线,电源和地线,它们决定了总线使用的电源种类及地线的分布和用法。,备用线,留给厂家和用

44、户自行定义,作为功能扩充和用户的特殊技术要求使用。,三、总线规范,总线规范一般包括如下基本内容: 机械结构规范:规定模块尺寸、总线插头、连接器等的规格。 功能结构规范:规定总线接口引脚的定义、传输速率的设定、时序及信息格 式的约定等。 电气规范:规定信号的逻辑电平、负载能力及最大额定值、动态转换时间等。,四、总线的数据传输,系统总线上的数据传输是在主控模块(即主控设备)的控制下进行的,它一般分为如下4个阶段:,申请阶段,当系统总线上有多个主控模块时,需要使用总线的主控模块要提出申请,由总线仲裁逻辑确定把下一个传输周期的总线使用权交给哪个模块。若系统总线上只有一个主控模块,就不需要这一阶段。,寻

45、址阶段,取得总线使用权的主控模块通总线发出本次要访问的从属模块的地址及有关命令,以启动参与本次传输的从属模块。,数据传输阶段,主控模块和从属模块之间进行数据传输,数据由源模块发出经数据总线传到目的模块。,结束阶段,主从模块的有关信息均从系统总线上撤除,释放系统总线。,一、PC总线,PC总线是PC及XT机使用的总线。它是ISA总线的基础。目前人们在设计一些较为简单的专用接口时仍使用这种总线。,状态线,第二节 ISA总线,二、ISA总线,ISA总线又称为AT总线,它是在PC总线基础上扩展形成,它在保持原PC总线的62个引脚信号不变的前提下增加了数条信号线,具有16位数据宽度,地址线24条,可寻址1

46、6MB。工作时钟频率为8MHz,数据传输率最高可达16MB/s。 ISA总线是一种多主控总线,这一特性通过系统总线扩展槽中的MASTER信号线实现。即除主CPU外,DMA控制器、刷新控制器和带处理器的智能接口控制卡都可以成为ISA总线的主控设备,但它只支持一个智能接口控制卡.由于它的特殊性,目前某些PC上仍有ISA插槽。 ISA总线支持8种类型的总线周期:存储器读、存储器写、I/O读、I/O写、中断、DMA 传输、刷新和仲裁周期。,ISA总线信号,ISA总线是在PC总线的基础上扩展一个36线插槽形成的。ISA总线由用一轴线的基本插槽和扩展插槽两段组成。基本插槽有62条信号线,兼容PC总线;扩展插槽有36条信号线,为ISA总线新增加的信号。,基本插槽,基本插槽的62条信号线的引脚排列及定义与PC总线基本相同,但有3条信号线不同:B4引脚定义为IRQ9(PC总线为IRQ2);B8引脚定义为OWS等待状态信号(PC总线为CARD SLCTD);B19引脚定义为REFRESH信号(PC总线为DACK0)。 另外,ISA总线称PC总线的MEMR和MEMW两条信号为SMEMR和SMEMW,仍作地址线A0A19(ISA中称为SA0SA19)寻址的1MB内存的读/写选通信号。对基本插槽而言,P

温馨提示

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

最新文档

评论

0/150

提交评论