(完整版)单片机课后习题答案解析
- 格式:docx
- 大小:48.93 KB
- 文档页数:18
习题1. C51特有的数据类型有哪些?答:C51特有的数据类型有位型bit、特殊位型sbit、8位特殊功能寄存器型sfr和16位特殊功能。
sfr16寄存器型2. C51中的存储器类型有几种,它们分别表示的存储器区域是什么?答:C51中的存储器类型有6种,分别表示的存储器区域是:data:直接寻址的片内RAM低128B,访问速度快bdata:片内RAM的可位寻址区(20H~2FH),允许字节和位混合访问idata:间接寻址访问的片内RAM,允许访问全部片内RAMpdata:用Ri间接访问的片外RAM低256Bxdata:用DPTR间接访问的片外RAM,允许访问全部64KB片外RAMcode:程序存储器ROM 64KB空间3. 在C51中,bit位与sbit位有什么区别?答:bit位类型符用于定义一般的位变量,定义的位变量位于片内数据存储器的位寻址区。
定义时不能指定地址,只能由编译器自动分配。
sbit位类型符用于定义位地址确定的位变量,定义的位变量可以在片内数据存储器位寻址区,也可为特殊功能寄存器中的可位寻址位。
定义时必须指明其位地址,可以是位直接地址,也可以是可位寻址的变量带位号,还可以是可位寻址的特殊功能寄存器变量带位号。
4. 在C51中,通过绝对地址来访问的存储器有几种?答:绝对地址访问形式有三种:宏定义、指针和关键字“_at_”。
5. 在C51中,中断函数与一般函数有什么不同?答:中断函数是C51的一个重要特点,C51允许用户创建中断函数。
中断函数用interruptm修饰符,m的取值为0~31,对应的中断情况如下:0——外部中断01——定时/计数器T02——外部中断13——定时/计数器T14——串行口中断5——定时/计数器T2中断函数需要注意如下几点。
(1) 中断函数不能进行参数传递(2) 中断函数没有返回值(3) 在任何情况下都不能直接调用中断函数(4) 如果在中断函数中调用了其他函数,则被调用函数所使用的寄存器必须与中断函数相同(5) C51编译器对中断函数编译时会自动在程序开始和结束处加上相应的内容(6) C51编译器从绝对地址8m+3处产生一个中断向量(7) 中断函数最好写在文件的尾部,并且禁止使用extern存储类型说明6. 按给定的存储类型和数据类型,写出下列变量的说明形式。
单片机课后习题答案1.89C51 单片机内包含哪些主要逻辑功能零件?答: 80C51 系列单片机在片内集成了以下主要逻辑功能零件:(l)CPU( 中央办理器 ):8 位 (2)片内 RAM:128B(3) 特别功能寄存器 :21 个 (4)程序储存器 :4KB (5)并行 I/O 口:8 位, 4 个(6)串行接口 :全双工, 1 个(7)准时器 /计数器 :16 位, 2 个(8)片内时钟电路 :1 个2.89C51 的 EA 端有何用途?答: /EA 端接高电平常, CPU 只接见片内 flash Rom并履行内部程序,储存器。
/EA 端接低电平常, CPU 只接见外面 ROM ,并履行片外程序储存器中的指令。
/EA 端保持高电平常, CPU 履行内部储存器中的指令。
3.89C51 的储存器分哪几个空间 ?怎样差异不一样空间的寻址?答:ROM (片内 ROM 和片外 ROM 一致编址)(使用 MOVC )(数据传递指令)(16bits地点)( 64KB)片外 RAM(MOVX )( 16bits地点)( 64KB)片内 RAM (MOV )( 8bits 地点)(256B)4.简述 89C51 片内 RAM 的空间分派。
答:片内 RAM 有 256B,低 128B 是真实的 RAM 区,高 128B 是 SFR(特别功能寄存器)区。
5.简述布尔办理储存器的空间分派,片内RAM 中包含哪些可位寻址单元。
答:片内 RAM 区从 00H~FFH (256B)此中 20H~2FH (字节地点)是位寻址区对应的位地点是00H~7FH6.怎样简捷地判断 89C51 正在工作 ?答:用示波器察看 8051 的 XTAL2 端能否有脉冲信号输出(判断震荡电路工作能否正常?) ALE (地点锁存同意)( Address Latch Enable)输出是 fosc的 6 分频用示波器察看 ALE 能否有脉冲输出(判断8051 芯片的利害?)察看 PSEN(判断 8051 能够到 EPROM 或 ROM 中读取指令码?)因为 /PSEN 接外面 EPROM (ROM )的 /OE 端子 OE=Output Enable (输出同意)7.89C51 怎样确立和改变目前工作寄存器组 ?答: PSW(程序状态字)( Program Status Word)中的 RS1 和 RS0 能够给出 4 中组合,用来从4 组工作寄存器组中进行选择PSW 属于SFR(Special Function Register)(特别功能寄存器)9.读端口锁存器和“读引脚”有何不一样?各使用哪一种指令?答:读锁存器( ANLP0,A )就是相当于从储存器中拿数据,而读引脚是从外面拿数据(如 MOV A,P1 这条指令就是读引脚的,意思就是把端口 p1 输入数据送给A)传递类 MOV ,判位转移 JB、JNB、这些都属于读引脚,平常实验时常常用这些指令于外面通讯,判断外面键盘等;字节互换 XCH 、XCHD 算术及逻辑运算ORL 、CPL 、ANL 、ADD 、ADDC 、SUBB、INC 、DEC 控制转移 CJNE 、DJNZ都属于读锁存器。
练习练习练习第二章单片机结构及原理1、MCS-51单片机内部包含哪些主要功能部件?它们的作用是什么?答:(1)一个8bit CPU是微处理器的核心,是运算和逻辑计算的中心。
(2)片内震荡器及时钟电路:提供标准时钟信号,所有动作都依据此进行。
(3)4K ROM程序存贮器:存贮程序及常用表格。
(4)128B RAM 数据存贮器:存贮一些中间变量和常数等。
(5)两个16bit定时器/计数器:完全硬件定时器(6)32根可编程I/O口线:标准8位双向(4个)I/O接口,每一条I/O线都能独立地作输入或输出。
(7)一个可编程全双工串行口。
(8)五个中断源。
2、什么是指令?什么是程序?答:指令是规定计算机执行某种操作的命令。
程序是根据任务要求有序编排指令的集合。
3、如何认识89S51/52存储器空间在物理结构上可以划分为4个空间,而在逻辑上又可以划分为3个空间?答:89S51/52存储器空间在物理结构上设有4个存储器空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。
在逻辑上有3个存储器地址空间:片内、片外统一的64KB程序存储器地址空间,片内256B数据存储器地址空间,片外64KB的数据存储器地址空间。
4、开机复位后,CPU使用的是哪组工作寄存器?他们的地址是多少?CPU如何确定和改变当前工作寄存器组?答:开机复位后,CPU使用的是第0组工作寄存器,地址为00H~07H,CPU通过改变状态字寄存器PSW中的RS0和RS1来确定工作寄存器组。
5、什么是堆栈?堆栈有何作用?在程序设计时,有时为什么要对堆栈指针SP重新赋值?如果CPU 在操作中要使用两组工作寄存器,SP应该多大?答:堆栈是一个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。
堆栈指针SP复位后指向07H单元,00H~1FH为工作寄存器区,20H~2FH为位寻址区,这些单元有其他功能,因此在程序设计时,需要对SP重新赋值。
《单片机》课后习题及答案单片机是计算机科学与技术中的重要领域之一,学习单片机的过程中,习题是不可或缺的一部分。
通过解答习题,不仅可以加深对单片机知识的理解,还可以培养解决问题的能力。
本文将为大家介绍一些经典的单片机习题,并提供详细的答案解析。
一、基础知识题1. 请简述单片机的定义及其作用。
答:单片机是一种集成度极高的微型计算机系统,它包括中央处理器、存储器、输入/输出接口和时钟电路等基本组成部分。
单片机广泛应用于嵌入式系统、仪器仪表、工控设备等领域,能够完成各种控制、计算、通信等任务。
2. 请列举常见的单片机类型及其特点。
答:常见的单片机类型有AVR系列、PIC系列、STM32系列等。
它们的特点如下:- AVR系列:低功耗、性能稳定、易于编程调试。
- PIC系列:成本较低、易于学习上手,适用于简单的应用场景。
- STM32系列:性能强大、资源丰富、支持多种外设接口。
3. 单片机的时钟输入一般采用什么方式?请简要说明原因。
答:单片机的时钟输入一般采用晶体振荡器的方式。
晶体振荡器具有稳定的振荡频率和相位,能够提供可靠的时钟信号,保证单片机各个部件按时序工作。
二、编程习题1. 编写一个程序,实现LED灯在不同时间间隔下的闪烁。
答:以下是示例代码:```c#include <reg51.h>sbit LED = P1^0;void delay(unsigned int ms){unsigned int i, j;for(i = ms; i > 0; i--)for(j = 110; j > 0; j--);}void main(){while(1){LED = 0; // 点亮LED灯delay(500); // 延时500msLED = 1; // 熄灭LED灯delay(500); // 延时500ms}}```2. 编写一个程序,实现通过按键控制LED灯的亮灭。
答:以下是示例代码:```c#include <reg51.h>sbit LED = P1^0;sbit KEY = P2^0;void delay(unsigned int ms){unsigned int i, j;for(i = ms; i > 0; i--)for(j = 110; j > 0; j--);}void main(){while(1){if(KEY == 0) // 如果按键按下{LED = ~LED; // 切换LED灯的状态delay(500); // 延时500ms,防止按键抖动}}}```三、应用题1. 设计一个温度监测系统,当温度超过设定的阈值时,点亮LED 灯并发出蜂鸣器警报。
习题答案习题01.单片机是把组成微型计算机的各功能部件即(微处理器(CPU))、(存储器(ROM和RAM))、(总线)、(定时器/计数器)、(输入/输出接口(I/O口))及(中断系统)等部件集成在一块芯片上的微型计算机。
2.什么叫单片机?其主要特点有哪些?将微处理器(CPU)、存储器(存放程序或数据的ROM和RAM)、总线、定时器/计数器、输入/输出接口(I/O口)、中断系统和其他多种功能器件集成在一块芯片上的微型计机,称为单片微型计算机,简称单片机。
单片机的特点:可靠性高、便于扩展、控制功能强、具有丰富的控制指令、低电压、低功耗、片内存储容量较小、集成度高、体积小、性价比高、应用广泛、易于产品化等。
3. 单片机有哪几个发展阶段?(1)第一阶段(1974—1976年):制造工艺落后,集成度低,而且采用了双片形式。
典型的代表产品有Fairchild公司的F8系列。
其特点是:片内只包括了8位CPU,64B的RAM 和两个并行口,需要外加一块3851芯片(内部具有1KB的ROM、定时器/计数器和两个并行口)才能组成一台完整的单片机。
(2)第二阶段(1977—1978年):在单片芯片内集成CPU、并行口、定时器/计数器、RAM和ROM等功能部件,但性能低,品种少,应用范围也不是很广。
典型的产品有Intel公司的MCS-48系列。
其特点是,片内集成有8位的CPU,1KB或2KB的ROM,64B或128B的RAM,只有并行接口,无串行接口,有1个8位的定时器/计数器,中断源有2个。
片外寻址范围为4KB,芯片引脚为40个。
(3)第三阶段(1979—1982年): 8位单片机成熟的阶段。
其存储容量和寻址范围增大,而且中断源、并行I/O口和定时器/计数器个数都有了不同程度的增加,并且集成有全双工串行通信接口。
在指令系统方面增设了乘除法、位操作和比较指令。
其特点是,片内包括了8位的CPU,4KB或8KB的ROM,128B或256B的RAM,具有串/并行接口,2个或3个16位的定时器/计数器,有5~7个中断源。
单片机习题答案第1章习题参考答案1-1什么是单片机?它与一般微型计算机在结构上何区别?微型计算机的基本结构由CPU(运算器、控制器)、存储器、输入设备和输出设备五大部分组成,各部分通过外部总线连接而成为一体。
单片机的结构是在一块芯片上集成了中央处理器(CPU)、存储器、定时器/计数器、中断控制、各种输入/输出接口(如并行I/O口、串行I/O口和A/D转换器)等,它们通过单片机内部部总线连接而成为一体。
1-2MCS-51系列单片机内部资源配置如何?试举例说明8051与51兼容的单片机的异同。
答:MCS-51系列单片机内部资源配置型号8031/80C318051/80C51程序存储器片内RAM定时/计数器并行I/O口串行口中断源/中断优先级无128B128B128B256B256B2某162某162某163某163某164某84某84某84某84某8111115/25/25/26/26/24KBROM无8751/87C514KBEPROM8032/80C328052/80C524KBROM8051与51兼容的单片机的异同厂商型号程序存储片内定时/并行串行中断源/优先级5/26/2直接驱动LED输出,片上模拟比较器256B3某163219/2SPI,WDT,2个数据指针其它特点器RAM计数器I/O口口IntelATMEL8051/80C514KBROM128BAT89C20512KBFlahROMAT89S5312KBFlah ROMAnalogADuC812DeviceW77E5832KB256B+3某1636212/2扩展了4位I/O 口,双数据指针,WDT。
19/2WDT,SPI,8通道12位ADC,2通道12位DAC,片上DMA控制器。
.飞利浦80C552无256B3某1648115/4CMOS型10位ADC,捕捉/比较单元,PWM83/87C5528KBEEPROM83/89CE55832KBEEPROM256B+3某16401024B115/4256B3某1648115/4CMOS型10位ADC,捕捉/比较单元,PWM8通道10位ADC,捕捉/比较单元,PWM,双数据指针,IC总线,PLL (32kHz)。
单片机课后题标准标准答案.doc2-1. 8051 单片机芯片内部包含哪些主要逻辑功能部辑运算等操作,128位的位地址定义为 00H~7FH。
件?( 2)片内 RAM高 128字节的存储器区,有21个特殊功能寄答:一个 8位微处理器( CPU);片内数据存储器 RAM;存器。
其中字节地址正好能被8整除的字节单元中的每一片内程序存储器 ROM;四个 8位并行 I/O 口 P0~P3;两个位都可以按位寻址、操作。
14 2-5.8051 的 P0~P3口有定时器 / 计数器;五个中断源的中断控制系统;一个何不同,用作通用I/O 口输入数据时应注意什么?UART(通用异步接收发送器)的串行I/O 口;片内振答:P0~P3口功能不完全相同。
荡器和时钟产生电路。
( 1)访问外扩展存储器时,P2口送出 16位地址的高8位2-2 、8051 存储器分哪几个地址空间?如何区别不同地址, P0口先送出 16位地址的低8位地址,再做数据的输空间寻址?入 / 输出通道。
答:⑴ 片内、外统一编址的 64KB程序存储器;⑵ 片( 2)在无片外扩展存储器的系统中,P0、 P2口不需要内256B数据存储器;⑶ 片外 64KB数据存储器。
做地址口时,和 P1、P3口一样,都可作为准双向通用 I/O硬件:引脚接高电平时CPU从片内0000H单元开始取指口使用。
P0的输出级无上拉电阻,在作为通用 I/O 口时需令,接低电平时 CPU直接访问片外 EPROM。
EA 外接上拉电阻,且P0口的每一位输出可驱动8个TTL负载,软件: MOV指令访问片内数据存储器,MOVX 指令访而 P0~P3口的输出级接有上拉负载电阻,每一位输出可驱问片外数据存储器,MOVC指令用于读取程序存储器中动4个TTL负载。
的常数。
在作通用I/O 输入数据时应注意:应先对相应的端口锁存2-3. 简述 8051片内 RAM的空间分配。
器写 1,防止误读。
答:低 128B位数据存储器区分为:工作寄存器区2-6. 8051单片机引脚有何功能?在使用8031时,引脚应(00H~1FH);位寻址区( 20H~2FH);一般数据存储区如何处理? EAEA(30H~7FH)答:引脚为外部程序存储器地址允许输入端,其电平的高128B数据存储器区离散地分布着21个特殊功能寄高低决定了系统复位后CPU是从片内程序存储器还是片存器外扩展存储器的 0000H字节单元开始取指令。
第一章单片机的概述1、除了单片机这一名称外,单片机还可称为(微控制器)和(嵌入式控制器)。
2、单片机与普通微型计算机的不同之处在于其将(CPU)、(存储器)和(I/O口)三部分,通过内部(总线)连接在一起,集成于一块芯片上。
3、在家用电器中使用单片机应属于微型计算机的(B)。
A、辅助设计应用B、测量、控制应用C、数值计算应用D、数据处理应用4、微处理器、微计算机、微处理机、CPU、单片机、嵌入式处理器它们之间有何区别?答:微处理器、微处理机和CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机。
而微计算机、单片机它们都是一个完整的计算机系统,单片机是集成在一个芯片上的用于测控目的的单片微计算机。
嵌入式处理器一般意义上讲,是指嵌入系统的单片机、DSP、嵌入式微处理器。
目前多把嵌入式处理器多指嵌入式微处理器,例如ARM7、ARM9等。
嵌入式微处理器相当于通用计算机中的CPU。
与单片机相比,单片机本身(或稍加扩展)就是一个小的计算机系统,可独立运行,具有完整的功能。
而嵌入式微处理器仅仅相当于单片机中的中央处理器。
为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。
5、MCS-51系列单片机的基本型芯片分别为哪几种?它们的差别是什么?答:MCS-51系列单片机的基本型芯片分别为:8031、8051和8751。
它们的差别是在片内程序存储器上。
8031无片内程序存储器、8051片内有4K字节的程序存储器ROM,而8751片内有集成有4K字节的程序存储器EPROM。
6、为什么不应当把8051单片机称为MCS-51系列单片机?答:因为MCS-51系列单片机中的“MCS”是Intel公司生产的单片机的系列符号,而51系列单片机是指世界各个厂家生产的所有与8051的内核结构、指令系统兼容的单片机。
7、AT89S51单片机相当于MCS-51系列单片机中哪一种型号的产品?“s”的含义是什么?答:相当于MCS-51系列中的87C51,只不过是AT89S51芯片内的4K字节Flash 存储器取代了87C51片内的4K字节的EPROM。
第1章单片机概述参考答案1.答:微控制器,嵌入式控制器2.答:CPU、存储器、I/O口、总线3.答:C4.答:B5.答:微处理器、微处理机和CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机。
而微计算机、单片机它们都是一个完整的计算机系统,单片机是集成在一个芯片上的用于测控目的的单片微计算机。
嵌入式处理器一般意义上讲,是指嵌入系统的单片机、DSP、嵌入式微处理器。
目前多把嵌入式处理器多指嵌入式微处理器,例如ARM7、ARM9等。
嵌入式微处理器相当于通用计算机中的CPU。
与单片机相比,单片机本身(或稍加扩展)就是一个小的计算机系统,可独立运行,具有完整的功能。
而嵌入式微处理器仅仅相当于单片机中的中央处理器。
为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。
6.答:MCS-51系列单片机的基本型芯片分别:8031、8051和8071。
它们的差别是在片内程序存储器上。
8031无片内程序存储器、8051片内有4K字节的程序存储器ROM,而8751片内有集成有4K字节的程序存储器EPROM。
7.答:因为MCS-51系列单片机中的“MCS”是Intel公司生产的单片机的系列符号,而51系列单片机是指世界各个厂家生产的所有与8051的内核结构、指令系统兼容的单片机。
8.答:相当于MCS-51系列中的87C51,只不过是AT89S51芯片内的4K字节Flash存储器取代了87C51片内的4K字节的EPROM。
9.单片机体积小、价格低且易于掌握和普及,很容易嵌入到各种通用目的的系统中,实现各种方式的检测和控制。
单片机在嵌入式处理器市场占有率最高,最大特点是价格低,体积小。
DSP是一种非常擅长于高速实现各种数字信号处理运算(如数字滤波、FFT、频谱分析等)的嵌入式处理器。
由于对其硬件结构和指令进行了特殊设计,使其能够高速完成各种复杂的数字信号处理算法。
开发系统应能使用户有效地控制目标程序的运行,以便检查程序运行的结果,对存在的硬件故障和软件错误进行定位。
2)单片机状态查看修改功能当CPU停止执行程序运行后,开发系统允许用户方便地读出或修改目标系统资源的状态,以便检查程序运行的结果、设置断点条件以及设置程序的初始参数。
任务2中图2.13给出了在Medwin调试环境下查看单片机内部资源的菜单。
3.程序编译功能1) 程序设计语言单片机程序设计语言包括机器语言、汇编语言和高级语言。
机器语言是单片机唯一能够识别的语言。
汇编语言具有使用灵活、实时性好的特点。
目前,在实际项目开发中较少使用汇编语言。
高级语言通用性好,且具有较好的可读性和可移植性,是目前单片机编程语言的主流。
2) 程序编译单片机开发系统能够提供源程序的编辑、编译和下载功能以及工程管理功能。
4.程序固化功能编程器是完成这种任务的专用设备,它也是单片机开发系统的重要组成部分。
习题4 答案4.单片机定时/计数器的定时功能和计数有何不同答:当定时/计数器设置为定时工作方式时,计数器对内部机器周期计数,每过一个机器周期,计数器增1,直至计满溢出。
定时器的定时时间与系统的振荡频率紧密相关,如果单片机系统采用12M晶振,则计数周期为:,这是最短的定时周期,适当选择定时器的初值可获取各种定时时间。
当定时/计数器设置为计数工作方式时,计数器对来自输入引脚T0(P3.4)和T1(P3.5)的外部信号计数,外部脉冲的下降沿将触发计数,检测一个由1到0的负跳变需要两个机器周期,所以,最高检测频率为振荡频率的1/24。
计数器对外部输入信号的占空比没有特别的限制,但必须保证输入信号的高电平与低电平的持续时间在一个机器周期以上。
当需要准确计算时间时往往采用定时器的定时方式,而当要对一些外部事件计数时则采用定时器的计数方式。
4.软件定时和硬件定时的原理答:软件定时是通过编写一段延时程序来实现定时,这段延时程序不完成任何操作,只是通过一些空操作浪费掉一段时间。
习题答案习题01.单片机是把组成微型计算机的各功能部件即(微处理器(CPU))、(存储器(ROM 和RAM))、(总线)、(定时器/计数器)、(输入/输出接口(I/O口))及(中断系统)等部件集成在一块芯片上的微型计算机。
2.什么叫单片机?其主要特点有哪些?将微处理器(CPU)、存储器(存放程序或数据的ROM和RAM)、总线、定时器/计数器、输入/输出接口(I/O口)、中断系统和其他多种功能器件集成在一块芯片上的微型计机,称为单片微型计算机,简称单片机。
单片机的特点:可靠性高、便于扩展、控制功能强、具有丰富的控制指令、低电压、低功耗、片内存储容量较小、集成度高、体积小、性价比高、应用广泛、易于产品化等。
3. 单片机有哪几个发展阶段?(1)第一阶段(1974—1976年):制造工艺落后,集成度低,而且采用了双片形式。
典型的代表产品有Fairchild公司的F8系列。
其特点是:片内只包括了8位CPU,64B的RAM 和两个并行口,需要外加一块3851芯片(内部具有1KB的ROM、定时器/计数器和两个并行口)才能组成一台完整的单片机。
(2)第二阶段(1977—1978年):在单片芯片内集成CPU、并行口、定时器/计数器、RAM和ROM等功能部件,但性能低,品种少,应用范围也不是很广。
典型的产品有Intel 公司的MCS-48系列。
其特点是,片内集成有8位的CPU,1KB或2KB的ROM,64B或128B的RAM,只有并行接口,无串行接口,有1个8位的定时器/计数器,中断源有2个。
片外寻址范围为4KB,芯片引脚为40个。
(3)第三阶段(1979—1982年):8位单片机成熟的阶段。
其存储容量和寻址范围增大,而且中断源、并行I/O口和定时器/计数器个数都有了不同程度的增加,并且集成有全双工串行通信接口。
在指令系统方面增设了乘除法、位操作和比较指令。
其特点是,片内包括了8位的CPU,4KB或8KB的ROM,128B或256B的RAM,具有串/并行接口,2个或3个16位的定时器/计数器,有5~7个中断源。
单片机课后习题参考答案(全).单片机课后习题参考答案1. 什么是单片机?单片机是一种集成电路芯片,其中包含了处理器、存储器以及各种输入输出接口。
它能够完成各种控制任务,并且在各种嵌入式系统中广泛应用。
2. 单片机的特点有哪些?- 小巧、体积小:单片机可以集成多个功能在一个芯片内部,所以体积相对较小。
- 低功耗:单片机工作时功耗较低,适合用于一些需要长时间运行的电子产品。
- 低成本:相对于使用多个离散电子元件实现同样功能的电路,单片机的成本较低。
- 高可靠性:单片机内部通过硬件逻辑实现各种功能,不易受外界干扰,提高了系统的可靠性。
- 程序可编程:单片机可以通过编程改变其功能,具有较强的灵活性。
3. 单片机的工作原理是什么?单片机内部通过运算器、控制器、存储器等硬件组成,运算器负责执行各种算术、逻辑操作,控制器负责协调和控制各种操作,存储器用于存储程序和数据。
当单片机上电后,控制器开始执行存储器中的程序,按照指令的执行顺序执行各个操作。
单片机的输入输出接口与外部设备进行数据交换,实现与外部环境的交互。
4. 单片机的应用领域有哪些?单片机被广泛应用于各种嵌入式系统中,包括电子产品、电子仪器、通讯设备、汽车电子、医疗设备等。
它能够实现各种控制任务,如温度控制、风扇控制、光控制、家电控制等。
5. 单片机的编程语言有哪些?常见的单片机编程语言包括汇编语言、C语言和基于C语言的高级语言。
汇编语言是一种底层的编程语言,直接面向单片机的硬件操作;C语言是一种高级语言,可以方便地进行开发和调试;基于C语言的高级语言如Basic、Pascal等是对C 语言进行了扩展和封装,更加简化了编程过程。
6. 单片机系统的开发流程是什么?单片机系统的开发流程一般包括以下几个步骤:- 硬件设计:确定系统所需的输入输出接口及硬件电路,并进行电路设计和原理图绘制。
- 软件设计:编写程序代码,实现系统的各种功能。
- 系统调试:将软件下载到单片机中,通过调试工具进行调试和测试,确保系统能够正常运行。
单片机课后习题答案解析Section 1: Introduction to MicrocontrollersMicrocontrollers have become an integral part of our modern world, powering various electronic devices and systems. As students studying microcontrollers, it is essential to practice and reinforce our understanding through exercises and homework. In this article, we will provide a comprehensive analysis of the answers to several microcontroller exercises, aiming to enhance your comprehension and problem-solving skills.Section 2: Exercise 1 - GPIO ConfigurationExercise 1 focuses on the general-purpose input/output (GPIO) configuration in microcontrollers. This exercise requires us to configure a microcontroller's GPIO pins to control an LED. Let's take a closer look at the solution:To configure the microcontroller's GPIO pins, we need to follow a few steps:1. Identify the specific microcontroller and its pin diagram.2. Select the GPIO pins connected to the LED.3. Set the direction of the selected pins as output.4. Set the output value of the selected pins to the desired state.For example, if we have a microcontroller with pins GPIO0 and GPIO1 connected to an LED, the configuration steps would be as follows:1. Identify the microcontroller and its pin diagram.2. Select GPIO0 and GPIO1 as the control pins.3. Set GPIO0 and GPIO1 as output pins.4. Set the output value of GPIO0 and GPIO1 to either high or low to turn the LED on or off.Section 3: Exercise 2 - Timer InterruptsExercise 2 involves understanding and implementing timer interrupts in microcontrollers. Timer interrupts allow the microcontroller to perform specific actions at predefined intervals. Let's explore the solution to this exercise:To enable timer interrupts in a microcontroller, follow these steps:1. Configure the timer module with the desired frequency.2. Enable the timer interrupt in the microcontroller's interrupt settings.3. Implement the timer interrupt service routine (ISR) to execute the desired actions.For instance, if we want to generate an interrupt every 1 millisecond on a specific microcontroller, we would:1. Set the timer module to generate an interrupt every 1 millisecond.2. Enable the timer interrupt in the interrupt settings.3. Write an ISR to handle the actions to be performed when the interrupt occurs.Section 4: Exercise 3 - Serial CommunicationExercise 3 addresses serial communication in microcontrollers. Serial communication allows data transfer between the microcontroller and other devices or systems. Here's an analysis of the serial communication exercise:To establish serial communication in a microcontroller, follow these steps:1. Configure the microcontroller's serial communication module.2. Set the baud rate to match the device or system you want to communicate with.3. Transmit and receive data using the UART (Universal Asynchronous Receiver-Transmitter) protocol.For example, if we want to establish serial communication between a microcontroller and a computer via a UART connection, we would:1. Configure the microcontroller's UART module.2. Set the baud rate to match the computer's serial settings.3. Use the UART protocol to transmit data from the microcontroller to the computer and vice versa.Section 5: Exercise 4 - Analog-to-Digital ConversionExercise 4 involves analog-to-digital conversion (ADC) in microcontrollers. ADC allows us to convert analog signals into digital data that the microcontroller can process. Let's analyze the solution to this exercise:To perform analog-to-digital conversion in a microcontroller, follow these steps:1. Configure the microcontroller's ADC module.2. Set the reference voltage for the ADC.3. Select the input channel connected to the analog signal.4. Start the ADC conversion.5. Read the digital value from the ADC register.For instance, if we want to convert an analog voltage from a sensor into a digital value using a specific microcontroller, we would:1. Configure the ADC module in the microcontroller.2. Set the reference voltage for the ADC, such as3.3V.3. Select the input channel connected to the sensor.4. Start the ADC conversion.5. Read the digital value from the ADC register, representing the converted analog signal.Section 6: ConclusionIn conclusion, completing exercises and homework related to microcontrollers are crucial for enhancing our understanding and problem-solving skills. Through a detailed analysis of various exercises, we have explored the answers and solutions for GPIO configuration, timer interrupts, serial communication, and analog-to-digital conversion. By applying theseconcepts, we can confidently tackle real-world microcontroller projects and contribute to the advancement of technology. Keep practicing and exploring the vast possibilities of microcontrollers!。
第二章1、MCS-51系列单片机内部有哪些主要的逻辑部件?答:MCS-51系列单片机内部主要逻辑部件有:算术/逻辑部件ALU、累加器A(有时也叫ACC)、只读存储器ROM、随即存储器RAM、指令寄存器IR、程序计数器PC、定时器/计数器、I/O接口电路、程序状态寄存器PSW、寄存器组。
3、MCS-51内部RAM区功能如何分配?如何选用4组工作寄存器中的一组作为当前的工作寄存器组?位寻址区域的字节地址范围是多少?答:MCS-51单片机内部RAM共128B,地址空间为00H-7FH,按照功能分为用户区、位寻址区和寄存器工作区。
00H~1FH是32B单元的4个工作寄存器组,单片机执行程序时,具体使用哪一组是通过对PSW的RS1、RS0两位的设置来实现的。
可以位寻址的地址范围是20H~2FH的16B共128位的内部RAM区,按字节寻址的地址范围是30H~7FH共80B的内部RAM区。
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位地址的高八位。
8、MCS-51的时钟周期、机器周期、指令周期是如何分配的?当震荡频率为10MHz时,一个机器周期为多少微秒?答:CPU执行一条指令的时间称为指令周期,它是以机器周期为单位的。
MCS-51典型的指令周期为一个机器周期,每个机器周期由6个状态周期组成,每个状态周期由2个时钟周期(振荡周期)组成。
一个机器周期=6*一个状态周期=12*一个时钟周期=12/振荡周期当振荡周期为10MHz时,一个机器周期为12/10MHz=1.2us9、在MCS-51扩展系统中,片外程序存储器和片外数据存储器地址一样时,为什么不发生冲突?答:(1)、程序存储器和数据存储器物理上是独立的,寻址片外程序存储器和片外数据存储器的寻址方式、寻址空间和控制信号不同。
第9、10章习题一、问答题1.ALE端的作用是什么?答:ALE是地址锁存允许信号端/编程脉冲输入端。
当89C51上电正常工作后,ALE引脚不断向外输出正脉冲信号,此频率为振荡器频率的六分之一。
CPU访问片外存储器时,会丢失一个脉冲。
当对片外RAM进行读/写时,ALE 信号不是周期性的。
在其他情况下,ALE 信号是一种周期信号,可以用做其他外部设备的时钟信号。
2.总线接口部件的用途是什么?答:总线接口部件负责CPU与存储器、I/O接口之间的数据传送,即从内存单元或者外设端口中取数据,传送给执行部件。
或者把执行部件的操作结果传送到指定的内存单元或外设端口中。
这样的功能部件叫做总线接口部件。
3.为什么在存储系统中要进行片选控制?答:一个存储系统往往需要一定数量的存储芯片。
CPU每次只能对其中的一片存储器进行访问,因此CPU首先要选择的是访问那些芯片,这就需要进行片选控制。
一般用空出的高位地址或地址译码器输出的控制信号形成片选信号。
只有片选信号有效时,才能对所连芯片的存储单元进行读写。
4。
5.芯片74LS373、74LS164、74LS138、8255、27512、62128的基本功能以及通常使用在MCS-51系统中的作用。
答:74LS373为地址锁存器,通常用作扩展外部Rom、Ram或IO口用;74LS164为串行输入并行输出转换器,常用在将串口扩展为并口;74LS138为3选8译码器,常用来做地址译码器;8255为可编程并行IO口扩展芯片,常用来扩展IO口;27512为64k的EPROM程序存储器;62128为16k的RAM,数据存储器。
6.在MCS-51单片机系统中,外接程序存储器和数据存储器共用16位地址线和8位数据线,会不会发生冲突,并说明为什么?答:不会,因为控制信号线的不同:外扩的RAM芯片既能读出又能写入,所以通常都有读写控制引脚,记为OE和WE。
外扩RAM 的读、写控制引脚分别与MCS-51的RD和WR引脚相连。
一)填空题1.十进制数14对应的二进制数表示为(1110B),十六进制数表示为(0EH。
十进制数-100的补码为(9CH,+100的补码为(64H)。
2. 在一个非零的无符号二进制整数的末尾加两个0后,形成一个新的无符号二进制整数,则新数是原数的(4)倍。
3. 8位无符号二进制数能表示的最大十进制数是(255)。
带符号二进制数11001101转换成十进制数是(-51 )。
4. 可以将各种不同类型数据转换为计算机能处理的形式并输送到计算机中去的设备统称为(输入设备)。
5. 已知字符D的ASCII码是十六进制数44,则字符T的ASCII码是十进制数(84)。
6. 若某存储器容量为640KB则表示该存储器共有(655360)个存储单元。
7. 在计算机中,二进制数的单位从小到大依次为(位)、(字节)和(字),对应的英文名称分别是(bit )、(Byte )和(Word。
8. 设二进制数A=10101101 B=01110110 则逻辑运算A V B= (11111111),A A B= (00100100),A® B= (11011011)。
9. 机器数01101110的真值是(+110),机器数01011001的真值是(+89),机器数10011101 的真值是(+157或-115),机器数10001101的真值是(+206或-50)。
(二)单项选择题1. 用8位二进制补码数所能表示的十进制数范围是(D)(A)-127 ~ +127 (B)-128 ~ +128(C)-127 ~ +128 (D)-128 ~ +1272. 下列等式中,正确的是(B)(A) 1 KB = 1024 X 1024 B (B)1 MB = 1024 X 1024 B(C) 1 KB = 1024M B (D) 1 MB = 1024 B3. 程序与软件的区别是(C)(A)程序小而软件大(B)程序便宜而软件昂贵(C)软件包括程序(D)程序包括软件4. 存储器中,每个存储单元都被赋予惟一的编号,这个编号称为(A)(A)地址(B)字节(C)列号(D)容量5. 8位二进制数所能表示的最大无符号数是(B)(A)255 (B)256 (C)128 (D)1276. 下列4个无符号数中,最小的数是(B)(A)11011001 (二进制)(B)37 (八进制)(C)75 (十进制)(D)24 (十六进制)7. 下列字符中,ASCII码最小的是(B)(A)a (B) A (C)x (D)X8. 下列字符中,ASCII码最大的是(C)(A)a (B) A (C)x (D)X9. 有一个数152,它与十六进制数6A相等,那么该数是(B)(A)二进制数(B)八进制数(C)十进制数(D)十六进制数第2章80C5单片机的硬件结构(一)填空题1. 通过堆栈实现子程序调用,首先要把(PC的内容入栈,以进行断点保护。
调用返回时再进行出栈操作,把保护的断点送回(PC。
2. 80C51单片机的时钟电路包括两部分内容,即芯片内的(高增益反相放大器反相器)和芯片外跨接的(石英晶体振荡器晶振)与(两个微调电容)。
若调高单片机的晶振频率,则单片机的机器周期会变(短)。
3. 通常单片机有两种复位操作,即(上电复位)和(手动复位)。
复位后,PC 值为(0000H),SP fi%(07H),通用寄存器的当前寄存器组为(第0)组,该组寄存器的地址范围是从(00H到(07H)。
4. 80C51单片机中,一个机器周期包含(6)个状态周期,一个状态周期又可划分为(2)个拍节,一个拍节为(1)个振荡脉冲周期。
因此,一个机器周期应包含(12)个振荡脉冲周期。
5. 80C51中惟一一个可供用户使用的16位寄存器是(DPTR,它可拆分为两个8 位寄存器使用,名称分别为(DPH和(DPL 。
6. 单片机程序存储器的寻址范围由PC勺位数决定。
80C51的PC为16位,因此程序存储器地址空间是(64 KB)0(二)单项选择题1. 下列概念叙述正确的是(D)(A)80C5仲共有5个中断源,因此在芯片上相应地有5个中断请求输入引脚(B)特殊的存取规则使得堆栈已不是数据存储区的一部分(C)可以把PC看成是数据存储空间的地址指针(D)CPU中反映程序运行状态和运算结果特征的寄存器是PSW2. 取指操作后,PC勺值是(C)(A)当前指令前一条指令的地址(B)当前正在执行指令的地址(C)下一条指令的地址(D)控制寄存器中指令寄存器的地址3. 80C51单片机中,设置堆栈指针SP为37H后就发生子程序调用,这时SP的值变为(C)(A)37H (B)38H (C)39H (D)3AH4. 设置堆栈指针SP= 30H后,进行一系列的堆栈操作。
当进栈数据全部弹出后,SP应指向(A)(A)30H单元(B)07H单元(C)31H单元(D)2FH单元5. 下列关于堆栈的描述中,错误的是(C)(A)80C51的堆栈在内部RAM中开辟,所以SP只需8位就够了(B)堆栈指针SP的内容是堆栈栈顶单元的地址(C)在80C51中,堆栈操作过程与一般RA单元的读/写操作没有区别(D)在中断响应时,断点地址自动进栈6. 在单片机芯片内设置通用寄存器的好处不应该包括(A)(A)提高程序运行的可靠性(B)提高程序运行速度(C)为程序设计提供方便(D)减小程序长度7. 下列叙述中正确的是(D)(A)SP内装的是堆栈栈顶单元的内容(B)在中断服务程序中没有PUSH和POP指令,说明此次中断操作与堆栈无关(C)在单片机中配合实现“程序存储自动执行”的寄存器是累加器(D) 两数相加后,若A 中数据为66H,则PSW 中最低位的状态为0第3章80C51单片机指令系统(一)填空题1•假定累加器A 中的内容为30H,执行指令“ 1000H MOVC A, @A+PC 后,会把程序存储器(1031H)单元的内容送累加器Ao2. 假定(A ) =85H, ( R0) =20H, (20H) =0AFH 执行指令“ ADD A, @R0后,累加器A 的内容为(34H) , CY 的内容为(1) , AC 的内容为(1) , OV 的内容为(1)o3. 执行如下指令序列后,所实现的逻辑运算式为(P3.0 P1.0 P1.1 P1.2) MOV C, P1.0 ANL C, P1.1 ANL C, /P1.2 MOV P3.0, C4. 假定addr1仁00100000000B 标号qaz 的地址为1030H,执行指令“ qaz: AJMP addr11 ”后,程序转移到地址(1100H )去执行。
5. 累加器A 中存放着一个其值小于或等于127的8位无符号数,CY 清0后执 行“ RLC A'指令,则A 中的数变为原来的(2)倍。
6. 已知A=7AH R0=30H ( 30H) =A5H , PSW=80H 请按要求填写各条指令 的执行结果(每条指令均按已给定的原始数据进行操作)。
XCH A, R0 A= (30H ), R0= (7AH XCH A, 30H A= (0A5H XCH A, @R0 A=( 0A5H XCHD A, @R0 A=(75H) SWAP A A=( 0A7HADD A, R0 A= (0AAH , CY=(0), OV=( 1) ADD A, 30H A= ( 1FH ) , CY=( 1), OV=(0) ADD A, #30H A= (0AAH , CY=( 0), OV=( 1) ADDC A, 30H A= ( 20H ), CY=( 1), OV=(0) SUBB A, 30H A= (0D4H , CY=( 1), OV=( 1) SUBB A, #30H A= ( 49H ), CY= (0), OV=(0)F 列指令或指令序列中,不能实现PSV 内容送A 的是(C ) (B) MOV A, 0D0H (D ) PUSH PSW POP ACC“相对”两字是指相对于(C )(B) 当前指令的首地址(C)下一条指令的首地址 (D ) DPT 值(二)单项选择题1.(A ) MOV A, PSW (C ) MOV R0, 0D0HMOV A,@R0 2.在相对寻址方式中, (A )地址偏移量rel3. 下列指令或指令序列中,能将外部数据存储器3355H单元内容传送给A的是(B)(A)MOVX A, 3355H(B)MOV DPTR, #3355H MOVX A, @ DPTR(C)MOV PO, #33H (D)MOV P2, #33HMOV RO, #55H MOV R2, #55HMOVX A, @ RO MOVX A, @ R24. 对程序存储器的读操作,只能使用(D)(A)MOV指令(B)PUSH指令(C)MOV 指令(D)MOV指令5. 执行返回指令后,返回的断点是(C)(A)调用指令的首地址(B)调用指令的末地址(C)调用指令的下一条指令的首地址(D)返回指令的末地址6. 以下各项中不能用来对内部数据存储器进行访问的是(A)(A)数据指针DPTR(B)按存储单元地址或名称(C)堆栈指针SP (D)由R0或R1作间址寄存器(三)其他类型题1.判断下列指令的合法性(合法打“V”,非法打“X”)MOV A, @R2 (X)MOV R0, R1(X)INC DPTR (V)MOV PC, #2222H(X) DEC DPTR(X)RLC R0(X)MOV 0E0H, @R0(V) CPL R5 (X)CLR R0(X)CPL F0H (X)PUSH DPTR(X)POP 30H(V)MOVX A, @R1 (V)MOV A, 1FH(V)MOV C, 1FH (V)MOV F0, ACC.3 (X) MOV F0, C(V)MOV P1, R3 (VMOV DPTR, #0FCH X) CPL 30H(V)PUSH R0(X)MOV C, #0FFH (X) MOV A, #0D0H (V)2. 利用位操作指令序列实现下列逻辑运算。
(1)D=(10H P1.0) (11H CY)MOV C, P1.0ORL C, /10HMOV F0, CORL C, 11HANL C, F0MOV D, C(2)E=ACC.2 P2.7 ACC.1 P2.0MOV C, ACC.2ANL C, P2.7ORL C, ACC.1ANL C, P2.0MOV E, C3. 编写程序将内部RAM 20H ~ 23H单元的高4位写1, 分析:就是把内部ORG 0000HMOV R0, #20H 低4位写0。
用一个DJNZ勺循环。
RAM 20H ~ 23H这4个单元写入0F0H指向20H单元;R0MOV R1, #04H ; 4 个单元LOOP: MOV @R0, #0F0H ;写入INC R0DJNZ R1, LOOP ; 循环4 次END4. 在m ffi m+单元中存有两个BC数,将他们合并到m单元中,编写程序完成ORG 0030HMOV R0, #mMOV A, @R0 ; 将m单元中的BCD数送入累加器AANL A, #0FH ; 把m单元的高4位清0SWAP A ; 将m单元中的BCD数移入高4位MOV @R0, A ; m 单元高4位为BCD数,低4位为0INC R0 ; 指向m+单元MOV A, @R0 ; 将m+单元中的BCD数送入累加器AANL A, #0FH ; 把m+单元的高4位清0DEC R0 ; 指向m单元ORL A, @R0 ; 将和m+单元和m单元内容合并MOV @R0, A ; 合并后结果送m单元END5. 将内部RAI中从data单元开始的10个无符号数相加,其和送sum单元。