《单片机》第4章作业答案
单片机原理及应用第四章课后题答案

EA
;开总允许中断
LP1:SJMP
LP1
;等待定时器中断
TT0:PUSH
PSW
INC 30H
MOV R7, 30H CJNE R7, #20, LP2 CPL A
MOVX @DPTR, A MOV 30H, #00H
LP2:MOV TL0,#0B0H; T0赋初值
MOV TH0,#3CH
POP PSW SETB TR0 RETI END
数据传输可达千米以上。
RS-232的双机通信接口电路如图4.26-1所示。
图4.26-1 4.26题硬件连接电路图
RS-422和RS-485的双机通信接口电路如图4.26-2所示。
图4.26-24.26题硬件连接电路图
31•何谓看门狗”?它如何实现对系统程序的监控?
解:
看门狗(WDT)”,也称为程序监视定时器。WDT的作用是通过不断监视程序每周
期的运行事件是否超过正常状态下所需要的时间,从而判断程序是否进入了 死循环”并对
进入 死循环”的程序作出系统复位处理。
在程序中设置适当的指令,清WDT,就可监视微处理器的工作。例如在主程序开始时, 将WDT置位,如果主程序执行过程中产生死循环,就无法清WDT,超过WDT的定时时
间时,WDT就会对微处理器发出复位信号。从而实现对系统程序的监控。
管轮流发光各1S不断循环,试画出包括地址译码器、8255A或8155与发光管部分的接口
电路图,并编写控制程序。
解:
使用8255A,电路连接图如图4.25所示。
图4.254.25题硬件连接电路图
其中,PB0〜PB3接红色发光二极管,PB4〜PB7接绿色发光二极管。设MCS-51单片 机主频为12MHz。
《单片机》第4章作业答案

