单片机部分答案第四版北航马忠梅

合集下载

单片机C语言应用程序设计马忠梅课后习题答案

单片机C语言应用程序设计马忠梅课后习题答案

单片机C语言应用程序设计马忠梅课后习题答案第一章1、8051单片机由哪几部分组成?8位中央处理器CPU、片内振荡电器及其时钟电路,4个8位并行I/O口(其中P0和P2可用于外部存储器的扩展),2个16位定时器/计数器,5个中断源(具有2个中断优先级),全双工串行口,布尔处理器。

2、8051单片机有多少个特殊功能寄存器?它们可以分为几组,各完成什么主要功能?P7 1-3表答:8051单片机内部有21个特殊功能寄存器,在物理上是分散在片内各功能部件中,在数学上把它们组织在内部数据存储器地址空间80H~FFH中,以便能使用统一的直接寻址方式来访问。

这些特殊功能寄存器颁在以下各个功能部件中:(1)CPU:ACC、B、PSW、SP、DPTR(由DPL和DPH两个8位寄存器组成);主要完成运算和逻辑判断功能;(2)中断系统:IP、IE;完成中断管理(3)定时器/计数器:TMOD、TCOM、TL0、TH0、TL1、TH1;完成定时或者计数功能(4)并行I/O口:P0、P1、P2、P3完成I/O 口功能,其中部分I/O口带有可选的纵向拓展功能(5)串行口:SCON、SBUF、PCON。

主要完成数据的串行发送和接收3、决定程序执行顺序的寄存器是哪几个?它是几位寄存器?是否为特殊功能寄存器?它的内容是什么信息?是程序计数器PC,它是16位寄存器,不是特殊功能寄存器,它的内容是下一条将要执行的程序的地址4、DPTR是什么特殊功能寄存器?DPTR的用途是什么?它由哪几个特殊功能寄存器组成?DPTR是16位数据指针寄存器,它由两个8位特殊功能寄存器DPL(数据指针低8位)和DPH (数据指针高8位)组成,DPTR用于保存16位地址,作地址寄存器用,可寻址外部数据存储器,也可寻址程序存储器。

5、8051的引脚有多少I/O线?它们和单片机对外的地址总线和数据总线有什么关系?地址总线和数据总线各是多少位?8051单片机的40个引脚中有32根I/O口线,P0口8根I/O线可以在外扩存储器时分时复用作为外部存储器的低8位地址总线和8位数据总线,P2口作为高8位地址总线,和分别作为外部存储器的写和读控制线。

单片机原理及应用课后习题答案

单片机原理及应用课后习题答案

单片机原理及应用课后习题答案1. 为什么单片机被广泛应用于各种电子设备中?单片机被广泛应用于各种电子设备中的原因有很多。

首先,单片机具有体积小、功耗低、成本低的特点,能够满足现代电子设备对于小型化、便携和节能的需求。

其次,单片机集成了中央处理器、存储器、输入输出端口等功能模块,能够满足电子设备对于高性能、多功能的要求。

此外,单片机具有灵活的可编程性,能够根据不同的应用需求进行定制开发,满足各种电子设备的特定功能和性能要求。

因此,单片机被广泛应用于各种电子设备中。

2. 什么是单片机的工作原理?单片机是一种集成了中央处理器、存储器、输入输出端口等功能模块的微型计算机系统。

其工作原理是通过中央处理器执行程序指令,对输入输出端口进行数据交换,从而实现对外部设备的控制和数据处理。

单片机内部包含了运算器、控制器、存储器等核心部件,通过时钟信号的控制,按照程序指令序列完成各种运算和数据处理操作。

单片机的工作原理可以简单概括为接收输入信号、进行数据处理、输出控制信号的过程。

3. 单片机的应用领域有哪些?单片机在各种电子设备中都有广泛的应用,主要包括消费类电子产品、工业自动化设备、通信设备、汽车电子系统等领域。

在消费类电子产品中,单片机被应用于智能手机、数码相机、家用电器等产品中,实现各种功能和控制。

在工业自动化设备中,单片机被应用于PLC、工业控制器、传感器等设备中,实现自动化生产和控制。

在通信设备中,单片机被应用于调制解调器、路由器、交换机等设备中,实现数据传输和网络控制。

在汽车电子系统中,单片机被应用于发动机控制、车载娱乐、车身电子系统等领域,实现车辆的各种功能和控制。

可以看出,单片机在各种应用领域都有重要的地位和作用。

4. 单片机的发展趋势是什么?随着科技的不断发展,单片机也在不断演进和升级。

未来单片机的发展趋势主要包括以下几个方面,首先,单片机将继续向着高性能、低功耗、小型化的方向发展,以满足电子设备对于性能和外形的要求。

单片机的C语言应用设计(第四版)马忠梅答案

单片机的C语言应用设计(第四版)马忠梅答案

