




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、此文档收集于网络,如有侵权请联系网 站删除I.微处理器,RAM, ROM,以及I/O 口,定时器,构成的微型计算机称为单片机。2指令寄存器(IR)保存当前正在执行的一条指令; 指令译码器(ID)对操作码进行译码。3程序计数器(PC)指示出将要执行的下一条指令地址,由两个 8位计数器PCH及PCL 组成。4.80C31片内没有程序存储器,80C51内部设有4KB的掩膜ROM程序存储器,87C51是将80C51 片内的ROM换成EPROM, 89C51则换成4KB的闪存FLASHROM, 51増强型 的程序存储器容量是普通 型的2倍。5.89C51的组成:一个8位的80C51的微处理器,片内256
2、字节数据存储器RAM/SFR用 来存放 可以读/写的数据,片内4KB程序存储器FLASHROM用存放程序.数据.表格,4个8位并行 I/O端口 P0-P3,两个16位的定时器/计数器,5个中断源、两个中断个优先级 的中断控制系统, 一个全双工UART的串行口 I/O 口,片内振荡器和时钟产生电路,休闲方式和掉电方式。6.89C51片内程序存储器容量为4KB,地址从0000-0FFFH开始,存放程序和表格常数,片外最 多可扩展64KBROM地址1OOO-FFFFH,片内外统一编址。单片机的内部存储空间 分为数据存储器 和程序存储器。7.内部数据存储器:共 256字节单元,包括低128个单元和高1
3、28个单元。低128字节又分 成3个区域:工作寄存器区(OOHlFH),位寻址区(202FH)和用户RAM区(307FH)存放中间结果,数据暂存及数据缓冲。高128字节是供给特殊功能寄存器(S FR) 使用的,因此称之为特殊功能寄存器区(80HFFH), 访问它只能用直接寻 址。内部程序存储器:在8031片内无程序存储器,8051片内具有4KB掩模ROM, 8751片内 具有4KBEPR0M。8.引脚是片内夕卜程序存储器的选择信号。当端保持高电平时,访问内部程序存储器,但在PC (程序计数器)值超过OFFFH (对于8051/8751/80C51)或仆FFH (对于8052)时,将自动转向访问
4、外部程序存储器。当端保持低电平时,不管是否有内部程序存储器,则只访问夕卜部程序 存储器。由于 8031 片内没有程序存储器,所以在使用 8031 时,引脚必 须接低电平。9.RST复位信号输入端,高电平有效。保持两个机器周期(24个时钟振荡周期)的高电平有效, 完成复位,复位后,CPU和系统都处于一个确定的初始状态,在这种状态下,所有的专用寄存 器都被赋予默认值,除SP=07H, P0、P3 口为FFH夕卜,其余寄存器均为0。ALE/ : ALE输出正 脉冲,频率为振荡周期的1/6, CPU访问片外存储器时,ALE输出信号 作为锁存低8位地址的控制 信号,看芯片好坏可以用示波器看ALE端是否有
5、脉冲信号输出。PSEN程序存储允许输出信号端, 也可以检查芯片好坏,有效即能读出片外ROM的指令,引脚信号RD/WR有效时可读/写片外RAM或片外I/O接口。10.P0作为输出口时,必须外接上拉电阻才能有高电平输出,作为输入口时,必须先向锁 存器 写 “ 1;作为普通1/0 口使用或低8位地址/数据总线使用。P1 口有上拉电阻,对FLASHROM编程和校验是P1接收低八位地址;只用作普通1/0 口 使用。 P2 口比P1 口多了一个转换控制开关;作为普通1/0 口使用或高8位地址线使用时访问外 部程 序存储器和 16位地址的外部数据存储器。P3 口比P1 口増加了与非门和缓冲器;具有准双向1/
6、0功能和第二功能。P0, Pl, P2, P3准双 向口。上述4个端口在作为输入口使用时,应注意必须先向端口写“ r oII.普林斯顿结构:一个地址对应唯一的存储单元,用同类访问指令。哈佛结构:程序存储器和 数据存储器分开的结构。CPU访问片内外ROM用MOVC,访问片外RAM用M OVX,访问片内RAM用M 0V.此文档仅供学习和交流此文档收集于网络,如有侵权请联系网站删除12.RS1RSO当前寄存器组片内RAM地址00第0组工作寄存器00H07H 101第1组工作寄存器08HOFH10第2组工作寄存器10H17H 111第3组工作寄存器18H FHSP总是初始化到内部RAM地址07H,堆栈
7、的操作;PUSH. P0Po DPTR是数据指针寄存器,是一个 16位寄存器,用来存放16位存储器的地址,以便对64KB片外RAM作间接 寻址。DPTR由高位字 节DPH和低位字节DPL组成。13 指令周期:执行一条指令所需要的时间。机器周期:CPU完成一个基本操作所需要的时间,6个状态周期和12个振荡周期。当晶振频率为 12MHz时,一个机器周期为1卩当晶振频率为6 MHz时,一个机器周期 为2卩,复位时间超过4 卩。14复位操作有:电自动,按键手动,看门狗。15 空闲方式是CPU停止工作而RAM, 定时器/计数器,串行口及中断系统都工作。掉 电一切功能 都暂停,保存RAM中内容。退出空闲方
8、式;硬件将PCON. 0清0,硬件 复位。当CPU执行PC0N . 1 为1,系统进入掉电方式。推出掉电只有硬件复位。16. 保留的存储单元存储单元保留目的0000H0002H复位后初始化引导程序地址0003H OOOAH夕卜部中断0OOOBH 0012H定时器0溢出中断0013 H 001AH夕卜部中断1001B H 0022H定时器1溢出中断0023H 002AH串行端口中断002BH定时器2中断17.单片机的寻址方式:寄存器寻址,直扌妾寻址,立即数寻址,寄存器间接寻址,变址寻 址,相 对寻址,位寻址。18.AJMP和SJMP的区别有:(1)跳转范围不同。AJMP addrl ;短跳转范围
9、:2KB SJMP rel ;相对跳转范围:-128+127 (2)扌旨 令长度不同。(3)指令构成不同。AJMP. LJMP后跟的是绝对地址,而SJMP后跟的 是相对地址。 不能用AJMP指令代替程序中的SJMP指令,因为如果改变的话,程序跳转 到的新PC值指向的地 址会不同,导致程序出现错误。19.在89c51片内RAM中30H) =38H, 38H=40H, 40H=48H, 48H=90Ho情分析下面各是什么指令, 说明源操作数的寻址方式以及按页序执行毎条指令后的结果?MOV A, 40H ;直接寻址(40H) AMOVRO, A;寄存器寻址1(A) R0MOVPl, #OFOH;立即
10、数寻址0F0 P1MOVR0, 30H直接寻址 (30H)-(R0)MOVDPTR, #3848H;立即数寻址3848HDPTRMOV40H,38H;宣接寻址 (38H)40HMOVRO,30H;宣接寻址 (30H)R0MOVP0, RO;寄存器寻址(RO ) P0MOV18H, #30H;立即数寻址30H 18H高位在前,低位在后,请编程将他们乘以此文档收集于网络,如有侵权请联系网站删除MOV A , R0;寄存器间接寻址 (R0) ) - AMOV P2, Pl;直接寻址(Pl) P2最后结果:(RO) =38H,(A)二 40H, (PO)二 38H,(Pl) = (P2)二 OFOH,
11、 (DPTR) =3848H ,(18H) =30H, ( 30H) =38H,( 38H) =40H, ( 40H) =40H, ( 48H) =38H 注意:-左边是内容,右边是单元20. 已知R3和R4中存放有一个16位的二进制数,高位在 R3中,地位在R4中,请编程将其求补,并存回原处。MOV A, R3;取该数高8位一 ACLR C;清进位位CMOVA,31H RLC AMOV 31H,AMOV A,30HRLC AMOV 30H,A22.假设允许片内定时器用位操作指令:SETB ETOSETB ET1SETB EA23.设89 C51的片外中断为高优ANLA,#80H;取出该数符号
12、判断JZ L1;是正数,转L1MOVA,R4;是负数,将该数低8位-ACPLA;低8位取反ADDA,#01H;加1MOVR4,A;低8位取反加1后一R4MOVA,R3;将该数高8位-ACPLA;高8位取反ADDCA,#00H;力口上低 8 位加 1 时可能产生的进位MOVR3,A;高8位取反加1后-R3LI : RET21.已知30H和31H中村有一个16位的二进制数,2,在存回原单元中。;取该数低8位A;带进位位左移1位;结果存回31H;取该数高8位一A;带进位位左移1位;结果存回30H/计数器中断,禁止其他中断。设置 IE值用字节操作指令:MOV IE #8AH或MOV A8H, #A8H
13、先级,片内为低优先级,设置IP值用字节操作指令:MOV IP, #05H或MOV 0B8H, #05H用位操作指令:SETB PXOSETB PX1CLR PSCLR PTOCLE PT124. 89C51单片机内有两个16位定时器/计数器,即TO, T1第三章1. 指令:CPU根据人的意图来执行某种操作的命令 指令系统:一台计算机所能执行的全部指令 集合机器语言:用二进制编码表示,计算机能直扌妾识别和执行的语言汇编语言:用助记符.符 号和数字来表示扌旨令的程序语言高级语言:独立于机器的,在编程时不需要对机器结构及其扌旨令 系统有深入了解的通用性此文档收集于网络,如有侵权请联系网站删除 语言2
14、.见第1题3.操作码目的操作数, 源操作数寻址方式寻址宇间立即数寻址程序存储器ROM直接寻址片内RAM低128B.特殊功能寄存器寄存器寻址工作寄存器 R0-R7. A. B. C. DPTR奇存器间接寻址片内RAM低128B.片外RAM变址寻址程序存储器(A+PC, A+DPTR)相对寻址程序存储器256B范围(PC+偏移量)位寻址片内RAM的20H-2FH字节地址.部分SFR5. SFR:宣接寻址,位寻址,奇存器寻址;片夕卜RAM :奇存器间接寻址6. MOVA, 40H;直接寻址(40H) f AMOVRO, A;寄存器寻址(A )f ROMOVPl, #OFOH;立即数寻址0F0 PlM
15、OVR0, 30H ;直接寻址(30H)RO)MOVDPTR, #3848H ;立即数寻址3848HDPTRMOV40H, 38H;直接寻址(38H)f 40HMOVRO, 30H;宣接寻址(30H)f ROMOVPO, RO;寄存器寻址(RO )f POMOV18H , #30H;立即数寻址30Hf 18HMOVA , R0;寄存器间接寻址(RO) f AMOV最P2, Pl;直接寻址(Pl)fP2(18H) =30H, (30H) =38H, (38H) =40H, (40H) =40H, (48H) =38H注怠:f左边是内容,右边是单兀7.用直接寻址,位寻址,寄存器寻址8.MOV A,
16、 DATA;直接寻址2字节1周期MOV A, #DATA ;立即数寻址2字节1周期MOV DATA1, DATA2 ;直接寻址3字节2周期MOV 74H, #78H ;立即数寻址3字节2周期如果想查某一扌旨令的机器码,字节数或周期数可查阅书本后面的附录A9. MOVMOVMOVMOVA, R0 ; (RO)=80Hf AR0, 40H; (40H)二08H f (RO)40H, A ; (A)=80 f 40HRO, #35H;35H f ROgUQ士田./DC、 -QtU/A -QHU-HQU f AHU -QHU10.用直接寻址,位寻址,寄存器寻址R(f R7)高 128 字节:六进制数处
17、理,此时得15.用来进行位操作16、ANL A,#17HORL 17H,AXRL A,R0CPLA 所以(A)=CBH;83HA17H=03HA;34HV03H=37H17H;03H 37H=34H0进位位此文档收集于网络,如有侵权请联系网站删除11.只能采用寄存器间接寻址(用 MOVX 指令)12.低128字节:直接寻址,位寻址,寄存器间接寻址,寄存器寻址 直扌妾寻址,位寻址,寄存器寻址13.采用变址寻址(用MOVC指令)14.压缩 BCD 码在进行加法运算时应逢十进一,而计算机只将其当作十 到的结果不正确。用DA A指令调整(加06H,60H, 66H)17. (1) SETB ACC.
18、0 或 SETB EOH;E0H 是累加器的地址(2) CLR ACC. 7CLR ACC. 6CLR ACC. 5CLR ACC. 4(3) CLR ACC. 6CLR ACC. 5CLR ACC. 4CLR ACC. 318. MOV 27H, R7MOV 26H, R6MOV 25H, R5MOV 24H, R4MOV 23H, R3MOV 22H, R2MOV 21H, R1MOV 20H, RO19. MOV 2FH ,20MOV 2EH, 21MOV 2DH ,2220.CLR CMOVA,#5DH;被减数的低8位一AMOVR2,#B4H;减数低8位-R2SUBBA,R2;被减数减
19、去减数,差一 AMOV30H,A;低8位结果-30HMOVA,#6FH;被减数的高8位-AMOVR2,#13H;减数高8位-R2SUBBA,R2;被减数减去减数,差- A;(A)与10比较,不等转LI;相等转LABEL;(A)大于 10,转 LABELMOV31H,A;高8位结果-30H注意:如果在你的程序中用到了进位位,在程序开始的时候要记得清21、 A 10CJNE A,#0AH,L1 LJMP LABELL1 : JNC LABEL此文档收集于网络,如有侵权请耳关系网站删除或者:CLR CSUBB A , #OAH JNC LABEL(2)A 10CJNE A, #0AH, LI RET
20、LI : JNC LABELRET 或者:CLR C SUBB A, #0AH JNC LI RET LI : JNZ LABEL RET(3)A 10CJNE A, #0AH, LI L2 : LJMP LABEL LI : JC L2RET 或者:CLR C SUBB A, #0AHJC LABELJZ LABELRET22. ( SP) =23H, ( PC) =3412H参看书上80页;(A)与10比较,不等转L1 ;相 等结束;(A)大于 10,转 LABEL;(A)小于10,结束;(A)与10比较,不等转L1;相等转LABEL;(A)小于10,转L223.( SP) =27H, (
21、 26H) =48H,27H) =23H, ( PC) =3456H 参看书上 79 页24.不能。ACALL是短转指令,可调用的地址范围是2KBO指令。同时考虑调用指令 ACALLRET指令的关系25.MOVR2,#31H;数据块长度一 R2MOVR0,#20H;数据块首地址一 R0LOOP: MOVA,R0;待查找的数据一 ACLRC;清进位位SUBBA, #OAAH;待查找的数据是 OAAH 吗JZLI;是,转L1INCR0;不是,地址増1 ,扌旨向下一个待查数据DJNZR2,LOOP;数据块长度减1,不等于0,继续查找MOV51H,#00H;等于0,未找到,00H51HRETL1:MO
22、V51H,#01H;找到,01H51HRET和LCALL指令和在看这个题的时候同时看一下AJMPDJNZ R2, LOOP;数据块长度减 1,不等于 0,继续查找此文档收集于网络,女有侵权请联系网站删除26.MOVR2, #31H;数据块长度一 R2MOVRO, #20H ;数据块首地址一 ROLOOP: MOVA , R0;待查找的数据一AJNZLI: :不不为为0,转L1INC51H; ;为为0,00H个数增1LI:INCRO;地址增 1,指向下一个待查数据DJNZR2, LOOP;数据块长度减 1,不等于 0,继续查找RET27.MOVDPTR, #SOURCE;源首地址一DPTRMOV
23、RO, #DIST;目的首地址一 R0LOOP:MOVX A,DPTR;传送一个字符MOVR0, AINCDPTR;指向下一个字符INCROCJNE A,#24H,LOOP;传送的是 “ $ 字苻吗?不是,传送下一个字苻RET28.MOVA ,R3;取该数高8位一AANLA ,#80H;取出该数符号判断JZ LI;是正数,转L1MOVA ,R4;是负数,将该数低 8 位一 ACPLA;低8位取反ADDA ,#01H;加1MOVR4,A;低8位取反加1后一R4MOVA ,R3;将该数高8位一ACPLA;高8位取反ADDCA ,#00H;加上低 8 位加 1 时可能产生的进位MOVR3,A; ;高
24、高8位取反加1后一R3L1:RET29.CLRC;清进位位CMOVA ,31H;取该数低8位一 ARLCA;带进位位左移1位MOV31H,A;结果存回31HMOVA ,30H;取该数高8位一ARLCA;带进位位左移1位MOV30H,A;结果存回30H30.MOVR2,#04H;字节长度一R2MOVR0,#30H;一个加数首地址一R0MOVRl,#40H;另一个加数首地址一 R1CLRC;清进位位DJNZ R2, LOOP;数据块长度减 1,不等于 0,继续查找LOOP:MOVA ,R0;取个加数ADDCA, R1;两个力数带进位位相加DAA;十进制调整MOVR0, A;存放结果INCR0;指向
25、下一个字节INCR19此文档收集于网络,如有侵权请耳关系网站删除 RET31 .MOVR2,#08H;数据块长度一 R2MOVR0,#30H;数据块目的地址一 R0MOVDPTR, #2000H ;数据块源地址一DPTRLOOP :MOVXA, DPTR;传送一个数据MOVR0,AINCDPTR;指向下一个数据INCRO9DJNZR2,LOOP;数据块长度减 1, 没传送完,继续传送RET32.(1) MOVRO,OFH;2字节,2周期4字节4周期(差)MOVB,RO;2字节,2周期(2 MOVRO,#OFH;2字节,1周期 4字节3周期(中)MOVB,R0;2字节,2周期(3 MOVB,#O
26、FH;3字节,2周期3字节2周期(好)33.(1)功能是将片内RAM中50H 51H单元清0o(2 7Af)A(大家可以一下书上 对于立即数寻址的话 后面一个字节存放的昱立即数)7850 (第一个字节的后三位是寄存器,前一个条指令是010也就是指的R2,在这里是R0,所以应该是78, 后一个字节存放的是立即数)DAFC量的计算,可以参考书上56页)34.INC R0;(7EH)二00HINC RO;(RO) =7FHINC R0;(7FH)二39HINC DPTR;(DPTR)二10FFHINC DPTR;(DPTR) =1100HINC DPTR;(DPTR) =1101H35.解:(100
27、0H) =53H(1001H) =54H( 1002H)=41H(1003H) =52H(1004H)二54H( 1005H)=12H(1006H) =34H(1007H) =30H( 1008H)=00H(1009H) =70H36. MOV RO, #40H;40HROMOV A, R0;98HAINCRO;41HROADDA, R0;98H+ (41H) =47HAINC ROMOV R0, A;结果存入42H 单元CLR A;清AADDC A, #0;进位位存入AINC ROMOV R0, A;进位位存入43H功能:将40H , 41H单元中的内容相加结果放在42H单元,进位放在43H
28、单元,(RO) =43H,(A)DJNZ R2, LOOP;数据块长度减 1,不等于 0,继续查找37、MOV A,61HMOV B,#02HMULAB ADDA,62H;F2H -A;02H- B;F2HX O2H=E4HA;积的低8位加上CCH-A=1,(40H) =98H,(41H) =AFH, (42H) =47H,(43H) =01H答此文档收集于网络,如有侵权请耳关系网站删除MOV 63H, A;结果送 62HCLR A ;清 AADDC A , B;积的高8位加进位位一 AMOV 64H, A;结果送 64H功能:将61H单元的内容乘2,低8位再加上62H单元的内容放入63H,将
29、结果的高8位放在 64H 单元。(A) =02H, ( B) =01H, ( 61H)二F2H,( 62H)二CCH, (63H)二BOH, ( 64H)=02H39.MOV A ,XXHORL A ,#80HMOVXXH,A40.( 2)MOV A,XXHMOVRO,AXRL A ,RO第五章1 . 什么是中断和中断系统?其主要功能是什么?答:当 CPU正在处理某件事情的时候,外部发生的某一件事件请求 CPU迅速去处理,于 是,CPU 暂时中止当前的工作,转去处理所发生的事件,中断服务处理完该事件以后,再 回到 原来被纟冬止的地方,继续原来的工作。这种过程称为 中断,实现这种功能的部件称为
30、中断系统。 功育皂:(1)使计算机具有实时处理能力,能对外界异步发生的事件作出及时的处理(2)完全消除了 CPU 在查询方式中的等待现象,大大提高了 CPU 的工作效率(3)实现实时控制2.试编写一段对中断系统初始化的程序,使之允许 INTO, INTI, TO,串行口中断,且使TO中 断为高优先级中断。解:MOV IE, #097HMOV IP,#02H3.在单片机中,中断能实现哪些功能? 答:有三种功能:分时操作,实时处理,故障处理4.89C51 共有哪些中断源?对其中端请求如何进行控制?:(1) 89C51有如下中断源:夕卜部中断 0 请求,低电平有效:外部中断1请求,低电平有效TO:定
31、时器. 计数器0溢出中断请求T1 :定时器. 计数器1溢出中断请求TX/RX :串行接口中断请求(2) 通过对特殊功能寄存器TCON. SCON. IE. IP的各位进行置位或复位等操作,可实现各种 中断控制功能5.什么 是中断优先级?中断优先处理的原则是什么?答:中断优先级是 CPU 相应中断的先后顺序。原则:(1)先响应优先级高的中断请求,再响应优先级低的(2)如果一个中断请求已经披响应,同级的其它中断请求将被荼止(3)如果同级的多个请求同时出现,则 CPU 通过内部硬件查询电路,按查询川页序确定 应该 响应哪个中断请求查询顺序:外部中断(T定时器0中断f外部中断定时器1中断串行接口中断此
32、文档收集于网络,如有侵权请联系网站删除6.说明夕卜部中 断请求的查询和响应过程。答:当CPU执行主程序第K条指令,外设向CPU发出中断请求,CPU接到中断请求信号并在本条 指令执行完后,中断主程序的执行并保存断点地址,然后转去响应中断。CPU在 每个S5P2期间 Ji页序采样毎个中断源,CPU在下一个机器周期S6期间按优先级页序查询中 断标志,如果查询到 某个中断标志为1, 将在接下来的机器周期S1期间按优先级进行中断 处理,中断系统通过硬件 自动将相应的中断矢量地址装入PC, 以便进入相应的中断服务程序。中断服务完毕后,CPU返回到主程序第K+1条指令继续执行。I、89C51在什么 条件下可
33、响应中断?答:(1)有中断源发出中断请求(2)中断中允许位EA二1.即CPU开中断(3)申请中断的中断源的中断允许位为 1, 即中断没有被屏蔽(4)无同级或更高级中断正在服务(5)当前指令周期已经结束(6)若现行指令为RETI或访问IE或IP指令时,该指令以及紧接着的另一条指令已执 行完 毕8. 简述89C51单片机的中断响应过程。答:CPU在每个机器周期S5P2期间顺序采样毎个中断源,CPU在下一个机器周期S6期 间按优先 级顺序查询中断标志,如查询到某个中断标志为 1, 将在接下来的机器周期 S1 期 间按优先级 进行中断处理,中断系统通过硬件自动将相应的中断矢量地址装入PC, 以便进入相
34、应的中断服务程序。一旦响应中断,89C51 首先置位相应的中断 “优先级生效” 触发 器, 然后由硬件执行一条长调用指令,把当前的PC值压入堆栈,以保护断点,再将相应的中断服务的入口地址送入PC,于是CPU接着从中断服务程序的入口处开始执行。对于 有些中断 源,CPU 在响应中断后会自动清除中断标志。沢 在 89C51内存中,应如何安排程序区?答:主程序一般从 0030H 开始,主程序后一般是子程序及中断服务程序。在这个大家还要 清除 各个中 断的中 断矢量地址。10.试述中断的作用及中断的全过程。答:作用:对外部异步发生的事件作出及时的处理 过程:中断请求,中断响应,中断处理,中断返回II.
35、当正在执行某一个中断源的中断服务程序时,如果有新的中断请求出现,试问在什么 情况 下可响应新的中断请求?在什么情况下不能响应新的中断请求?答:(1)符合以下 6个条件可响应新的中断请求:a)有中断源发出中断请求b)中断允许位EA=1,即CPU开中断c)申请中断的中断源的中断允许位为1,即中断没有被屏蔽d)无同级或更高级中断正在被服务e)当前的指令周期已结束f)若现行指令为RETI或访问IE或IP 指令时,该指令以及紧接着的另一条指令已被 执 行完12.89C51单片机外部中断源有几种触发中断请求的方法?如何实现中断请求? 答:有两种方式:电平触发和边沿触发电平触发方式:CPU在每个机器周期的S
36、5P2期间采样外部中断引脚的输入电平。若为低 电平, 使IE1 (IE0)置“ 1”,申请中断;若为高电平,则IE1 (IE0)清零。边沿触发方式:CPU在每个机器周期S5P2期间采样外部中断请求引脚的输入电平。如果 在相继 的两个机器周期采样过程中,一个机器周期采样到夕卜部中断请求为高电平,接着下此文档仅供学习 和交流中断源入口地址此文档收集于网络,如有侵权请联系网站删除一个机器周期采样到外部中断请求为低电平,则使IE1 (IEO)置T申请中断;否则,IE1 (IEO) 置0。1 3. 89C5 1单片机有五个中断源,但只能设置两个中断优先级,因此,在中断优先级安排 上受 到一定的限制。试问
37、以下几种中断优先顺序的安排(级别由高到低)是否可能:若可能,则应如 何设置中断源的中断级别:否则,请简述不可能的理由。(1)定时器 0, 定时器 1 , 外中断 0, 外中断 1 , 串行口中断。可以,MOV IP, #OAH(2)串行口中断,外中断 0, 定时器 0, 外中断1, 定时器1。可以,MOV IP,#10H(3)外中断 0, 定时器1, 外中断1, 定时器 0,串行口中断。不可以,只能设置一级高级优先级,如果将INTO, T1设置为高级,而T0级别 高于INT1.(4)外中断 0, 外中断1,串行口中断,定时器 0, 定时器1。可以,MOV IP,#15H(5)串行口中断,定时器
38、0,夕卜中断0,外中断1,定时器1。不可以(6)外中断 0, 外中断1, 定时器 0,串行口中断,定时器1。不可以(7)夕卜中断0,定时器1,定时器 0,夕卜中断1,串行口中断。可以,MOV IP,#09H14. 89C51各中断源的中断标志是如何产生的?又是如何清 0的? CPU响应中断时,中断入口地址各是多少?答:各中断标志的产生和清 “ 0” 如下:(1)外部中断类夕卜部中断是由夕卜部原因引起的,可以通过两个固定引脚,即夕卜部中断0和夕卜部中断1输入 信号。 外部中断0请求信号,由P3. 2脚输入。通过IT0来决定中断请求信号是低电平有效还是下 跳变有效。一旦输入信号有效,则向 CPU申
39、请中断,并且使IE0=lo 硬件复位。夕卜部中断 1 请求信号,功育皂与用法类似夕卜部中断 0(2)定时中断类定时中断是为满足定时或计数溢出处理需要而设置的。当定时器/计数器中的计数结构发生计数溢出的,即表明定时时间到或计数值已满,这时就以计数溢出信号作为中断请求,去 置位一 个溢出标志位。这种中断请求是在单片机芯片内部发生的,无需在芯片上设置引入端,但在计数 方式时,中断源可以由夕卜部引入。TFO:定时器T0溢出中断请求。当定时器T0产生溢出时,定时器T0请求标志TFO=1, 请求中断 处理。使用中断日寸由硬件复位,在查询方式下可由软件复位。TF1:定时器T1溢出中断请求。功能与用法类似定时
40、器 T0(3)串行口中断类 串行口中断是为串行数据的传送需要而设置的。串行中断请求也是在单片 机芯片内部发生 的,但当串行 口作为扌妾收端时,必须有一完整的串行帧数据从 RI 端引入芯片, 才可能引发中断。RI或TI :串行口中断请求。当接收或发送一串帧数据时,使内部串行口中断请求标志RI或 TI二1 , 并请求中断。响应后必须软件复位。CPU响应中 断时,中断入口地址如下:外部中断00003H定时器T0中断OOOBH此文档收集于网络,如有侵权请联系网站删除外部中断1 0013H)/ )/ XJ,XJ, 77 abedabed定时器T1中断001BH串行口中断0023H15.中断响应时间是否为
41、确定不变的?为什么? 答:中断响应时间不是确定不变的。由于CPU不 是在任何情况下对中断请求都予以响应的; 此外,不同的情况对中断响应的时间也是不同的。下 面以夕卜部中断为例,说明中断响应的 时间。在毎个机器周期的S5P2期间,端的电平被所存到TCON的IE0位,CPU在下一个机器周 期才会查 询这些值。这时满足中断响应条件,下一条要执行的指令将是一条硬件长调用指令 “LCALL”, 使程序转入中断矢量入口。调用本身要用2个机器周期,这样,从夕卜部中 断请求有效到开始执行 中断服务程序的第一条指令,至少需要 3 个机器周期,这是最短的 响应时间。如果遇到中断受阻的情况,这中断响应时间会更长一些
42、。例如,当一个同级或更高级的中 断服务 程序正在进行,则附加的等彳寺时间取决于正在进行的中断月艮务程序:如果正在执行的一条扌旨令还 没有进行到最后一个机器周期,附加的等待时间为1 3个机器周期;如果正在执行的是RETI扌旨 令或者访问IE或IP的指令,贝U附加的等待时间在5个机器周期内。若系统中只有一个中断源, 贝!J响应时间为 3 8 个机器周期。16.中断响应过程中,为什么通常要保护现场?如何保护?答:因为一般主程序和中断服务程序都可能会用到累加器,PSW寄存器及其他一些寄存器。CPU 在进入中断服务程序后,用到上述寄存器日寸,就会破坏它原来存在寄存器中的内容; 一旦中 断返回,将会造成主
43、程序的5昆乱。因而在进入中断服务程序后,一般要先保护现场,然后再 执行中断处理程序,在返回主程序以前再恢复现场。保护方法一般是把累加器.PSW寄存器及其他一些与主程序有关的寄存器压入堆栈。在保 护现场 和恢复现场时,为了不使现场受到破坏或者造成混乱,一般规定此时 CPU 不响应新 的中断请 求。这就要求在编写中断服务程序时,注怠在保护现场之前要关中断,在恢复现 场之后开中断。 如果在中断处理时允许有更高级的中断打断它,贝在保护现场之后再开中 断,恢复现场之前关中 断。17.清叙述中断响应的 CPU 操作过程,为什么说中断操作是一个 CPU 的微查询过程? 答:在 中断响应中,CPU要完成以下自
44、主操作过程:置位相应的优先级状态触发器, 以标明所响应中断的优先级别中断源标志清零(TI. RI除外)中断断点地址装入堆栈保护(不保护PSW)中断入口地址装入PC, 以便使程序转到中断入口 地址处在计算机内部,中断表现为CPU的微查询操作。89C51单片机中,CPU在毎个机器周期 的S6状态, 查询中断源,并按优先级管理规则处理同时请求的中断源,且在下一个机器 周期的 S1 状态中, 响应最高级中断请求。但是以下情况除夕卜:a)CPU 正在处理相同或更高优先级中断b)多机器周期指令中,还未执行到最后一个机器周期c)正在执行中断系统的SFR操作,如RETI指令及访问IE. IP等操作时,要延后一
45、条 指令18.在中断请求有效并开中断状况下,能否保证立即响应中断?有什么 条件? 答:在中断请求 有效并开中断状况下,并不能保证立即响应中断。这是因为,在计算机内部,中断表现为CPU的微查询操作。89C51单片机中,CPU在每个机器周期的S6状态下,查询中 断源,并按优先级管理规贝处理同时请求的中断源,且在下一个机器周期的 S1状 态中,响应最 高级中断请求。此文档收集于网络,如有侵权请联系网站删除在以下情况下,还需要有另夕卜的等彳寺:a)CPU 正在处理相同或更高优先级中断b)多机器周期指令中,还未执行到最后一个机器周期c)正在执行中断系统的SFR操作,如RETI指令及访问IE. IP等操作
46、时,要延后一条 指令第6章习题答案1.定时器模式 2 有什么特点?适用于什么场合? 答:(1)模式2把TLO (或TL1)配置成一个可以自动董装载的8位定时器/计数器。TLO计数 溢出时不仅使溢出中断标志位TFO置1,而且还自动把THO中的内容重新装载到TLO中。TLO用作 8位计数器,THO用以保存初值。(2)用于定时工作方式时间(TFO溢出周期)为,用于计数工作方式时,最大计数 长度(THO 初值二0)为28=256个外部脉冲。这种工作方式可省去用户软件重装初值的语句,并可产生相当精确定时时间,特别适于 作串行 波特率发生器。2.单片机内部定时方式产生频率为100KHZ等宽矩形波,假定单片
47、机的晶振频率为12MHZ 请编程 实现。答:T0低5位:1BHT0 高 8 位:FFHIWi 郦 H MOV THO,#OFFH SETB TRO LOOP:JBC TFO,L1 SJMP LOOP;设置定时器TO工作于模式0;设置5ms定时初值;启动T0;查询到定时时间到?时间到转L1 ;时间 未到转LOOP继续查询;L1 : MOV TLO,#1 BH重新置入定时初值CPL P1. 0;SJMP LOOPMOV THO, #OFFH输出取反,开彳成等宽矩开彳波;重复循环3.89C51定时器有哪几种工作模式?有何区别? 答:有四种工作模式:模式 0,模式1,模式2, 模式3(1)模式0:选择
48、定时器的高8位和低5位组成一个13位定时器/计数器。TL低5 位溢出 时向TH进位,TH溢出时向中断标志位TF进位,并申请中断。定时时间t二(213-初值)X振荡周期X 12;计数长度位213=8192个外部脉冲(2)模式1:与模式0的唯一差别是寄存器TH和TL以全部16位参与操作。定时时 间t=(216- 初值)X振荡周期X 12;计数长度位216=65536个外部脉冲(3)模式2:把TLO和TL1配置成一个自动重装载的8位定时器/计数器。TL用作8位计数 器,TH用以保存初值。TL计数溢出时不仅使TF0置1,而且还自动将TH中的内容 重新装载到TL 中。定时时间t二(28-初值)X振荡周期
49、X 12;计数长度位28二256个外部脉冲(4)模式3:对T0和T1不大相同若设T0位模式3, TLO和TH0被分为两个相互独立的8位计数器。TLO为8位计数器,功 能与模 式0和模式1相同,可定时可计数。TH0仅用作简单的内部定时功能,它占用了定时器 T1的控制位TR1和中断标志位TF1,启动和关闭仅受TR1控制。定时器T1无工作模式3,但T0在工作模式3时T1仍可设置为0 2此文档收集于网络,如有侵权请联系 网站删除4、89C51内部设有几个定时器/计数器?它们是由哪些特殊功能寄存器组成? 答:89C51单片机 内有两个16位定时器/计数器,即TO和T1。TO由两个8位特殊功能寄存器THO
50、和TLO组成;T1由TH1和TL1组成。5.定时器用作定时器时,其定时时间与哪些因素有关?作计数器时,对外界计数频率有 何限制? 答:定时时间与定时器的工作模式,初值及振荡周期有关。作计数器时对外界计数频率要求最高 为机器振荡频率的1/24。6.简述定时器 4 种工作模式的特点,如何选择设定?答:(1)模式0:选择定时器的高8位和低5位组成一个13位定时器/计数器。TL低5 位溢出 时向TH进位,TH溢出时向中断标志位TF进位,并申请中断。定时时间t二(213-初值)X振荡周期X 12;计数长度位213=8192个外部脉冲置TMO中的M1M0为为00(2)模式1:与模式0的唯一差别是寄存器TH
51、和TL以全部16位参与操作。定时时 间t二 (216-初值)X振荡周期X 12;计数长度位216=65536个外部脉冲置TMO中的M1M0为为01(3)模式2:把TL0和TL1配置成一个自动重装载的8位定时器/计数器。TL用作8 位计数 器,TH用以保存初值。TL计数溢出时不仅使TF0置1,而且还自动将TH中的内容 垂新装载到TL 中。定时时间t二(28-初值)X振荡周期X 12;计数长度位28二256个外部脉冲置TMO中的M1M0为为10(4)模式3:对T0和T1不大相同若设T0位模式3, TLO和THO被分为两个相互独立的8位计数器。TLO为8位计数器,功 能与模 式0和模式1相同,可定时
52、可计数。THO仅用作简单的内部定时功能,它占用了定时器 T1的控制位TR1和中断标志位TF1,启 动和关 闭仅受TR1控制。定时器T1无工作模式3,但T0在工作模式3时T1仍可设置为0 2置TMO中的M1M (为为117.当T0用作模式3时,由于TR1已被T0占用,如何控制T1的开启和关闭?答:用 T1控制位 C/T 切换定时器或计数器工作方式就可以使 T1 运行。定时器 T1无工作模式 3,将 T1设置为工作模式3,就会使 T1立即停止计数,关闭。8.以定时器/计数器1进行外部时间计数,每计数 1000个脉冲后,定时器/计数器1转为 定时 工作方式,定时10ms后又转为计数方式,如此循环不止
53、。假定 为6WHZ用模式1编 程。解:T1为定时器时初值:T1为计数器时初值:所以:L1:MOV TMOD, #50H ;设置T1为计数方式且工作模式为1MOV TH1,#OFCH ;置入计数初值MOV TL1, #18HSETB TRI;启动T1计数器L00P1: JBC TF1,L2 ;查询计数溢出?有溢出(计数满1000个)转L2SJMP L00P1 ;无溢出转L00P1継续查询L2: CLR TR1 ;关闭 T1MOV TMOD, #10H ;设置T1为定时方式且工作与模式1MOV TH1, #OECH ;置入定时10ms初值LOOP2JBC TF0,L2SJMP L00P2L2:MO
54、V TH1, #0F8H此文档收集于网络,如有侵权请联系网站删除MOV TL1, #78HSETB TRI ;启动T1定时LOOP2: JBC TF1, LI;查询10ms时间到?时间到,转L1SJMP L00P2;时间未到,转L00P2,继续查询9.一个定时器定时时间有限,如何实现两个定时器的串行定时以满足较长定时时间的要 求?答:当一个定时器溢出时,设置另一个定时器的初值为0开始定时。10.使用一个定时器,如何通过软硬件结合方法实现较长时间的定时? 答:设定好定时器的定 时时间,采用中断方式用软件设置计数次数,进行溢出次数累计,从而得到较长的时间。IK 89C51定时器作定时和计数时其计数
55、脉冲分别由谁提供?答:作定时器时计数脉冲由 89C51 片内振荡器输出经 12分频后的脉冲提供,作计数时计 数脉 冲由外部信号通过引脚P3. 4和P3. 5提供。12.89C51定时器的门控信号GATE设置为1时定时器如何启动?答:只有 (或)引脚为高电平且由软件使TRO (或TR1)置1时,才能启动定时器工作。13.已知89C51单片机的fosc=6MHz,请利用TO和P1. 0输出矩形波。矩形波高电平宽50卩s, 低电平宽300卩So解:T0采用模式2作为50卩s定时时的初值:所以;设置定时器 T0 工作于模式 2作300s定时时的初;P1. 0输出低电平所以;置入定时300卩s初值MOV
56、TMOD,#02HL2:CLRP1.0;启动T0MOVTH0,#6AH;查询300卩s时间到?时间到,转L1 ;时间未到,转L00P1,MOVTL0,#6AH继续查询SETBTRO;P1. 0输出高电平LOOP1:JBCTFO,L1;关闭T0SJMPL00P1;置入定时300卩s初值L1:SETP1.0CLRTRO;启动T0MOVTH0,#0E7H;查询50卩s时间到?时间到,转L2MOVTLO,# 0E7H;时间未到,转L00P2,继续查询SETBTRO14.已知89C51单片机的fosc=12MHz,用T1定时。试编程由P1.0和 Pl. 1引脚分别输出 周期为2ms和500卩s的方波。M
57、OVR2, #04H;R2为“ 250卩s计数器,置入初值4CLRP1.0;P1. 0输出低电平CLRPl. 1;P1. 1输出低电平解:采用模式0作定时初值所以MOV TMOD, #00H;置入定时250卩s初值MOV TL1,#O6H此文档收集于网络,如有侵权请联系网站删除SETB TR1;启动T1LOOP:JBC TF1,L1;查询250卩s时间到?时间到,转L1;时间未到,转LOOP,继SJMP LOOPL1:CPLP1.1CLR DJNZR1R2,L2续查询:Pl. 1输出取反,开彳成周期为500卩s;关闭T1;“250卩s”计数器减1,到1ms吗?未到转L2CPLP1.0MOV R
58、2,#04HLJMP L2;P1.0输出取反,开彳成周期为2ms方波;重置“ 250卩s计数器 初值4;董复循环15.单片机8031的时钟频率为6MHz,若要求定时值分别为0. 1ms, 1ms, 10ms定时器0工作 在模式 0.模式1和模式 2 时,其定时器初值各应是多少?解:(1)0. 1ms模式0:T0 低 5 位 01110B=0EHTO 高 8 位:11111110B二FEH 模式1 :模式2:(2)1ms模式0:T0 低 5 位 01100B=0CHTO 高 8 位:11110000B二F0H 模式1 :模式2:在此情况下最长定时为512卩s, 无法一次实现定时1ms, 可用0.
59、 1ms循环10次(3)10ms模式0:T0 低 5 位 11000B=18HTO 高 8 位:01100011B=63H 模式1 :模式2:在此情况下最长定时为512卩s,无法一次实现定时10ms,可用0. 1ms循环100次16. 89C51 单片机的定时器在何种设置下可提供三个 8位计数器定时器?这时,定时器 1 可作 为串行口波特率发生器。若波特率按9600b/s, 4800b/s, 2400b/s, 1200b/s, 600b/s, 100b来考虑, 则此时可选用的波特率是多少(允许存在一定误差)?设 fosc=12MHz。解:当TO为模式3, T1为模式2时,可提供3个8位定时器。
60、可选100b/s17.试编制一段程序,功能为:当P1. 2引脚的电平上跳时,对Pl. 1的输入脉冲进行计数;当P1.2引脚的电平下跳时,解:停止计数,并将计数值写入R6, R7OMOV TMOD,#05HJNB P1.2,$MOV TH0,#00HMOV TL0,#00H:TO为计数方式且工作于模式1;等待P1.2引脚电平上跳;P1-2电平上跳,置入计数初值SETB TRO;启动T0程序1 :CLRP1.0MOVMOVR2, #05HTMOD,#02H;P1. 0输出低电平;R2为“200卩s计数器,置入初值5,计Ims;设定时器 T0 工作于模式 2L2: MOV THO, #38H;置入定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甘肃省企业劳动合同2篇
- 新解读《GB-T 31205-2014耐磨耐蚀钢铸件》
- 怎么续签合同范本
- 基金产品协议合同范本
- 个人装修平房合同范本
- 个人起诉租赁合同范本
- 简易道路救援合同范本
- 乡镇理论学习中心组学习总结及下一步学习计划
- 小产权车库合同范本
- 行业协会合作协议样本
- 丝印考试题目及答案
- 软件无形资产管理办法
- 学堂在线 西方哲学精神探源 期末考试答案
- 微生物与人类的关系第1课时教学课件 2025-2026学年生物北师大版2024八年级上册
- 项目管理经验教训总结
- 《铁路运输安全管理》课件-第一章 铁路运输安全管理概述
- 高频变压器项目商业模式分析报告
- 中职生开学第一课安全教育
- 移风易俗培训教程课件
- 多重耐药菌感染防控与管理
- 护理沟通与服务课件
评论
0/150
提交评论