单片机原理及应用第三章课后答案
单片机原理及应用习题答案第三

第一章习题参考答案1-1:何谓单片机?与通用微机相比,两者在结构上有何异同?答:将构成计算机的基本单元电路如微处理器(CPU)、存储器、I/O接口电路和相应实时控制器件等电路集成在一块芯片上,称其为单片微型计算机,简称单片机。
单片机与通用微机相比在结构上的异同:(1)两者都有CPU,但通用微机的CPU主要面向数据处理,其发展主要围绕数据处理功能、计算速度和精度的进一步提高。
例如,现今微机的CPU都支持浮点运算,采用流水线作业,并行处理、多级高速缓冲(Cache)技术等。
CPU的主频达到数百兆赫兹(MHz),字长普遍达到32位。
单片机主要面向控制,控制中的数据类型及数据处理相对简单,所以单片机的数据处理功能比通用微机相对要弱一些,计算速度和精度也相对要低一些。
例如,现在的单片机产品的CPU大多不支持浮点运算,CPU还采用串行工作方式,其振荡频率大多在百兆赫兹范围内;在一些简单应用系统中采用4位字长的CPU,在中、小规模应用场合广泛采用8位字长单片机,在一些复杂的中、大规模的应用系统中才采用16位字长单片机,32位单片机产品目前应用得还不多。
(2) 两者都有存储器,但通用微机中存储器组织结构主要针对增大存储容量和CPU 对数据的存取速度。
现今微机的内存容量达到了数百兆字节(MB),存储体系采用多体、并读技术和段、页等多种管理模式。
单片机中存储器的组织结构比较简单,存储器芯片直接挂接在单片机的总线上,CPU对存储器的读写按直接物理地址来寻址存储器单元,存储器的寻址空间一般都为64 KB。
(3) 两者都有I/O接口,但通用微机中I/O接口主要考虑标准外设(如CRT、标准键盘、鼠标、打印机、硬盘、光盘等)。
用户通过标准总线连接外设,能达到即插即用。
单片机应用系统的外设都是非标准的,且千差万别,种类很多。
单片机的I/O 接口实际上是向用户提供的与外设连接的物理界面。
用户对外设的连接要设计具体的接口电路,需有熟练的接口电路设计技术。
单片机原理及应用(高教第二版)第3章参考答案及解析

第3章 AT89S51的指令系统参考答案及解析:1.解析:总体可根据指令表P61解答(1)错P48 3.3 MOV direct,@Ri,i=0或1。
(2)错P54 6 减1指令中不包括数据指针DPTR。
(3)对P52数据指针DPTR自增1。
(4)错P54清0指令只对累加器A操作,不能对寄存器操作。
(5)错P55求反指令同样只对累加器A操作,不能对寄存器操作。
(6)错P47-48 寄存器间不可传送数据,若想传送可通过累加器A。
(7)错P48 进栈指令PUSH后加8位数据寄存器的地址或SFR的地址,若想使用PUSH加数据指针。
DPTR,则要说明使用的部分,即DP0H(DP1H)或DP0L(DP1L)。
(8)对P59 P25 数据位传送指令可对SFR进行寻址,SFR可寻址的字节地址为0H或8H。
(9)错P59根据Acc.3可知,该指令为位操作数据传送指令,但其中一个操作数必须为进位标志C。
(10)对P61外部RAM(8位地址)传送到A。
(11)对P59 (26H).0内容传送到仅为标志位。
(12)错P55 RLC只对累加器A操作。
2.答:(A)对(B)对(C)错(D)错解析:(A)对P45 4. 立即数寻址方式就是直接在指令中给出操作数。
(B)对指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成是从取指令、分析指令到执行完所需的全部时间。
(C)错P44 2.指令中直接给出操作数的单元地址。
(D)错P45 3.寄存器Ri作为间接寻址器前接@。
3.答:A,PC,DPTR解析:P45 5.基址寄存器加变址寄存器间址寻址方式是以DPTR或PC作为基址寄存器,以累加器A 作为变址寄存器,并以两者的内容相加形成16为地址作为目的地址进行寻址的方式。
4.答:直接寻址方式和位寻址方式解析:P46 表3-1 直接寻址和位寻址的寻址空间都包含SFR。
5.答:操作码,操作数,操作码解析:P43 3.2一条指令通常由两部分组成:操作码和操作数。
单片机原理及应用第三章习题答案