T0装初值
overflow_count++
返回
#include <reg51.h> sbit LED=P1^7; /*P1.7电平控制灯亮灯灭,高电平灯亮 */ sbit dark=P3^2; /*通过P3.2脚INT0判断白天黑夜,INT0 低电平表黑夜*/ static unsigned long overflow_count = 0; void timer0() interrupt 1 using 0 { TH0=(65536-50000)/256; TL0= (65536-50000) %256; overflow_count++; }
• 4. 8051的中断响应过程是怎样的? 答:CPU响应中断后,由硬件自动执行如下的功能操作:
(1) 根据中断请求源的优先级高低,对相应的优先级状 态触发器置1。
(2) 保护断点,即把程序计数器PC的内容压入堆栈保存。
(3) 清内部硬件可清除的中断请求标志位(IE0、IE1、 TF0、TF1)。
习题18. 用单片机和内部定时器来产生矩形波。要 求频率为100Hz,占空比为2:1(高电平的时间长)。 设单片机时钟频率为12MHz。写出有关的程序。
解. fosc=12MHz时,最大定时为几十ms。 100Hz对应的周期为10ms。占空比2:1时,高 电平6.7ms,低电平3.3ms。可取0.1ms定时,对 应计数0.1ms/1us=100次。
3
4
001BH
0023H
习题5. 若8051的外部中断0为边沿触发方式,简述IE0标志的检测和置 位过程。
答: 8051的CPU在每个机器周期采样引脚INT0上的电平, 当前一个周期采样为高,而这个周期采样为低,即置 位中断标志IE0。 同时8051的CPU在每个机器周期还采 样中断标志IE0,如果中断标志IE0被置位,中断被激活, 且没有中断阻止条件,则CPU自动转向中断0的入口地 址0x0003进入中断服务程序。

单片机答案(第四版)马忠梅第11章

单片机答案(第四版)马忠梅第11章

4.对0809进行数据采集编程。要求对8路模拟量连续采集24h,每隔 #include<absacc.h> 10min采集一次,数据存储在外部数据存储区中。 #include<reg51.h> #define uchar unsigned char #define uint unsigned int #define IN0 XBYTE[0x7ff8] /*设置ADC0809的通道0地址*/ sbit ad_busy=P3^3; /*即EOC状态*/ uint overflow_count = 0; /*T1中断次数初值*/ void ad0809(uchar xdata * x) /*采样函数,结果x[]放外部数据存储器*/ { uchar i; uchar idata * ad_adr; ad_adr=&IN0; for(i=0;i<8;i++) /*处理8通道*/ { *ad_adr=0; /*启动转换*/ i=i; /*延时等待EOC变低*/ i=i; while(ad_busy==0); /*查询等待转换结束*/ x[i]=*ad_adr; /*存转换结果*/ *(*(p+j)+i)=x[i]; ad_adr++; /*下一通道*/ } }
解二:
#include<absacc.h> #include<reg51.h> #define uchar unsigned char #define IN6 XBYTE[0xfffe] /*设置ADC0809的通道6地址*/ sbit ad_busy=P3^3; /*即EOC状态*/ void ad0809(uchar idata * x) /*采样结果放指针中的A/D采集函数 */ { uchar i; uchar xdata * ad_adr; ad_adr=&IN6; for(i=0;i<20;i++) /*20次采集*/ { *ad_adr=0; /*启动转换*/ i=i; /*延时等待EOC变低*/ i=i; while(ad_busy==0); /*查询等待转换结束*/ x[i]=*ad_adr; /*存转换结果*/ } void main(void) { static uchar idata ad[20]; ad0809(ad); /*采样ADC0809通道的值*/ }

北航单片机答案

北航单片机答案

北航单片机答案单片机基础问答题答案:第2章1、.8051单片机芯片包含哪些主要逻辑功能部件?各有什么主要功能?答: CPU:控制单片机各部份协调工作进行算术和逻辑运算内部数据存储器:存储数据内部程序存储器:存储程序定时器/计数器,并行I/O口串行口,中断控制系统,时钟电路2、MCS—51单片机的EA信号有何功能?在使用8031时EA信号引脚应如何处理?答:访问程序存储器控制信号,EA=0访问外部程序存储器,EA=1访问内部程序存储器。

8031无内部程序存储器,所以EA接地。

3、MCS—51 单片机有哪些信号需要芯片引脚以第二功能的方式提供?答:P3口,ALE/PROG(30脚),EA/VPP(31脚),RST/VPD(9脚)4、内部RAM低128单片划分为哪3个主要部分?说明各部分的使用特点?答: 1.寄存器区, 可寄存器寻址2.位寻址区 ,可位寻址3.用户RAM区,其单元地址为30H~7FH,一般还把堆栈开辟在用户RAM区5、程序计数器(PC)作为不可寻址寄存器,它有哪些特点?答:PC是一个16位的计数器。

其内容为将要执行的指令地址,寻址范围达64KB。

有以下功能:A.自动加1功能,从而实现程序的顺序执行。

B.上电复位功能。

C.能接收内部数据总线上来的数据,主要通过转移,调用,返回等指令改变其内容以实现程序的转移,转移范围216=64K=65536。

PC没有地址,是不可寻址的。

6、堆栈有哪些功能?堆栈指示器(SP)的作用是什么?在程序设计时,为什么还要对SP重新赋值?答:堆栈是一种数据结构,堆栈的最大特点就是“后进先出”的数据操作规则。

堆栈是为子程序调用和中断操作而设立的。

其具体功能有两个:保护断点和保护现场。

堆栈指示器SP的作用是指示栈顶地址。

程序设计时一般把SP值初始化为30H以后,因为复位时,SP初始化为07H,而这里是寄存器区和位寻址区。

