单片机作业.docx
- 文档编号:10757551
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:15
- 大小:24.68KB
单片机作业.docx
《单片机作业.docx》由会员分享,可在线阅读,更多相关《单片机作业.docx(15页珍藏版)》请在冰豆网上搜索。
单片机作业
第一章
3.单片机的主要特点是什么?
答:
①存储器ROM和RAM是严格分工的。
ROM用做程序存储器,只存放程序、常数和数据表格,而RAM用做数据存储器,存放临时数据和变量。
②采用面向控制的指令系统。
在实时控制方面,尤其是在位操作方面单片机有着不俗的表现。
③输入/输出(I/O)端口引脚通常设计有多种功能。
在设计时,究竟使用多功能引脚的哪一种功能,可以由用户编程确定。
④品种规格的系列化。
属于同一个产品系列、不同型号的单片机,通常具有相同的内核、相同或兼容的指令系统,其主要的差别仅在于片内配置了一些不同种类或不同数量的功能部件,以适用不同的被控对象。
⑤单片机的硬件功能具有广泛的通用性。
同一种单片机可以用在不同的控制系统中,只是其中所配置的软件不同而已。
换言之,给单片机固化上不同的软件,便可形成用途不同的专用智能芯片,有时将这种芯片称为固件(Firmware)。
4.单片机的分类及主要指标是什么?
答:
单片机从机器字长(即数据总线宽度)上可以分为4位机、8位机、16位机、32位机和64位机;从用途上可分成专用型单片机和通用型单片机两大类。
主要指标:
位数、存储器、I/O口、速度、工作电压、功耗、温度、附加功能。
6.简述单片机、单片机系统、单片机应用系统之间的异同。
答:
单片机是在一块集成电路上把CPU、存储器、定时器/计数器及多种形式的I/O接口集成在一起而构成的微型计算机。
单片机智能化产品中,以单片机为核心组成的硬件电路统称为单片机系统。
为了实现产品的智能化处理与智能化控制,还要嵌入相应的控制程序,称之为单片机应用软件。
嵌入了应用软件的单片机系统称为单片机应用系统。
单片机是单片机系统中的一个器件,单片机系统是构成某一单片机应用系统的全部硬件电路,单片机应用系统是单片机系统和应用软件相结合的产物。
第三章
2.总体设计要考虑哪些主要因素?
答:
①确立功能特性指标
②单片机的选型
③软件的编写和支持工具
5.单片机仿真器的作用是什么?
选择一个好的仿真器有哪些要求。
答:
单片机仿真器也称单片机开发系统。
PC通过仿真器和目标系统建立起一种透明的联系,程序员可以观察到程序的运行(实际上程序在仿真器中运行)和CPU内部的全部资源情况。
也就是说,在开发环境中用户目标系统中的程序存储器是闲置的。
我们调试的是仿真器中的程序,仿真器中的程序运行完全受仿真器的监控程序控制。
仿真器的监控程序相当于PC的操作系统,该监控程序与PC上运行的集成开发环境相配合,使得我们可以修改和调试程序,并能观察程序的运行情况。
选择仿真器要求如下:
全地址空间的仿真;
不占用任何用户目标系统的资源;
必须实现硬断点,并且具有灵活的断点管理功能;
硬件实现单步执行功能;
可跟踪用户程序执行;
可观察用户程序执行过程中的变量和表达式;
可中止用户程序的运行或用户程序复位;
系统硬件电路的诊断与检查;
支持汇编和高级语言源程序级调试。
6.什么是JTAG?
为什么使用JTAG接口开发单片机,仿真更加贴近实际目标系统?
答:
JTAG(JointTestActionGroup,联合测试行动小组)是一种国际标准测试协议(IEEE1149.1兼容),主要用于芯片内部测试。
标准的JTAG接口有4线:
TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。
JTAG接口还常用于实现ISP(In-SystemProgrammable,在系统编程),对单片机内部的FlashEEPROM等器件进行编程。
在JTAG单片机仿真开发环境中,JTAG适配器提供了计算机通信口到单片机JTAG接口的透明转换,并且不出借CPU和程序存储器给应用系统,使得仿真更加贴近实际目标系统。
单片机内部已集成了基于JTAG的协议调试和下载程序。
7.请解释ISP和IAP?
具有ISP和IAP功能的单片机有什么好处?
答:
随着单片机技术的发展,出现了可以在线编程的单片机。
这种在线编程目前有两种实现方法:
在系统编程(ISP)和在应用编程(IAP)。
ISP一般通过单片机专用的串行编程接口对单片机内部的Flash存储器进行编程,而IAP技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将控制从一个存储体转向另一个。
利用ISP和IAP,不需要编程器就可以进行单片机的实验和开发,单片机芯片可以直接焊接到电路板上,调试结束即为成品,甚至可以远程在线升级或改变单片机中的程序。
8.单片机系统的编程语言有哪几种?
单片机的C语言有哪些优越性?
答:
单片机的高级语言包括:
BASIC语言、PL/M语言和C语言。
BASIC语言主要应用在MCS-51系列单片机上,使用效果不是很理想,现在已经不再使用。
PL/M语言对硬件的控制能力和代码效率都很好,但局限于Intel公司的单片机系列,可移植性差。
目前流行的单片机编程语言为C语言。
下面结合80C51介绍单片机C语言的优越性:
1、不懂得单片机的指令集,也能够编写完美的单片机程序;
2、无须懂得单片机的具体硬件,也能够编出符合硬件实际的专业水平的程序;
3、不同函数的数据实行覆盖,有效利用片上有限的RAM空间;
4、程序具有坚固性:
数据被破坏是导致程序运行异常的重要因素。
C语言对数据进行了许多专业性的处理,避免了运行中间非异步的破坏;
5、C语言提供复杂的数据类型(数组、结构、联合、枚举、指针等),极大地增强了程序处理能力和灵活性;
6、提供auto、static、const等存储类型和专门针对8051单片机的data、idata、pdata、xdata、code等存储类型,自动为变量合理地分配地址;
7、提供small、compact、large等编译模式,以适应片上存储器的大小;
8、中断服务程序的现场保护和恢复,中断向量表的填写,是直接与单片机相关的,都由C编译器代办;
9、提供常用的标准函数库,以供用户直接使用;
10、头文件中定义宏、说明复杂数据类型和函数原型,有利于程序的移植和支持单片机的系列化产品的开发;
11、有严格的句法检查,错误很少,可容易地在高级语言的水平上迅速地被排掉;
12、可方便地接受多种实用程序的服务:
如片上资源的初始化有专门的实用程序自动生成;再如,有实时多任务操作系统可调度多道任务,简化用户编程,提高运行的安全性等等。
第四章
5.如何认识:
80C51存储器空间在物理结构上可划分为4个空间,而在逻辑上又可划分为3个空间?
答:
而80C51在物理结构上有4个存储空间:
片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器。
但在逻辑上,即从用户使用的角度上,80C51有三个存储空间:
片内外统一编址的64KB程序存储器地址空间(用16位地址)、256B片内数据存储器的地址空间(用8位地址)及64KB片外数据存储器地址空间(用16位地址)。
在访问三个不同的逻辑空间时,应采用不同形式的指令(见指令系统),以产生不同的存储空间的选通信号。
7.什么是堆栈?
堆栈有何作用?
在程序设计时,有时为什么要对堆栈指针SP重新赋值?
如果CPU在操作中要使用两组工作寄存器,你认为SP的初值应为多大?
答:
堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。
它的特点是按照先进后出的原则存取数据,这里的进与出是指进栈与出栈操作。
80C51片内RAM的部分单元可以用做堆栈。
有一个8位的堆栈指针寄存器SP,专用于指出当前堆栈顶部是片内RAM的哪一个单元。
80C51单片机系统复位后SP的初值为07H,也就是将从内部RAM的08H单元开始堆放信息。
但是,80C51系列的栈区不是固定的,只要通过软件改变SP寄存器的值便可更动栈区。
为了避开工作寄存器区和位寻址区,SP的初值可置为2FH或更大的地址值。
如果CPU在操作中要使用两组工作寄存器,如果不使用位变量,SP的初值至少应为0FH或更大的值;如果使用位变量,SP的初值至少应为2FH或更大的值;KeilC51编译器会自动计算SP的初始设定值,无需编程者关心。
8.程序状态寄存器PSW的作用是什么?
常用状态标识有哪几位?
作用是什么?
答:
PSW是8位寄存器,用做程序运行状态的标识。
表4.7PSW寄存器各位名称及地址地址
D7H
D6H
D5H
D4H
D3H
D2H
D1H
D0H
名称
C
AC
F0
RS1
RS0
OV
F1
P
10.综述P0、P1、P2和P3口各有哪几种功能?
答:
p口是单片机的I/0口,以51单片机为例,p0-p3这四个口都可以独立的并行输出8位数据(或数据的每一位),或者读取该口的寄存器得到该口的输入数据。
p3口还有复用功能,即除了作为输入输出口外,还能选作其他的功能,如读写控制等等。
.
12.何谓时钟周期、机器周期、指令周期?
80C51的时钟周期、机器周期、指令周期是如何分配的?
当振荡频率为8MHz时,一个单片机机器周期为多少微秒?
答:
为了便于对CPU时序进行分析,人们按指令的执行过程规定了几种周期,即时钟周期、状态周期、机器周期和指令周期,也称为时序定时单位,下面分别予以说明。
时钟周期也称为振荡周期,定义为时钟脉冲频率(fosc)的倒数,是计算机中最基本、最小的时间单位。
时钟周期经2分频后成为内部的时钟信号,用做单片机内部各功能部件按序协调工作的控制信号,称为状态周期,用S表示。
这样一个状态周期就有两个时钟周期,前半状态周期相应的时钟周期定义为P1,后半周期对应的节拍定义为P2。
完成一个基本操作所需要的时间称为机器周期,也称CPU周期。
80C51有固定的机器周期,规定一个机器周期有6个状态,分别表示为S1~S6,而一个状态包含两个时钟周期,那么一个机器周期就有12个时钟周期。
所以当振荡频率为8MHz时,
机器周期为12×1/8MHZ=12×0.125μs=1.5μs
13.复位的作用是什么?
有几种复位方法?
复位后单片机的状态如何?
答:
复位是单片机的初始化操作。
单片机系统在上电启动运行时,都需要先复位,其作用是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。
单片机的外部复位电路有上电自动复位和按键手动复位两种。
当80C51通电,时钟电路开始工作,在80C51单片机的RST(DIP40封装第9脚)引脚加上大于24个时钟周期以上的正脉冲,80C51单片机系统即初始复位。
初始化后,程序计数器PC指向0000H,P0~P3输出口全部为高电平,堆栈指针写入07H,其他专用寄存器被清0。
RST由高电平下降为低电平后,系统从0000H地址开始执行程序。
第五章
3.何为寻址方式?
80C51单片机有哪些寻址方式?
答:
80C51单片机共有7种寻址方式:
寄存器寻址
寄存器间接寻址
直接寻址
立即寻址
基址寄存器+变址寄存器的间接寻址
相对寻址
位寻址
4.什么是源操作数?
什么是目的操作数?
通常在指令中如何加以区分?
答:
在双操作数的指令中,指令执行后的结果放在其中的一个操作数中,这个操作数是目的操作数,另外一个是源操作数。
80C51指令系统中,不靠近指令操作码的是源操作数,源操作数可以是立即数。
80C51指令系统中,紧跟在指令操作码之后是目的操作数,算术运算和大多数逻辑运算其目的操作数必须是累加器A,目的操作数不允许使用立即数寻址方式。
5.查表指令是在什么空间上的寻址操作?
答:
由于对程序存储器只能读而不能写,因此其数据传送是单向的,即从程序存储器读取数据,且只能向累加器A传送。
这类指令共有两条,其功能是对存放于程序存储器中的数据表格进行查找传送,所以又称查表指令。
MOVCA,@A+DPTR
MOVCA,@A+PC
这两条指令都为变址寻址方式。
前一条指令以DPTR作为基址寄存器进行查表,使用前
可先给DPTR赋予任何地址,因此查表范围可达整个程序存储器的64KB空间。
后一条指令以PC作为基址寄存器,虽然也提供16位基址,但其值是固定的。
由于A的内容为8位无符号数,所以这种查表指令只能查找所在地址以后256B范围内的常数或代码。
6.对80C51片内RAM的128~255字节区的地址空间寻址时,应注意些什么?
对特殊功能寄存器,应采用何种寻址方式进行访问?
答:
此空间有2类不同的物理存储空间,一个是特殊功能寄存器区,一个是RAM区。
直接寻址访问特殊功能寄存器,间接寻址访问RAM区。
7.写出完成下列要求的C语言程序。
(1)将地址为4000H的片外数据存储单元内容,送入地址为30H的片内数据存储单元中。
答:
可使用绝对地址访问函数实现DBYTE[0x30]=XBYTE[0x4000];
(2)将地址为4000H的片外数据存储单元内容,送入地址为3000H的片外数据存储单元中。
答:
可使用绝对地址访问函数实现XBYTE[0x3000]=XBYTE[0x4000];
(3)将地址为0800H的程序存储单元内容,送入地址为30H的片内数据存储单元中。
答:
可使用绝对地址访问函数实现DBYTE[0x30]=CBYTE[0x0800];
(4)将片内数据存储器中地址为30H与40H的单元内容交换。
答:
unsignedchartemp;
temp=DBYTE[0x40];
DBYTE[0x40]=DBYTE[0x30];
DBYTE[0x30]=temp;
11.已知:
(30H)=55H,(31H)=0AAH。
分别写出完成下列要求的指令,并写出32H单元的内容。
解:
(1)(30H)&(31H)→(32H);DBYTE[0x32]=DBYTE[0x30]&DBYTE[0x31];0x00
(2)(30H)|(31H)→(32H);DBYTE[0x32]=DBYTE[0x30]|DBYTE[0x31];0xff
(3)(30H)^(31H)→(32H);DBYTE[0x32]=DBYTE[0x30]^DBYTE[0x31];0xff
17.
(1)区分哪些是伪操作指令?
哪些是字节操作指令?
(2)写出程序执行后,片内RAM有关单元的内容。
(3)如fosc=12MHz,计算这段程序的执行时间。
答:
(1)
(2)
CLRC;答:
位操作指令(C)=0
CLRRS1;答:
位操作指令(RS1)=0
CLRRS0;答:
位操作指令(RS0)=0
MOVA,#38H;答:
字节操作指令A=38H
MOVR0,A;答:
字节操作指令R0=(A)=38H
MOV29H,R0;答:
字节操作指令(29H)=(R0)=38H
SETBRS0;答:
位操作指令(RS0)=1
MOVR1,A;答:
字节操作指令R1=(A)=38H
MOV26H,A;答:
字节操作指令(26H)=(A)=38H
MOV28H,C;答:
位操作指令(28H)=(C)=0
(3)如fosc=12MHz,这段程序的执行时间=11μs
26.如何定义C51的中断函数?
答:
80C51的中断系统十分重要,C51编译器允许在C语言源程序中声明中断和编写中断服
务程序,从而减轻了采用汇编程序编写中断服务程序的烦琐程度。
通过使用interrupt关键字来实现。
定义中断服务程序的一般格式如下:
void函数名()interruptn[usingm]
关键字interrupt后面的n是中断号,n的取值范围为0~31。
编译程序从8n+3处产生中断向量,即在程序存储器8n+3地址处形成一条长跳转指令,转向中断号n的中断服务程序。
中断号对应着IE寄存器中的使能位,换句话说IE寄存器中的0位对应着外部中断0,相应的外部中断0的中断号是0。
中断号0~4对应中断源的关系如主教材表5.14所示。
表5.14中断号和中断源的对应关系中断号n
中断源
中断向量
0
外部中断0
0003H
1
定时器0
000BH
2
外部中断1
0013H
3
定时器1
001BH
4
串行口
0023H
第六章
1.80C51有几个中断源,各中断标识是如何产生、如何复0的?
CPU响应中断时,其中断入口地址各是多少?
答:
80C5l共有3类5个中断源,分别是2个外部中断源、2个定时中断源、1个串行口接收/发送中断源。
要实现中断,首先中断源要提出中断请求,单片机内中断请求的过程是特殊功能寄存器TCON和SCON相关状态位——中断请求标识位置1的过程,当CPU响应中断时,中断请求标识位才由硬件或软件清0。
2个外部中断源和2个定时中断源的标识由硬件自动复0,串行口接收/发送中断由软件
清0。
中断入口地址如下表:
表6.680C51中断向量地址分配中断源
中断入口地址
外部中断0
0003H
定时器T0中断
000BH
外部中断1
0013H
定时器T1中断
001BH
串行口中断
0023H
8.定时器/计数器作定时用时,定时时间与哪些因素有关?
作为计数用时,对外界计数频率有何限制?
答:
当80C5l内部的定时器/计数器被选定为定时器工作模式时,计数输入信号是内部时钟脉冲,此当需要高分辨率的定时,应尽量选用频率较高的晶振(80C5l最高为40MHz)。
当定时器/计数器用作计数器时,计数脉冲来自外部输入引脚T0或T1。
当输入信号产生由1至0的跳变(即负跳变)时,计数器的值增l。
每个机器周期的S5P2期间,对外部输入进行采样。
如在第一个周期中采得的值为1,而在下一个周期中采得的值为0,则在紧跟着的再下一个周期S3P1的期间,计数器加1。
由于确认一次下跳变需要花2个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为振荡器频率的1/24。
例如,选用6MHz频率的晶体,允许输入的脉冲频率为250kHz,如果选用12MHz频率的晶体,则可输入500kHz的外部脉冲。
对于外部输入信号的占空比并没有什么限制,但为了确保某一给定的电平在变化之前能被采样一次,则这个电平至少要保持一个机器周期。
11.80C51单片机系统中,已知单片机晶振频率为6MHz,选用定时器0以方式3产生周期为400μs的等宽正方波连续脉冲,请编写由P1.1口输出此方波的程序。
解:
示例程序如下:
#include"REG51.H"
sbitrect_wave=P1^1;
voidtime_over(void);
voidmain(void){
TMOD=0x03;
TL0=160;
IE=0x00;
TR0=1;
for(;;){
if(TF0)time_over();
}
}
voidtime_over(void)
{
TF0=0;
TL0=160;
rect_wave=!
rect_wave;
}
12.串行通信操作模式有哪几种?
各有什么特点?
答:
串行通信操作模式有2种,异步串行通信和同步串行通信。
异步串行通信(以下简称为异步通信)所传输的数据格式(也称为串行帧)由1个起始位、7个或8个数据位、1~2个停止位(含1.5个停止位)和1个校验位组成。
起始位约定为0,空闲位约定为1。
在异步通信方式中,接收器和发送器有各自的时钟,它们的工作是非同步的。
图6.17所示为异步通信方式和异步通信数据格式示意图,数据格式是1个起始位、8个数据位、1个停止位,所传输的数据是35H(00110101)。
异步通信的实质是指通信双方采用独立的时钟,每个数据均以起始位开始、停止位结束,起始位触发甲乙双方同步时钟。
每个异步串行帧中的1位彼此严格同步,位周期相同。
所谓异步是指发送、接收双方的数据帧与帧之间不要求同步,也不必同步。
同步串行通信(以下简称为同步通信)中,发送器和接收器由同一个时钟源控制。
而在异步通信中,每传输一帧字符都必须加上起始位和停止位,占用了传输时间,在要求传送数据量较大的场合,速度就会慢得多。
同步传输方式去掉了这些起始位和停止位,只在传输数据块时先送出一个同步头(字符)标识即可。
同步通信所传输的数据格式(也称同步串帧)是由多个数据构成的,每帧有2个同步字符作为起始位以触发同步时钟开始发送或接收数据。
空闲位需发送同步字符。
因此,同步是指发送、接收双方的数据帧与帧之间严格同步,而不只是位与位之间
严格同步。
同步传输方式比异步传输方式速度快,这是它的优势。
但同步传输方式也有其缺点,即它必须要用一个时钟来协调收发器的工作,所以它的设备也较复杂。
由上所述可以得到推论:
异步通信比较灵活,适用于数据的随机发送/接收,而同步通信则是成批数据传送的。
异步传输一批数据,因为每个字节均有起始位和停止位控制而使发送/接收速度有所降低,一般适用于每秒50~19200位,而同步传输速度较快,可达每秒80万位。
13.异步串行通信时,通信双方应遵守哪些协定?
一帧信息包含哪些内容?
答:
异步串行通信(以下简称为异步通信)所传输的数据格式(也称为串行帧)由1个起始位、7个或8个数据位、1~2个停止位(含1.5个停止位)和1个校验位组成。
起始位约定为0,空闲位约定为1。
在异步通信方式中,接收器和发送器有各自的时钟,它们的工作是非同步的。
数据格式是1个起始位、8个数据位、1个停止位,所传输的数据是35H(00110101)。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 作业