习题三1.在MCS-51单片机中,寻址方式有几种?其中对片内RAM 可以用哪几种寻址方式?对片外RAM可以用哪几种寻址方式?答:寻址方式可分为数的寻址和指令寻址,数的寻址有:常数寻址(立即寻址)、寄存器数寻址(寄存器寻址)、存储器数寻址(直接寻址方式、寄存器间接寻址方式、变址寻址方式)和位寻址,指令的寻址有绝对寻址和相对寻址。
片内RAM寻址有:寄存器寻址、直接寻址方式和寄存器间接寻址方式。
片外RAM寻址有:寄存器间接寻址方式。
2.在对片外RAM单元寻址中,用Ri间接寻址与用DPTR 间接寻址有什么区别?答:片外数据存储器寻址中,用Ri间接寻址只能访问低端的256字节单元,而用DPTR作指针间接访问可访问整个64K字节。
3.在位处理中,位地址的表示方式有哪几种?答:1.直接位地址(00H~0FFH)。
例如:20H2.字节地址带位号。
例如:20H.3表示20H单元的3位。
3.特殊功能寄存器名带位号。
例如:P0.1表示P0口的1位。
4.位符号地址。
例如:TR0是定时/计数器T0的启动位。
4.写出完成下列操作的指令。
(1)R0的内容送到R1中。
MOV A,R0MOV R1,A(2)片内RAM的20H单元内容送到片内RAM的40H单元中。
MOV 40H,20H(3)片内RAM的30H单元内容送到片外RAM的50H单元中。
MOV A,30HMOV R0,#50HMOVX @R0,A(4)片内RAM的50H单元内容送到片外RAM的3000H 单元中。
MOV A,50HMOV DPTR,#3000HMOVX @DPTR,A(5)片外RAM的2000H单元内容送到片内RAM的20H 单元中。
MOV DPTR,#2000HMOVX A,@DPTRMOV 20H,A(6)片外RAM的1000H单元内容送到片外RAM的4000H 单元中。
MOV DPTR,#1000HMOVX A,@DPTRMOV DPTR,#4000HMOV @DPTR,A(7)ROM的1000H单元内容送到片内RAM的50H单元中。
单片机原理及应用第三章习题答案

单片机原理及应用第三章习题答案第一题:题目:什么是中断?中断是指在程序执行过程中,由于发生了某个特定事件,导致当前的程序需要暂时中断执行,转而去处理其他紧急或优先级更高的事件。
中断可以提高系统的实时性和响应速度。
第二题:题目:请简述中断的分类及其优缺点。
中断可以分为外部中断和内部中断。
外部中断:外部中断是通过外部设备触发的中断,例如按键输入、定时器溢出等。
外部中断的优点是能够及时响应外部事件,缺点是响应时间有一定延迟,并且可能会引起系统的不稳定性。
内部中断:内部中断是通过程序内部指令触发的中断,例如软件中断、硬件错误等。
内部中断的优点是响应时间几乎可以忽略,缺点是需要消耗较多的系统资源。
第三题:题目:简述中断的处理过程。
中断的处理过程一般包括以下几个步骤:1. 中断请求发生:外部设备或程序内部触发中断请求。
2. 中断响应:CPU接收到中断请求后,保存当前程序的执行状态,暂停当前程序的执行,并跳转到中断服务程序。
3. 中断服务程序执行:中断服务程序是为了处理中断事件而编写的程序,它会根据中断类型执行相应的操作,例如处理外部设备的输入、更新系统状态等。
4. 中断处理完成:中断服务程序执行完后,将恢复之前保存的执行状态,继续执行被中断的程序。
第四题:题目:请简述常见的中断优先级判断方式。
常见的中断优先级判断方式有两种:硬件优先级判断和软件优先级判断。
硬件优先级判断:硬件优先级判断是通过硬件电路来实现的,每个中断信号都有一个对应的硬件中断优先级,优先级高的中断信号将打断当前正在执行的中断信号。
软件优先级判断:软件优先级判断是通过编程的方式来实现的,每个中断信号都有一个对应的中断优先级,在中断服务程序中通过程序代码来判断当前是否有更高优先级的中断请求。
第五题:题目:请说明中断向量表的作用。
中断向量表是一个存储中断处理程序入口地址的数据结构,它将每个中断编号与对应的中断服务程序的入口地址进行映射。
当一个中断请求发生时,中断向量表将根据中断编号找到对应的中断服务程序的入口地址,从而实现中断的处理。
单片机原理及运用_第三章答案解析