7、MCS—51的4个I/O口在使用上有哪些分工和特点?试比较各口的特点?答: P1口:只有一种功能通用I/O口P2口:通用I/O口和地址总线高八位P3口:一种功能通用I/O口和第二功能状态P0口:一种功能通用I/O口和AB/DB复用总线8、MCS—51单片机运行出错或程序进入死循环,如何摆脱困境?答:按复位键以重新启动。

单片机课后习题答案(北航出版)

单片机课后习题答案(北航出版)

单片机课后习题答案北京航空航天大学出版社1.微处理器,RAM,ROM,以及I/O口,定时器,构成的微型计算机称为单片机。

2.指令寄存器(IR)保存当前正在执行的一条指令;指令译码器(ID)对操作码进行译码。

3.程序计数器(PC)指示出将要执行的下一条指令地址,由两个8位计数器PCH及PCL组成。

4.80C31片内没有程序存储器,80C51内部设有4KB的掩膜ROM程序存储器,87C51是将80C51片内的ROM换成EPROM,89C51则换成4KB的闪存FLASHROM,51增强型的程序存储器容量是普通型的2倍。

5.89C51的组成:一个8位的80C51的微处理器,片内256字节数据存储器RAM/SFR用来存放可以读/写的数据,片内4KB程序存储器FLASHROM用存放程序、数据、表格,4个8位并行I/O端口P0-P3,两个16位的定时器/计数器,5个中断源、两个中断个优先级的中断控制系统,一个全双工UART的串行口I/O口,片内振荡器和时钟产生电路,休闲方式和掉电方式。

6.89C51片内程序存储器容量为4KB,地址从0000-0FFFH开始,存放程序和表格常数,片外最多可扩展64KBROM地址1000-FFFFH,片内外统一编址。

单片机的内部存储空间分为数据存储器和程序存储器。

7.内部数据存储器:共256字节单元,包括低128个单元和高128个单元。

低128字节又分成3个区域:工作寄存器区(00H~1FH),位寻址区(20H~2FH)和用户RAM区(30H~7FH)存放中间结果,数据暂存及数据缓冲。

高128字节是供给特殊功能寄存器(SFR)使用的,因此称之为特殊功能寄存器区(80H~FFH),访问它只能用直接寻址。

内部程序存储器:在8031片内无程序存储器,8051片内具有4KB掩模ROM,8751片内具有4KBEPROM。

8.引脚是片内外程序存储器的选择信号。

当端保持高电平时,访问内部程序存储器,但在PC(程序计数器)值超过0FFFH(对于8051/8751/80C51)或1FFFH(对于8052)时,将自动转向访问外部程序存储器。

单片机复习题集答案

单片机复习题集答案
ຫໍສະໝຸດ 2 指令系统与程序设计
*P25 3-1 什么是寻址方式?MCS—51 单片机有哪几种寻址方式? 什么是寻址方式? — 单片机有哪几种寻址方式?
*P26 3-6 若要完成以下数据传送,如何应用 MCS-51 指令予以实现? 若要完成以下数据传送, 指令予以实现 实现? (1) R1 的内容传送到 R0。 。 (2) 外部 RAM 20H 单元的内容送入 R0。 。 (3) 外部 RAM 0020H 单元的内容送入内部 RAM 20H 单元。 单元。 (4) 外部 RAM 1000H 单元内容送内部 RAM 20H 单元。 单元。 (5) 外部 ROM 2000H 单元内容送 R0。 。 P34 1。MCS-51 特殊功能寄存器只能采用 直接 寻址方式。 寻址方式。 。 寻址。 2.片内 20H~2FH 范围内的数据存储器,既可以字节寻址又可以 位 寻址。 范围内的数据存储器, . 3.访问 MCS-51 程序存储器传送命令的操作助记符应为 MOVC . 。 4.访问 MCS-51 片内 RAM 应该使用的传送指令的助记符是 MOV 应该使用的传送指令的助记符是 . 。 7. 汇编语言中可以使用 伪 指令 , 他们不是真正的指令 , 只是用来 对汇编过程某种控 . 汇编语言中可以使用伪指令,他们不是真正的指令, 制 。 9.执行 ANL A,#0FH 指令后,累加器 A 的高 4 位= 指令后, 0000 . 。 寻址。 19.MOV C,20H 源寻址方式为 . 位 寻址。 20.INC 指令 . 不 影响 CY 位。 P37 1.在中断服务程序中,至少应有一条( D ) .在中断服务程序中,至少应有一条( 。 A.传送指令 B.转移指令 C.加法指令 D.中断返回指令 . . . .中断返回指令 2.要用传送指令访问 MCS-51 片外 RAM,它的指令操作码助记符应是( B ) . ,它的指令操作码助记符应是( 。 A.MOV B.MOVX C.MOVC D.以上都行 . . . . 6.MOVX A, @DPTR 指令中源操作数的寻址方式是( B ) 指令中源操作数的寻址方式是( . 。 A.寄存器寻址 B.寄存器间接寻址 C.直接寻址 D.立即寻址 . . . . 10.LCALL 存于 2000H 开始的地址单元中,执行完相应子程序中的返回指令后, 开始的地址单元中,执行完相应子程序中的返回指令后, . PC=( D )。 。 A.2000H B.2001H C. 2002H D.2003H . . . . P38 22.指令 AJMP 的转跳范围是( 的转跳范围是( C ) . 。 A.256B B.1KB C.2KB D.64KB . . . . 27.对程序存储器的读操作,只能使用( D .对程序存储器的读操作,只能使用( ) 。 A.MOV 指令 B。PUSH 指令 C。MOVX 指令 D。MOVC 指令 . 。 。 。 P39 29.。执行返回指令时,返回的断点是( C 。执行返回指令时,返回的断点是( ) 。 A.调用指令的首地址 B。调用指令的末地址 C。调用指令下一条指令的首地址 . 。 。 D。返回指令的末地址 。 简答题: 简答题:

