1、P:奇偶标志位OV:补码运算溢出标志位RS1,RS0:通用工作寄存器组选择位4. 什么是堆栈?堆栈指针SP初值是什么?8051单片机堆栈最大容量是多少?堆栈都是一种数据按序排列的数据结构,只能在一端(称为栈顶(top)对数据进行插入和删除, 即所谓的“先进先出、后进后出”,将数据进栈时,栈顶会自动地向地址递增方向变化,最后进栈的那个数所在的地址即为栈顶。堆栈指针SP初值为07H;8051单片机堆栈最大容量是128B。5. P0P3口各有什么功能?什么是对I/O的“读、修改、写”操作?P0:可扩展做数据总线/低8位地址总线P1:一般用作通用I/O口,接按键或发光二极管P2:可用作通用I/O口,主
2、要用于扩展地址线高8位P3:可用作通用I/O口,主要用于第二功能I/O口用作输出,直接采用指令MOV P1, A实现;I/O口用作输入,先对I/O口写1,即指令MOV P1, #0FFH,再输入数据:MOV A, P1;“读、修改、写”操作:单片机的一些逻辑操作指令具有数据修改功能,它首先将端口上数据读入,经过运算、修改后再重新写入锁存器,然后从该端口输出。6. 单片机复位方式有几种?复位后寄存器、片内RAM状态各是什么?两种复位方式:上电复位和手动复位,都是高电平复位。复位后I/O口都是高电平,堆栈指针指向07H,内部RAM保持不变。7. 如何改变当前工作寄存器组?在程序状态字PSW中,通过
3、修改RS1和RS0的组合。8. 什么是时钟周期、机器周期、指令周期?它们之间关系如何?时钟周期:即单片机时钟电路中晶振的振荡周期,f=12MHz,时钟周期为1/f;机器周期:CPU完成一个基本指令所需时间,为12个时钟周期,即1个机器周期=12X(1/f);指令周期:执行一条指令所需要的时间,由机器周期表示。一般为1个、2个、4个机器周期。第三次作业:三、编程与问答题2. 要访问特殊功能寄存器和外部数据存储器应分别采用哪种寻址方式?访问特殊功能寄存器可采用直接寻址方式和位寻址方式,不能使用间接寻址;访问外部数据存储器应采用寄存器间接寻址方式MOVX A,DPTR。4.基址+变址寄存器间接寻址方
4、式有什么特点?主要应用与什么场合?采用DPTR和PC作基址寄存器其寻址范围有何不同?基址+变址寄存器间接寻址方式指令形式为“A+DPTR”或“A+PC”,表示以数据指针DPTR或程序计数器PC的内容为基地址(16位),以累加器A中的内容为地址偏移量(8位),二者之和即为操作数所在的程序存储器的物理地址。这种寻址方式只适用于访问程序存储器。采用DPTR作基址寄存器,该查表指令的当前地址与(常数表格)目标地址无关,表格大小和位置可在64KB程序存储器中任意安排,一个表格可被多个程序块共享。采用PC作基址寄存器,CPU在执行该指令时,PC执行加1操作,指向下一条指令,由于PC值改变,所以计算时要注意
5、。使用该指令查表时,表格只能存放在指令后面的256B范围内,因A的取值范围为00H-FFH。5.请写出能完成每一种操作的指令序列将R0的内容传送到R1 MOV A ,R0 MOV R1, A .将内部RAM20H单元的内容传送到R7 MOV R7 ,20H.将外部RAM1000H单元的内容传送到内部RAM30H单元 MOV DPTR ,#1000H MOVX A , DPTR MOV 30H ,A.将外部RAM1000H单元的内容传送到R1 MOV DPTR,#1000H MOV R1 ,A增:将内部RAM30H单元的内容传送到外部RAM1000H单元 MOV DPTR #1000H MOVX
6、 A,DRTR MOV 30H, A将外部ROM1000H单元的内容传送到内部RAM30H单元 MOV A,#00H MOVC A,A+DPTR MOV 30H,A6. 阅读下面的程序。要求:说明程序的功能;写出涉及的寄存器及片内RAM单元的最后结果。该程序是将内部RAM40H中的内容与41H的内容相加,和放在43H,42H中。指令执行后:A的内容为01H,42H的内容为5AH,43H的内容为01H。第四次作业:一 填空题1. 指令 2. 111;49条单;45条双;17条 三3. 74. 操作数;A; B; AB5. 操作数; 地址;R0; R1; DPTR;6. 直接;7. DPTR;PC
7、; 程序存储器8. DPTR; SP; MOVX9. 直接;立即10. 80H11. 68H12. 68H13. 62H; 68H; 36H 14. 41H; 39H; 88H15. BFH; 0; 016. 2EH; 1;17. 26H;118. 90H; 06H; 119. 16H; 05H;20. 06H; 09H21. 00H; 96H二 选择题1. 4 2. 33. 44. 2补充题:简单分析指令70A0H:AJMP 0500H的机器码和目标地址0500H=0000 0101 0000 0000B当前地址PC=PC+2=0A0H +2=70A2H目标地址PC=0111 0101 00
8、00 0000(高5位由PC的高5位组成,低11位由addr11=0100H的低11位组成)7500H机器码101 00001 00000000第五次作业:8、写出16位数相加程序,设被加数存放在内RAM20H,21H单元,加数存放在22H,23H单元,并将结果存放在后续单元24H、25H中(要求低位数存放在低地址单元中)。ORG 1000HCLR CMOV A ,20HADD A ,22HMOV 24H,AMOV A ,21HADDC A ,23HMOV 25H ,AEND 9、试编写程序:采用“与”运算,判断内RAM 20H单元的8位二进制数是正数还是负数。解:根据30H中的值编写程序判断
9、20H单元中数的两种情况,在30H中存放0代表正数,存放1代表负数。 ORG 1000H MOV A,#80 ANL A,20H JZ NEXT0 MOV 30H,#1 SJMP NEXT1NEXT0: MOV 30H,#0NEXT1: SJMP $ END11、编写程序,将内RAM从20H开始存放的16个数传送到从18H开始的单元中。ORG 1000H MOV R0,#20H MOV R1,#18H MOV R2,# 16loop: MOV A,R0 MOV R1,A INC R0 INC R1 DJNZ R2,loop13、编写程序,将片外RAM从2000H开始存放的8个数传送到片内RAM
10、从30H开始的单元中。 MOV DPTR,#2000H MOV R1,#30H MOV R2, # 8 MOVX A,DPTR INC DPTR第六次作业:一、 填空1. 共享2. 外部3. PC;外部中断0矢量地址4. 外部中断05. 电平;边沿二、 选择1.(2)2. (3)3.(4)4.(1)5.(3)6.(4)7.(2)8.(2)三、 补充题1.8051单片机提供几个中断源?有几个中断优先级?各中断标志是如何产生的又如何清除这些中断标志?各中断源所对应的中断入口地址是多少?有5个中断源:两个外部中断(、),两个定时器中断(),一个串口中断;有两个中断优先级;外部中断标志是IE0,IE1
11、 ;定时器中断标志是TF0,TF1;串口中断标志是TI,RI;外中断和定时器中断硬件置位,硬件清零,软件不用管,串口中断必须使用软件清零;中断源 中断入口地址 0003H 000BH 0013H 001BH串行端口 0023H2. 试分析以下几个中断优先级的排列顺序(级别由高到低)是否有可能实现?若能,应如何设置中断源的中断优先级别?若不能,试述理由。1) T0、T1、/INT0、/INT1、串行口;2) 串行口、/INT0、T0、/INT1、T1;3) /INT0、T1、/INT1、T0、串行口;4) /INT0、/INT1、串行口、T0、T1;5) 串行口、T0、/INT0、/INT1、T1;6) /INT0、/INT1、T0、串行口、T1;答案: (1)可以,MOV IP,#00001010B (2)可以,MOV IP,#00010000B (3)不能 (4)可以,MOV IP,#00010101B(5)不能 (6)不能 3. 编写一段对中断系统初始化的程序,使之允许INT0,INT1,T0,串行口中断,且使T0中断为高优先级中断。MOV IE, #10010111BMOV IP, #00000010B
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1