第三章单片机的汇编语言与程序设计习题1.设内部RAM中59H单元的内容为50H,写出当执行下列程序段后寄存器A,R0和内部RAM中50H,51H单元的内容为何值?MOV A,59HMOV R0,AMOV A,#00HMOV @R0,AMOV A,#25HMOV 51H,AMOV 52H,#70H解:MOV A,59H ;A=50HMOV R0,A ;RO=50HMOV A,#00H ;A=00HMOV @R0,A ;50H=00HMOV A,#25H ;A=25HMOV 51H,A ;51H=25HMOV 52H,#70H ;52H=70H所以:A=25H R0=50H ;50H=00H 51H=25H2.请选用合适的指令对P0口内容做修改(例如使P0.0~P0.3不变,P0.4~P0.7为0)。
解:MOV A,P0ANL A,0fhMov P0,A3.试问外部数据存储器和程序存储器可以用哪些指令来实现?举例说明。
解:访问外部数据存储器指令有:MOVX @DPTR,A MOVX DPTR,#0100H MOV @DPTR,AMOVX A,@DPTR MOVX DPTR,#0200H MOV A,@DPTRMOVX A,@Ri MOVX A,@R0MOVX @Ri,A MOVX @RI,A访问程序存储器指令有:MOVX A,@A+PCMOVX A,@A+DPTR4.设堆栈指针SP中的内容为60H,内部RAM中30H和31H单元的内容分别为24H和10H,执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化?PUSH 30HPUSH 31HPOP DPLPOP DPHMOV 30H,#00HMOV 31H,#0FFH解:PUSH 30H ;61H=24HPUSH 31H ;62=10H SP=62HPOP DPL ;DPL=10HPOP DPH ;DPH=24H SP=60HMOV 30H,#00H ;30H=00HMOV 31H,#0FFH ;31H=0FFH5.设(A)=40H,(R1)=23H,(40H)=05H。
单片机原理与应用技术第三章课后答案更新版

3-11若(R1)=30H,(A)=40H,(30H)=60H,(40H)=08H。
试分析执行下列程序段后上述各单元内容的变化。
MOV A,@R1 ;(A)=60H 其余不变MOV @R1,40H ;(30H)=40H 其余不变MOV 40H,A ; (40H) =60H 其余不变MOV R1,#7FH ;(R1)=7FH 其余不变3-12下列程序段汇编后,从3000H开始的各有关存储单元的内容将是什么?地址是3000H的单元存放‘S’的ascii码53H地址是3001H的单元存放‘T’的ascii码54H地址是3002H的单元存放‘A’的ascii码41H地址是3003H的单元存放‘R’的ascii码52H地址是3004H的单元存放‘T’的ascii码54H地址是3005H的单元存放34H地址是3006H的单元存放32H地址是3007H的单元存放00H地址是3008H的单元存放40H地址是3009H的单元存放00H地址是300AH的单元存放90H3-13若(A)=E8H,(R0)=40H,(R1)=20H,(R4)=3AH,(40H)=2CH,(20H)=0FH,试写出下列各指令独立执行后有关寄存器和存储单元的内容?若该指令影响标志位,试指出CY、AC、和OV的值。
(1)MOV A,@R0 ; (A)=2CH 其余不变(2)ANL 40H,#0FH ;(40H)=0CH(3)ADD A,R4; AC=1,OV=0,CY=1,(A)=22H(4)SWAP A ;(A)=8EH(5)DEC @R1 ; (20H)=0EH(6)XCHD A,@R1 ;(A)=EFH,(20H)=08H3-14若(50H)=40H,试写出执行以下程序段后累加器A、寄存器R0及内部RAM的40H、41H、42H单元中的内容各为多少?M OV A,50H ;(A)=40HMOV R0,A ;(R0)=40HMOV A,#00H ;(A)=0MOV @R0,A ;(40H)=0MOV A, 3BH ;(A)=(3BH)MOV 41H,A ;(41H)=(3BH)MOV 42H,41H ;(42H)=(3BH)3-18设自变量X为一无符号数,存放在内部RAM的VAX单元,函数Y存放在FUNC单元。
林立张俊亮版单片机原理及应用第三章答案