单片机课后习题答案解析

单片机课后习题答案解析
80C51单片机有4个I/O端口,每个端口都是8位双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0~P3)、一个输入驱动器和输入缓冲器。通常把4个端口称为P0~P3。在无片外扩展的存储器的系统中,这4个端口的每一位都可以作为双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和双向数据总线。对外可寻址空间为64KB。
(2)第二阶段(1977—1978年):在单片芯片内集成CPU、并行口、定时器/计数器、RAM和ROM等功能部件,但性能低,品种少,应用范围也不是很广。典型的产品有Intel公司的MCS-48系列。其特点是,片内集成有8位的CPU,1KB或2KB的ROM,64B或128B的RAM,只有并行接口,无串行接口,有1个8位的定时器/计数器,中断源有2个。片外寻址范围为4KB,芯片引脚为40个。
(4)RST/VPD:复位/备用电源线,可以使8051处于复位工作状态。
17.什么是指令?什么是程序?简述程序在单片机中的执行过程。
指令:人为输入计算机,由计算机识别并执行一步步操作的命令的形式称为指令。
程序:一系列指令的有序集合称为程序。
程序在计算机中是按序执行的,CPU通过程序计数器PC控制程序的执行顺序,一般情况下程序是按序执行的,当执行转移、调用、返回等指令时,程序转移到相应的目的地址处执行。CPU根据程序计数器PC中的地址将欲执行指令的指令码从存储器中取出,存放在IR中,ID对IR中的指令码进行译码,定时控制逻辑在OSC配合下对ID译码后的信号进行分时,产生执行本条指令所需的全部信号,完成本条指令的执行。
Motorola是世界上最大的单片机厂商。品种全、选择余地大、新产品多。其特点是噪声低,抗干扰能力强,比较适合于工控领域及恶劣的环境。

单片机的C语言应用设计(第四版)马忠梅答案...

单片机的C语言应用设计(第四版)马忠梅答案...

• 10.编写把字符串s逆转的函数reverse(s).
void reverse (unsigned char* s) { unsigned char i, s[ ], n; for(i=0;i<(n-1)/2;i++) { t=s[i]; s[i]=s[n-1-i]; s[n-1-i]=t; } } 例:s[10]=“012345678”或”abcdefghi” 或 s[11]=“0123456789”或”abcdefghij” 或
习题11.编写把字符串s逆转的递归函数reverse(s)。 答:使用reverse(s,strlen(s)-1)即可实现 unsigned char s=“abcdefg”; void reverse(unsigned char* p, unsigned char i) { unsigned char n=p[0]; p[0]=p[i]; p[i]=n; if(i>2) reverse(p+1, i-2); }
习题12.设计并初始化一个具有2个元素的2维数组保存图画(如正方形)的 X-Y坐标值。然后设计一个画图函数。标明怎样调用函数画正方形。
答:
#include <stdio.h> unsigned char G[1][2]={1,2}; //左上角坐标为G[0][0],G[0][1] void Squaቤተ መጻሕፍቲ ባይዱe(unsigned char g[1][2], unsigned char n) { unsigned char i,j; //边长为n for(j=0;j<=g[0][1]+n;j++) { if(j==g[0][1]||j==g[0][1]+n) { for(i=0;i<g[0][0];i++) printf("%s"," "); for(;i<=g[0][0]+n;i++) printf("%s","-"); } else if(j<g[0][1]) for(i=0;i<=g[0][0]+n;i++) printf("%s"," "); else { for(i=0;i<g[0][0];i++) printf("%s"," "); printf("%s","|"); for(i++;i<g[0][0]+n;i++) printf("%s"," "); printf("%s","|"); } } }

单片机课后答案总汇

单片机课后答案总汇

