单片机课后习题答案最终修改版

  • 格式:docx
  • 大小:217.76 KB
  • 文档页数:9
第二章
1、MCS-51系列单片机内部有哪些主要的逻辑部件?
答:MCS-51系列单片机内部主要逻辑部件有:算术/逻辑部件ALU、累加器A(有时也叫ACC)、只读存储器ROM、随即存储器RAM、指令寄存器IR、程序计数器PC、定时器/计数器、I/O接口电路、程序状态寄存器PSW、寄存器组。
3、MCS-51内部RAM区功能如何分配?如何选用4组工作寄存器中的一组作为当前的工作寄存器组?位寻址区域的字节地址范围是多少?
答:(1)汇编起始地址命令:ORG
格式: ORG 地址
功能:规定程序的起始地址,可以使程序、子程序和数据块存放在存储器的任何位置,省略时起始地址从0000H开始。
(2)源程序结束伪指令:END
格式:<标号:>END<表达式>
功能:源程序汇编终止。在END之后,所有的汇编语言均不作处理。如果没有这条执行,汇编程序通常会给出“警告”指示。
INC DPTR;调整指针,指向下一个数据
DJNZ R1 ,LOOP;计数器循环
SJMP $;暂停
11、设系统晶体振荡频率为12MHz,请编写延时50ms的延时子程序。
答:由题意知,一个机器周期为1µs,50ms=2µs*250*100,采用双重循环编程如下所示:
DL50MS:MOV R4,#100
11、位地址7CH与字节地址7CH有哪些区别?位地址7CH具体在内存中什么位置?
答:位地址7CH与字节地址7CH在RAM中的位置不同,寻址方式也不同。位地址7CH在内部RAM区2FH中,可以位寻址;字节地址7CH在用户区中,只能按字节寻址。
第三章
2、什么是寻址方式?MCS-51单片机有哪几种寻址方式?
计数器范围为1-8192,如需再次定时或计数,需要用指令重置时间常数。
工作方式1:M1M2=01,与工作方式0基本相同,不同之处在于其为16位定时器/计数器,计数值围为1-65536,如需再次定时或计数,需要用指令重置时间常数。
工作方式2:M1M0=10,为可重装初值的8位定时器/计数器。把16位的计数器拆成两个8位计数器,TLi用作8位计数器,THi用来保存初值。每当TLi计满溢出时,可自动将THi的初值再装入TLi,继续计数,循环重复。其计数范围为1-256。
5、8031设有4个8为并行端口,若实际应用8为I/O口,应使用P0~P3中的哪个端口传送?16位地址如何形成?
答:(1)P1口是专门供用户使用的I/O口,是准双向接口,故可以使用P1口传送;(2)P0既可以做地址/数据总线使用,又可作通用I/O使用。一方面用来输出外部存储器或I/O的低八位地址,另一方面作为8位数据输入/输出口,故由P0口输出16位地址的低八位。(3)P2口作为通用I/O口使用,与P1口相同。当外接存储器或I/O时,P2口给出地址的高八位,故P2口输出16位地址的高八位。
答: START:MOV R1,#00H;R1为计数器
MOV DPTR,#1000H;设以1000H开始的首地址
LOOP:MOVX A,@DPTR;取外部RAM数
MOV DPH,#25H;设2500H地址
MOVX @DPTR,A;将外部RAM数存到2500为首的地址中
MOV DPH,#10H;重设以1000H为首地址的数据区
(5)预留存储区伪指令:DS
格式:<标号:>DS表达式
功能:从指定地址(即标号)开始,保留指定数目(表达式的值)的字节单元作为存储区,供程序运行使用(用于程序存储器)。
(6)位定义命令:BIT
格式:字符名称BIT位地址
功能:将位地址赋给字符名称。位地址为绝对地址或符号地址。
6、外部RAM中从1000H到10FFH有一个数据区,现在将它传送到外部RAM中2500H单元开始的区域中,编写有关程序。
工作方式1:SM1SM0=01,串行口被定义为波特率可变的8位异步通信接口。方式1的波特率=(2smod/32)*定时器T1的溢出率。
特点为:一帧信息为10位,其中1位起始位“0”,8位数据位(地位在前)和一位停止位“1”,其波特率可变。
工作方式2:SM1SM0=10,串行口被定义为9位异步通信接口。
MOV TL0,#0F6H
MOV TH0,#0F6H;置定时初值
SETB P1.4
SETB TR0;启动T0工作
LOOP: MOV R0, #4;由于是4:1,故计数周期定为4
WAIT1: JNB TF0,WAIT1;等待定时器T0溢出标志位
CLR TF0 //软件清零TF0
DJNZ R0,WAIT1;判断R0是否等于0,即判断是否循环了四次
MOV A,@DPTR
10、已知内部RAM中,(A)=35H,(R0)=6FH,(P1)=0FCH,(SP)=0C0H。分别写出下列各条指令的执行结果。
(1)MOV R0,A;(R0)=35H
(2)MOV @R0,A;(6FH)=35H
(3)MOV A,#90H;(A)=90H
(4)MOV A,90H;(A)=(90H)
DELAY1: MOV R3,#250
DELAY2:DJNZ R3,DELAY2
DJNZ R4,DELAY1
RET
12、分析下列程序中各条指令的作用,并说明运行后相应寄存器和内存单元的结果。
答:MOV A,#34H ;(A)=34H
MOV B,#0ABH ;(B)=0ABH
MOV 34H,#78H ;(34H)=78H
答:寻址方式是指令中确定操作数的形式。MCS-51单片机有立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址。
3、指出下列指令中画线的操作数的寻址方式?
MOV R0,#55H;立即寻址
MOV A,2AH;直接寻址
MOV A,@R1;寄存器间接寻址
MOV @R0,A;寄存器寻址
这种工作方式可省去用户软件中重装初值的程序,并可产生相当精度的定时时间,特别适合于产生周期性脉冲及作为串行口波特率发生器,缺点是计数长度太小。
工作方式3:M1M0=11,该工作方式只适用于T0。T0在该工作方式被分成两个相互独立的8位计数器,其中TL0既可以作计数器使用,又可以作定时器使用。而TH0只能作8位定时使用,并占用了T1的控制启动位TR1和溢出标志位TF1。T1只能工作在方式0、方式1或方式2,只能用在不需中断控制的场合。
方式2的波特率=(2smod/64) *振荡器频率
特点是:一帧信息为11位,1位起始位“0”,8位数据位(低位再前),1位可编程为“1”或“0”的第9位数据,1位停止位“1”。
答:由题意知,欲产生周期为100µs,占空比为4:1的矩形脉冲,一个机器周期是2µs。
(28-x)2µs=20µs,x=246=0F6H.
即TH0=0F6H。TMOD初始化为02H。
用TCON寄存器的TR0位来启动(=1)或停止(=0)定时器。
程序设计如下(查询方式)
MOV TMOD,#02H;T0工作在方式2
XCH A,R0 ;(A),(R0)互换
XCH A,@R0 ;(A),((R0))互换
XCH A,B ;(A),(B)互换
SJMP $;暂停
第五章
2、8051单片机的定时器/计数器有哪几种工作方式?各有什么特点?
答:8051单片机的定时器/计数器有4种工作方式,分别是:
工作方式0:M1M0=00,为13位定位器/计数器,其计数器由THi的全8位和TLi的低5位构成,TLi的高3位未用。当TLi的低5位计满时,向THi进位,THi溢出后对中断标志位TFi置“1”,并申请中断。Ti是否溢出可用软件查询TFi是否为“1”。
答:MCS-51单片机内部RAM共128B,地址空间为00H-7FH,按照功能分为用户区、位寻址区和寄存器工作区。00H~1FH是32B单元的4个工作寄存器组,单片机执行程序时,具体使用哪一组是通过对PSW的RS1、RS0两位的设置来实现的。可以位寻址的地址范围是20H~2FH的16B共128位的内部RAM区,按字节寻址的地址范围是30H~7FH共80B的内部RAM区。
当振荡周期为10MHz时,一个机器周期为12/10MHz=1.2us
9、在MCS-51扩展系统中,片外程序存储器和片外数据存储器地址一样时,为什么不发生冲突?
答:(1)、程序存储器和数据存储器物理上是独立的,寻址片外程序存储器和片外数据存储器的寻址方式、寻址空间和控制信号不同。
(2)、对外部程序存储器访问使用MOVC指令;对外部数据存储器访问使用MOVX指令。
8、编程实现两个一字节压缩型BCD码的减法。设被减数地址在R0中,减数在R1中,差仍存在于被减数地址单元中。
答:CLR C
MOV A,#9AH
SUBB A,@R1
ADD A,@R0
DA A
MOV @R0,A
9、把片外数据存储器8000H单元中的数据读到累加器中,应使用哪几条指令?
答:MOV DPTR,#8000H
(3)赋值伪指令:EQU
格式:<标号:>EQU 表达式
功能:将表达式的值赋给字符名称。表达式可以是常数、地址、标号和表达式。赋值之后的字符名称可以在程序中使用。
(4)定义数据命令:DB、DW
格式:<标号:>DB/DW字节/字数据项或项表
功能:从指定地址(即标号)开始,在程序存储器中定义字节或字数据。
DIV A,B;寄存器寻址
ADD A,R7;寄存器寻址
MOVX A,@DPTR;寄存器间接寻址
MOV DPTR,#0123H;立即寻址
MOVC A,@A+DPTR;基址加变址寻址
INC DPTR;寄存器寻址
7、为什么要进行十进制调整?调整方法是什么?
答:十进制表示用BCD码规则,相加大于10进位;运算用二进制规则,相加大于16进位。所以要进行十进制调整。调整方法:结果低四位大于9或者标志位AC=1,则低四位加06H调整。高四位大于9或标志位CY=1,则高四位加60H。