第三章习题1.MCS-51单片机有哪几种寻址方式?适用于什么地址空间?答: MCS-51单片机共有7种寻址方式:直接寻址、寄存器寻址、寄存器间接寻址、立即寻址、变址寻址、位寻址和相对寻址。
直接寻址:操作数所在存储单元地址由指令直接给出,仅限于在片内RAM 中寻址。
寄存器寻址:指令中以通用寄存器的形式表示操作数。
通用寄存器这里特指:A、B、DPTR、R0-R7、CY。
操作数在编码指定的寄存器中,适用于片内00H 至1FH的32个字节,用R0,…,R7表示。
注意B寄存器仅在乘法和除法指令中属于寄存器寻址。
寄存器间接寻址:指令指出某一个寄存器的内容作为操作数地址,操作数地址在编码指定的寄存器中,适用于片内RAM的全部空间,它是一种二次寻找操作数地址的寻址方式。
立即寻址:操作数在指令中直接给出,并与操作码的机器码一起存放在程序存储器中,程序执行时可以立即得到,而不需要另外寻找。
适用于用8位二进制立即数对片内RAM所有地址单元赋值,也可用16位二进制立即数对DPTR赋值,有些编译器中也可用十进制表示。
变址寻址:以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器,将基址寄存器与变址寄存器的内容相加形成操作数的实际地址的一种寻址方式,变址寻址方式适用于程序存储器ROM。
位寻址:指令中直接给出操作数所在单元的位地址,适用于片内RAM里的部分存储单元和某些特殊功能寄存器。
相对寻址:为相对转移指令而设,以PC内容为基址,指令中直接给出转移的相对偏移量,其转移目标只能形成-128至+127字节范围内的跳转。
2.MCS-51单片机的PSW程序状态字中无ZERO(零)标志位,怎样判断某内部数据单元的内容是否为零?答:由于MCS-51单片机的PSW程序状态字中无ZERO(零)标志位,无法直接进行判断,则需要将PSW中的数字编程送到A累加器中,如MOV A,PSW再判断A中的数字是否为零来确定其值是否为零。
3.编程将内部RAM的20H--30H单元内容清零。
单片机原理及应用第三章课后答案

