单片机原理与应用戴胜华课后答案文档格式.docx
- 文档编号:18523714
- 上传时间:2022-12-19
- 格式:DOCX
- 页数:12
- 大小:23.51KB
单片机原理与应用戴胜华课后答案文档格式.docx
《单片机原理与应用戴胜华课后答案文档格式.docx》由会员分享,可在线阅读,更多相关《单片机原理与应用戴胜华课后答案文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
P3.6WR(外部数据存储器写信号)P3.7RD(外部数据存储器读信号)
11、位地址7CH与字节地址7CH有哪些区别?
位地址7CH具体在内存中什么位置?
P14
位地址7CH与字节地址7CH在RAM中的位置不同,寻址方式也不用。
位地址7CH在内部RAM区2FH中,可以位寻址;
字节地址7CH在用户区中,只能按字节寻址。
第三章
2、什么是寻址方式?
MCS-51单片机有哪几种寻址方式?
P36
寻址方式是指令中确定操作数的形式。
MSC-51单片机有立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址。
3、指出下列指令中画线的操作数的寻址方式?
MOVR0,#55H;
立即寻址
MOVA,2AH;
直接寻址
MOVA,@R1;
寄存器间接寻址
MOV@R0,A;
寄存器寻址
DIVA,B;
ADDA,R7;
MOVXA,@DPTR;
MOVDPTR,#0123H;
MOVCA,@A+DPTR;
基址加变址寻址
INCDPTR;
7、为什么要进行十进制调整?
调整方法是什么?
P49
十进制表示用BCD码规则,相加大于10进位;
运算用二进制规则,相加大于16进位。
所以要进行十进制调整。
调整方法:
数的低四位大于9或标志位AC=1,则低四位加06H调整。
高四位大于9或标志位CY=1则高四位加60H。
8、编程实现两个一字节压缩型BCD码的减法。
设被减数地址在R0中,减数地址在R1中,差仍存于被减数地址单元中。
?
CLRC
MOVA,#9AH
SUBBA,@R1
ADDA,@R0
DAA
MOV@R0,A
9、把片外数据存储器8000H单元中的数据读到累加器中,应用哪几条指令?
P45例3.7
MOVDPTR,#8000H
MOVA,@DPTR
10、已知内部RAM中,(A)=35H,(R0)=6FH,(P1)=0FCH,(SP)=0C0H。
分别写出下列各条指令的执行结果。
P41-
(1)MOVR0,A;
(R0)=35HP41
(2)
(2)MOV@R0,A;
(6FH)=35HP42(4)
(3)MOVA,#90H;
(A)=90HP41
(1)
(4)MOVA,90H;
(A)=(90H)P41
(1)
(5)MOV80H,#81H;
(80H)=81HP42(3)
(6)MOVX@R0,A;
(6FH)=35HP452
(7)PUSHA;
(0C1H)=35H,(SP)=0C1HP43(6)
(8)SWAPA;
(A)=53HP44(8)
(9)XCHA,R0;
(A)=6FH,(R0)=35HP44(7)
第四章
2、在汇编语言程序设计中,为什么要采用标号来表示地址?
标号的构成原则是什么?
使用标号有什么限制?
注释段起什么作用?
P69
采用标号便于在编写程序时,实现跳转、循环等程序控制转移。
标号位于语句的开始,由以字母开头的字母和数字组成,它代表语句的地址。
标号与指令间要用冒号“:
”分开,标号与“:
”之间不能有空格,“:
”与操作码之间可以有空格。
注释段放在语句的最后,以冒号开始,为不可执行部分,对程序进行解释性说明。
3、MCS-51汇编语言有哪几条常用的伪指令?
各起什么作用?
P70-P72
MCS-51汇编语言有以下常用的伪指令:
1、设置起始地址伪指令ORG(Origin)
格式:
ORG起始地址
作用:
ORG伪指令总是出现在每段源程序或数据块的开始,可以使程序、子程序和数据快存放在存储器的任何位置。
若在源程序中不放ORG指令,则汇编将从0000H单元开始编排目标程序。
ORG定义控件地址应由从小到大,且不能重叠。
2、定义字节伪指令DB(DefineByte)
<
标号:
>
DB<
项或项表>
把项或项表的数值存入从标号开始的连续单元中。
3、定义字伪指令DW(DefineWord)
DW<
基本含义与DB相同,不同的是DW定义16位数据。
4、预留存储区伪指令DS(DefineStorage)
DS<
表达式>
由标号指定的单元开始,定义一个存储区,以给程序使用。
存储区内预留的存储单元数由表达式的值决定。
5、为标号赋值伪指令EQU
EQU数或汇编符号
将操作数中的地址或数据赋给标号字段的标号,故又称为等值指令。
6、数据地址赋值伪指令DATA
DATA<
数或表达式>
其功能和EQU类似,但有以下区别。
(1)用DATA定义的标识符汇编时作为标号登记在符号表中,所以可以先使用后定义;
而EQU定义的标识符必须先定义后使用。
(2)用EQU可以把一个汇编符号赋给字符名,而DATA只能把数据赋给字符名。
(3)DATA可以把一个表达式赋给字符名,而DATA只能把数据赋给字符名。
(4)DATA常在程序中用来定义数据地址。
7、位地址符号伪指令BIT
字符名BIT位地址
把位地址赋给字符名称
8、源程序结束伪指令END
END<
END命令通知汇编程序结束汇编。
在END之后,所有的汇编语言指令均不作处理。
如果没有这条指令,汇编程序通常会给出“警告”指示。
6、外部RAM中从1000H到10FFH有一个数据区,现在将它传送到外部RAM中2500H单元开始的区域中,编写有关程序。
COMPAREWITHP80例4.10
START:
MOVR0,#00H
MOVDPTR,#1000H
LOOP:
MOVXA,@DPTR
MOVDPH,#25H
MOVX@DPTR,A
MOVDPH,#10H
INCDPTR
INCR0
DJNZR0,LOOP
SJMP$
11、设系统晶体振荡频率为12MHz,请编写延时50ms的延时子程序。
P81例4.11
使用12MHz晶振时,1个机器周期为1us,一条DJNZ耗时2us,采用双重循环方法,50ms=2us*250*100,程序如下:
DL50MS:
MOVR4,#100
DELAY1:
MOVR3,#250
DELAY2:
DJNZR3,DELAY2
DJNZR4,DELAY1
RET
12、分析下列程序中各条指令的作用,并说明运行后相应寄存器和内存单元的结果。
MOVA,#34H;
(A)=34H
MOVB,#0ABH;
(B)=0ABH
MOV34H,#78H;
(34H)=78H
XCHA,R0;
(A),(R0)互换
XCHA,@R0;
(A),((R0))互换
XCHA,B;
(A),(B)互换
SJMP$;
暂停
第五章:
2、8051单片机的定时器/计数器有哪几种工作方式?
各有什么特点?
P105
8051单片机的定时器/计数器有4种工作方式,分别是:
工作方式0:
M1M0=00,为13位定位器/计数器,其计数器由THi的全8位和TLi的低5位构成,TLi的高3位未用。
当TLi的低5位计满时,向THi进位,THi溢出后对中断标志位TFi置“1”,并申请中断。
Ti是否溢出可用软件查询TFi是否为“1”。
计数器范围为1-8192,如需再次定时或计数,需要用指令重置时间常数。
工作方式1:
M1M2=01,与工作方式0基本相同,不同之处在于其为16位定时器/计数器,计数值范围为1-65536,如需再次定时或计数,需要用指令重置时间常数。
工作方式2:
M1M0=10,为可重装初值的8位定时器/计数器。
把16位的计数器拆成两个8位计数器,TLi用作8位计数器,THi用来保存初值。
每当TLi计满溢出时,可自动将THi的初值再装入TLi,继续计数,循环重复。
其计数范围为1-256。
这种工作方式可省去用户软件中重装初值的程序,并可产生相当精度的定时时间,特别适合于产生周期性脉冲及作为串行口波特率发生器,缺点是计数长度太小。
工作方式3:
M1M0=11,该工作方式只适用于T0。
T0在该工作方式被分成两个相互独立的8位计数器,其中TL0既可以作计数器使用,又可以作定时器使用。
而TH0只能作8位定时使用,并占用了T1的控制启动位TR1和溢出标志位TF1。
T1只能工作在方式0、方式1或方式2,只能用在不需中断控制的场合。
工作方式3是为了在使用串行口时,需要两个独立的计数器而特别提供的。
因为此时把定时器1规定用作串行通信的波特率发生器,并设定为工作方式2,使用时只要将计数器初值送到计数器寄存器即开始工作,启动后不需要软件干预,也不使用溢出标志。
9、设晶振频率为6MHz。
编程实现:
使用定时器T0工作在方式2、定时,在P1.4输出周期为100us,占空比为4:
1的矩形脉冲。
使用晶体振荡器频率为6MHz时,1个机器周期为2us。
欲使占空比为4:
1,可将矩形脉冲分为5份,前4份P1.4输出高电平,第5份输出低电平。
计数初值:
计数初值满足:
(256-Y)*2us=20us,解得计数初值为Y=246=0F6H,则TH0=TL0=0F6H。
TMOD寄存器定义:
D7
D6
D5
D4
D3
D2
D1
D0
GATE
C/
M1
M0
定时器1
定时器0
定时器工作方式定义:
工作方式
说明
13位定时器/计数器
1
16位定时器/计数器
2
可重装8位定时器/计数器
3
T0分成两个8位定时器/计数器,T1停止计数
定时器0,定时方式2,故TMOD设置:
00000010=02H,。
程序如下:
ORG2000H
START:
MOVTMOD,#02H//定时器0,定时方式2
MOVTL0,0F6H//初值送TL0
MOVTH0,0F6H//初值送TH0
SETBP1.4//P1.4置高
SETBTR0//允许T0计数
MOVR0,#4//由于是4:
1,故计数周期定为4
WAIT1:
JNBTF0,WAIT1//等待定时器T0溢出标志位
CLRTF0//软件清零TF0
DJNZR0,WAIT1//判断R0是否等于0,即判断是否循环了四次
CPLP1.4//对P1.4取反
WAIT2:
JNBTF0,WAIT2//等待定时器T0溢出标志位,即判断是否循环一次
CPLP1.4//对P1.4再次取反
SJMPLOOP//程序循环运行
第六章
2、MCS-51单片机的串行口共有哪几种工作方式?
各有什么特点和功能?
P129
MCS-51单片机的串行口共有以下四种工作方式:
SM1SM0=00,为同步移位寄存器。
当一个数据写入串行口发送缓冲器时,串行口即将8位数据以fosc/12的固定波特率从RXD引脚输出,低位在先,TXD为移位脉冲信号输出端。
发送完8位数据后中断标志位T1置“1”。
特点是:
移位寄存器的发送和接收以8位为一帧,不设起始位和停止位,低位在前高位在后,波特率固定,一个机器周期移位一次。
SM1SM0=01,串行口被定义为波特率可变的8位异步通信接口。
方式1的波特率=(2smod/32)x定时器T1的溢出率
特点为:
一帧信息为10位,其中1位起始位“0”,8位数据位(地位在前)和一位停止位“1”,其波特率可变。
SM1SM0=10,串行口被定义为9位异步通信接口。
方式2的波特率=(2smod/64)x振荡器频率
一帧信息为11位,1位起始位“0”,8位数据位(低位再前),1位可编程为“1”或“0”的第9位数据,1位停止位“1”。
SM1SM0=11,串行口被定义为波特率可变的9位异步通信方式,除了波特率外,方式3和方式2完全相同。
方式3的波特率=(2smod/32)x定时器T1的溢出率
特点:
一帧信息为11位,1位起始位“0”,8位数据位(低位在先),1位可编程为“1”或“0”的第9位数据,1位停止位“1”。
3、MCS-51单片机4种工作方式的波特率应如何确定?
P134
MCS-51单片机波特率的确定方法:
(1)方式0的波特率=fosc/12
(2)方式1的波特率=(2smod/32)x定时器T1的溢出率。
(3)方式2的波特率=(2smod/64)x振荡器频率
(4)方式3的波特率=(2smod/32)x定时器T1的溢出率
7、请用查询法编写程序实现串行口工作方式1下的发送程序。
设单片机主频为11.0592MHz,波特率为1200bps、发送数据缓冲区在外部RAM,起始地址为1000H,数据块长度为30B,采用偶校验(其他条件自设)。
1)设数据为ASCII码形式,最高位作为奇偶校验位。
2)T1作为波特率发生器,工作于方式2。
故,TMOD=20H;
3)设SMOD=0。
4)串行口工作在方式1
SCOD寄存器定义:
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
串行口工作方式定义:
方式简单描述
波特率
移位寄存器I/O
主振频率/12
8位UART
可变
9位UART
主振频率/32或主振频率/64
故,SCON=40H;
5)波特率为1200bps
通过计算得T1的时间常数为0E8H。
ORG1000H
START:
MOVTMOD,#20H;
T1工作方式2
MOVTL1,#0E8H
MOVTH1,#0E8H
MOVPCON,#00H;
SMOD=0波特率不倍增
SETBTR1;
启动T1
MOVSCON,#40H;
串行口工作方式1
MOVDPTR,#1000H;
MOVR2,#30;
计数值30
LOOP:
MOVXA,@DPTR
MOVC,P;
送奇偶标志
MOVACC.7,C;
MOVSBUF,A;
发送字符
WAIT:
JNBTI,WAIT;
CLRTI;
DJNZR2,LOOP
AJMPSTART
第七章
1、MCS-51有几个中断源?
有几级中断优先级?
各中断标志如何产生?
又如何清除?
P149
5个中断源:
2个外部中断INT0、INT1,3个内部中断T0、T1、串行口。
2个优先级:
高级中断和低级中断,由用户定义。
中断标志的产生:
(1)外部中断可以设置边沿触发或者电平触发,边沿触发进入中断程序后硬件自动清中断标志,电平触发需要软件清标志位;
(2)定时器T0,T1计数溢出产生中断,进入中断程序硬件自动清标志位;
(3)串行口发送完成或者接收到数据就触发中断,由于是两个中断标志共享一个中断向量,所以需要在中断程序里由软件判断是发送中断还是接受中断,并且只能由软件清标志位;
中断请求的清除:
(1)定时中断由硬件自动撤除定时中断响应后,硬件自动把标志位(TFx)清零。
(2)外部中断的自动与强制撤除
若外部中断以脉冲方式触发,则由硬件自动地把标志位(IEx)清零。
24若以电平方式触发,则需由外部电路和软件配合撤除。
(3)串行中断软件撤除CLRTI;
CLRRI;
2、什么是中断优先级?
优先级的处理原则是什么?
P151
CPU一般与多个中断源相连,因此有多个中断同时发生的可能,为使系统能及时响应并处理发生的所有中断,系统根据引起中断事件的重要性和紧迫程序,将中断源分为若干个级别,称作中断优先级;
中断优先级的处理原则:
1、低优先级中断请求不能打断高优先级的中断服务;
但高优先级中断请求可以打断低优先级的中断服务,从而实现中断嵌套。
2、如果一个中断请求已被响应,则同级的其他中断响应将被禁止。
3、如果同级的多个请求同时出现,则按CPU查询次序确定哪个中断请求被响应。
其查询次序为:
外部中断0→定时中断0→外部中断1→定时中断1→串行中断。
8试编写一段对中断系统初始化的程序,使之允许INT0、INT1、T0和串行口中断,且使串行口中断为高优先级中断。
P150、P151
允许INT0、INT1、T0和串行口中断
中断控制寄存器IE定义:
EA
ET2
ES
ET1
EX1
ET0
EX0
EA=1(中断使能),ES=1(串行口中断),EX1=1(中断),ET0=1(T0中断),EX0=1(中断)。
故IE=97H;
串行口中断为高优先级中断
优先级寄存器IP定义:
PT2
PS
PT1
PX1
PT0
PX0
PS=1(串行口中断高优先级),故IP=10H;
MOVIE#97H
MOVIP#10H
第八章
9、MCS-51单片机利用4KB的EPROM2764和2KB的SRAM6116及74HC138译码器,构成一个具有8KBROM,16KBRAM的存储器系统,给出硬件连接图并指出各芯片地址范围。
需要两个2764和8个6116。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用 戴胜 课后 答案