单片机课后答案总汇(总20页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--第一章单片机概述除了单片机这一名称之外,单片机还可称为(微控制器)和(嵌入式控制器)。

单片机与普通计算机的不同之处在于其将(微处理器)、(存储器)和(各种输入输出接口)三部分集成于一块芯片上。

4、单片机的发展大致分为哪几个阶段答:单片机的发展历史可分为四个阶段:第一阶段(1974 年----1976 年):单片机初级阶段。

第二阶段(1976 年----1978 年):低性能单片机阶段。

第三阶段(1978 年----现在):高性能单片机阶段。

第四阶段(1982 年----现在):8 位单片机巩固发展及 16 位单片机、32 位单片机推出阶段单片机根据其基本操作处理的位数可分为哪几种类型答:单片机根据其基本操作处理的位数可分为:1 位单片机、4 位单片机、8 位单片机、16位单片机和 32 位单片机。

MCS-51系列单片机的基本芯片分别为哪几种它们的差别是什么答:基本芯片为 8031、8051、8751。

8031 内部包括 1 个 8 位 cpu、128BRAM,21 个特殊功能寄存器(SFR)、4 个 8 位并行I/O口、 1 个全双工串行口, 2 个 16位定时器/计数器,但片内无程序存储器,需外扩 EPROM芯片。

8051 是在 8031 的基础上,片内又集成有 4KBROM,作为程序存储器,是 1 个程序不超过 4KB 的小系统。

8751 是在 8031 的基础上,增加了 4KB 的 EPROM,它构成了 1 个程序小于 4KB的小系统。

用户可以将程序固化在 EPROM 中,可以反复修改程序。

MCS-51系列单片机与 80C51 系列单片机的异同点是什么答:共同点为它们的指令系统相互兼容。

不同点在于MCS-51是基本型,而80C51采用CMOS工艺,功耗很低,有两种掉电工作方式,一种是 CPU 停止工作,其它部分仍继续工作;另一种是,除片内 RAM 继续保持数据外,其它部分都停止工作。

单片机部分答案第四版北航马忠梅

单片机部分答案第四版北航马忠梅

已知(A)=7AH,(R0)=30H,(30H)=A5H,PSW=80H。

问执行(单独执行)以下各指令的结果XCH A,R0; A=30H, R0=7AHXCH A,30H; A=A5HXCH A,@R0; A=A5HXCHD A,@R0; A=75H ;二者低4位互换SWAP A; A =A7H;A高低4位互换ADD A, R0; A = AAH, Cy=0, OV=1(a6 a7 =1)ADD A,30H; A= 1FH, Cy=1, OV=0ADD A, A,#30H; A= AAH, Cy=0, OV=1;ADDC A,30H; A= 20H, Cy=1, OV=0; 因为PSW的Cy=1SUBB A,30H; A= D4H, Cy=1, OV=1; 因为PSW的Cy=1SUBB A,#30H; A= 49H, Cy=0, OV=0; 因为PSW的Cy=1已知(A)=83H,(R0)=17H,(17H)=34H。

执行以下指令后A= ANL A,#17H ; 逻辑与(A)=03HORL 17H,A ;逻辑或(17H)=37HXRL A,@R0 ; 异或(A)=34HCPL A ; 取反(A)= CBH将内部RAM20H、21H、22H,连续三个单元的内容以此放入2FH、2DH、2EH单元MOV R0, #20HMOV R1, #2FHLOOP : MOV A, @R0MOV @R1, AINC R0DEC R1CJNE R0, #23H, LOOPSJMP $外部数据RAM在2000H~2100H区域有一个数据块,将他们移动到3000H~3100H 区域解一:MOV DPTR, #2000HMOV P2,#30HMOV R1, #00HLOOP : MOVX A, @DPTRMOV X @R1, AINC DPTRINC R1CJNE R1, #00H, LOOPINC P2MOV X A, @DPTRMOVX @R1, A解二:MOV DPTR, #2000HMOV P2,#30HMOV R1, #00HLOOP : MOV X A, @DPTRMOV X @R1, AINC DPTRINC R1CJNE R1, #00H, LOOPINC P2MOV A, DPHCJNE A,#21H,NEXTNEXT1:MOVX A, @DPTRMOVX @R1, ASJMP $NEXT:INC DPTRSJMP NEXT1解三:MOV DPTR, #2000HMOV R5, #00HMOV A, #00HMOV R1,ALOOP : MOV A,R1MOV X A, @A+DPTRMOV X @R0, AMOV DPTR, #3000HMOV A, @R0MOVX @A+DPTR, AINC R1DJNZ R5, LOOPMOV DPTR, #2100HMOVX A, @DPTRMOV DPTR, #3100HMOVX @DPTR,A外部数据RAM从2000H开始有100个数据块,将他们移动到2030开始的单元解一:MOV DPTR, #2000H MOV R4,#64HMOV P2,#10H LOOP1: MOVX A, @R1MOV R1, #00H MOVX @DPTR, AMOV R4,#64H INC R1 LOOP : MOVX A, @DPTR INC DPTR MOV X @R1, A DJNZ R4, 64H, LOOP1INC DPTRINC R1DJNZ R4, 64H, LOOPMOV DPTR, #2030HMOV P2,#10HMOV R1, #00H解二:MOV DPTR, #2000H MOV R3,#64HMOV P2,#10H DJNZ R3, LOOPNEXT: MOV R1, #00H SJMP $MOV R4,#64HLOOP : MOV X A, @DPTRMOVX @R1, AINC DPTRINC R1NEXT1: DJNZ R4, LOOPLOOP1:MOV DPTR, #1000HMOV P2,#20HMOV R1, #30H习题参考答案习题3. 8051主要的存储空间是什么为什么两个RAM的空间不同答:8051单片机的存储空间分为数据RAM和代码ROM,其中数据RAM又分为片内RAM 和片外RAM。

单片机的C语言应用设计(第四版)马忠梅答案ppt课件

单片机的C语言应用设计(第四版)马忠梅答案ppt课件

T0装初值
overflow_count++
返回
#include <reg51.h> sbit LED=P1^7; /*P1.7电平控制灯亮灯灭,高电平灯亮 */ sbit dark=P3^2; /*通过P3.2脚INT0判断白天黑夜,INT0 低电平表黑夜*/ static unsigned long overflow_count = 0; void timer0() interrupt 1 using 0 { TH0=(65536-50000)/256; TL0= (65536-50000) %256; overflow_count++; }
答: 中断通过把保存有现场数据的寄存器压入堆栈进行现 场保护。 当一个特定任务正在执行时,可能有更紧急的事需要引 起CPU的注意。在一个具有优先级的系统中,CPU不是等 待第一个任务完成,而是假定前一个任务已经完成,立 即处理新的任务。若程序流程立刻转向新任务,则新任 务使用的各个寄存器将会破坏第一个任务使用的中间信 息。但第一个任务恢复运行时,寄存器的值将不再可靠 而导致错误的发生。解决问题的方法是每次发生任务的 切换时执行一些指令进行现场保护和现场恢复,这就是 上下文切换。p179
单片机的C语 言应用设计(第 四版)马忠梅答 案
• 2.8051中断有多少优先级 答:(见p176) 2个
习题参考答案(P.204)
习题3. 8051中断的中断响应条件是什么?
答: 1、中断寄存器IE中的EA和相应的中断使能位激活; 2、CPU没有在处理同级或者更高级的中断; 3、现行执行周期是所执行指令的最后一个周期; 4、当前指令不是RETI或者是访问IE或IP的指令。
3
4

单片机原理及应用第四版林立选择题答案

单片机原理及应用第四版林立选择题答案

第七章选择题答案1)从串口接收缓冲器中将数据读入到变量 ____________________ temp 中的 C51 语句是A .角色固定不能互换 B.角色可换但需切换C . 互不影响双向通信 D.相互影响互相制约3) 80C51 的串口工作方式中适合多机通信的是 。