第三章作业答案2. MCS-51有(4)个8位并行I/O口,在作为通用I/O口使用时P0~P3是准双向口,所以由输出转输入时必须先写入(1)。
6. 设(TMOD)=0A5H,则定时器T0的状态是( 方式1计数),定时器T1的状态是( 方式2定时)。
或设(TMOD)=0A5H,则定时器T0的状态是( 软件控制的16位计数器),定时器T1的状态是(软硬件控制的可自动重装初值的8位定时器)。
27.请写出1INT为低电平触发的中断系统初始化程序。
解:INT为低电平触发的中断系统初始化程序如下:1ORG 0000HLJMP MAINORG 0013HLJMP INTN1ORG 0100HMAIN:MOV SP,#60HSETB EASETB EX1;开1INT中断CLR PX1 ;令1INT为低优先级CLR IT1 ;令1INT为电平触发SJMP $INTN1:……RETIEND用MOV指令实现:MOV IE,#84HANL IP,#0FBH(或ORL IP,#04H)ANL TCON,#0FBH28.MCS-51单片机响应中断后,写出中断服务子程序的入口地址。
解:36.使用一个定时器,如何通过软硬结合方法实现较长时间的定时?解:设定好定时器的定时时间,采用中断方式用软件进行溢出次数累计,从而得到较长的定时时间,定时时间=定时器的定时时间×软件累计的溢出次数。
37.利用定时器输出周期为2 ms的方波, 设单片机晶振频率为6 MHz。
试编程实现之。
解:选用定时器/计数器T0 作定时器,工作在方式1,输出为P1.0 引脚,2 ms 的方波可由1 ms的高低电平相间隔而成,因而只要每隔1 ms对P1.0 取反一次即可得到这个方波。
初值的计算如下:T0=12/(6×106)= 2×10-6STC=M-T/T0=216-1×10-3/2×10-6=65536-500=65036=FE0CH当定时器/计数器采用方式0时,初值为:TC=M-T/T0=213-1×10-3/2×10-6=8192-500=7692=1E0CH,则真正的16位计数初值为:1E0CH(高8位,低5位)利用定时器/计数器时,必须用文字说明工作方式的设置,计算初值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章作业答案
2. MCS-51有(4)个8位并行I/O口,在作为通用I/O口使用时P0~P3是准双向口,所以由输出转输入时必须先写入(1)。
6. 设(TMOD)=0A5H,则定时器T0的状态是( 方式1计数),定时器T1的状态是( 方式2定时)。
或
设(TMOD)=0A5H,则定时器T0的状态是( 软件控制的16位计数器),定时器T1的状态是(软硬件控制的可自动重装初值的8位定时器)。
27.请写出1
INT为低电平触发的中断系统初始化程序。
解:
INT为低电平触发的中断系统初始化程序如下:
1
ORG 0000H
LJMP MAIN
ORG 0013H
LJMP INTN1
ORG 0100H
MAIN:MOV SP,#60H
SETB EA
SETB EX1;开1
INT中断
CLR PX1 ;令1
INT为低优先级
CLR IT1 ;令1
INT为电平触发
SJMP $
INTN1:……
RETI
END
用MOV指令实现:
MOV IE,#84H
ANL IP,#0FBH(或ORL IP,#04H)
ANL TCON,#0FBH
28.MCS-51单片机响应中断后,写出中断服务子程序的入口地址。
解:
36.使用一个定时器,如何通过软硬结合方法实现较长时间的定时?
解:
设定好定时器的定时时间,采用中断方式用软件进行溢出次数累计,从而得到较长的定时时间,定时时间=定时器的定时时间×软件累计的溢出次数。
37.利用定时器输出周期为2 ms的方波, 设单片机晶振频率为6 MHz。
试编程实现之。
解:
选用定时器/计数器T0 作定时器,工作在方式1,输出为P1.0 引脚,2 ms 的方波可由1 ms的高低电平相间隔而成,因而只要每隔1 ms对P1.0 取反一次即可得到这个方波。
初值的计算如下:T0=12/(6×106)= 2×10-6S
TC=M-T/T0=216-1×10-3/2×10-6=65536-500=65036=FE0CH
当定时器/计数器采用方式0时,初值为:
TC=M-T/T0=213-1×10-3/2×10-6=8192-500=7692=1E0CH,
则真正的16位计数初值为:1E0CH(高8位,低5位)
利用定时器/计数器时,必须用文字说明工作方式的设置,计算初值。
程序如下:
ORG 0000H
LJMP T0INT ;T0中断入口
START:MOV SP,#60H ;初始化程序
MOV TL0,#0CH ;T0赋初值
MOV TH0,
MOV TMOD,#01H ;定时器/计数器0工作于方式1
SETB TR0 ;启动T0
SETB ET0 ;开T0中断
SETB EA ;开总允许中断
T0INT:PUSH ACC
PUSH PSW
MOV TL0,
MOV TH0,#0FEH
SETB TR0 ;启动T0
POP PSW
POP ACC
RETI
END
当采用查询方式时:
兰色字部分应该为:
LP1: JBC TF0, LP2
SJMP LP1
LP2: CPL P1.0
MOV TL0,#0CH
MOV TH0,
SETB TR0
SJMP LP1
END
48.某异步通信接口按方式3传送,已知其每分钟传送3600个字符,计算其传送波特率。
解:11(位)×3600(字符/分钟)=39600b/分钟=660b/s (方式3为每个字符11位)。
49.利用8051串行口控制8位发光二极管工作,要求8位发光二极管每隔1s交替地全部亮、灭,画出电路图并编写程序。
解:
电路图如下:
程序如下:
ORG 0000H
LJMP START
ORG 0030H
START: MOV SP,#60H
MOV SCON,#00H
MOV A,#0FFH
LP1: MOV SBUF,A
JNB TI,$
CLR TI
ACALL DELAY
CPL A
SJMP LP1
DELAY:MOV R7,#8 ;1s延时程序
D1:MOV R6,#250
D2:MOV R5,#248
D3:DJNZ R5,D3
NOP
DJNZ R6,D2
DJNZ R7,D1 ;((248×2+1+1+2)×250+1+2)×8+1+2=1000027μs≈1s
RET
END
用定时器实现定时,程序如下:
设CPU主频为12MHz,定时1s= 1000ms= 50ms ×20次
则计数器初值= 216-50ms/1μs=65536-50000 =15536=3CB0H
ORG 0000H
LJMP START
ORG 000BH
LJMP T0INT ; T0中断入口
ORG 0030H
START: MOV SP,#60H
MOV R7, #00H ; 软件计数器预清0
MOV TMOD, # 01H ; 定时器/计数器0工作于方式1
MOV TH0, #3CH ; 设置定时器/计数器的初值
MOV TL0, #0B0H
SETB EA ; 开总中断允许
SETB ET0 ; 开定时器/计数器0中断允许
SETB TR0 ; 启动定时器/计数器0
MOV SCON,#00H
MOV A,#0FFH
LP0: MOV SBUF,A
JNB TI,$
CLR TI
SJMP LP0
T0INT: PUSH PSW ; 将PSW入堆栈保护
INC R7 ; 软件计数器加1
CJNE R7, #20, LP2 ; 软件计数器单元中的值到了20了吗?
到了,继续执行; 否则,转入LP2
LP1: CPL A ; 到了,A取反,实现闪烁
MOV R7, #00H ; 清软件计数器
LP2: MOV TH0, #3CH ; 重置定时器/计数器的初值
MOV TL0, #0B0H
SETB TR0
POP PSW ; 恢复PSW和ACC
RETI ; 中断返回
END。