1、微机原理与单片机部分知识点1.8086CPU是16位微处理器,具有 16根数据线和 20根地址线可以和浮点计算 器, I/O处理器或其他处理器组成多处理系统。2. 总线接口单元的功能是负责完成 CPU与储存器或I/O设备之间的数据传送。总线接口单元内有 4个16位段寄存器:代码段寄存器 CS、数据段寄存器 DS、堆器,栈段寄存器SS、附加数据段寄存器 ES,个16位的指令指针寄存器 IP, 个20 位地址加法器,6字节指令队列缓冲器,一个与 EU通信的内部寄存器以及总线控制电路等。3.代码段寄存器(CS)用来存储程序当前使用的代码段和段地址。下一条要读取得指令在代码段中的偏移地址由指令指针寄存
2、器 IP提供。数据段寄存器 DS用来存放程序当前使用的数据段地址。4.每个源程序必须至少有一个代码段,而数据段,堆栈段和附加数据段则根据程序 的需要决定是否设置。5.由CS和IP的内容决定了程序的执行顺序。6.物理地址=段地址X10H+段内偏移地址。7.:只是负责执行指令。执行的指令从I/O端口读取操EU向BIU发出请求,再由BIU对存储器或I/O端口进行直接访问。执行单元EU不与系统外部直接相连,功能BIU的指令队列缓冲器中直接得到,执行指令时若需要从存储器或 作数,则由8.4)通用寄存器,5)EU控制电路8086是16位,8088是8位,2)指令8086可容纳6个字节,8088只能容纳4个
3、字节,3)部分引EU组成:1)16位算数逻辑单元(ALU),2)16位标志寄存器 FLAGS,3)数据 暂存寄存器,9.8086和8088的差异:1)外部数据总线不同,队列缓冲器大小不同,脚的功能定义有所区别8086/8088CPU中可供编程使用的有 14个16位寄存器,按其用途可分为 3类:通用寄存器、段寄存器、控制寄存器。10.通用寄存器(累加器 AX、基址寄存器 BX、计数器CX、数据寄存器 DX )高8 位 AH、BH、CH、DH ; 底 8 位 AL、BL、CL、DL段寄存器提供段内偏移地址的寄存器CSIPDSBX、SI、DI或一个16位立即数形式的偏移地址SSSP 或 BPESDI
4、 (用于字符串操作指令)11.标志寄存器FLAG : 16位寄存器,共9个标志,其中6个用作状态标志,3个用 作控制标志。状态标志CF:进位标志,ZF :零标志位,SF:符号标志位,IF:中断允许标志位12.8084A位时钟发生器,8282为8位地址锁存器,8086为具有三态输出的 8位数 据总线收发器13. INTA引脚24,中断响应信号,作为输出; ALE引脚25,地址锁存允许信号,作为输出;14.8088与8086引脚不同:1)AD15 A8的定位不同;2)引脚34的定义不同;引 脚28的有效电平高低定义不同1M个存储单元进行访问。每个存储单16位,每个存储单元都有00000H FFFF
5、FH ( 0 15.8086/8088CPU有20条地址线,可直接对元放一个字节(8位)数据,一个“字”占两个字节即一个20位的地址,这 1M个存储单元对应的地址为220 -1)16.堆栈操作(1)存放指令操作数(2)保护断点和现场;每进行一次进站操作, SP值减2,每进行一次出栈操作, SP加2;栈底(先存),栈顶(先取)17.存储器/IO读时序:1)T1,M /IO信号:从存储器读还是从 I/O设备中读数据;ALE :地址锁存信号,以使地址 /数据线分开。2)T2状态,RD由高电平变为低电平,开始进行读数据操作。18. 8086/8088有20条地址线,可直接对 1 M个存储单元进行访问。
6、每个存储单元存放一个字节型数据(8位),一个字占两个字节即 16位,存放在两个相邻的存 储单元中,高字节存放在高地址单元,低字节存放在低地址单元。且每个存储单元 都有一个20位的地址,这 1 M个存储单元对应的地址为 OOOOOH-FFFFFH19.保护断点和现场。此为堆栈的主要功能。(SS): (SP)2000: 00002000: 0001200020002000200020002000200020002000: 0100X X 1X XX XXXX XX XX XX X X XX X00F800F9.堆栈段00FA00FB00FC00FD00FE00FF(a)堆栈空(S P)=0100H
7、栈底(AX),4AC7HX XX XX XXX1FH2BH8FHA2HC7H4AH栈顶栈底(SP):00FAHa28X)2BX)XX 1XXXXXX1FH2BH8FHA2HC7H4AH栈底(SP)=00FEH2Zh-(CX)栈顶(CX)厂(b)执行 PUSH AXPUSH BXPUSH CX指令后(c)执行 POP BXPOP CX指令后状态输出BH输出地址输出,数据输入1厂IALERDDENAD 15 AD 0BHE / S7A 19冷6 A16/S3I I; i _BH输出y1 ! II DT / R总线读周期的时序AD 15 AD指令格式中的 进栈指令PUSH。PUSH src! T11
8、T21hT3 : T1W 1T4 :CLK/s/ /K/ * Lr 1 I1 p r 1M / bX !高为读内存j低为读IO P1X i1 P111r11A /S I /地址Xh状态输岀h16 3k11 11111 L V1 1bI1a7数据输入:0A 19 /S 6! !、丄V 地-址输出乂ALEWRDT / R-DEN存储器I/O写周期的时序ALE地址锁存信号。20. CPU中BIU单元的地址加法器根据指令中给出的段地址和段内偏移地址,通过将段地址乘以 10H(16),即左移4位,再与段内偏移量相加得到一个 20位的物理地址,该20位的物理地址加载到 20位的地址总线上,即可实现对 80
9、86/8088系 统1 M个存储单元的访问。21.数据传送指令 MOV。指令格式及操作: MOV dst , src ; (dst) J (src) dst表示目的操作数,src表示源操作数 指令格式及操作:;(SP)J(SP)-2, (SP)+1: (SP)J(src)出栈指令POP。指令格式及操作:POP dest ; (dest)(SP)+1: (SP), (SP)J(SP)+2ADD加法,ADC带进位位加,SUB减,SBB带进位位减,CMP数据比较22.过程调用指令 CALL(Call a procedure)(1)段内直接调用。指令格式及操作:CALL near_proc ; (SP
10、)(SP)-2, (SP)+1 : (SP)(IP);(IP) J (IP)+disp相对位移量disp的范围为-32 768+32 767,占2个字节,段内直接调用指令为 3字节指令(2)段内间接调用。指令格式及操作:CALL reg16/mem16 ; (SP)j(SP)-2 , (SP)+1 : (SP)J (IP);(IP) J(reg16)/(mem16)指令的操作数是一个 16位的寄存器或存储器,其中的内容是一个近过程的入口地址。(3)段间直接调用。指令格式及操作:CALL far_proc ; (SP)J (SP)-2, (SP)+1 : (SP)J (CS);(CS) J SE
11、G far_proc;(SP)J (SP)-2, (SP)+1: (SP)J (IP);(IP) J OFFSET far_proc(4)段间间接调用。指令格式及操作:CALL mem32 ; (SP)J(SP)-2, (SP)+1 : (SP) J (CS);(CS) J (mem32+2);(SP)J (SP)-2, (SP)+1: (SP)J (IP);(IP) J (mem32)(IP)J(SP)+1 : (SP), (SP(SP)+2;(IP) J (SP)+1: (SP), (SP片(SP)+2(SP) J (SP)+pop_value2)从远过程返回:RET ; (IP) J (
12、SP)+1: (SP),;(CS) J (SP)+1:RET pop_value ; (IP) J (SP)+1:;(CS) J (SP)+1:;(SP)J(SP)+pop_valueRET指令还允许带一个弹出值(pop_value),这是一个范围为 064 K的立即数,通 常是偶数。弹出值表示返回时从堆栈中舍弃的字节数。返回类型格式操作说明段内RETIP出栈格式RET exp允许 在返回的同时,修改堆栈指针RET expIP出栈 SPj SP+ex p段间RETIP出栈CS出栈RET expIP出栈 CS出栈 SPj SP+ex p24.DB字节型,每个元素占一个存储单元DW字型,每个元素占
13、两个存储单元25.段定义伪指令26.随机存取存储器RAM。只读存储器ROM。27.中断源1)中断向量,向量地址=向量表的首地址+中断类型码X 4对于8086CPU中断类型号有 256,中断向量表占用 256X 4=1KB字节字节数地址低字节1IP高字节1低字节1CS高字节1(1)外部硬件中断CPU的NMI弓I脚或INTR弓I脚向CPU外部硬件中断是指中断源是外部硬电路,通过 提出中断请求可屏蔽中断INTR,受CPU内标志寄存器中IF位的屏蔽。非屏蔽中断NMI,不受IF位的屏蔽,CPU必须响应。CPU每执行完一条指令,就会检测 NMI和INTR引脚上有无中断请求。(2)内部异常中断内部异常中断是
14、指 CPU内部正在执行的过程中发生异常情况,如除法操作时结果太 大。(3)中断优先顺序1除法出错中断,溢出中断,INT n,NMINTR单步中断(4)中断类型码中断类型码为 8位二进制数,它是连接中断源和中断处理程序的唯一桥梁。 可处理256级中断,中断类型码为 配,比如除法错误(n=0)、调试异常28.中断处理过程29. 8259A的编程初始化命令字1ICW1主要用于设置工作方式需要设置ICW4系统中这4位D2 和D7D5这4位在仅对 8080/8085系统有意义,8086/8088 不用,通常置为0。2ICW2用于设置中断类型号,写入 A0=1的端口主片A0: A0=1时表示ICW2必须写
15、入奇地址D7D3由用户根据中断向量在中断向量表中的位置确定D2D0中断源的IR端号ICW3用于设置级联,写入 A0=1的端口A0: A0=1时表示ICW3必须写入奇地址D7D0用于说明对应的IR端上有从片(对应位为 1)或无从片(对应位为 0)从片XXXXXXXX1A0: A0=1时表示ICW3必须写入奇地址D7D3不使用时默认为 0D2D0为从片的识别码,中断源的 IR端号ICW4用于设置8259A的工作方式,写入 A0=1的端口。ICW1的IC4位为1时,才 写入ICW40乌21000SFNMBUFMSAEO1D4: SFNM位,设置中断的嵌套方式, 0为一般嵌套方式,1为特殊的全嵌套方式
16、。D3: BUF位,若该位为1,贝y 8259A工作于缓冲方式,8259A通过数据总线收发器 和总线相连,SP/EN引脚为输出;该位为 0, 8259A工作于非缓冲方式,SP/EN引脚 为输入,用做主片、从片选择端。D2: M/S位,当D3即BUF位为1时,该位才有效,用于主片 /从片选择,0表示本 片8259A为从片,1表示本片8259A为主片;当 BUF位为0时,该位无效,可设为 任意值。D1: AEOI位,设置结束中断方式。 相应位;1表示自动结束中断,即D0:卩PM位,设置微处理器类型。统采用8086/8088微处理器。 D7D5特征位,必须为 000工作方式编程1OCW的功能是设置和
17、清除中断屏蔽寄存器的相应位,MX=1表示屏蔽中断源IRX; MX=0表示来自IRX的中断请求得到允许。2OCW用于设置优先级循环方式和中断结束方式,写入 A0=0的端口D4和D3位是特征位,D4D3=00表示写入的是 OCW23OCW3的功能有三个方面:设置和撤消特殊屏蔽方式、设置中断查询方式以及设 置对8259A内部寄存器的读出。 OCW写入A0=0的端口D2 : P位,为1时表示该 OCW3用做查询命令(查询方式在前面已经介绍 过,在此不再赘述);为0表示非查询方式。D1 和D0: RR位和RIS位。这两位的组合用于指定对中断请求寄存器(IRR)和中断服务寄存器(ISR)内容的读出。D1D
18、0=10时,表明紧接着要读出 IRR的1.80C51 的寻址方式寄存器寻址 . 直接寻址 . 寄存器间接寻址 立即寻址 . 变址寻址 . 相对寻址 .若(R0 =30H,执行 MOV A,R0 后,(A) =30H若(50H) =3AH 执行 MOV A,50H 后,(A) =3AH.若(RO =30H, ( 30H) =5AH 执行 MOV A,R0后,(A =5AH 执行 MOV A, #50H 结果:( A) =50H 执行 MOV A,A+DPTR后结果:(A) =88H若rel为75H, PSW.7为1, JC rel 存于1000H开始的单元执行JC rel指令后,程序将跳转到 1
19、077H单元取指令并执行。位寻址. 位地址00H内容为1 , MOV C, 00H执行后,位地址 PSW.7的内容为 1。2. 指令系统 五大类 数据传送类指令MOV DPTR ,#2000H(16 位)MOV A, 20H/R0/#30H/R1MOV 20H特殊传送指令读ROM中常数表项指令 MOVC 2条读片外RAM及接口单元数据的指令 MOVX 4条2堆栈操作指令后进先出入栈指令 PUSH direct ; Sk( SP + 1, (SP)J( direct )出栈指令 POP direct ; (direct )(SP), SP (SP - 13数据交换指令XCH字节交换指令XCHD是
20、间址操作数的低半字节与 A的低半字节互换。SWAP是累加器的高低 4位互换3.80C51 的中断系统及定时 /计数器( 1 )中断15 种类型的中断源外部中断0-INT0。外部中断1 INT1。定时器0溢出中断-T0。定时器1溢出中 断一T1。串行口中断一 S2TCON定时器控制寄存器,存放有 4个标志位SCON串行口控制寄存器,存放有 2个标志位IE 中断允许寄存器,用于中断的开放或禁止IP 中断优先级寄存器,用于中断响应优先管理3中断响应条件有中断请求 相应的中断允许位为 1 CPU开中断(即EA=1)(2)定时/计数器TH1、TL1TH0 TL0TCON求补法:X=M N求补2方式1 :
21、 16位方式X=216-N=65536-N 计数范围:1 65536计数初值要分成2个字节分别送入TH0 TL03方式2: 8位自动重装方式X=28-N=256-N 计数范围:1 256特别适合与脉冲信号发生器4方式3:(仅T0有此方式,T1的方式3将停止计数)TL0进行8位定时/计数TH0进行8位定时(T1方式2时,可出借 TR1、TF1)初始化程序应完成:对TMO鹹值,以确定 T0和T1的工作方式;求初值,并写入TH0 TL0或TH1、TL1;中断方式时,要对IE赋值,开放中断;使TR0或TR1置位,启动定时/计数器工作。8253控制信号与执行的操作CSRDWRA11 A0执行的操作010
22、00对计数器0设置初值01001对计数器1设置初值01010对计数器2设置初值01011写控制字00100读计数器0当前计数值00101读计数器1当前计数值00110读计数器2当前计数值D7 D6 D5 D4 D3 D2 D1 D0SC1 SC2 1 RW1 RW2 M2M1 M0BCD00:计数器0 00:锁存计数值 000:方式0 0 :二进制数01:计数器1 01:只读/写低8位 001 :方式1 1:十进制数10:计数器2 10:只读/写高8位 X10:方式211:无意义 11:先读/写低8位 X11:方式3后读/写高8位方式4100:101 :方式51.,执行 RL, A 后,(A)
23、=E8H(A)=74H,(C)=12.若(SP)=60H (5FH)=30H,(60H)=20HPOP DPH 先出再减POP DPL后DOTR的内容为2030H SP的内容为5EH3.( P1)=OAAH,(A)=15H,分别执行ANL P1 ,#F0H (P 1)=A0HORL P1 ,#0F0H (P 1)=FAHXRL P1 ,A (P 1)=4.(A)=6AH,执行 ADDA,#47H(A)=B1H (AC)=1 (CX)=05将内部20H单元数据,送到片外 2000H单元MOV DP TR, #2000HMOV A , 20HMOV DP TR, AMOV A,R5寄存器寻址ADD A, R0间接SVBB A,#50H立即ADDC A, 40H直接MOV A, 1P1直接MOVC A,A+DPTR变MOVX A,P0间接SETB 20H,位寻址CLR P110位JC EX2T相对寻址例:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1