第4章作业一、填空:1、假定(A)=85H,(R0)=30H,(30H)=0AFH.执行指令:ADD A,@R0 后,累加器A的内容为(34H ),CY的内容为(1 ),OV的内容为( 1 )。
.2、假定累加器A的内容30H,DPTR的内容2000H执行指令:1000H:MOVC A,@A+DPTR后,把程序存储器(2030H )单元的内容送累加器A中。
3、假定(SP)=40H,(39H)=30H,(40H)=60H。
执行下列指令:POP DPH ,POP DPL后,DPTR的内容为(6030H ),SP的内容是(38H )。
4、在调用子程序时,为保证程序调用和返回不致混乱,常采用保护现场的措施。
通常在进入子程序后要用(PUSH )指令保护现场DPH、DPL、ACC等。
在退出子程序之前要用POP指令依次恢复现场,用(RETI )指令返回。
5、程序状态寄存器的作用是用来保存程序运行过程中的各种状态信息。
若累加器A中的数据为01110010B,则PSW中的P=(0 )。
6、欲使P1口的低4位输出0,高4位不变,应执行一条(ANL P1,#0F0H )命令。
7、在R7初值为00H的情况下,DJNZ R7,rel指令将循环执行(256 )次。
8、假定(A)=0FFH,(R3)=0FH,(30H)=0F0H,(R0)=40H,(40H)=00H.执行指令:INC AINC R3INC 30HINC @R0后,累加器A的内容为(100H ),R3的内容为(10H ),30H的内容为(100H ),40H的内容为(01H )。
9、MCS-51的指令可分为几种不同的寻址方式。
如:MOV A,20H属于(直接寻址)寻址方式,MOVC A,@A+DPTR 属于(变址寻址)寻址方式,MOV C, bit 属于( 直接寻址) 寻址方式。
10、假定(SP)=60H, (ACC)=30H,(B)=70H, 执行下列命令:PUSH ACCPUSH B后,SP的内容为(62H ),61H的单元的内容为(30H )。
单片机原理及应用第四章课后题答案

第四章作业答案16.MCS-51单片机系统中,片外程序存储器和片外数据存储器共用16位地址线和8位数据线,为何不会产生冲突?解:数据存储器的读和写由RD和WR信号控制,而程序存储器由读选通信号PSEN控制,这些信号在逻辑上时序上不会产生冲突;程序存储器访问指令为MOVC,数据存储器访问指令为MOVX。
程序存储器和数据存储器虽然共用16位地址线和8位数据线,但由于二者访问指令不同,控制信号不同,所以两者虽然共处于同一地址空间,不会发生总线冲突。
18.某单片机应用系统,需扩展2片8KB的EPROM和2片8KB的RAM,采用地址译码法,画出硬件连接图,并指出各芯片的地址范围。
解:硬件连接电路图如图4.18所示。
各芯片的地址范围为:2764(1#):0000H~1FFFH 2764(2#):2000H~3FFFH6264(1#):4000H~5FFFH 6264(2#):6000H~7FFFH图4.18 4.18题硬件连接电路图21.8255A的端口地址为7F00H~7F03H,试编程对8255A初始化,使A口按方式0输入,B口按方式1输出。
解:程序如下:ORG 0000HLJMP STARTORG 0030HSTART:MOV SP, #60HMOV DPTR,#7F03HMOV A,#10010100BMOVX @DPTR,ASJMP $END25.使用8255A或者8155的B端口驱动红色和绿色发光二极管各4只,且红、绿发光二极管轮流发光各1s,不断循环,试画出包括地址译码器、8255A或8155与发光管部分的接口电路图,并编写控制程序。
解:使用8255A,电路连接图如图4.25所示。
图4.25 4.25题硬件连接电路图其中,PB0~PB3接红色发光二极管,PB4~PB7接绿色发光二极管。
设MCS-51单片机主频为12MHz。
程序如下:ORG 0000HLJMP STARTORG 0030HSTART:MOV SP, #60HMOV DPTR, #7FFFH ; 数据指针指向8255A控制口MOV A, #80HMOVX @DPTR, A ; 工作方式字送8255A控制口MOV DPTR, #7FFDH ; 数据指针指向8255A 的B口MOV A, #0FH ; 置红色发光二极管亮LP1:MOVX @DPTR, A ; 置红色发光二极管亮LCALL DELAY ; 调用1S延时子程序CPL A ; 置发光二极管亮反色SJMP LP1 ; 循环执行DELAY:MOV R7,#10 ; 1s延时子程序D1:MOV R6,#200D2:MOV R5,#248D3:NOPDJNZ R5,D3DJNZ R6,D2DJNZ R7,D1RETEND采用定时器T0方式1中断实现1s定时。
单片机第4章习题答案(桂电)

第4章习题答案1.MCS-51系列单片机能提供几个中断源、几个中断优先级?各个中断源的优先级怎样确定?在同一优先级中,各个中断源的优先顺序怎样确定?答:MCS-51系列单片机能提供5个中断源,2个中断优先级。
各个中断源的优先级是由特殊功能寄存器IP来确定,IP中和各个中断源对应位为1时,此中断源为高优先级,否则为低优先级。
在同一优先级中,各个中断源的优先顺序是由自然优先级来确定的。
2.简述MCS-51系列单片机的中断响应过程。
答:MCS-51系列单片机的中断响应过程是按照以下顺序执行的:开中断-----中断请求------中断判断-------中断响应-------中断返回。
3.MCS-51系列单片机的外部中断有哪两种触发方式?如何设置?对外部中断源的中断请求信号有何要求?答:MCS-51系列单片机的外部中断有电平触发和边沿触发两种方式。
是由特殊功能寄存器TCON中IT0,IT1的状态确定的,如:IT0为1时外部中断0为边沿触发方式,当INT0外部引脚出现下降沿时向CPU提出中断请求,否则为电平触发方式,当INT0外部引脚出现低电平时向CPU提出中断请求。
4.MCS-51单片机中断响应时间是否固定?为什么?答:MCS-51单片机中断响应时间不固定,因为当中断源向CPU提出中断请求时,CPU 正在执行的指令的指令周期是不一样的。
5.MCS-51单片机如果扩展6个中断源,可采用哪些方法?如何确定它们的优先级?答:一般可采取中断加查询方式,软件先查询到的为高优先级,最后查询到的为低优先级。
6.试用中断技术设计一发光二极管LED闪烁电路,闪烁周期为2s(方波)。
答:用定时器实现ORG 0000HAJMP STARTORG 00B0HAJMP INT-T0START MOV TMOD, #01HMOV TH0,#3CHMOV TL0,#0B0HMOV R0,#10SETB ET0SETB EASETB TR0SJMP $INT-T0:MOV TH0, #3CHMOV TL0,#0B0HDJNZ R0,END-PCPL P1.0MOV R0,#10END-P RETIEND7.当正在执行某一中断源的中断服务程序时,如果有新的中断请求出现,问在什么情况下可响应新的中断请求?在什么情况下不能响应新的中断请求?答:当正在执行某一中断源的中断服务程序时,如果有新的中断请求出现,当新中断源中断级别比正在执行中断源的中断级别高时可响应新的中断请求,否则不能响应新的中断请求。
单片机第4章习题答案

第4章习题答案一、填空题1.机器语言2.机器汇编、手工汇编3.AREA1=1000H、BUF=1004H、TIME=01H、ACK=1006H4.(A)=4FH、(R0)=4BH、(R1)=E5H、(21H)=D8H、(22H)=4BH、(2FH)=E5H二、简答题1.什么叫伪指令?伪指令与指令有什么区别?答:所谓伪指令又称为伪操作,它不象机器指令那样是在程序运行期间由计算机来执行的,它是在汇编程序对源程序汇编时,由汇编程序处理的操作,它们可以完成如数据定义、分配存储器、指示程序结束等功能。
2.汇编语言的格式是怎样的?汇编语言语句格式为:标号:操作码操作数;注释3.MCS-51系列单片机有哪些伪指令?它们的用途是什么?(1)编起始地址命令ORG功能:规定此命令之后的程序或数据的存放起始地址。
(2)定义字节伪指令格式:[标号:] DB X1,X2, (X)功能:从指定地址开始,存放若干字节数据。
(3)字定义伪指令格式:[标号:] DW Y1,Y2,…,Yn功能:从指定地址开始,存放若干字数据。
(4)汇编结束伪指令END功能:该伪指令指出结束汇编,即使后面还有指令,汇编程序也不处理。
(5)赋值伪指令格式:标号 EQU 表达式功能:将表达式的值(数据或地址)赋给标号。
(6)位定义伪指令格式:[标号] BIT 位地址功能:将位地址赋给标号。
4.汇编语言程序设计分为哪几个步骤?答:汇编语言程序设计一般要经过以下几个步骤:(1)分析问题,明确任务(2)确定算法(3)画出程序流程图(4)编写源程序(5)汇编和调试5.结构化程序设计有哪几种常用的程序结构?答:顺序结构、分支结构、循环结构和子程序结构6.子程序调用时,参数的传递方法有哪几种?答:常用的参数传递方法有:工作寄存器或累加器、指针寄存器、堆栈和程序段等。
7.分析下列程序的功能。
X DATA 30HY DATA 32HMOV A,XJNB ACC.7,TRUECPL AADD A,#01HTRUE:MOV Y,A答:该段程序的功能是:当30H单元的最高位不为0时,则把30H单元的内容送32H 单元,当30H单元的最高位为0时,则把30H单元的内容求反加1后送32单元。
单片机第四章习题答案

第 4 章 单片机内部功能模块习题解答1. 什么是中断?中断有何优点?中断是指计算机在执行程序的过程中,由于计算机系统外界或内部发生某一紧急事件,要求CPU 暂时中止当前的工作转去处理所发生的紧急事件,待处理完后再回到原来被中止的地方,继续原来的工作的过程。
在计算机中引入中断技术具有以下优点:(1)可以提高CPU 的工作效率;(2)便于实时处理;(3)便于故障处理,提高系统的稳定性。
2. MCS-51单片机的中断系统有哪些功能部件组成?分别作什么用?MCS-51单片机的中断系统有4个与中断有关的特殊功能寄存器(TCON 、SCON ),中断允许控制寄存器IE ,中断优先级寄存器IP 和中断顺序查询逻辑等组成。
其功能分别为:TCON 用于寄存定时器T0、T1的溢出中断和外部0INT 、1INT 的中断请求及设置外部中断的触发方式;SVON 的低2位用于作串行发送和接收中断标志;IE 用于设置各中断源允许和禁止;IP 用于设置各中断源的优先级别;中断查询逻辑用于确定中断响应的次序。
3. MCS-51单片机有几个中断源?各中断标志如何产生,又如何清除?MCS-51有五个中断源,它们是:(1)外部中断0(0INT )中断,低电平有效。
通过P3.2引脚引入。
(2)外部中断1(1INT )中断,低电平有效。
通过P3.3引脚引入。
(3)定时/计数器0(T0)溢出中断。
(4)定时/计数器1(T1)溢出中断。
(5)串行口中断,当串行口完成一帧数据的发送和接收时,便请求中断。
中断标志位产生与复位:(1)外部中断0(0INT )中断标志:当外部中断0引脚0INT 上的电平由1变为0时,IE0由硬件置“1”,外部中断0请求中断。
在CPU 响应该中断时由硬件清0。
(2)外部中断1(1INT )中断标志:当外部中断1引脚1INT 上的电平由1变为0时,IE1由硬件置“1”,外部中断1请求中断。
在CPU 响应该中断时由硬件清0。
单片机作业4-参考答案

单片机作业4-参考答案1.下面指令对源操作数而言,采用的是什么寻址方式?座号是奇数的同学做下面9条指令:(1)MOV 20H, #31H ;立即寻址(2)MOV 30H, R6 ;寄存器寻址(3)MOV A, @R0 ;寄存器间接寻址(4)MOV R6, 35H ;直接寻址(5)MOVC A, @A+PC ;基址加变址寻址(6)MOV DPTR, #3456H ;立即寻址(7)SJMP MAIN ;相对寻址(8)PUSH ACC ;直接寻址(9)CLR C ;位寻址座号是偶数的同学做下面9条指令:(1)MOV DPTR, #1234H ;立即寻址(2)MOVX @R1, A ;寄存器寻址(3)SJMP MAIN ;相对寻址(4)MOV R0, 53H ;直接寻址(5)MOVC A, @A+DPTR ;基址加变址寻址(6)MOV R3, #40H ;立即寻址(7)POP B ;直接寻址(8)CLR P2.0 ;位寻址(9)MOV 20H, @R0 ;寄存器间接寻址2.判断下面指令的正误,错误的指令要说明错在什么地方。
座号≦30号的同学做下面5条指令:(1)PUSH R0 ;PUSH指令后面跟的操作数应该是直接寻址,而R0是寄存器寻址(2)MOV A, #FFH ;以A~F开始的立即数,前面要加0(3)MOV @R2, #55H ;访问片内RAM的寄存器间接寻址,只能采用R0或R1(4)DEC DPTR ;DEC指令不能对DPTR进行自减1(5)SJMP $ ;正确座号>30号的同学做下面5条指令:(1)MOVX @R7, A ;访问片外RAM的寄存器间接寻址,只能采用R0、R1或DPTR (2)DEC DPTR ;DEC指令不能对DPTR进行自减1(3)POP A ;PUSH指令后面跟的操作数应该是直接寻址,而A是寄存器寻址(4)MOV P0, #F2H ;以A~F开始的立即数,前面要加0(5)MOVC @A+DPTR, A ;ROM只读,不能写3.写出下面程序段执行的结果。
第4章单片机原理课后答案(最新整理)

习题1.C51特有的数据类型有哪些?答:C51特有的数据类型有位型bit、特殊位型sbit、8位特殊功能寄存器型sfr和16位特殊功能寄存器型sfr16。
2.C51中的存储器类型有几种,它们分别表示的存储器区域是什么?答:C51中的存储器类型有6种,分别表示的存储器区域是:data:直接寻址的片内RAM低128B,访问速度快bdata:片内RAM的可位寻址区(20H~2FH),允许字节和位混合访问idata:间接寻址访问的片内RAM,允许访问全部片内RAMpdata:用Ri间接访问的片外RAM低256Bxdata:用DPTR间接访问的片外RAM,允许访问全部64KB片外RAMcode:程序存储器ROM 64KB空间3.在C51中,bit位与sbit位有什么区别?答:bit位类型符用于定义一般的位变量,定义的位变量位于片内数据存储器的位寻址区。
定义时不能指定地址,只能由编译器自动分配。
sbit位类型符用于定义位地址确定的位变量,定义的位变量可以在片内数据存储器位寻址区,也可为特殊功能寄存器中的可位寻址位。
定义时必须指明其位地址,可以是位直接地址,也可以是可位寻址的变量带位号,还可以是可位寻址的特殊功能寄存器变量带位号。
4.在C51中,通过绝对地址来访问的存储器有几种?答:绝对地址访问形式有三种:宏定义、指针和关键字“_at_”。
5.在C51中,中断函数与一般函数有什么不同?答:中断函数是C51的一个重要特点,C51允许用户创建中断函数。
中断函数用interrupt m修饰符,m的取值为0~31,对应的中断情况如下:0——外部中断01——定时/计数器T02——外部中断13——定时/计数器T14——串行口中断5——定时/计数器T2中断函数需要注意如下几点。
(1)中断函数不能进行参数传递(2)中断函数没有返回值(3)在任何情况下都不能直接调用中断函数(4)如果在中断函数中调用了其他函数,则被调用函数所使用的寄存器必须与中断函数相同(5)C51编译器对中断函数编译时会自动在程序开始和结束处加上相应的内容(6)C51编译器从绝对地址8m+3处产生一个中断向量(7)中断函数最好写在文件的尾部,并且禁止使用extern存储类型说明6.按给定的存储类型和数据类型,写出下列变量的说明形式。
单片机 第四章答案

LP1: JBC TF0 ,LP2
JB P3.2 , LP1
INC R0
;低电平到,停止定时器1,存储单元地址加1
SJMP LP0
;低电平到,停止定时器1 宽度
LP2: INC @R0
;存储溢出次数加1ms
MOV TH0,#0FCH ;定时1ms
MOV TL0,#18H SJMP LP1
INT1
INT1 为高时T1 开始计数
中断程序结构框架
20.利用定时/计数器T0从P1.0输出周期为1s,脉宽为20ms的正 脉冲信号,晶振频率为12MHz。试设计程序。参照【例4-6】
解:因方式2是8位计数器,其最大定时时间为:256×1 s = 256 s,为实现1 s延时,
可选择定时时间为200 s,再循环5000次。定时时间选定后,可确定计数值为200,则定
时器0的初值为:X = M 计数值=256 200 = 56 。采用定时器0,方式2工作,因此,
TMOD =02H。
ORG 0000H
MOV TMOD,#02H ;置定时器0为方式2
MOV TH1,#56
;置定时器初值
MOV TL1,#56
CLR P1.0 MAIN: MOV R5,#50
;置20 ms计数循环初值 1s
②计算定时500us初值:方式0:X = 213 - 500 = 7692 = 1E0CH
ORG START:MOV
CLR CLR MOV MOV MOV SETB LOOP: JNB CLR MOV MOV INC CJNE MOV CPL JNB CPL SJMP END
0000H TMOD, #00H
ORG 0000H
START:MOV TMOD, #02H;定时器T0工作方式2
单片机作业4-参考答案

单片机作业4将下面的C51语句放入Keil软件,进行编译#include<reg51.h>unsigned char data Temp;void main(void){Temp = 0x23; //等号右边写自己座号的BCD码,如23号,写0x23while(1){;}}以下参考答案,编译器使用的是Keil uVision4提示:查看C51编译生成汇编代码的方法有两种:①在调试时,查看反汇编窗口;②在工程属性的“列表(Listing)”选项卡中将复选框“包含汇编代码(Assembly Code)”勾中,重新编译后再打开跟C51文件同名的lst文件(*.lst)。
(1)查看编译结果,写出加注释的那条赋值语句所对应的汇编代码。
MOV Temp(0x08), #0x23(2)将Temp变量定义中的char先后改为short int、long int,再回答第1问;并说明编译结果(Build Output)窗口中单片机资源使用情况处的data使用情况有何变化。
(a)char改为short int:MOV Temp,#00HMOV Temp+01H,#023Hdata从10.0变为11.0(b)char改为short int:CLR AMOV Temp+03H,#023HMOV Temp+02H,AMOV Temp+01H,AMOV Temp,Adata从10.0变为13.0(3)将Temp变量定义中的data先后改为idata、pdata和xdata,再回答第1问。
(a)data改为idata:MOV R0,#LOW TempMOV @R0,#023H(b)data改为pdata:MOV R0,#LOW TempMOV A,#023HMOVX @R0,A(c)data改为xdata:MOV DPTR,#TempMOV A,#023HMOVX @DPTR,A(4)将Temp变量定义中的data改为code,编译能否通过,为什么?通不过,data改为code,表明变量Temp保存在ROM,但ROM是只读,不能写的,所以赋值语句Temp = 0x23;出错。
单片机第4章习题参考答案.docx

第4章部分习题答案作业:7、8、9、10、11、15、17、19、204.7设内部RAM 20H单元有两个非零的BCD数, 编写求两个BCD数的积并把积送入21H单元的程序。
ORG 1000HMOV A, 20HMOV B, A ; 保存SWAP AANL A, #0FH ;取高4位ANL B, #0FH ;取低4位MUL ABMOV B, #0AHDIV AB ;转换成BCD码的形式SWAP AORL A, BMOV 21H, ASJMP $END4.8已知从内部RAM BLOCK单元开始存放有一组带符号数,数的个数存放在LEN单元。
编写可以统计正数和负数个数并分别存入NUM和NUM+1单元的程序。
num org lOOOh data 30hlen data 20hblock data 40hmov rO, #blockmov num, #00h ;保存正数个数mov b, #00h ;保存负数个数loop: mov a, @r0inc rOjb acc.7, neginc numsjmp nextneg: inc bnext: djnz len, loopmov num+1, bsjmp $end 4.9设X为一无符号数,存放在内部RAM的VAX 单元,Y存放在FUNC单元。
编写满足如下关系的程序:X X>50Y =(5X 50> X > 202X X<20org 2000hvax data 20hfunc data 30hmov a, vaxcjne a, # 32h, complcompl: jc nextlmov func, asjmp donenextl: cjne a, #14h、comp2comp2: jc next2mov b, #05hmul abmov func, asjmp donenext2: clr crlc amov func, adone: sjmp $end4.10在例4.6的128分支程序中,若用LJMP指令代替AJMP指令,以便分支程序可以放在64KB地址范围的任何位置。
单片机习题参考答案4章

第4章 AT89C51单片机汇编语言程序设计1.已知程序执行前有A = 02H,SP = 42H,(41H) = FFH,(42H) = FFH。
下述程序执行后,A = ;SP = ;(41H) = ;(42H) = ;PC = 。
POP DPHPOP DPLMOV DPTR,#3000HRL AMOV B,AMOVC A,@A+DPTRPUSH AccMOV A,BINC AMOVC A,@A+DPTRPUSH AccRETORG 3000HDB 10H,80H,30H,80H,50H,80H答:A=80H,SP=40H,(51H)=50H,(52H)=80H ,PC=8050H。
2.说明伪指令的作用。
“伪”的含义是什么?常用伪指令的功能如何?答:伪指令不属于指令系统中的汇编语言指令,它是程序员发给汇编程序的控制命令。
只有在汇编前的源程序中才有伪指令。
所以“伪”体现在汇编后,伪指令没有相应的机器代码产生。
3.解释手工汇编、机器汇编、交叉汇编、反汇编术语概念。
答:(1)手工汇编:手工编程,首先把程序用助记符指令写出,然后通过查指令的机器代码表,逐个把助记符指令“翻译”成机器代码,这种人工查表“翻译”指令的方法称为手工汇编。
(2)机器汇编:是借助于微型计算机上的软件(汇编程序)来代替手工汇编,完成把助记符指令“翻译”成机器代码的工作。
(3)交叉汇编:使用微型计算机来完成汇编,而汇编后得到的机器代码却是在另一台计算机(这里是单片机)上运行,称这种机器汇编为交叉汇编。
(4)反汇编:将二进制的机器代码语言程序翻译成汇编语言源程序的过程。
4.下列程序段经汇编后,从1000H开始的各有关存储单元的内容是什么?ORG 1000HTAB1 EQU 1234HTAB2 EQU 3000HDB "MAIN"DW TAB1,TAB2,70H答:4D 41 49 4E 12 34 30 00 00 705.设计子程序时应注意哪些问题?答:在编写子程序时应注意以下问题。
单片机课后习题答案(4~9章)

《单片机原理与接口技术》习题解答第4章习题解答4-1.简述下列基本概念。
答指令:CPU根据人的意图来执行某种操作的命令。
指令系统:一台计算机所能执行的全部指令集合。
机器语言:用二进制编码表示,计算机能直接识别和执行的语言。
汇编语言:用助记符、符号和数字来表示指令的程序语言。
高级语言:独立于机器的,在编程时不需要对机器结构及其指令系统有深入了解的通用性语言。
4-2.什么是计算机的指令和指令系统?答见1题。
4-3.简述80C51汇编指令格式。
答操作码[目的操纵数][,源操作数]4-4.简述80C51的寻址方式和所能涉及的寻址空间。
答立即数寻址:程序存储器ROM。
直接寻址:片内RAM低128B和特殊功能寄存器。
寄存器寻址:R0~R7,A,B,C,DPTR。
寄存器间接寻址:片内RAM低128B,片外RAM。
变址寻址:程序存储器64KB。
相对寻址:程序存储器256B范围。
位寻址:片内RAM的20H~2FH字节地址,部分特殊功能寄存器。
4-5.要访问特殊功能寄存器和片外数据存储器,应采用哪些寻址方式?答 SFR:直接寻址,位寻址;片外RAM:寄存器间接寻址。
4-6.在80C51片内RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H。
请分析下面各是什么指令,说明源操作数的寻址方式及按顺序执行后的结果。
答 MOV A,40H 直接寻址MOV R0,A 寄存器寻址MOV P1,#0F0H 立即数寻址MOV @R0,30H 直接寻址MOV DPTR,#3848H 立即数寻址MOV 40H,38H 直接寻址MOV R0,30H 直接寻址MOV P0,R0 寄存器寻址MOV 18H,#30H 立即数寻址MOV A,@R0 寄存器间接寻址MOV P2,P1 直接寻址均为数据传送指令,结果(参见下图)为30H38H40H48H(18H)=30H,(30H)=38H,(38H)=40H (40H)=40H,(48H)=90HR0=38H,A=40H,P0=38H,P1=FOH,P2=FOH,DPTR=3848H 4-7.对80C51片内RAM高128B的地址空间寻址要注意什么?答用直接寻址,寄存器寻址,位寻址。
单片机第四章答案

单片机第四章习题答案选择题1-5 BACAA, 6-10 BAADA, 11-14 CCAD问答题1.MCS-51系列单片机定时计数器的定时功能和计数功能有什么不同?分别应用在什么场合?答:当定时/计数器设置为定时工作方式时,计数器对内部机器周期计数,每过一个机器周期,计数器增1,直至计满溢出。
定时器的定时时间与系统的振荡频率紧密相关,如果单片机系统采用12M晶振,则计数周期为:,这是最短的定时周期,适当选择定时器的初值可获取各种定时时间。
当定时/计数器设置为计数工作方式时,计数器对来自输入引脚T0(P3.4)和T1(P3.5)的外部信号计数,外部脉冲的下降沿将触发计数,检测一个由1到0的负跳变需要两个机器周期,所以,最高检测频率为振荡频率的1/24。
计数器对外部输入信号的占空比没有特别的限制,但必须保证输入信号的高电平与低电平的持续时间在一个机器周期以上。
当需要准确计算时间时往往采用定时器的定时方式,而当要对一些外部事件计数时则采用定时器的计数方式。
2.软件定时与硬件定时的原理有何异同?答:软件定时是通过编写一段延时程序来实现定时,这段延时程序不完成任何操作,只是通过一些空操作浪费掉一段时间。
这样的软件定时往往浪费CPU的工作效率,并且定时不够准确,前面三章的各个任务中均采用了这种方法。
硬件定时是通过单片机的定时器来实现时间的计算,用户只需要对定时器的工作方式、初始值赋予合适的数值,启动定时器后,定时器将自动按照机器周期定时。
这种由定时器实现的定时方式,定时时间准确、CPU的工作效率高。
3.MCS-51单片机的定时计数器是增1计数器还是减1计数器?增1和减1计数器在计数和计算计数初值时有什么不同?答:MCS-51系列单片机的定时/计数器是增1计数器。
对于增1计数器,计数初值应等于最大计数值减去所需要的计数值。
而减1计数器,计数初值就等于所需要的计数值。
例如:假设需要计数50000次。
对于增1计数器的单片机,若采用方式1的定时器,最大计数值为65536,则初值应为:65536-50000=15536。
单片机第4章参考答案

第4章 AT89S51汇编语言程序的设计与调试参考答案1.答:伪指令是程序员发给汇编程序的命令,只有在汇编前的源程序中才有伪指令,即在汇编过程中的用来控制汇编过程的命令。
所谓“伪”是体现在汇编后,伪指令没有相应的机器代码产生。
常用伪指令及其功能如下:ORG(ORiGin)汇编起始地址命令;END(END of assembly)汇编终止命令;EQU(EQUate)标号赋值命令;DB(Define Byte)定义数据字节命令;DW(Define Word)定义数据字命令;DS(Define Storage)定义存储区命令;BIT 位定义命令2.答:手工汇编:通过查指令的机器代码表(表3-2),逐个把助记符指令“翻译”成机器代码,再进行调试和运行。
这种人工查表“翻译”指令的方法称为“手工汇编”。
机器汇编:借助于微型计算机上的软件(汇编程序)来代替手工汇编。
通过在微机上运行汇编程序,把汇编语言源程序翻译成机器代码。
反汇编:将二进制的机器码程序翻译成汇编语言源程序的过程称为“反汇编”。
3.答:从1000H开始的各有关存储单元的内容(16进制)如下:4D 41 49 4E 12 34 30 0000 70 78 7F E4 F6 D8 FD75 81 07 024.在编写子程序时应注意以下问题:(1)子程序的第一条指令前必须有标号。
(2)主程序调用子程序,有如下两条子程序调用指令:①绝对调用指令ACALL addr11。
被调用的子程序的首地址与绝对调用指令的下一条指令的高5位地址相同,即只能在同一个2KB区内。
②长调用指令LCALL addr16。
addr16为直接调用的目的地址,被调用的子程序可放置在64KB程序存储器区的任意位置。
(3)子程序结构中必须用到堆栈,用来保护断点和现场保护。
(4)子程序返回时,必须以RET指令结束。
(5)子程序可以嵌套,但要注意堆栈的冲突。
5.答:参考程序如下:MOV A,45HANL A,#0FHORL A,#0FHMOV 45H,A6.答:A=80H ,SP=40H,(41H)=50H,(42H)=80H ,PC=8050H 7.答:参考程序如下:START:MOV R0,#30HMOV R2,#20HLOOP: MOV A,@R0CJNE A,#0AAH,NEXTMOV 51H,#01HLJMP EXITNEXT: INC R0DJNZ R2,LOOPMOV 51H,#00HEXIT: RET8.答:参考程序如下:START:MOV 41H,#0MOV R0,#20HMOV R2,#20HLOOP:MOV A,@R0JNZ NEXTINC 41HNEXT:INC R0DJNZ R2,LOOPRET9.答:参考程序如下:ORG 0100HMOV R2, #20H 要比较的数据字节数MOV A , #21HMOV R1 , ADEC R2MOV A , @R1LOOP: MOV R3,ADEC R1CLR CSUBB A,@R1JNC LOOP1MOV A,@R1SJMP LOOP2LOOP1: MOV A,R3LOOP2: DJNZ R2, LOOPMOV @R0,ARET10.答:(1)SP=SP+1=61H (61H)=PC的低字节=03HSP=SP+1=62H (62H)=PC的高字节=20H(2)PC=3456H(3)可以(4)2KB=2048 Byte11.答:可对程序做如下修改:ORG 0100HDEL: MOV R7, #200DEL1: MOV R6, #123 ;将原来的立即数125改为123DEL2: DJNZ R6, DEL2NOP ;增加的指令DJNZ R7, DEL1RET程序修改后的延时时间为:1+(1+123*2+1+2)*200+2=50003us=50.003ms。
单片机第4章习题答案(桂电)

MOV TL0,#0B0H
DJNZ R0,END-P
CPL P1.0
MOV R0,#10
2.简述MCS-51系列单片机的中断响应过程。
答:MCS-51系列单片机的中断响应过程是按照以下顺序执行的:开中断-----中断请求------中断判断-------中断响应-------中断返回。
3.MCS-51系列单片机的外部中断有哪两种触发方式?如何设置?对外部中断源的中断请求信号有何要求?
答:MCS-51系列单片机的外部中断有电平触发和边沿触发两种方式。是由特殊功能寄存器TCON中IT0,IT1的状态确定的,如:IT0为1时外部中断0为边沿触发方式,当INT0外部引脚出现下降沿时向CPU提出中断请求, 否则为电平触发方式,当INT0外部引脚出现低电平时向CPU提出中断请求。
4.MCS-51单片机中断响应时间是否固定?为什么?
答:MCS-51单片机中断响应时间不固定,因为当中断源向CPU提出中断请求时,CPU正在执行的指令的指令周期是不一样的。
5.MCS-51单片机如果扩展6个中断源,可采用哪些方法?如何确定它们的优先级? 答:一般可采取中断加查询方式,软件先查询到的为高优先级,最后查询到的为低优先级。
6.试用中断技术设计一发光二极管LED闪烁电路,闪烁周期为2s(方波)。 答:用定时器实现
第4章习题答案
1.MCS-51系列单片机能提供几个中断源、几个中断优先级?各个中断源的优先级怎样确定?在同一优先级中,各个中断源的优先顺序怎样确定?
答:MCS-51系列单片机能提供5个中断源,2个中断优先级。各个中断源的优先级是由特殊功能寄存器IP来确定,IP中和各个中断源对应位为1时,此中断源为高优先级,否则为低优先级。在同一优先级中,各个中断源的优先顺序是由自然优先级来确定的。
单片机第四章答案

第四章习题与思考答案4-3外设端口有哪两种编址方法?各有什么特点?答:微型计算机对 I/O 端口进行编址的方式有两种:单独编址和统一编址。
1.外设端口单独编址特点:(1) 需要专用 I/O 指令,实现 CPU 和外设间数据传送。
(2)I/O端口地址的独立。
2.外设端口与存储器统一编址特点: (1) 无需专用 I/O 指令(2)I/O端口地址是内存地址中的一部分。
4-4 I/O 数据有哪四种传送方式?各有什么特点?CPU 与外设之间的数据传送方式有无条件传输方式、查询方式、中断方式和 DMA 方式。
1.无条件传输方式无条件传送又称为同步传送或直接传送方式。
CPU 在与外设进行数据交换时,外设随时处于准备好的状态,这样 CPU 不必查询外设的状态,也不必等待,而是直接进行数据的输入输出。
2.查询传输方式查询传输方式也称为异步传输、条件传输方式。
采用查询方式时, CPU 每次与外设进行数据传输前,都要先读取状态端口的信息,查询外设是否准备就绪,只有在外设处于“就绪”状态时,才能向外设的数据端口发送数据或从其中读取数据,如果外设未就绪,就需要 CPU 原地循环等待外设完成准备工作,所以 CPU 的工作效率不高。
3.中断传输方式在中断传输方式中,以外设为主动方,每次外设准备好就可以向 CPU 发出一次中断请求,使 CPU 暂停当前正在执行的程序,转去与外设进行一次数据传输工作,当完成了本次数据的输入或输出后,再回到原先被打断的地方继续执行原来的程序。
中断方式可以大大提高 CPU 的效率和系统的实时性。
4. DMA 方式DMA 方式即直接存储器存取方式,是一种在DMA控制器的控制下实现的外设与存储器之间的直接数据传输方式。
在整个DMA 传输过程中,是不需要 CPU 参与的,完全是通过硬件逻辑电路用固定的顺序发地址和读写信号来实现的,数据不需要经过 CPU 而是在外设和存储器之间高速传输。
4-5 8051 内部的并行I/O 口有哪些?各有什么功能?1.P0 口P0 口的第一功能是作为通用I/O 口使用。
单片机习题答案(第四章)

RL A
MOV 30H,A
RET
编写程序,把片外RAM从2 0 00 H开始连续存放的8个数据送到片内3 0H开始的单元
中。
程序如下:
ORG 0000H
MOV R7,#08H
MOV DPTR,#2000H
MOV R0,#30H
LOOP1: MOVX A,@DPTR
MOV @R0,A
INC DPTR
INC R0
DJNZ R7,LOOP1
RET
已知片内3 0H, 3 1H中存有一个1 6位的二进制数,高位在前,低位在后,请编程将
它们乘2 ,再存回原处。设乘完结果不超出双字节。
程序如下:
ORG 0000H
MOV A,31H
CLR CY
RLC A
MOV A,30H
RLC A
MOV 30H,A
AJMP$
若有两个无符号数X ,Y分别存放在外部数据存储器5 0,5 1单元中,试编写一个程序,
实现X*5+Y,结果高8位存入片内4 2单元,低8位存入片内4 3单元。
程序如下:
ORG 0000H
MOV DPTR,#0050H;X先乘2
MOVX A,@DPTR
MOV 43H,A
CLR CY
RLC A
MOV R0,#A
MOV A,@R0
MOV R0,#B
SUBB A,@R0
JNB OV,OVER
MOV @R0,#00H
MOV R0,#A
MOV @R0,#00H
OVER: RET
已知片内30H单元中存有一个8位无符号数。编程将它们乘2,再存回原处。设乘完结果
不超出一个字节。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4章作业
一、填空:
1、假定(A)=85H,(R0)=30H,(30H)=0AFH.执行指令:ADD A,@R0 后,累加器A的内容为(34H ),CY的内容为(1 ),OV的内容为( 1 )。
.
2、假定累加器A的内容30H,DPTR的内容2000H执行指令:
1000H:MOVC A,@A+DPTR
后,把程序存储器(2030H )单元的内容送累加器A中。
3、假定(SP)=40H,(39H)=30H,(40H)=60H。
执行下列指令:
POP DPH ,POP DPL后,DPTR的内容为(6030H ),SP的内容是(38H )。
4、在调用子程序时,为保证程序调用和返回不致混乱,常采用保护现场的措施。
通常在进入子程序后要用(PUSH )指令保护现场DPH、DPL、ACC等。
在退出子程序之前要用POP指令依次恢复现场,用(RETI )指令返回。
5、程序状态寄存器的作用是用来保存程序运行过程中的各种状态信息。
若累加器A中的数据为01110010B,则PSW中的P=(0 )。
6、欲使P1口的低4位输出0,高4位不变,应执行一条(ANL P1,#0F0H )命令。
7、在R7初值为00H的情况下,DJNZ R7,rel指令将循环执行(256 )次。
8、假定(A)=0FFH,(R3)=0FH,(30H)=0F0H,(R0)=40H,(40H)=00H.执行指令:
INC A
INC R3
INC 30H
INC @R0
后,累加器A的内容为(100H ),R3的内容为(10H ),30H的内容为(100H ),40H的内容为(01H )。
9、MCS-51的指令可分为几种不同的寻址方式。
如:MOV A,20H属于(直接寻址)寻址方式,MOVC A,@A+DPTR 属于(变址寻址)寻址方式,MOV C, bit 属于( 直接寻址) 寻址方式。
10、假定(SP)=60H, (ACC)=30H,(B)=70H, 执行下列命令:
PUSH ACC
PUSH B
后,SP的内容为(62H ),61H的单元的内容为(30H )。
11、MOVX A,@DPTR指令中源操作数的寻址方式是(间接寻址)
12、执行PUSH ACC指令,MCS-51完成的操作是( A )
A.(SP)+1→SP,ACC→(SP)
B. ACC→(SP),(SP)-1→SP
C. (SP)-1→SP,ACC→(SP)
D. ACC→(SP),(SP)+1→SP
13、MOV C,20H.0 的操作方式是( 位寻址)。
14、对程序存储器的读操作,只能用(查表指令)。
15、下列指令中错误的有( B )。
A、CLR A
B、MOVC @DPTR,A
C、MOV P1,A
D、JBC TF0,LOOP
16、如果(P0)=65H ,则当
CPL P0.2
SETB C
MOV P0.4 ,C
执行后(P0)=(71H )
17、8051单片机中,将累加器A中的数送入片外RAM的40H单元,可执行的指令(MOV DPTR, #0040H MOVX @DPTR, A)
18、已知累加器A的数值为98H,它与0FAH相加,相加后会影响标志位CY、AC和OV 位。
各个位的值是(CY=1,AC=1,OV=1 )。
19、执行如下三条指令后,30H单元的内容是( 40H )。
M O V R 1,#30H
M O V 40H,#0 E H
M O V @R 1,40H
20、要用传送指令访问MCS-51片外RAM,它的指令操作码助记符是(MOVX A,@DPTR )
21、JNZ REL指令的寻址方式是(相对寻址)
22、在程序运行过程中执行PC=0200H的一条指令LCALL addr16,该调用子程序的返回指令是(B )。
A、RETI
B、RET
C、END
D、LJMP
23、下列指令中错误的是( D )。
A、MOV A,R4
B、MOV 20H,R4
C 、MOV R4,30H D、MOV ﹫R4,R3
24、下列指令不是变址寻址方式的是( C )。
A、JMP @A+DPTR
B、MOVC A,@A+PC
C、MOVX A,@DPTR
D、MOVC A,@A+DPTR
二、阅读并分析程序结果
1、阅读下列程序,分析其功能。
MOV R7,#5
MOV A,#30H
MOV DPTR,#2000H
LOOP: MOVX @DPTR,A
INC A
INC DPTR
DJNZ R7,LOOP
SJMP $
功能:把片内RAM30H开始的5个单元的内容移到片外RAM 2000H开始的5个单元
2、以下程序段执行后,(40H)= 5EH ,(41H)= F1H 。
CLR C
MOV A,#56H
SUBB A,#0F8H
MOV 40H,A
MOV A,#78H
SUBB A,#0EH
MOV 41H,A
3、试说明下段程序中每条指令的作用,并分析指令执行完成后,R0中的内容是什么?MOV R0,#0A7H
XCH A,R0
SWAP A
XCH A,R0
作用:把A7H 付给R0;把A与R0中的内容互换;把A中的内容高四位与低四位互换;把A与R0中的内容互换;R0中的内容是7AH。
4、说明下段程序中每条指令的作用,并写出执行下列指令序列后40H单元中的内容:
MOV R0,#60H
MOV 60H,#80H
MOV 40H,@R0
作用:把60H付给R0;把80H付给60H;把((R0))中的内容给40H;40H中的内容是80H
5、(A)=3BH,执行ANL A,#9EH指令后,(A)=1AH (CY)=0 (不受影响)
6、如果(DPTR)=5678H,(SP)=42H,(3FH)=12H ,(40H)=34H,(41H)=50H,(42H)=80H,则执行下列指令后:
POP DPH
POP DPL
RET
则:(DPH)=80H____;(DPL)=__50H___;(SP)= 40H ;(DPTR)= 8050H ;(42H)= 80H 。
7、执行下列程序段中第一条指令后:
(P1.7)=(0 ),(P1.3)=(0 )(P1.2)=(0 );
执行第二条指令后:
(P1.5)=( 1 ),(P1.4)=( 1 ),(P1.3)=( 1 )。
ANL P1,#73H
ORL P1,#38H
8、已知(R0)=20H, (20H ) =10H, (P0) =30H, (R2) =20H,分析每条指令的功能,并写出执行如下程序段后( 40H ) =45H
MOV @R0 , #11H
MOV A , R2
ADD A , 20H
MOV PSW , #80H
SUBB A , P0
XRL A , #45H
MOV 40H , A
9、已知( R0 )=20H, (20H )=36H, (21H) =17H, (36H) =34H, 分析每条指令的功能,并写出执行如下程序段后(R0)=36H(R2)=d6H
MOV A , @R0
MOV R0 , A
MOV A , @R0
ADD A , 21H
ORL A , #21H
RL A
MOV R2 , A
RET
10、执行下面一段程序;
MOV SP, #60H
MOV A, #10H
MOV B, #01H
PUSH A
PUSH B
POP A
POP B
则(A)= 01H(B)=10H
11、设在31H单元存有#23H,执行下面程序:
MOV A, 31H
ANL A, #0FH
MOV 41H, A
MOV A, 31H
ANL A, #0F0H
SW AP A
MOV 42H, A
则(41H)=03H(42H)=02H
12、分析说明下列程序,说明划线语句功能,并说明程序所实现的功能:
ORG 0
MOV DPTR,#1000H 功能:使DPTR指向片外的1000H单元
MOV R0,#255
CLR A
LP:MOVX @DPTR,A 把DPTR所指的单元内容清零
INC DPTR
DJNZ R0,LP 判断R0-1是否为零,不为零则跳到LP处执行程序。
为零则执行下一条指令
JMP $
END
功能:把片外1000H开始的256个单元清零
13、设在MCS-51单片机片内RAM中,(30H)=40H,(40H)=52H,(52H)=60H,P1=0CFH, (60H)=20H,当下列程序执行完毕后,各单元的内容分别为多少?请填入给定的各个寄存器及片内单元中。
MOV RO,#30H
MOV A,@RO
MOV R1,A
MOV B,@R1
MOV @R1,A
MOV P3,P1
MOV 60H,@R0
(A)= 40H (B)= 52H (R0)= 30H (R1)= 40H
(P1)= 0CFH (P3)= 0CFH (20H)= 00H (52H)= 60H
(40H)= 40H (60H)= 40H。