A .工作方式 0B .工作方式 1C .工作方式 2D .工作方式 34) 80C51 串行口接收数据的次序是下述的顺序(5) 80C51 串行口发送数据的次序是下述的顺序 。

①待发数据送 SBUF ②硬件自动将 SCON 的 TI 置 1③经 TXD ()串行发送一帧数据完毕④用软件将 SCON 的 TI 清零 A .①③②④ B .①②③④ C .④③①② D .③④①②(6)80C51用串口工作方式 0 时 _ 。

A .数据从 RXD 串行输入,从 TXD 串行输出B .数据从 RXD 串行输出,从 TXD 串行输入C .数据从 RXD 串行输入或输出,同步信号从 TXD 输出D .数据从 TXD 串行输入或输出,同步信号从 RXD 输出(7)在用接口传送信息时,如果用一帧来表示一个字符,且每帧中有一个起始位、一个结 束位和若干个数据位,该传送属于 。

A .异步串行传送B .异步并行传送C .同步串行传送D .同步并 行传送8)80C51的串口工作方式中适合点对点通信的是A .工作方式 0B .工作方式 1C .工作方式 2D .工作方式 3 A .temp = SCON; B .temp = TCON; 2)全双工通信的特点是,收发双方 _________________________________ C .temp = DPTR; D .temp = SBUF;①接收完一帧数据后,硬件自动将 SCON的 RI 置 1 ②用软件将 RI 清零 ③接收到的数据由 SBUF 读出④置 SCON 的 REN 为 1,外部数据由 RXD 输入 A .①②③④ B .④①②③ C .④③①② D .③④①②9)80C51 有关串口内部结构的描述中是不正确的。

单片机习题答案(第四章)

单片机习题答案(第四章)
MOV A,30H
RL A
MOV 30H,A
RET
编写程序,把片外RAM从2 0 00 H开始连续存放的8个数据送到片内3 0H开始的单元
中。
程序如下:
ORG 0000H
MOV R7,#08H
MOV DPTR,#2000H
MOV R0,#30H
LOOP1: MOVX A,@DPTR
MOV @R0,A
INC DPTR
INC R0
DJNZ R7,LOOP1
RET
已知片内3 0H, 3 1H中存有一个1 6位的二进制数,高位在前,低位在后,请编程将
它们乘2 ,再存回原处。设乘完结果不超出双字节。
程序如下:
ORG 0000H
MOV A,31H
CLR CY
RLC A
MOV A,30H
RLC A
MOV 30H,A
AJMP$
若有两个无符号数X ,Y分别存放在外部数据存储器5 0,5 1单元中,试编写一个程序,
实现X*5+Y,结果高8位存入片内4 2单元,低8位存入片内4 3单元。
程序如下:
ORG 0000H
MOV DPTR,#0050H;X先乘2
MOVX A,@DPTR
MOV 43H,A
CLR CY
RLC A
MOV R0,#A
MOV A,@R0
MOV R0,#B
SUBB A,@R0
JNB OV,OVER
MOV @R0,#00H
MOV R0,#A
MOV @R0,#00H
OVER: RET
已知片内30H单元中存有一个8位无符号数。编程将它们乘2,再存回原处。设乘完结果
不超出一个字节。

单片机习题及参考答案

单片机习题及参考答案

