单片机原理及应用第三版林立张俊亮课后答案Word下载.docx
- 文档编号:20081650
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:40
- 大小:60.62KB
单片机原理及应用第三版林立张俊亮课后答案Word下载.docx
《单片机原理及应用第三版林立张俊亮课后答案Word下载.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用第三版林立张俊亮课后答案Word下载.docx(40页珍藏版)》请在冰豆网上搜索。
此外,单片机在工商、金融、科研、教育、电力、通信、物流和国防航空航天等领域都有着十分广泛的用途。
4.将十进制数37转换为二进制,BCD码和十六进制数,并对转换结果进行对比分析。
37=(100101)B=(25)H;
BCD码为00110111;
可见,同一个数用不同进制表示,其结果也不同。
5.写出下列十进制数在8位微机中的原码,反码和补码形式。
(1)+36
原码00100100B
反码00100100B
补码00100100B
(2)-36
原码10100100B
反码11011011B
补码11011100B
(3)+127
原码01111111B
反码01111111B
补码01111111B
(4)-128
原码10000000B
补码10000000B
(5)-121
原码11111001B
反码10000110B
补码10000111B
6.对于二进制数10001001B,若理解为无符号数,则该数对应十进制数为多少?
若理解为有符号数,则该数对应十进制为多少?
若理解为BCD数,则该数对应十进制数为多少?
10001001B无符号数:
137
有符号数:
-9;
BCD数:
89;
7.对下列各组数进行“与”,“或”和“异或”运算。
(1)10101010和00000000
与00000000
或10101010
异或10101010
(2)01110111和10001000
或11111111
异或11111111
(3)11101110和01110111
与01100110
异或10011001
(4)00111100和11110000
与00110000
或11111100
异或11001100
8.ProteusISIS的工作界面中包含哪几个窗口?
菜单栏中包含哪几个选项?
答:
ProteusISIS的工作界面主要包括标题栏、菜单栏、工具栏、状态栏、方位控制按钮、仿真进程控制按钮、对象选择窗口,原理图编辑窗口和预览窗口等。
主菜单栏包含文件、查看、编辑、工具、设计、图形、源文件、调试、库、模板、系统、帮助选项。
9.利用ISIS模块开发单片机系统需要经过哪几个主要步骤?
(1)启动ISIS;
(2)绘制电路原理图;
(3)输入单片机程序;
(4)进行源代码调试;
(5)仿真运行。
10.何谓PCB?
利用ARES模块进行PCB设计需要经过哪几个主要步骤?
PCB(PrintedCircuitBoard),中文名称为印制电路板,又称印刷电路板、印刷线路板,是重要的电子部件,是电子元器件的支撑体,是电子元器件电气连接的提供者。
由于它是采用电子印刷术制作的,故被称为“印刷”电路板。
利用ARES模块进行PCB设计的主要步骤:
(1)启动ARES;
(2)元器件布局;
(3)元器件布线;
(4)铺铜;
(5)三维效果图;
(6)CADCAM输出。
第2章MCS-51单片机结构及原理习题
1.MSC-51单片机内部由哪些功能部件组成,各有什么功能?
以51单片机为例,其内部功能部件有:
控制器:
是对取自程序存储器中的指令进行译码,在规定的时刻发出各种操作所需的控制信号,完成指令所规定的功能;
运算器:
根据控制器发来的信号,执行算术逻辑运算操作;
存储器:
包括程序存储和数据存储器;
定时器计数器:
2个16位定时器/计数器,可对机器周期计数,也可对外部输入脉冲计数;
中断系统:
可响应三个内部中断源和两个外部中断源的中断请求;
输入输出接口:
4个8位并行口和一个全双工串行口;
2.MSC-51单片机外部引脚的名称是什么?
各有什么功能?
(1)电源及晶振引脚
VCC(40脚):
+5V电源引脚
VSS(20脚):
接地引脚
XTAL1(19脚);
外接晶振引脚(内置放大器输入端)
XTAL2(18脚):
外接晶振引脚(内置放大器输出端)
(2)控制引脚
RST/VPD(9)为复位/备用电源引脚
为地址锁存使能输出/编程脉冲输入
:
输出访问片外程序存储器读选通信号
外部ROM允许访问/编程电源输入
(3)并行I/O口引脚
P0.0~P0.7(39~32脚)——P0口;
P1.0~P1.7(1~8脚)——P1口;
P2.0~P2.7(21~28脚)——P2口;
P3.0~P3.7(10~17脚)——P3口。
3.51系列单片机的封装有哪些类型?
请说明每一种封装引脚之间的距离。
51系列单片机的封装有:
40引脚双列直插封装(DIP——dualin-linepackage),引脚之间的距离是100mil();
44引脚方形扁平封装(QFP——quadflatpackage)方式,引脚之间的距离是;
44引脚带引线的塑料芯片载体PLCC(PlasticLeadedChipCarrier)。
4.什么是复位?
单片机复位电路有哪几种,工作原理分别是什么?
复位——使单片机恢复原始默认状态的操作。
单片机复位电路有:
上电复位电路,由电阻和电容构成,通过上电时,电容相当于短路而使复位引脚在晶振有效的情况下保持2个机器周期的高电平;
按钮开关复位电路,由两个电阻的分压构成,通过手工按下按钮,使复位引脚在晶振有效的情况下保持2个机器周期的高电平。
5.通常的微机系统存储器结构有哪几种?
MCS-51单片机存储器属于哪一类?
CS-51可寻址多大空间?
通常的微机系统存储器结构有两种结构,即哈佛结构和冯诺依曼结构(也叫普林斯顿结构),MCS-51单片机存储器属于,MCS-51可寻址空间是两个64KB,即64KB的程序存储空间和64KB的数据存储空间。
6.片内RAM中低128个单元划分为哪三个主要部分?
各部分的主要功能是什么?
片内RAM中低128个单元划分为三个部分:
①工作寄存器区(00H-1FH),四组,每组8个,可作用工作寄存器切换使用;
②可位寻址区(20H-2FH),16B,位地址为00H-7FH,用作为按位寻址的空间;
③用户RAM区(30H-7FH),80B,用作普通RAM单元或堆栈。
7.程序状态字寄存器PSW各位的定义是什么?
程序状态字寄存器PSW各位的定义如下:
PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0PSW.7:
进/借位标志CY,加法有进位时置1,减法有借位时置1;
PSW.6:
辅助进位标志AC,加法运算低四位向高上四位有进位时置1;
PSW.5、PSW.1:
用户标志位F0和用户标志位F1,保存用户的位数据;
PSW.4、PSW.3:
工作寄存器选择控制位RS1和RS0,00至11分别选择四组工作之一作为当前工作寄存器
PSW.2:
溢出标志位OV,有符号数加、减运算结果有溢出或乘除上结果异常(乘法运算结果大于255即乘积在BA中,或除法运算除数为0)时置1PSW.0:
奇偶标志位P,累加器A中1的个数为奇数时置1。
8.什么是时钟周期?
什么是机器周期?
什么是指令周期?
当振荡频率为12MHz时,一个机器周期为多少微秒?
时钟周期又叫振荡周期或拍,用P表示,是MCS-51单片机中最小的时间单位,在一个时钟周期内,CPU完成一个最基本的动作。
机器周期:
由12个时钟周期构成,完成一个基本操作
指令周期:
是执行一条指令所需的时间,根据指令的复杂性,可由1~4个机器周期构成。
当振荡频率为12MHz时,一个机器周期为1微秒。
9.P0、P1、P2和P3口的结构和功能分别是什么?
P0口的每一位由1个锁存器、2个三态缓冲器、1个输出控制电路(非门X、与门、电子开关MUX、输出驱动电路构成,其功能既可以作为通用I/O口实现输入/输出功能,也可作为单片机地址线的低8位和数据线实现外部扩展功能。
在用作输入输出口时,需外接上拉电阻。
P1口的每一位由1个锁存器、1个场效应管驱动器V和2个三态门缓冲器构成,其作用是用作输入输出口
P2口的每一位由1个锁存器、2个三态缓冲器、1个输出控制单元、1个输出驱动单元构成,其功能是用作输入输出口,或地址总线的高8位。
P3口的每一位由1个锁存器、2个三态缓冲器、1个第二功能控制单元、1个输出驱动单元构成,其作用是用作输入输出口或第二功能。
10.51单片机引脚ALE的作用是什么?
当51不外接存储器时,ALE上的输出的脉冲频率是多少?
51单片机引脚ALE的作用是对外部存储寻址时锁存P0口输出的低8位地址,当51不外接存储器时,ALE上的输出的脉冲频率是fosc/6。
第3章单片机的汇编语言与程序设计习题
1.MCS-51单片机有哪几种寻址方式?
适用于什么地址空间?
MCS-51单片机有7种寻址方式:
直接寻址、寄存器寻址、寄存器间接寻址、立即寻址、变址寻址、位寻址、相对寻址。
直接寻址方式:
操作数的地址由指令直接给出,适用于片内RAM的所有地址空间;
如MOVA,68H
MOVA,PSW
寄存器寻址方式:
指令给出的是寄存器的编码,操作数在编码指定的寄存器中,适用于片内00H至1FH的32个字节,用R0,…,R7表示,通过PSW的RS1和RS0选择组号确定对应32个字节中的其中8个,还有累加器A,以及乘除法指令中的A和B寄存器,位寻址方式中的布尔累加器C;
MOVA,R1
MULAB
INCDPTR
寄存器间接寻址方式:
指令给出的是寄存器的编码,操作数地址在编码指定的寄存器中,适用于片内RAM的全部空间,其中52系列中的80H至FFH只能用寄存器间接寻址;
如MOVA,@R0
MOVA,@R1
MOVXA,@DPTR
立即寻址方式:
操作数本身在指令中直接,给出适用于用8位立即数对片内RAM所有地址单元赋值,也可用16位立即数对DPTR赋值;
如
MOVA,#0E2H
MOVDPTR,#2000H
变址寻址方式:
以DPTR或PC作为基地址寄存器,以累加器A作为变址寄存器,将基址寄存器与变址寄存器的内容相加形成操作数的实际地址的一种寻址方式,变址寻址方式适用于程序存储器ROM,仅有三条指令如下:
MOVCA,@A+DPTR
MOVCA,@A+PC
JMP@A+DPTR
位寻址方式:
指令中直接给出操作数所在单元的位地址,适用于片内RAM中地址20H至2FH中的16个字节中的128个位地址空间和80H至FFH中地址中可以被8整除的所有SFR中的每个位地址空间;
如
MOVC,7FH
MOVF0,C
MOVC,ACC.7
相对寻址方式:
为相对转移指令而设,指令中直接给出转移的相对偏移量,其转移目标在当前指令-128至+127字节范围内的地址空间。
SJMPSTART
HERE:
SJMPHERE;
等效于:
SJMP$
2.MCS-51单片机的PSW程序状态字中无ZERO(零)标志位,怎样判断某内部数据单元的内容是否为零?
MCS-51单片机的PSW程序状态字中无ZERO(零)标志位,判断某内部数据单元的内容是否为零是能通过取数到A累加器,再判断A中的每一位是否为零来确定其值是否为零。
3.编程将内部RAM的20H--30H单元内容清零。
解:
设一个片内RAM指针R0,先指向首地址20H,通过累加器A清零,然后采用间接寻址方式依次将A中的零值传送到指针所指的片内RAM单元,每传送一个字节,地址指针加1,直到达到地址为30H或达到计数器规定的17个字节为止。
程序1:
MOVR0,#20H;
设地址指针初值
CLRA;
累加器清0
CONT:
MOV@R0,A;
置0指针所指单元
INCR0;
地址指针加1
CJNER0,#31H,CONT;
指针未超过终点则继续
SJMP$;
暂停
程序2:
MOVR7,#17;
计数器赋初值,从20H到30H共17个字节CONT:
DJNZR7,CONT;
计数器减1,非0,则继续
4.编程查找内部RAM的32H~41H单元中是否有0AAH这个数据,若有这一数据,则将50H单元置为0FFH,否则将50H单元清零。
设一个片内RAM指针R0,先指向首地址32H,比较@R0与#0AAH,若相等,则退出循环,给50H单元赋0FFH,若不相等,则R0加1为继续比较下一个字节做准备,直到达到地址为41H或达到计数器规定的16个字节为止还没找到,则给50H单元赋00H
程序1:
MOVR0,#32H;
CJNE@R0,#0AAH,NEXT;
比较查找值与指针所指单元的值,不相等转移MOVA,#0FFH;
相等,则准备好要赋的标志值0FFH
SJMPDOWN;
转存到保存结果处
NEXT:
INCR0;
修改地址指针
CJNER0,#42H,CONT;
若指针未越过终点,则继续
MOVA,#00H;
查找失败,则将00H存入结果标志单元DOWN:
MOV50H,A;
将比较结果标志存入50H单元
END
MOVR7,#16;
计数器赋初值,从20H到30H共16个字节MOVR0,#32H;
CJNE@R0,#0AAH,NEXT;
比较查找值与指针所指单元的值,不相等转移
MOVA,#0FFH;
DJNZR7,CONT;
5.查找20H~4FH单元中出现00H的次数,并将查找结果存入50H单元。
解:
从20H到4FH共48个字节
MOVR7,#48;
字节计数器赋初值
CJNE@R0,#00H,NEXT;
比较查找值与指针所指单元的值,不相等转移INCR6;
相等,0的个数计数器加1
MOV50H,R6;
保存O的个数计数值到50H单元
ENDEND
6.已知A=83H,R0=17H,(17H)=34H,写出下列程序段执行之后的A中的内容。
ANLA,#17H
ORL17H,A
XRLA,@R0
CPLA
ANLA,#17H;
A=03H
ORL17H,A;
(17H)=00110100∨00000011=00110111XRLA,@R0;
A=00000011∨00110111=00110100CPLA;
A=11001011
7.已知单片机的晶振频率为12MHz,分别设计延时为0.1s、1s的子程序。
已知单片机的晶振频率为12MHz,则机器周期为1us,延时子程序是通过执行指令序列中机器周期数来达到,如果要0.1s,即100ms,也就是100000us,所以需要机器周期数达到100000。
要延时达到1S,可通过对延时为0.1秒的子程序调用10次来实现。
DELAY100MS:
MOVR6,#200;
1个机器周期
D1:
MOVR7,#250;
D2:
NOP;
DJNZR7,D2;
2个机器周期,3*251=753
DJNZR6,D1;
2个机器周期,(1+753+2)*132=99792
RET;
2个机器周期,1+99792+2=99795,约100ms
DELAY1S:
MOVR7,#10;
计数10次1
LOOP:
ACALLDELAY100MS;
延时100ms子程序99795+2
DJNZR7,LOOP;
未达到10次则继续10*(2+99795+2)RET;
返回2+10*(2+99795+2)=997992
8.内部RAM从20H单元开始处有一数据块,以ODH为结束标志,试统计该数据块的长度,将该数据块送到外部数据存储器7E01H开始的单元,并将长度存入7E00H单元。
从20H的指针用R0,从外部RAM7E01开始的指针用DPTR,计数器用R7MOVR7,#0;
设片内RAM地址指针初值
MOVDPTR,#7E01H;
设片外RAM地址指针初值
MOVA,@R0;
取片内RAM中的一个字节
MOVX@DPTR,A;
存入片外RAM指针所指单元
INCR7;
长度计数器加1
片内RAM地址指针加1
INCDPTR;
片外RAM地址指针加1
CJNEA,#0DH,CONT;
未达到结束标志
MOVA,R7;
取块计数长度值
保存
9.内部RAM从DATA开始的区域中存放着10个单字节十进制数,求其累加和,并将结果存入SUM和SUM+1单元。
R7计数,R6保存累加和高8位,R0用作地址指针
ORG0000H
LJMPMAIN
ORG100H
SUMEQU30H
DATAAEQU40H
MAIN:
MOVR0,#DATAA;
MOVR6,A;
累加结果的高8位
ADDA,@R0;
加RAM中的一个字节到ACC
DAA
JNCNEXT;
若无进位则不用管高8位
INCR6;
有进位,高8位加1
未完继续
MOVSUM,A;
保存低8位
MOVSUM+1,R6;
保存高8位
10.内部RAM从DATA1和DATA2单元开始处存放着两个等长的数据块,数据块的长度在LEN单元中。
请编程检查这两个数据块是否相等,若相等,将0FFH写入RESULT单元,否则将0写入RESULT单元。
从DATA1开始的指针用R0,从DATA2开始的指针用R1,计数器用R7LENEQU10
DATA1EQU30H
DATA2EQU40H
RESULTEQU50H
MOVR7,#LEN;
MOVR0,#DATA1;
MOVR1,#DATA2;
取片内RAMR0所指的的一个字节
MOV7FH,@R1;
将R1所指单元内容取到片内RAM地址7FH中CJNEA,7FH,NOEQ;
比较,不相等则结束
DATA1RAM地址指针加1
INCR1;
DATA2RAM地址指针加1
未完,继续
相等,准
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用 第三 林立 张俊亮 课后 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)