版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、汇编复习资料使用说明:1. 本资料绝大部分内容来自PPT,部分课本,部分网上。2. 知识点只是列出了主要部分,细节需要仔细看课本,因此每一知识点后均标注出其在课本的页码。3. 课本上老师讲过的例题以及课后所布置的作业是重点,尽量全都搞懂。4. 资料中有些图看不清楚,可根据页码在课本中找到相对应的图。第一章1. 基本概念P1 机器语言-是用二进制编码的机器指令的集合及一组使用机器指令的规则。 目标程序-用机器语言描述的程序称为目的程序或目标程序。 汇编-把汇编语言源程序翻译成目标程序的过程称为汇编。2. 汇编语言的特点P121 汇编语言与机器关系密切;2 汇编语言程序效率高; (时间:运行速度快
2、,空间:目标程序短)3 编写汇编语言源程序繁琐; 4 汇编语言程序调试困难,维护、交流和移植程序更困难。3. 汇编语言的使用场合P21 对软件的执行时间或存储容量有较高要求的场合。例如:系统程序的关键核心,智能化仪器仪表的控制系统,实时控制系统等。 2 需要提高大型软件性能的场合。通常把大型软件中执行频率高的子程序(过程)用汇编语言编写,然后把它们与其他程序一起连接。 3 软件与硬件关系密切,软件要有直接和有效控制硬件的场合。如设备驱动程序等。 4 没有合适的高级语言的场合。4.地址转换规则P6 物理地址= 段基地址×10H偏移地址 5. 标志寄存器P5进位标志CF(Carry Fl
3、ag):用于反映运算是否产生进位或借位。如果运算结果的最高位产生一个进位或借位,则CF置1,否则置0。奇偶标志PF(Parity Flag):用于反映运算结果低8位AL中“1”的个数。“1”的个数为偶数,则PF置1,否则置0。辅助进位标志AF(Auxiliary Carry Flag):在字节操作时低半字节向高半字节进位或借位,字操作时低字节向高字节进位或借位,AF置1,否则置0。零标志ZF(Zero Flag) :用于判断结果是否为0。运算结果0,ZF置1,否则置0。符号标志SF(Sign Flag):用于反映运算结果的符号,运算结果为负,SF置1,否则置0。溢出标志OF(Overflow
4、Flag) :反映有符号数加减运算是否溢出。如果运算结果超过了8位或者16位有符号数的表示范围,则OF置1,否则置0。中断标志IF(Interrupt-enable Flag):决定CPU是否响应外部可屏蔽中断请求。IF为1时,CPU允许响应外部的可屏蔽中断请求。方向标志DF(Direction Flag) :决定串操作指令执行时有关指针寄存器调整方向。当DF为1时,串操作指令按递减方式改变有关存储器指针值,每次操作后使SI、DI递减。第二章1、 寻址方式1.立即寻址P17操作数(又称立即数)包含在指令中。低字节在前、高字节在后。1D24:0100 B83412 MOV AX,1234H适用于
5、对寄存器或存储器赋值。2.寄存器寻址P17操作数在寄存器中。MOV AX,BX3.存储器寻址P1821操作数在存储器中,指令以某种方式给出操作数在存储器的地址。1) 直接寻址指令直接包含操作数的有效地址。MOV AX,BUF2/ MOV AX,000DH2) 寄存器间接寻址地址寄存器BX,BP,SI,DI存放操作数的有效地址。MOV DI,OFFSET BUF2MOV BX,DI适用于表格的处理。3) 寄存器相对寻址操作数的有效地址为基址或变址值加上偏移量MOV BL,BUFDIMOV AX,BX十5MOV AX,5BX适用于实现对结构或记录等数据类型进行的操作。4) 基址变址寻址操作数的有效
6、地址为基址和变址之和MOV AX,BX+SIMOV AX,BP十DIMOV AX,BPDI适用于数组或表格存取5) 相对基址变址寻址操作数的有效地址为基址、变址和位移量之和。MOV AX,BX十SI十1122HMOV AX,1122HBX十SIMOV AX,1122HBXSI基址:BX、BP变址:SI、DI其中,BP默认段地址为SS,BX、SI、DI默认为DS。2、 指令系统(注意指令对标志位的影响) (1) 数据传送指令P2832MOV DEST,SRC传送MOVSX DEST,SRC有符号数扩展传送MOVZX DEST,SRC无符号数扩展传送XCHG OPRl,OPR2交换(不可直接对两个
7、存储器操作数进行交换)PUSH SRC (PUSHA PUSHAD)压栈POP DEST (POPA POPAD)出栈LEA REG,MEM取有效地址(相当于MOV REG,OFFSET MEM)LDS(ES,FS,GS,SS) REG,MEM取偏移地址中的内容XLAT查表(BX存放表的首地址,AL存放表内偏移量,取出表中一个字节送AL中) (2) 算术运算指令P3238ADD DEST,SRC加法ADC DEST,SRC带进位加法SUB DEST,SRC减法SBB DEST,SRC带借位减法INC DEST加1DEC DEST减1CMP DEST,SRC比较NEG DEST求补MUL SRC
8、无符号乘(注意乘除法默认寄存器)IMUL SRC有符号乘DIV SRC无符号除IDIV SRC有符号除(3) 逻辑运算指令P3844AND DEST,SRC与OR DEST,SRC或XOR DEST,SRC异或NOT DEST非TEST DEST,SRC测试SAL DEST,OPRD算术左移SHL DEST,OPRD逻辑左移SAR DEST,OPRD算术右移SHR DEST,OPRD逻辑右移ROL DEST,OPRD 循环左移ROR DEST,OPRD循环右移RCL DEST,OPRD 带进位循环左移RCR DEST,OPRD 带进位循环右移(4) 串操作指令P4952(以DS:SI来寻址源串
9、,ES:DI来寻址目的串)REP MOVSB/MOVSW/MOVSD串传送REPE/ZREPNZ/NE CMPSB/CMPSW/CMPSD串比较REPE/ZREPNE/NZ SCASB/SCASW/SCASD串扫描LODSB/LODSW/LODSD串装入REP STOSB/STOSW/STOSD串存储CLD DF置0STD DF置 l(5) 控制转移指令P4449(了解SHORT、NEAR、FAR)JMP TARGET无条件转移JZ/JE TARGET零/等于转移JA/JNBE TARGET无符号数高于/不低于且不等于转移(A>B)JB/JNAE TARGET无符号数低于/不高于且不等于
10、转移(A<B)JG/JNLE TARGET带符号数大于/不小于且不等于转移(A>B)JL/JNGE TARGET带符号数小于/不大于且不等于转移(A>B)JCXZ TARGET测试CX=0则转移LOOP TARGET CXCX1,若 CX0则循环LOOPD TARGET ECXECX1,若 ECX0则循环 LOOPE/LOOPZ TARGET CXCX1,若CX0且 ZF1则循环(6) 输入输出指令P5254IN DEST,SRC 输入(SRC给出目的端口)OUT DEST,SRC输出(DEST指定端口)(7) 处理器控制P54NOP空操作 (8) DOS调用P5557键盘输
11、入单字符:1号功能调用。键入字符的ASCII码送入AL寄存器中,并且通过显示器显示该字符。 MOV AH,1 INT 21H键盘输入字符串:0AH号功能调用。键入字符串的ASCII码存入以DX为首地址的内存空间中。 MOV DX,OFFSET BUF MOV AH,0AH INT 21H 输出单字符:2号功能调用。将置入DL寄存器中的字符 (以ASCII码形式表示) 通过显示器显示出来。 MOV DL,A MOV AH,2 INT 21H输出字符串:9号功能调用。将DX缓冲区中的字符串从显示器显示输出,缓冲区中的字符串以字符$作为结束标志。 BUF DB Thankyou$' MOV
12、DX,OFFSET BUF MOV AH,9 INT 21H返回操作系统: MOV AH,4CH INT 21H3、 中断P551.中断的概念:中断是指由于某种事件的发生(硬件的或软件),计算机暂停执行当前的程序,转而执行另一程序,去处理发生的事件,处理完毕后又返回原程序继续执行的过程。2. 中断矢量表:在实模式下,在内存地址最低处(00000H003FFH)设置1K字节长度的中断矢量表,表中存放系统中所有中断服务程序入口地址(中断矢量),中断矢量以4个字节存放在中断矢量表中,每个中断矢量包含一个中断服务程序的16位段地址和16位偏移地址,因此,中断矢量表允许存放256个中断矢量。中断矢量表的
13、索引又称中断矢量地址指针由中断类型码n乘以4得到。IPn=n*4 CSn=n*4+23.中断指令IRET 中断返回指令CLI 清除中断允许标志, 0IFSTI 置位中断允许标志, lIF第三章1 常用伪指令P63661.COUNT DUP(表达式,表达式 )ONE DB 256 DUP(1,2,4DUP(?)ONE变量所定义的存储区间重复存放数据(1,2,?,?,?,?),共占用1536(256*6)字节存储单元。2. 类型 PTR 地址表达式规定地址表达式的类型。INC DWORD PTR BX3.SEG 变量名或标号名规定传送标号或变量名的段值。MOV AX,SEG TARGET;取TAR
14、GET段地址4.OFFSET 变量名或标号名规定传送标号或变量名的偏移地址值。MOV AX,OFFSET TARGET;取TARGET偏移地址5.符号名 EQU 表达式指定的符号名表示一个指定值,该符号名可在程序中使用。A EQU 1024 ;A的值为1024。B EQU BX+SI+1000H ;B代表指定的寻址方式。C EQU JCXZ ;C代表指定的助记符。6.LENGTHOF 数组名返回数组的长度(元素个数)。ARRAY DW 5DUP(0)NUM DD 3,5,7,9,12,45,89LENARRAY EQU LENGTHOF ARRAY ;LENARRAY=5 LENNUM EQU
15、 LENGTHOF NUM ;LENNUM=7(LENGTHOF与SIZEOF区别)7.SIZEOF 数组名返回数组所包含的总字节数。ARRAY DW 5DUP(0)NUM DD 3,5,7,9,12,45,89SIZEARRAY EQU SIZEOF ARRAY ;SIZEARRAY=10SIZENUM EQU SIZEOF NUM ;SIZENUM=288. SHORT 标号名指定转移指令是在下一条指令地址的127个字节范围内。JMP SHORT TABINC AL TAB: MOV AL,BL 9.USES REG指定执行过程时需要保护的寄存器,在过程执行开始,将指定的寄存器保存到堆栈,
16、在过程结束返回前,从堆栈弹出数据恢复原寄存器内容。USES AX,BX2、 分支程序设计1. 简单分支程序P6973(1)用比较指令实现。 CMP DEST,SRC ;比较两个操作数 JE EQUL EQUL: (2) 用测试指令实现。 TEST DEST,SRC ;逻辑与测试 JNZ ONE ONE: (3) 用逻辑指令实现。 SHR DEST,CL ;对DEST进行逻辑右移 JC NEXT ;CF=1,转移到NEXT NEXT: 2. 复杂分支程序 P7374跳转表算法:在存储器设置一地址表,将多个分支程序的地址顺序存放在表中,以供程序在条件选择某一分支程序时使用。 存储器中地址表设置如下
17、: TAB DD SUB1 SUB2 SUB3 SUBn根据分支条件确定对应分支程序的入口地址在地址表中的位置(序号),转去执行分支程序。3、 循环程序设计P74801. REPEATUNTIL循环结构程序实现举例。LOOP指令实现: MOV CX,COUNT ;设置循环初值AGAIN: ;循环程序入口 LOOP AGAIN ;循环控制 跳转实现: MOV CL,COUNT ;设置循环初值AGAIN: DEC CL ;计数器减1 JNZ AGAIN ;循环控制 2.WHILEDO循环结构程序实现举例。 MOV CX,COUNT ;设置循环初值 AGAIN: JCXZ NEXT DEC CX J
18、MP AGAINNEXT: 3. 多重循环程序例3.35 将内存首地址为 BLOCK开始的10个带符号字节数,将其按由大到小的次序排列。(冒泡法) 4、 子程序设计P8089将程序中经常出现或者具有通用性的某一段指令组定义为子程序,可以缩短程序长度,节省内存空间,在80x86汇编程序中,子程序常常以过程的形式出现(过程的定义与调用)。1.过程定义 SUBl PROC NEAR USES AX,BX ADD AX,BX MOV SI,CX MOV AX,DX RET SUB1 ENDP 2.调用指令CALL NEAR PTR SUB1CALL NEAR PTR BXCALL FAR PTR SU
19、B2CALL FAR PTR BX3.参数传递的3种形式: 1通过寄存器传送参数; 2通过地址表传送参数; 3通过堆栈传送参数或参数地址。通常利用堆栈传递入口参数,而利用寄存器传递出口参数。 5、 结构和记录P971.结构与联合类型说明例3.57 下列语句说明了一个名为PERSON的结构类型:PERSON STRUC ID DD 0 ;偏移量为0 SCORE DW 60 ;偏移量为4 YEAR DB 10 ;偏移量为6PERSON ENDS 例3.58 设已说明了上述结构PERSON,那么可定义如下结构变量: STUDENT1 PERSON < 100,85,20 > ;三个字段都
20、重赋初值 STUDENT2 PERSON < 18, > ;字段SCORE、YEAR用缺省初值 STUDENT3 PERSON < > ;三个字段均用缺省初值 STUDENT PERSON 99DUP(?) ;定义99个结构变量,初值不变6、 宏P101105 在汇编语言源程序中,若某程序片段需要多次使用,为了避免重复书写,则可把它定义为一条宏指令(宏定义)。在写源程序时,程序员用宏指令来表示某个程序片段(宏调用);在汇编时,汇编程序会扫描源程序,检查是否有已说明的宏指令应用在程序中,如果有则将宏指令所代表的内容插入该宏指令位置处(宏展开)。1.宏定义宏调用宏展开例3.
21、70 定义一条宏指令CHAN,实现对指定寄存器的运算。 CHAN MACRO REG,COM,NUM AND REG,0FH COM REG,NUM ENDM此后,可有如下格式的各种宏调用: CHAN BL,OR,30H CHAN AL,SUB,5在汇编时,宏指令" CHAN BL,OR,30H "扩展成如下的代码: 1 AND BL,0FH 1 OR BL,30H2.宏与子程序的区别 两种方法均能达到简化源程序的目的,但有质的不同。 两者的区别: 1关于目标程序。宏指令:可简化源程序,但不可简化目标程序。解决的主要矛盾是速度。子程序:可简化源程序和目标程序。解决的主要矛盾
22、是节约存储空间。 2关于参数传递。宏调用时的参数由汇编程序通过实参替换形参的方式实现传递,所以参数很灵话。子程序调用时的参数须通过寄存器、堆栈或约定的内存单元传递。 3关于时间开销。宏调用是在汇编时完成,所以不需要额外的时间开销。子程序调用和子程序返回均需要时间,且还涉及堆栈。 4 宏要先定义后调用。3. 与宏有关的局部变量说明伪指令LOCAL在程序中多次使用宏指令时,避免宏展开出现标号重复定义错误,可用伪指令LOCAL说明宏的局部标号。CHANGE1 MACRO LOCAL LP AND AL,0FH ;屏蔽高4位 CMP AL,A JB LP ;不大于9时转 ADD AL,7 LP: AD
23、D AL,30H ENDM第五章1、 I/O控制P1921.微机与I/O设备、微机与存储器、I/O设备与存储器之间进行数据传送, 必须通过接口电路进行连接,以协调各部分工作,实现数据传送同步。这是由于I/O设备及存储器的特性所决定的,主要是工作速度差异较大。 I/O接口的功能:地址译码; 数据缓冲; 信息转换(A/D、D/A、并、串); 提供命令或状态信息; 定时和控制。2. 四种I/O控制方式:程序查询方式、中断驱动方式、直接存储器存取方式和专用I/O处理器方式。MPU 与I/O间还有一种最简单的无条件传送方式。二、程序查询P193194方法:MPU主动、反复查询I/O设备的状态,了解设备是
24、否准备好,是否需要服务,如果需要服务则转入相应的设备服务程序;如果外设未准备好,不需要服务,MPU则继续查询,或者先做一段时间其它事后再接着查询。特点 :MPU主动,接口电路和查询软件比较简单 ,但MPU 效率低。适用于实时性要求不高、或微机操作比较单一、不繁忙的情况。3、 中断控制P1942011. 基本中断控制方式中断的概念:当I/O设备需要MPU服务时通过其接口发出中断请求信号,MPU在收到中断请求后,中断正在执行的程序,保护断点,转去为相应外设服务,执行一个相应的中断服务子程序;中断服务结束,恢复断点,返回原来被中断的程序继续执行。特点:I/O设备与MPU并行工作,MPU处于被动工作方
25、式。节省MPU时间,提高效率,实时响应。适用于数据采集、处理和控制系统。但需中断逻辑电路支持,硬件较复杂。2. 中断判决与控制 程序查询式(软件):需一个中断请求锁存器 ,对锁存器查询的次序决定了中断源的优先级别。特点:硬件简单,通过软件即可改变优先级。但中断源多时,响应速度慢。 中断向量式(硬件):方法: 菊花链优先级判决; 并行优先级判决 。 特点:由中断源的中断向量转入服务程序,响应快,但硬件开销大。3.80X86实方式中断中断向量表:P197重点,前面已讲过4种中断类型: (1)外部硬件中断(可屏蔽中断):INTR脚,受IF位控制; (2)不可屏蔽中断:NMI引脚,不受IF位控制,类型
26、码2; (3)软件中断:中断类型码n(INT0、INT3等); (4)内部中断和异常:执行一条指令过程中,出现错误等不正常条件而引发的, 由内部硬件自动测试,类型码固定。判优规则: 高 内部中断和异常; 软件中断INT; 非屏蔽中断NMI; 可屏蔽中断INTR; 低 单步中断。 四、8259A可编程中断控制器1.引脚:P202D7D0:双向数据线,可直接与系统的数据总线相连。IR7IR0:中断请求输入线,可接入8个I/O设备的中断请求。RD:读命令信号线,低有效,与系统的IOR相连。WR:写命令信号线,低有效,与系统的IOW相连。CS:芯片选择信号线,低有效,由地址高位译码控制。A0:端口选择
27、,当数据总线为8位时,通常直接连至地址总线的A0;当数据总线为16位时,可接至地址总线的A1;当数据总线为32位时,可接至地址总线的A2。CAS2CAS0:级联输入输出信号线,当8259A为主片时,CAS2CAS0是输出线,在CPU响应中断时,用来输出级联选择代码,输出接受中断请求的从片编码。当8259A为从片时,CAS2CAS0是输入线,接收主片送来的选择编码。SP:从编程线,作输入时,对主片SP=1,对从片SP=0。INT:中断请求输出线,高有效,接至微处理器的INTR端。INTA:中断响应输入线,低有效,接至微处理器的INTA输出端。2.寄存器:P203(1)中断请求寄存器(IRR)中断
28、请求寄存器(IRR)为8位,接受来自IR0IR7的中断请求信号,当IR0IR7上出现某一中断请求信号时,IRR对应位被置1;(2)中断屏蔽寄存器IMR中断屏蔽寄存器IMR 为8位(8个中断输入),若IRR(中断请求寄存器)中记录的8个中断请求中有任何一个需要屏蔽,只要将IMR的相应位置1即可,未被屏蔽的中断请求可以进入优先权判别器;它的内容由CPU通过对8259初始化时设置设定。(3)中断服务寄存器ISR8位,保存当前正在处理的中断请求,例如,如果ISR的D2=1,表示CPU正在为来自IR2的中断请求服务。(4)优先权判别器PR若某中断请求正在被处理,8259A外部又有新的中断请求,则由优先权
29、判别器将新进入的中断请求和当前正在处理的中断进行比较,以决定哪一个优先级更高。若新的中断请求比正在处理的中断级别高,由PR通过控制逻辑向CPU发出中断申请INT,正在处理的中断自动被禁止,先处理级别高的中断。(5)数据总线缓冲器用于8259A与数据总线的接口,传输命令控制字、状态字和中断类型码(6)读/写控制逻辑确定数据总线缓冲器中数据的传输方向,选择内部的各命令字寄存器。当CPU发读信号时将8259A的状态信息放到数据总线上;当CPU发写信号时,将CPU发来的命令字信息送入指定的命令字寄存器中。(7)级联缓冲/比较器用来存放和比较在系统中用到的所有8259A的级联地址。主控8259A通过CA
30、S0、CAS1和CAS2发送级联地址,选中从控8259A。3.命令字P204表5.31 ICW1:写入条件:CS =0、A0=0、特征位的D4=1。D0:D0=1,要写ICW4;D0=0,不需要写ICW4,对于8086CPU,要写ICW4; D1:D1=1,单片方式; D1=0,级连方式; D3:D3=1,中断请求输入线IR0IR7为高电平有效的电平触发方式;D3=0,中断请求输入线IR0IR7为上升沿有效的边沿触发方式; D4:ICW4标志位,为1;D2、D5D7:无意义,可全写“0”。2 ICW2:写入条件:跟在ICW1之后,CS =0、A0=1。D7D3:规定中断类型码的高五位(T7T3
31、); D2D0:无意义,可全写0。3 ICW3:跟在ICW2之后,CS=0、A0=1且ICW1的D1=0,使用在级连方式。主8259A ICW3各位作用:若某个IR上接有8259A,则对应的位写“1”,否则写“0”。 从8259A ICW3各位作用:D2D1D0:表示接入主8259A的IR端的编码; D7D3:无意义。4 ICW4:写入条件:跟在ICW2之后(若无ICW3)或者跟在ICW3之后(若有ICW3),特征位D7D5均为0,CS =0、A0=1且ICW1的D0=1。D4:D4=1,特殊完全嵌套方式,一般作为级联时主片的方式,工作在该方式时与工作在一般完全嵌套方式仅一点不同:在中断处理过
32、程中,对优先级相等的同级中断也给予响应,能实现同级中断嵌套; D4=0,一般完全嵌套方式,一般作为级联时从片的方式,或单片使用时的方式; D3:D3=1,缓冲方式,是指8259A和DB之间需加一缓冲器(提高DB带负载能力),此时 SP /EN 作为输出线 EN ,用以锁存或开启缓冲器;D3=0,非缓冲方式,SP/ EN作为主从片选择 SP。 D2:D2=1,在D3=1时(缓冲方式),主片; D2=0,在D3=1时(缓冲方式),从片。 在D3=0时,D2无意义。 D1:D1=1,自动中断结束方式(AEOI); D1=0:非自动中断结束方式。 D0:D0=1,8259A用于80X86CPU系统;
33、D0=0,8259A用于非80X86CPU系统。5 OCW1(A0=1) 该命令字用来设置或清除对中断源的屏蔽。动态改变中断的优先级。各位作用:为1,屏蔽对应的中断请求; 为0,不屏蔽对应的中断请求。例5.1 8259A的初始化程序如下: MOV AL,13H ;ICW1,单片, OUT 20H,AL ;边沿触发,后跟ICW4 MOV AL,8 ;ICW2,送中断向量地址 OUT 21H,AL MOV AL,0DH ;ICW4,8086模式, OUT 21H,AL ; 一般EOI,缓冲方式,全嵌套 MOV AL,0FFH ;OCW1,屏蔽所有中断 OUT 21H,AL 4.应用:P216例5.
34、4P.S.理解全嵌套模式和特殊全嵌套模式,自动EOI、一般EOI、特殊EOI。P2112135、 直接存储器存取控制DMA(Direct Memory Access) P234理解 在传送过程中,直接由DMAC控制数据在外设和存储器之间传送,而MPU放弃总线,可大大提高传送速度,适合高速外设和内存之间大批量、快速传送。 DMA控制方式的核心部件是DMA控制器( DMAC),专门用来完成外设与存储器之间的高速数据传送。DMAC占用总线的方式: 1. 强迫微处理器暂时停止工作; 2. 请求微处理器进入保持状态而暂时放弃对总线的控制权; 3. 利用处理器的指令周期中某些阶段不使用总线的间隙,插入一次
35、DMA传送操作等等。在微型计算机系统中普遍采用的是第二种方法,即当DMAC需要使用总线对存储器读/写时,它产生一个总线请求信号,要求MPU暂停工作而进入“保持”状态,MPU响应总线请求信号让出总线,即微型计算机系统中地址总线和数据总线转换为高阻态。第六章一、RS232C总线p3273301.RS一232是一种串行通信总线标准,RS232C 接口通向外部的连接器(插针和插座)是一种标准的“D”型保护壳的25针插头。有定义的仅22个。在微机通信中,通常使用的RS232接口信号只有9根引脚。引脚信号说明2TxT发送数据3RxD接收数据4RTS请求发送5CTS允许发送6DSR数据通信设备准备好7GND
36、信号地8DCD数据载体检测20DTR数据终端准备好22RI振铃指示2.RS232C总线的电气规范 RS232C总线的电气规范采用负逻辑。 对于发送端,规定用515V表示逻辑"1"(或称MARK信号),用515V表示逻辑"0"(或称SPACE)。 对于接收端,电压低于3V表示逻辑"1",高于3V表示逻辑"0",输入阻抗在37k之间。接口应经得住短路而不损坏。3.RS232C标准与TTL标准之间的转换 RS232C的逻辑电平与TTL逻辑电平是不兼容的,必须进行电平转换。Motorola公司制造的MC1488是把TTL电
37、平转换为RS232C电平的一种比较简单的集成电路驱动器芯片;而MC1489是把RS232C电平转换成TTL电平的接收器芯片。采用MC1488和MC1489电平转换芯片的全双工RS232C接口电路和UART(异步规程收发器接口)的连接线路如图6.64所示。 第七章1、 可编程并行输入输出接口8255A P3393501.引脚定义:D7D0:双向数据线,可直接与系统的数据总线相连。RD:读命令信号线,低有效,与系统的IOR相连。WR:写命令信号线,低有效,与系统的IOW相连。A1、A0:地址线,用于选择8255A内部寄存器。当数据总线为8位时,通常直接连至地址总线的A1A0;当数据总线为16位时,
38、可接至地址总线的A2A1;当数据总线为32位时,可接至地址总线的A3A2。RESET:复位信号线,高有效,它清除控制寄存器和初始化所有端口(ABC)为输入方式。CS:片选信号,低有效。由地址高位译码控制。PA7PA0:端口A输入输出线。PB7PB0:端口B输入输出线。PC7PC0:端口C输入输出线。A1A0端口00端口A地址01端口B地址10端口C地址11控制字寄存器端口2.8255A的三种基本工作方式 方式0 (Mode0)一一 基本输入输出 P343345 例7.4 例7.5又称无条件传送方式,不需要“联络”线, A口、B口、C口均可工作在此方式。而且C口的高4位和低4位可分别作输入或输出
39、。方式 l (Mode1) 一一 选通输入输出P345350 例7.6 例7.7又称有条件传送(可以工作在程序查询或中断方式)。只有A口和B口可工作在方式1,C口提供握手联络信号。方式1输入: 当A口方式1输入时,C口的PC5PC3作为握手联络信号; 当B口方式1输入时,C口的PC2PC0作为握手联络信号。 PC6和PC7未用,仍可定义为输入或者输出。A口联络信号PC4、B口联络信号PC2:输入选通信号STB。外设将数据准备好后,向8255发此信号(0),表示可以进行输入。A口联络信号PC5、B口联络信号PC1:输入缓冲器满信号IBF,高有效。这是一个8255输出至外设的信号,表示数据已送入锁
40、存器。A口联络信号PC3、B口联络信号PC0:中断请求信号INTR 。在STB=1,外设不再输入至8255;IBF=1,8255缓冲区内有数据;INTE=1,该中断被允许的情况下,向CPU请求中断。(理解P346时序图)方式1输出: 当A口方式1输出时,C口的PC3、PC6和PC7作为握手联络信号; 当B口方式1输出时,C口的PC2PC0为握手联络信号。 PC4和PC5未用,仍可定义为输入或者输出。A口联络信号PC7、B口联络信号PC1:输出缓冲器满信号OBF,表示外设可将数据取走。A口联络信号PC6、B口联络信号PC2:外设响应信号ACK,表示数据已被外设取走。A口联络信号PC3、B口联络信
41、号PC0:中断请求信号INTR,请求CPU继续给数据。(理解P348时序图)方式2 (Mode2)一一 双向传送双向方式是指在同一端口内分时进行输入/输出的操作。只有A口可工作在这种方式,它需要5个控制信号进行“联络”,由PC7PC3提供。2、 可编程定时器/计数器8254 P352370 · 若是均匀、连续、周期精确的脉冲信号,则输出也精确、分频的定时。 · 若虽周期精确,但关心的只是脉冲的数量,非脉冲的间隔计数器。 ·周期不精确计数器。1. 引脚D7D0:双向数据线,可直接与系统的数据总线相连。RD:读命令信号线,低有效,与系统的IOR相连。WR:写命令信号线
42、,低有效,与系统的IOW相连。A1、A0:地址线,用于选择8255A内部寄存器。当数据总线为8位时,通常直接连至地址总线的A1A0;当数据总线为16位时,可接至地址总线的A2A1;当数据总线为32位时,可接至地址总线的A3A2。CLK:计数脉冲输入,接要计数的信号。GATE:门控脉冲输入端,控制计数器工作的一个外部信号。低时通常禁止,高时(上升沿或高电平)允许计数器工作。可用GATE信号启动和停止计数器的工作。OUT:输出端。计数到“0”时输出,波形取决于工作方式。 A1 A0 选择端口地址 0 0 计数器0 0 1 计数器1 可读写 1 0 计数器2 1 1 控制字寄存器 只能写2.6种工作
43、方式方式0计数结束产生中断、软触发 P358 1)为软件触发计数器工作方式(靠写入计数初值启动计数器工作),计数器计数期间一直保持低电平,当计数到0时,输出保持为高电平,计数结束不恢复计数初值重新计数。 2)如果计数初值为N,在门控GATE一直保持高电平的条件下,输出端OUT要在初始值写入后再过N+1个时钟,才变为高电平。 3) GATE电平控制。门控GATE=1时,减1计数,如果GATE变为0,则停止计数。 4)在计数过程中改变计数值是立即有效的。实际应用中,常将计数结束后的上升跳变作为中断信号。可将OUT信号引脚作为中断请求信号,接至中断优先权排队电路或中断向量产生电路。方式1 可重复触发
44、的单稳态触发器、硬触发 P359 1)为硬件触发计数器工作方式。 2)如果计数初值为N,则输出的单拍脉冲的宽度为N个输入脉冲间隔。 3)方式1为可重触发计数方式,在计数过程中,外部又来一个上升沿触发信号,则在下一个时钟脉冲下降沿,对计数初值重新作减1计数。减为0时,输出端又变为高电平,这样,延长了输出脉冲。 4)如果在计数过程中,又有一个新的计数初值写入计数器,计数过程不受影响,即输出宽度仍然为原计数值对应的输出脉冲,计数到0后输出为高。若外部再次触发,则计数器将按新输入的计数值计数,即计数值是下次触发有效。方式2 频率发生器(N(N1)分频计数器 )P361 1)方式2为定时器工作方式,不用
45、重新设置计数值,计数通道能够自动连续工作,输出固定频率的脉冲。 2)在方式2,GATE门控信号不但高电平有效,而且其上升沿也起控制作用。门控信号GATE为高是计数正常进行的条件。当GATE变低时,暂停计数。在GATE上升沿的下一个CLK时钟脉冲,初值寄存器将初值重新装入计数器,开始计数。并且,在计数值减为1之前,输出端一直保持高电平。所以,GATE输入引脚可用来同步计数器。由于这种同步是通过硬件给出门控触发信号来实现的,所以称为硬件同步。 3)GATE输入引脚如果一直保持高电平,则写入计数初值触发计数器计数的方法,称为软件同步。 4)在计数过程中改变计数值是下次有效的。 这种方式可自动工作连续
46、产生负脉冲,脉冲产生周期可编程设置,如果计数值为N,每输入N1个CLK时钟脉冲后,输出一个时钟脉冲的负脉冲,因此可作为频率发生器使用或用于产生实时时钟中断。方式3 方波发生器 P362 1)当输入控制字以后,输出端OUT立即变为高电平。在写入初始值后的下一个时钟脉冲,减法计数器获得计数初值,开始作减2计数。当计数值N为偶数时,输出端的高低电平持续时间相等,为对称的方波;当计数值N为奇数时(计数初值减1成为偶数装入减法计数器 ),则输出端的高电平持续时间比低电平持续时间多一个时钟脉冲,即高电平持续 (N1)/2个时钟脉冲,而低电平持续 (N1)/2个时钟脉冲,这样,输出为矩形波,而整个输出周期仍
47、为N个CLK时钟脉冲。 2)计数减到0时,重新装入计数值,在每一个CLK时钟脉冲,计数器减2,直到计数再次到0时,输出变为高,并不断重复。 3)在计数过程中改变计数值,新计数值将在当前半周结束时装入计数器。但是,如果在输入新的计数值后,又受到门控上升沿的触发,那么,就会结束当前输出周期,而在下一个CLK时钟脉冲,将新的计数值装入减法计数器,并按新计数值开始计数。方式4 软件触发选通方式5 硬件触发选通 3. 工作方式总结P365 1)工作方式分类 方式0、1、4、5为计数器工作方式,方式2、3为定时器方式。 2)触发方式 方式0、4为软件触发,即写入计数初值后触发计数器计数;方式1、5为硬件触发,即写入计数初值,还需要GATE门控输入信号触发计数器计数。 3)输出波形 8254的6种工作方式中方式2、4、5的输出波形是相同的,都是宽度为一个CLK时钟脉冲的负脉冲;方式0、1输出宽度为N个CLK时钟脉冲的低电平;方式3输出连续方波/矩形波。在6种方式中,只有方式0,在写入控制字后输出为低。其它5种方式,都
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论