1、微机系统与接口课程总结,基本内容,1微机基础(数制、系统、P/MPU(FPU)、IA-16/32)2指令和用途 系统硬件相关3汇编语言程序设计(伪指令-数据-程序流)4半导体存储器(概念、MPU接口电路5接口技术数字/模拟接口及应用编程6IA-32原理概念,1,基本概念,(1)数制应用:,整数/小数小数点;不同进制的概念BIN/DEC/OCT/HEX;表示(DEC/BIN/BCD)左移/右移一位=*2 /2 10011B 23(D) 67Q 1234H 奇数:Bit0=1 偶数:Bit0=0有符号数-计算处理(结果);,来源:.相对偏移量(Displacement)(地址);JG/JL比较(=
2、JNLE/JNGEJNG/JLE;JNL/JGE)(跳转,调用) CS:8100 JMP 0103 E9 00 80 ;IP+Disp00FF(-128+127)-80H(-128)FF(-1)0(0)7FH(127),汇编语言伪指令-数据定义 人工输入形式-物理存储(二进制数) DB 20H(100H-20H=E0H), 1(0FFH),-20(ECH),81H(-127) DW -20H, 100,2000H,100000000000111B0FFE0H,00C8H,.,2,基本概念-数制,补码的概念?字长的概念(溢出JO);符号位(JS),.宏汇编语言 MOV AX, -3 (AX)=?
3、 -4 八位100H-4=0FCH,16位10000H-4=0FFFCHMYDATA DW 200,-200,0FFF0H,1, -200H, 200HMAX=? Min=?,判断指令:JG(E)(Greater)/JL(E)(Less)数值比较无符号数正整数(0FFH(255);065535(FFFFH)判断指令:JA(bove)/JL(ow)更多为JNC/JC:时间常数,绝对地址(指针大小),溢出: 运算结果超出范围 CF/OF (AX)=A000H, ADD AX,7000H ADD AX,-7000H,根据物理存储内容判别:两组结果,3,基本概念-数制,编码信息,ASCII码: 00-
4、7FH 字符(美国标准信息交换代码 )30H-39H 0941HA ,42HB.61Ha ,62Hb.汉字:内码, ISO.,4,(2)8086/8088硬件结构,(16位实地址模式)通用寄存器及用途(IP,SP,段寄存器的功能-用于存放段起始地址+计算物理地址;有效地址EA的概念(偏移量地址);段基址S和偏移地址=逻辑地址;物理地址=S*16+EA FLAGS各位定义IF,TF,(CF,DF,ZF,OF/SF,AF)CLI/STI;CLD/STD;单步运行(中断)重要信号:DEN,ALE,/WR,/RD,/IOR/W,AEN信号有效性的一般表示 / #,基本构成:执行单元EU+总线接口单元B
5、IU(并行-流水线,预取-指令队列)用途执行指令/与存贮器或I/O端口之间进行数据传送,并能形成物理地址。8086物理地址(A19-A0);,5,(3)8086/8088工作过程,.RESET后:各寄存器的状态(0000H)启动地址FFFF0H;(CS:IP=FFFF:0H)ROM/EPROM/FLASH ROM.软硬件的关系:指令总线操作: (BUS-目标单元),总线周期: T 周期-地址,数据读写(与指令相关),指令执行时间=指令周期;基本时钟T=系统时钟(时钟周期, T周期) 操作运算(机器周期)其中总线操作由BIU完成(总线周期)-存储器读/写、I/O读/写(中断响应、等待Tw、空闲周
6、期,6,(3)8086/8088工作过程,总线:地址,数据,控制-传送相关内容IO/M DT/R区分存储器/IO:8086 A19A0 220=1M-存储器 (00000FFFFFH);,最小/最大模式 单/多处理器(标准总线),I/O编址 64K*2 I/O (00000FFFFH(PC:0003FF A9-A0 ) OUT 40H,AL; IN AL,40H100H以上需用DX间址: MOV DX,2F8H IN AL,DX OUT DX,AL,7,(3)8086/8088工作过程,-总线及其控制(三态)e.g. MOV AX,SI DS为默认段寄存器 产生/RD信号-总线读操作 MOV
7、BX+20,BX 总线写 ADD SI+BX+100,AX 总线读,总线写 OUT DX,AL ;DX间址,产生/IOWR 总线I/O写操作*.(AL)=55H时 MOV AL,55AAH / MOV 55AAH,AL存储器读写周期波形图,8,(4)协处理器与IA-32,8087FPU的作用(不考)-硬件浮点数计算定点数,高速缓存cache的作用 (命中算法),*80386(IA-32)与8086的主要差别(EAX, 虚地址保护模式,虚拟存储器),虚地址保护模式 段寄存器 段选择子:描述表地址,获得段基地址、段限和访问属性,80386:实地址模式分段结构 段寄存器 段基地址:计算物理地址,9,
8、指令系统,寻址方式(寻找操作数地址(位置)的方式);分清各种方式的含义 立即数/直接,寄存器,寄存器间址 MOV指令,BYTE/WORD(NEAR)/DWORD(FAR)PTR-指定存储器访问方式字节/字/双字 数据:DEC BYTE/WORD PTR SI; MOV WORD/BYTE PTR 2000,20; CMP BYTE PTRSI,100 MOV AX,BX, MOV DL,CL可以PUSH ES,POP DS 但不可MOV ES,DS或MOV ES,1000,代码(指令地址): JMP FAR PTRBX JMP NEAR PTRBX =DWORD/WORD PTR JMP SH
9、ORT xxxx; JMP BX JMP 2000H JMP 2000:8000H -短/段内/段间 8位 16位偏移 20位空间,段超越ES:/CS:/FS:/DS: 指令前缀,10,堆栈及其工作方式SS:SP,PUSH/POP堆栈内容和SP变化-先进后出(FILO) 栈底(定义256B时100H=初SP)栈顶(LASTinLow)以字为单位操作 影响堆栈的指令PUSH AX ;(SP)(SP-2);(SP+1)(AH);(SP)ALPOP AX;(AL)(SP); (AH)(SP+1); (SP)(SP+2)CALL (FAR)/RET(F); (CS)IP入栈 RET 2n-断点 ADD
10、 SP,4 RET 4INT n; (PUSHF,IF=TF=0;IP,CS入栈) IRET(带FLAGS),CALL/RET改变程序流 (CS),11,基本指令集操作码 目标,源操作数,MOV, LEA, PUSH, POP, PUSHF, POPFADD, SUB, INC, DEC, CMP, MULAND, OR, TEST, XOR ( SHL, ROL)JMP, JZ, JNZ, JC, JNC, LOOPCALL, RET, INT n, IRETCLD, STD, STI, CLIREP MOVSB(W)IN , OUT,DB, DW, DD; ORG, OFFSET/ SEG
11、, $,(WORD/BYTE/FAR/NEAR)PTR-伪指令:,12,.汇编语言程序设计 - 数据-定义,DATASAMPL SEGEMNT AT A800H (段的地址) ORG 1000H ;起始偏移量地址变量:DB ABC ;存放在1000H 41H,42H,43H DW 34,56;1003H=DW 3334H, 3635H ;存放:34H,33H,36H,35HBUFFER1 DB -20 ;A800:1007H DW -120H 存储变量:FEE0HBUFFER2 DB 33,22,;A800:100AHBUFFER3 DB 55H;A800:100CH,LENGTH1 EQU(
12、=)BUFFER2-BUFFER1 =?,13,.汇编语言程序设计,ORG 2000H ;存放在A800:2000H开始NPT1 DW BUFFER1;07,10H A800:2000H.NPT2 DW BUFFER2 ;0AH,10H, A800: 2002HNPT3 DW BUFFER3 ; A800:2004HFPT1 DD BUFFER1 ;2006HFPT2 DD BUFFER2;200AHNPTPT1 DW NPT1,NPT2,NPT3.; ;00,20H,02,20H,04,20H.FPTPT2 DW FPT1,FPT2,FPT3,.; ;(2006H,A800H, 2008H,
13、A800H,实际存储:06H,20H,00H,A8H,08H,20H,00,A8H,指针:指针变量(近2/远4),14,.汇编语言程序设计,MOV SI,OFFSET NPTPT1MOV SI,SI+2;NPT2(SI)=2002H(链表:结构 MOV SI,SI.NEXT )$:当前地址 ( 可移动)NEXT: JMP $ (EB FE); LENGTH1 EQU $-NEXT,15,.汇编语言程序设计,模块化:注释;结构分枝(比较-散转)/循环(条件)流程框图 条件转移Jcc short-label-程序流的控制;JZ/JE,JNZ/JNE,JS,JNS,JO,JP/JPE,JNP/JPO
14、-LOOP计数循环(CX次);条件循环(计数)JCXZ,LOOPE/Z, DEC /INC COUNTER; JCC 或CMP -JCC JMP (NEAR)/(FAR) JMP xxxx/ JMP FAR PTR,过程/子程序利用-目的?CALL BX; CALL 2000H; CALL 200:40A8H,16,.汇编语言程序设计,INC/DEC BX/SI/DI指针修改 (字节,字,双字)ADD SI/BX/DI,10MOV SI(BX/DI),OFFSET; 初始指针MOV CX,300;(COUNTER, COUNTER EQU 300)MOV AL/AX, SI+2;MOV BX+
15、100,AL/AX(数据)MOV AL,DH , MOV AX,SI(寄存器交换)ADD AL,BH (ADD DX,SI) ADD SI,AL SUB SI,6AND AL,100, OR XOR TEST,CMP AL,10, CMP DX,SIJZ/JE (JNZ) JC/JNC(无符号) JG-JNLE/JNG-JLE,17,.汇编语言程序设计 -编程(例),从数据段以DAT为首地址的字符串中寻找A字符(A=41H, 该字符串以$结尾,$=24H),并将它们的偏移地址依次存放于ADDR为首的存储区内,并以0结束。要求写出程序主要片断(不必用伪指令定义变量,可直接用指令性语句编写)。,D
16、ATAADDR,忠实理解题意-要求-建模分析,18,.汇编语言程序设计 -参考程序,MOV SI,0MOV DI,OFFSET ADDRMYLOOP: MOV AL,SIDATCMP AL,A;或CMP AL,41HJNZ NEXT;非A字符MOV DI,SI;是A字符,保存偏移地址INC DI;修改当前偏移地址存储表指针INC DI;占两个字节INC SI;修改数据偏移指针,指向下一字符JMP MYLOOP,NEXT: CMP AL,$JZ FINISH;遇到串结束符$INC SIJMP MYLOOP;继续处理FINISH:XOR AX,AX MOV DI,AX ;00结束,19,.汇编语言
17、程序设计 -参考程序,变化: 如果要求在规定的字串长度范围内(如不超过1000个),找到结束符$, 将单元FLAG清零,否则写入0FFH; 加条件循环语句,MOV SI,OFFSET DATMOV DI,OFFSET ADDRMOV CX,1000;循环初值MYLOOP: MOV AL,SI CMP AL,A;或CMP AL,41HJNZ NEXT;非A字符MOV DI,SI;是A字符,保存偏移量地址INC DI;修改当前偏移量地址存储表指针 INC DI;占两个字节JMP NEXT1;继续循环NEXT: CMP AL,$JZ FINISH;遇到串结束符$,20,.汇编语言程序设计 -参考程序
18、,变化: 如果要求在规定的字串长度范围内(如不超过1000个),找到结束符$, 将单元FLAG清零,否则写入0FFH; 加条件循环语句,NEXT1:INC SI;修改数据指针,偏移指向下一数据 LOOP MYLOOP;1000个数未到, 继续处理 MOV AL,0FFH;未遇到A, 错误标志 JMP PEXIT;出口FINISH:XOR AL,AL ;MOV AL,0 MOV DI,AL ;0结束,接着将00写入FLAG单元PNEXT: MOV FLAG,AL;程序出口,写FLAG标志,21,分类:内外寸RAM-SRAM;DRAM ;数据,堆栈,速度(SRAM-Cache)ROM-EPROM,
19、EEPROM,NVRAM特点; 程序,固化数据,电子盘,关键:与处理器的接口正确读写单元,概念,三态,使能, 选中单元:译码与译码器-逻辑关系,真值表MOV 55AAH,ALA19-A16=? (DS)=8000H 物理地址: 855AAHA19-A0: 1000 0101010110101010 时/CS=0(/CS=!A19&A18&A17&A16&A15&!A14&A13&!A12&A11&!A10&A9&!A8&!A7 容量计算:n根地址线n个单元A0An-1 I/O相同:(DX)=3F8H IN AL,DX INC DX, OUT DX,AL,22,4半导体存储器,全译码和部分译码(
20、线选)常规时序(了解)片选-片内两级译码,2-43-84-16译码,74LS138真值表,23,4半导体存储器,存储器扩展(作业4-4),单元数地址线数关系,2K*4,2K*4,2K*4,2K*4,A10 A0,A10 A0,A10 A0,A10 A0,/CS,A11,4K*8,D0 D3,D4 D7,D0 D3,D4 D7,24,5接口技术数字/模拟接口,输入指令IN AL,DX ;IN AL,80H 时序 /IORD- AB译码选中输出指令OUT DX,AL; OUT 81H,AL 时序 /IOWR 译码选中所有接口电路的译码、指令操作(读图)。简单互连,,74LS138译码器,多种选择设
21、计:可选常规,易实现,25,5接口技术数字/模拟接口,简单I/O:开关电平变换连接,简单I/O指令控制:输入三态使能,26,5接口技术数字/模拟接口,简单I/O:LED/八段数码管的连接,(i8255),简单I/O控制:输出使能/锁存,27,5接口技术数字/模拟接口,I/O三种方式: 程序I/O(查询)-三种端口数据/状态/控制及作用, 中断, DMA及各自特点DMA 数据传送控制方式可以实现外部设备和存储器之间的数据高速传送,不需要处理器。总线时序:+中断响应;总线请求(DMA),可编程接口芯片: 独立/CS, /OE, /WR 信号,28,5接口技术数字/模拟接口,并行I/O i8255:
22、 作用,三种方式,方式基本(直接)I/O; 方式1 选通I/O(A/B组); 方式2 双向I/O方式(PA口); 中断:方式1,2方式0的使用:简单I/O,锁存; 应用方式1中IBF/OBF信号的作用(输入/输出缓冲区满),特殊:可编程并行接口芯片的PC口具有位控功能,允许CPU用输出指令单独对C口的某一位写入“1”或“0”,正确的方法是通过写8255的控制寄存器方式写入;,脉冲的产生: 位0-1-0,29,5接口技术数字/模拟接口,T/C 8253:定时器/计数器,可编程定时器/计数器为BIN/BCD计数器(减法)计数值最大时应置时间常数(计数初值)为0(和LOOP CX相同)。五种工作方式
23、(数字n个脉冲-n可编程设置)定时器与计数器的差别-CLK)CLK/GATE/OUT的含义(作用)方式2使用(定时器-速率发生器-软硬件启动):,时间常数计算,通道定时时间的最大值计算;基于单通道的长时间定时器的软件实现加法/减法),硬件级连的概念-定时中断-软件定时器-相关软件。 软件触发初值硬件触发 Gate,30,5接口技术数字/模拟接口,中断:(概念)8259: 中断系统可处理多个中断源:应用功能,中断:内部中断/外部中断:不可屏蔽中断NMI/可屏蔽中断INTR 8259功能;中断向(矢)量(0000:000-03FFH, 中断服务程序的IP,CS)作用;中断屏蔽(初始化);中断响应;
24、中断请求;中断优先级;中断嵌套;外部中断的随机性,例如:INT 08H对应中断向量存在00020H (0:20H)四个单元 响应后自动保存CS:IP, FLAGS, TF=0,IF=0 EOI信号中断服务程序:现场保护,中断程序与其他程序的通信(共享内存)软件定时器的中断实现,31,5接口技术数字/模拟接口,DMAC 直接存储器访问 8237,DMAC的作用(原理)I/O-存储器交换-AB,DB,IO/MEMR/W总线控制实现直接存储器访问(DMA)时,总线使用通过控制信号AEN;外设或MEM通过AEN区分MPU/DMAC之一控制BUS,32,5接口技术数字/模拟接口,串行接口 8250/82
25、51,在串行数据异步传送中的传输格式:起始位(1固定),数据位(5-8),奇偶校验*1),停止位(1-2位)。格式、波特率、传输字符速率的关系;RS232电平标准溢出:寄存器被覆盖-发送(太快,没有来得及送出);接收(太慢,没有及时读取)传输过程:(低位在前,起始位开始, 波形 -_-_-_-双缓冲器:数据收发,收发移位寄存器4800H, 8,N,1,=每个字符至少10位/4800S=0.0020ms(DX)=3F8H, OUT DX,AL 可能的最大延时,33,5接口技术数字/模拟接口,模拟量接口 A/D-D/A:,接口电路同简单I/O DAC锁存写/ ADC启动读结果多路转换开关MUX和采
26、样保持器S/H的主要作用;V/F变换双积分逐次逼近 ADC0809是位逐次逼近型模数转换器。AD574A为12位单通道Vref对转换精度的影响;启动转换控制-同步转换 ADC/DAC)及其实现启动/转换-读取转换结果数字滤波-平均精度: 相对满量程而言 分辨率:对信号灵敏度模拟地-数字地: 相同基准,单点相连第六章 习题4 :综合设计型,34,5接口技术数字/模拟接口,模拟量接口 A/D-D/A:,第六章 习题4 :综合设计型ADC0809设计一个数据采集系统,采用中断方式,EOC接至8259A的IRQ2,每隔200s采样一个数据。试完成: 硬件设计,画出连线图(不包括8259A); 软件设计
27、,包括8255A、8253的初始化及中断服务程序。 难度考试(不要求初始化),35,5接口技术数字/模拟接口,硬件连线:,接口电路简单互连:(1)数据线:D15D0 通常同名互连(2)地址线:经译码电路产生片选信号,其中若干连至芯片/CS,/CE 74LS138(3)控制信号线:/RD, /IORD 接/OE(输出允许)/WR, /IOWR 接/WE(写入允许,/LE,START,ALE等),无独立片选芯片,36,5接口技术数字/模拟接口,硬件连线:,开关转换(上拉电阻)和LED驱动(限流电阻),8255/273/244 I/O,37,5接口技术数字/模拟接口,接口应用程序片断编程:,根据指定
28、端口地址,读取相关信息(模拟量或数字量,如为A/D应先启动转换,延时或判断EOC读取),按设计要求处理后保存到变量单元或输出。MOV DX,INPORT, IN AL,DX, MOV V1,AL, (处理).MOV DX,OUTPORT, OUT DX,AL注意(想象程序片断运行的方式,初初始化芯片和单元外,一般为定时执行或中断执行,如需要记忆以前信息,一般存放在内存单元中,用于比较等,而不是寄存器中),38,微机系统与接口,6IA-32原理概念(非考试内容),1.32位寄存器/地址/数据 EAX,EBX,A0-A31,D0-D312.80386三种工作模式实地址模式虚地址保护模式虚拟8086(V86)模式3.实地址模式下段寄存器的作用 段基地址虚地址保护模式下段寄存器的作用:选择子(Selector),指向段描述符(参数:段基地址,段限,访问属性),39,微机系统与接口,7作业与试题分析,考题类型:三部分:(1)选择与填空(15小题30分)(2)阅读与编程(24题35分)(3)接口技术(1-2两题35分),以概念和方法为主,连接线路和工作编程。重要作业内容:程序设计1-3例,存储器译码与扩展,8255应用题, AD/DA综合应用处理注意理解性学习,而不是记忆性学习!,40,微机系统与接口,The ENDTHANKS,Wish a Sucessful Pass,41,