单片机习题及参考答案(总7页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--第一章课后习题参考答案(一)填空题1. 除了“单片机”之外,单片机还可以称之为单片微控制器和单片微型计算机。

2. 专用单片机由于已经把能集成的电路都集成到芯片内部了,所以专用单片机可以使系统结构最简化,软硬件资源利用最优化,从而极大地提高了可靠性和降低了成本。

3. 在单片机领域内,ICE的含义是在线仿真器(In Circuit Emulator)。

4. 单片机主要使用汇编语言,而编写汇编语言程序要求设计人员必须精通和指令系统,单片机硬件结构。

5. CHMOS工艺是 CMOS 工艺和 HMOS 工艺的结合,具有低功耗的特点。

6. 与8051比较,80C51的最大特点是所用CHMOS工艺。

7. 微控制技术是对传统控制技术的一次革命,这种控制技术必须使用单片机才能实现。

(二)选择题1.下列简写名称中不是单片机或单片机系统的是(A)MCU (B)SCM (C)ICE (D)CPU2.在家用电器中使用单片机应属于计算机的是(A)数据处理应用(B)控制应用(C)数值计算应用(D)辅助工程应用3.80C51与80C71的区别在于(A)内部程序存储器的类型不同(B)内部数据存储器的类型不同(C)内部程序存储器的容量不同(D)内部数据存储器的容量不同4.8051与80C51的区别在于(A)内部ROM的类型不同(B)半导体工艺的形式不同(C)内部寄存单元的数目不同(D)80C51使用EEPROM,而8051使用EPROM5.在下列单片机芯片中使用掩膜ROM作为内总程序存储器的是(A)8031 (B)80C51 (C)8032 (D)87C516.80C51芯片采用的半导体工艺是(A)CMOS (B)HMOS (C)CHMOS(D)NMOS7.单片机芯片8031属于(A)MCS-48系列(B)MCS-51系列(C)MCS-96系列(D)MCS-31系列8.使用单片机实现在线控制的好处不包括(A)精确度高(B)速度快(C)成本低(D)能与数据处理结合9.以下所列各项中不是单片机发展方向的是(A)适当专用化(B)不断提高其性能(C)继续强化功能(D)努力增加位数第二章课后习题参考答案(一)判断题1.用户构建单片机应用系统,只能使用芯片提供的信号引脚。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

← 1.22 已知(A)=7AH,(R0)=30H,(30H)=A5H,PSW=80H。

问执行(单独执行)以下各指令的结果XCH A,R0; A=30H, R0=7AHXCH A,30H; A=A5HXCH A,@R0; A=A5HXCHD A,@R0; A=75H ;二者低4位互换SWAP A; A =A7H;A高低4位互换ADD A, R0; A = AAH, Cy=0, OV=1(a6 a7 =1)ADD A,30H; A= 1FH, Cy=1, OV=0ADD A, A,#30H; A= AAH, Cy=0, OV=1;ADDC A,30H; A= 20H, Cy=1, OV=0; 因为PSW的Cy=1SUBB A,30H; A= D4H, Cy=1, OV=1; 因为PSW的Cy=1SUBB A,#30H; A= 49H, Cy=0, OV=0; 因为PSW的Cy=1← 1.24 已知(A)=83H,(R0)=17H,(17H)=34H。

执行以下指令后A=?ANL A,#17H ; 逻辑与(A)=03HORL 17H,A ;逻辑或(17H)=37HXRL A,@R0 ; 异或(A)=34HCPL A ; 取反(A)= CBH← 1.25 将内部RAM20H、21H、22H,连续三个单元的内容以此放入2FH、2DH、2EH单元MOV R0, #20HMOV R1, #2FHLOOP : MOV A, @R0MOV @R1, AINC R0DEC R1CJNE R0, #23H, LOOPSJMP $← 1.34 外部数据RAM在2000H~2100H区域有一个数据块,将他们移动到3000H~3100H区域解一:MOV DPTR, #2000HMOV P2,#30HMOV R1, #00HLOOP : MOVX A, @DPTRMOV X @R1, AINC DPTRINC R1CJNE R1, #00H, LOOPINC P2MOV X A, @DPTRMOVX @R1, A解二:MOV DPTR, #2000HMOV P2,#30HMOV R1, #00HLOOP : MOV X A, @DPTRMOV X @R1, AINC DPTRINC R1CJNE R1, #00H, LOOPINC P2MOV A, DPHCJNE A,#21H,NEXTNEXT1:MOVX A, @DPTRMOVX @R1, ASJMP $NEXT:INC DPTRSJMP NEXT1解三:MOV DPTR, #2000HMOV R5, #00HMOV A, #00HMOV R1,ALOOP : MOV A,R1MOV X A, @A+DPTRMOV X @R0, AMOV DPTR, #3000HMOV A, @R0MOVX @A+DPTR, AINC R1DJNZ R5, LOOPMOV DPTR, #2100HMOVX A, @DPTRMOV DPTR, #3100HMOVX @DPTR,A1.35 外部数据RAM从2000H开始有100个数据块,将他们移动到2030开始的单元解一:MOV DPTR, #2000H MOV R4,#64HMOV P2,#10H LOOP1: MOVX A, @R1MOV R1, #00H MOVX @DPTR, AMOV R4,#64H INC R1 LOOP : MOVX A, @DPTR INC DPTR MOV X @R1, A DJNZ R4, 64H, LOOP1INC DPTRINC R1DJNZ R4, 64H, LOOPMOV DPTR, #2030HMOV P2,#10HMOV R1, #00H解二:MOV DPTR, #2000H MOV R3,#64HMOV P2,#10H DJNZ R3, LOOPNEXT: MOV R1, #00H SJMP $MOV R4,#64HLOOP : MOV X A, @DPTRMOVX @R1, AINC DPTRINC R1NEXT1: DJNZ R4, LOOPLOOP1:MOV DPTR, #1000HMOV P2,#20HMOV R1, #30H习题参考答案(P.79)习题3. 8051主要的存储空间是什么?为什么两个RAM的空间不同?答:8051单片机的存储空间分为数据RAM和代码ROM,其中数据RAM又分为片内RAM 和片外RAM。

片内RAM的地址为8位,由单片机指令直接在单片机内部寻址访问,而片外RAM的地址为16位,只能由单片机的MOVX指令通过外部总线访问。

习题4. 编一段程序,把8位口新的输入值和前一次的输入值进行比较,然后产生一个8位数。

这个数中的位为“1”的条件是:仅当新输入的位为“0”,而前一次输入的位为“1”。

答:设该8位口为P1,新产生的8位数为x:unsigned char x;x=P1;x&=~P1;习题6. 按给定的存储类型和数据类型,写出下列变量的说明形式:up,down 整数,使用堆栈存储;first,last 浮点数,使用外部数据存储器存储;cc,ch 字符,使用内部数据存储器存储。

答:堆栈只能存储内部RAM字节内容,必须在idata区:(复位后SP=07H,但是07H中存放堆栈地址,上电复位后典型寄存器的值?)int idata up,down;float xdata first,last;char idata cc,ch; 或char data cc,ch;习题7.判断下列关系表达式或逻辑表达式的运算结果(1或0)1、10==9+1; →12、0&&0; →03、10&&8; →14、8||0; →15、!(3+2); →06、设x=10,y=9;x>=8&&y<=x; →1习题8.设x=4,y=8,说明下列各题运算后,x,y和z的值分别是多少?1、z=(x++)*(--y); → x=5,y=7,z=282、z=(++x)-(y--); → x=5,y=7,z=-33、z=(++x)*(--y); → x=5,y=7,z=354、z=(x++)+(y--); → x=5,y=7,z=12习题9. 分析下列运算表达运算顺序。

1、c=a|| (b); →( b)是为0或1(逻辑值),若a=0则a|| (b),结果赋给c2、x+=y-z; → y-z,x+(y-z),结果赋给x3、-b>>2; → -b,结果右移2位。

注:-b不是取反也不能确定为负数;取反一般是变成2进制然后按位取反。

如b=-3,即0FDH,则-b=3,而不是0FD按位取反4、c=++a%b--;→ a=a+1,a%b,b=b-1,%结果赋给c5、!m&n; → !m,若结果为1再和n相与。

X(不是&&)!m,再和n相与6、a<b||c&d; → a<b,若结果为0再c&d,结果相或习题参考答案(P.93)习题6. 用选择分支编写程序,把输入的一个数字按下列对应关系显示。

当输入Z时,程序结束。

#include <stdio.h>#include <reg51.h>main( ){unsigned char k;do{scanf(“%c”,&k);switch(k){case ‘1’: printf(“A”); break;case ‘2’: printf(“B”); break;case ‘3’: printf(“C”); break;case ‘4’: printf(“D”); break;default: printf(“?”); break;}}while( k ! = ‘Z’ );while( 1 );}习题7. 若在C中的switch操作漏掉break,会发生什么?答:若在case语句中漏掉break,则程序执行case选择部分程序后不会按照要求退出switch 语句,而是继续执行下一个case语句选择的内容。

习题8. 编写程序,输出x3数值表,x为0—10。

main(){unsigned char x;unsigned int y;for(x=0;x<11; x++){y=(unsigned int)x*x*x;pri ntf(“%c,%d\n”,x,y);}while(1);}习题9. 用三种循环方式分别编写程序,显示1—100的平方。

答:三种流程图如下:#define uint unsigned intmain(){unsigned int y;unsigned char x;for( x = 0 ; x < 101 ; x++){y=(unsigned int)x*x;printf(“%c,%d\n”,x,y);}while(1);}main( ){unsigned int y;unsigned char x=1;while(x<101){y=(unsigned int)x*x;printf(“%c,%d\n”,x,y);x++;}}main(){unsigned int y;unsigned char x=1;do{y = (unsigned int)x*x ;printf( “%c, %d\n”, x, y ) ;x++;} while(x<101);while(1);}习题9. 写出下列数组使用*运算的替换形式。

1.data[2];2.num[i+1];3.man[5][3]。

1、*(data+2) p1072、*(num+i+1)3、*(*(man+5)+3)习题10. 设下列运算表达式中p是指针,试分析各表达式的运算顺序。

1.b=*p--;2.x=*p++;3.a[++i]=*p++ ;4.y=*--*++p-6。

答:1、先取*p给b,再使p减1单元(注意不是*p减1单元);2、先取*p给x,再使p加1单元(注意不是*p加1单元);3、先使i加1,再取*p给a[i],再使p加1单元;4、这里p是指针的指针,先使p加1单元,再使*p减1单元,再使*(*p)减6后赋给y;习题12. 结构的定义和说明在程序中的作用是什么?在对结构初始化时应该注意些什么问题。

答:结构的定义和说明在程序中可以把一组关系密切的变量存放在一个连续的存储空间中,便于对这些变量的访问。

同一个结构中不能存在同名变量名称。

可以把具有相同结构的已知结构直接用“=”对结构进行赋值,或者通过其成员的逐个引用分别赋值。

在没有赋值前结构成员的值是不确定的,有可能被编译器启动代码初始化为0。

相关文档
最新文档