单片机原理及应用89c51期末复习资料
最新51单片机原理及应用期末考试试题汇总5资料

单片机原理及应用期末考试试题汇总1、单片机是将微处理器、一定容量的 RAM 和ROM以及 I/O 口、定时器等电路集成在一块芯片上而构成的微型计算机。
2、单片机89C51片内集成了 4 KB的FLASH ROM,共有 5 个中断源。
3、两位十六进制数最多可以表示 256 个存储单元。
4、89C51是以下哪个公司的产品?( C )A、INTELB、AMDC、ATMELD、PHILIPS5、在89C51中,只有当EA引脚接高电平时,CPU才访问片内的Flash ROM。
6、是非题:当89C51的EA引脚接低电平时,CPU只能访问片外ROM,而不管片内是否有程序存储器。
T7、是非题:当89C51的EA引脚接高电平时,CPU只能访问片内的4KB空间。
F8、当CPU访问片外的存储器时,其低八位地址由 P0 口提供,高八位地址由 P2 口提供,8位数据由 P0 口提供。
9、在I/O口中, P0 口在接LED时,必须提供上拉电阻, P3 口具有第二功能。
10、是非题:MCS-51系列单片机直接读端口和读端口锁存器的结果永远是相同的。
F11、是非题:是读端口还是读锁存器是用指令来区别的。
T12、是非题:在89C51的片内RAM区中,位地址和部分字节地址是冲突的。
F13、是非题:中断的矢量地址位于RAM区中。
F14、MCS-51系列单片机是属于( B )体系结构。
A、冯诺依曼B、普林斯顿C、哈佛D、图灵15、89C51具有 64 KB的字节寻址能力。
16、是非题:在89C51中,当CPU访问片内、外ROM区时用MOVC指令,访问片外RAM区时用MOVX 指令,访问片内RAM区时用MOV指令。
T17、在89C51中,片内RAM分为地址为 00H~7FH 的真正RAM区,和地址为80H~FFH的特殊功能寄存器(SFR) 区两个部分。
18、在89C51中,通用寄存器区共分为 4 组,每组 8 个工作寄存器,当CPU 复位时,第 0 组寄存器为当前的工作寄存器。
单片机原理及接口技术考试必备复习资料

单片机原理及接口技术考试必备复习资料单片机的特点和应用1)高集成度,体积小,高可靠性2)控制功能强(3)低电压,低功耗,便于生产便携式产品(4)易扩展(5)优异的性能价格比。
应用领域单片机已成为计算机发展和应用的一个重要方面。
另一方面,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
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个。
89C51的EA端有何用途?答:/EA端接高电平时,CPU只访问片内flashRom并执行内部程序,存储器。
/EA端接低电平时,CPU只访问外部ROM,并执行片外程序存储器中的指令。
/EA端保持高电平时,CPU执行内部存储器中的指令。
89C51的存储器分哪几个空间?如何区别不同空间的寻址?答:ROM(片内ROM和片外ROM统一编址)(使用MOVC)(数据传送指令)(16bits地址)(64KB)片外RAM(MOVX)(16bits地址)(64KB)片内RAM(MOV)(8bits地址)(256B)简述89C51片内RAM的空间分配。
答:片内RAM有256B低128B是真正的RAM区高128B是SFR(特殊功能寄存器)区简述布尔处理存储器的空间分配,片内RAM 中包含哪些可位寻址单元。
答:片内RAM区从00H~FFH(256B)其中20H〜2FH(字节地址)是位寻址区对应的位地址是00H〜7FH如何简捷地判断89C51正在工作?答:用示波器观察8051的XTAL2端是否有脉冲信号输出(判断震荡电路工作是否正常?)ALE(地址锁存允许)(AddressLatchEnable)输出是fosc的6分频用示波器观察ALE是否有脉冲输出(判断8051芯片的好坏?)观察PSEN(判断8051能够到EPROM或ROM中读取指令码?)因为/PSEN 接外部EPROM(ROM)的/OE端子OE=OutputEnable(输出允许)89C51P0口用作通用I/0口输入时,若通过TTL“OC”门输入数据,应注意什么?为什么?答:要接上拉电阻,也要先置1;单片机I/O口电流太小,驱动能力弱,接上拉电阻保证电流做输入时应先置高电平然后读数。
单片机原理及应用期末考试复习资料

单片机原理及应用期末考试复习资料1:MCS-51汇编语言指令格式中,唯一不可缺少的部分是。
2.操作码2:在下列MCS-5l单片机各条指令中,错误的是()。
1.MOV A,@R73:MCS-51寻址方式中,操作数Ri加前缀“@”号的寻址方式是()。
1.寄存器间接寻址4:若PSW的RS1/RS0=10则单片机工作寄存器工作在()。
3.2区5:单片机8031的ALE引脚是()。
3.输出矩形脉冲,频率为fosc的1/66:单片机中的程序计数器PC用来()。
3.存放下一条指令地址7:单片机程序存储器的寻址范围是由程序计数器PC的位数决定的,MCS-51的PC为16位,因此其寻址范围是( )。
2.64KB8:使8031的定时器T0停止计数的指令是()。
4.CLR TR09:在下列MCS-5l单片机各条指令中,错误的是()。
1.MOVC @A+DPTR,A10:单片机上电复位后,堆栈区的最大允许范围是个单元。
2.12011:下列定时/计数硬件资源中,不是供用户使用的是()。
3.定时器/计数器控制逻辑12:80C51单片机的数据长度是()。
2.8位13:8051单片机中,输入/输出引脚中用于专门的第二功能的引脚是()。
4.P314:累加器A中为无符号二进制数,()实现将A中内容乘以2。
3.CLR C RLC A15:LU表示()。
4.算术逻辑部件16:单片机复位后,()。
2.PC=0000H,SP=07H17:8051单片机中,输入/输出引脚中用于专门的第二功能的引脚是。
4.P318:MCS-51单片机的数据指针DPTR是一个16位的专用地址指针寄存器,主要用来()。
4.存放16位地址,作间址寄存器使用19:MCS-51系列单片机的中断系统具有()。
1.5个中断源20:在下列MCS-5l单片机各条指令中,错误的是()。
1.MOVC @A+DPTR,A21:单片机上电复位后,PC的内容和SP的内容为()。
2.0000H,07H22:INTEL8031的P0口,当使用外部存贮存器时它是一个()。
单片机原理与应用复习资料

1、AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。
2、8051的中断向量表在_0003_H、_0008_H和0013H_、001BH、0023H_.3、单片机经加电复位后,执行第一条指令的地址是:__FFF0H___.4、一个机器周期=_6_个状态周期=__12个振荡周期。
5、设DPTR=2000H(A)=A0H,则MOOC A @A+DPTR。
操作数的实际操作地址为20A0H.伴随着PESN控制信号有效。
6、在查询和中断两种输入方式中效率较高的是中断。
7、在MCS-51单片机系统中采用的编制方式是_统一编址_。
8、8051单片机定时器1计数器作定时和计数用时,其计数脉冲分别由8051片内脉冲和P3.4和P3.5引脚的外部脉冲提供。
9、当单片机复位时,PSW=__00__H ,SP=_07_H .P0~P3均为置“1”电平。
10、利用8155H可以扩展_3_个并行口。
__256__RAM单元。
11、MCS-51单片机是__8_位的单片机。
12、MCS-51单片机有_5_个中断源,__2个_级优先级中断。
13、串行接口方式3发送的第9位数据要争先写入_SCON_寄存器的_TB8_位。
14、串行口的方式0的波特率为__FOSC/12__.15、8051内部数据存储器的地址范围是_00~7FH_,位地址空间的字节地址范围_20~2FH_,对应的位地址范围是__00~7FH_,外部的数据存取器的最大可扩展容量是_64KB_。
16、如果(A)=58H,(R1)=49H,(49H)=79H,执行指令XCH A,@R1后,结果(A)=_49H_ ,(49H)=_58_17、当MCS-51执行MOVC A,@A+DPTR指令时,伴随着_PESN_控制信号有效。
18、MCS-51访问片外存储器时,利用_ALE_信号锁存来自P0口发出的低8位地址信号。
1、如果(DPTR)=5678H,(SP)=42H,(3FH)=12H,(40H)=34H,(41H)=50H,(42H)=80H,则执行下列指令后:POP DPHPOP DPLRET 则:(PCH)= 34H ;(PCL)= 12H ;(DPH)= 80H ;(DPL)= 50H 。
单片机原理及应用89c51期末复习资料

单⽚机原理及应⽤89c51期末复习资料单⽚机期末复习资料实验3 数码管显⽰设计1*功能描述:本程序集中体现数码管的静态显⽰,完成数码管由0到F的静态显⽰************************************************************/#include//包含头⽂件#define uchar unsigned char#define uint unsigned int //宏定义sbit dula=P1^4; //端⼝定义uchar num,y;uint x; //定义变量uchar code table[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e};//0到F的数码管管码/********************主函数**********************/void main(){while(1)//进⼊⼤循环{for(num=0;num<16;num++) //判断是否到F{dula=1;//开启锁存器P0=table[num];//送数码管管码dula=0;//关闭锁存器for(x=2000;x>0;x--)for(y=220;y>0;y--);//延时}}}2 *功能描述:本程序集中体现数码管的动态扫描显⽰2009,通过改变数组的值可完成对任意四个数的显⽰************************************************************/#include#include //包含头⽂件#define uchar unsigned char#define uint unsigned int //宏定义sbit Dula=P1^4; //端⼝定义uchar code table[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6}; //0到F对应的数码管显⽰代码uchar x,i,temp;void main() //主函数{temp=0x01;for(i=4;i>0;i--) //将数值送⼊数码管{Dula=1; //开启锁存器P0=table[a[i-1]];Dula=0; //关锁存器P0=0xff;P1=temp;temp=_crol_(temp,1); //循环左移⼀位函数for(x=110;x>0;x--); //延时}课后重点习题第⼆章15.AT89C51单⽚机的⽚内都集成了哪些功能部件?各个功能部件的最主要的功能是什么?(1)1个微处理器(CPU);(2)128个数据存储器(RAM)单元;(3)4KB Flash程序存储器;(4)4个8位可编程并⾏I/O⼝(P0⼝、P1⼝、P2⼝、P3⼝);(5)1个全双⼯串⾏⼝;(6)2个16位定时器/计数器;(7)⼀个中断系统,5个中断源,2个优先级;(8)21个特殊功能寄存器(SFR)。
单片机期末总复习资料

第三章 指令系统
• 寻址方式
立即数寻址,MOV A,#33H
寄存器寻址,MOV A,R0
直接寻址,MOV A,30H
寄存器间接寻址,MOV A,@R0
变址寻址,MOVC A,@A+DPTR
相对寻址,SJMP $
JZ L1
位寻址,MOV C ,07H
• 1、下列数据传送指令是否有问题?如果有问题该如 何改正?
分析: ➢P1.1引脚的输出应每隔500ms取反一次,即定时时间为500ms, 长时间定时。 ➢定时/计数器方式1最大定时65.5ms。可用定时/计数器T1进行 10ms的定时,然后用寄存器R7对10ms定时中断次数计数50次来 实现。
➢定时初值:(216 C) *1us 10000us C D8F0H;TH1 D8H, TL1 F0H
3、中断请求寄存器 (TCON)
TCON 8FH 8EH 8DH 8CH
(88H) TF1
TF0
8BH 8AH 89H 88H
IE1 IT1 IE0 IT0
外部中断举例
要求:每次按键,使外接发光二极管LED改变一次亮灭状态。
解:INT0输入按键信号,P1.0输出改变LED状态。
ORG 0000H
AJMP MAIN
22
【例7-4】用T0作为计数器计数一生产流水线上的工件,每生产 100个工件,发出一包装命令,包装成一箱,并记录其箱数,
100个
包装命令
23
第8章 串行口通信
串行同步通信、异步通信各自的特点。 串行口1的工作方式有哪些?每种工作方式下的波特 率和帧格式是什么样的? 可以做为波特率发生器的是()、()
要注意:读外部引脚状态前,要先输出高电平,读回来的状态才 是正确的。 强推挽输出方式:输入输出都可达到20mA电流,适合需要较大 输出电流的情况。 仅为输入:所有输出均截止,对外是高阻状态,对输入没有影响。 开漏输出:内部上拉电阻断开。做输入输出时需要外加上拉电阻。
单片机原理与应用技术复习资料

单⽚机原理与应⽤技术复习资料1.单⽚机的特点:结构简单、体积⼩、性价⽐⾼、可靠性⾼、功耗⼩。
2.单⽚机的应⽤:智能仪器仪表、⼯业控制中、家⽤电器中、计算机⽹络和通信领域中、医⽤设备领域中、商⽤产品3.单⽚机的组成:CPU、存储器、并⾏I/O⼝、中断系统、定时/计数器、串⾏通信⼝4.运算器包括算术/逻辑单元、累加器、寄存器、暂存器、程序状态寄存器5.单⽚机的存储器包括:数据RAM存储器、程序ROM存储器6.晶振引脚:XTAL1(19脚)、XTAL2(18脚)7.访问⽚内数据寄存器⽤MOV指令,访问⽚外数据寄存器⽤MOVX指令8.堆栈指针SP 数据指针DPTR9.堆栈数据写⼊和读出遵守“先⼊后出,后进先出”规则10.时钟内部振荡电路电容选30pF,接线越靠近单⽚机越好11.⼀个机器周期等于12个振荡周期,指令周期最短是⼀个机器周期,最长的是4个机器周期12.复位是单⽚机的初始化操作,功能:将程序计数初始化为0000H,使单⽚机从0000H单元开始执⾏程序13.RST引脚是复位端,⾼电平有效,在该引脚输⼊⾄少两个机器周期以上的⾼电平,单⽚机复位14.固态继电器按照负载类型分:直流型和交流型15.电容是使⽤场合:电源稳压电容和滤波电解电容主要是⽤来稳压和低频交流滤波;⾼频滤波使⽤瓷⽚电容和独⽯电容16.三相单三拍:UVWU顺序通电三相双三拍:UVVWWU UV顺序通电三相六拍:U UV V VW W WU 顺序通电1.求变量X(0≤X≤5)的平⽅,X值存放30H单元,2X值存放31H单元ORG 1000HSTART MOV DPTR,#2000HMOV A,30HMOVC A,@A+DPTRMOV 31H,ASJMP $ORG 2000HTABLE DB 00,01,04,09,16,25END2.n个单字节数相加,和为双字节,存放在(R3,R4中)ADD1 MOV R3,#00HMOV R4,#00HMOV R2,# nMOV R0,#40HLOOP MOV A,R4ADD A,@R0MOV R4,AINC R0CLR AADDC A,R3MOV R3,ADJNZ R2,LOOP3.设置⼀个延时10ms的程序ORG 2000HMOV R0,#0AHDL2:MOV R1,#MTDL1:NOPNOPDJNZ R1,DL1DJNZ R0,DL24.多字节⽆符号数的加法MADD:MOV R0,#DA TA1(MSUB)MOV R1,#DA TA2 (C) MOV R7,# N CLR CLOOP:MOV A,@R0ADDC A,@R1MOV @R1,AINC R0INC R1DJNZ R7,LOOPRET5.双字节⽆符号的乘法MULTB:MOV R7,#04 MOV @R0,#00HDJNZ R7,LOOPMOV A,R2MOV B,R4MUL ABACALL RADDMOV A,R2MOV B,R5MUL ABDEC R0ACALL RADDMOV A,R4MOV B,R3MUL ABDEC R0DEC R0ACALL RADDMOV A,R5MOV B,R3MUL ABDEC R0RETRADD:ADD A,@R0MOV @R0,AMOV A,BINC R0ADDC A,@R0MOV @R0,AINC R0MOV A,@R0ADDC A,#00HMOV @R0,ARET1列举单⽚机能够应⽤的地⽅,答:智能仪器仪表、⼯业控制中、家⽤电器中、计算机⽹络和通信领域中、医⽤设备领域中、商⽤产品14.当堆栈指针sp=07H时,单⽚机⼯作寄存器能否⼯作在1区,为什么?答:不能。
51单片机期末考试复习题(附答案)

单片机原理及应用复习一、填空题1.单片机又称为微控制器,将CPU、存储器、I/O集成到一个芯片上。
2.单片机的RST/VPD引脚为单片机的商店复位或掉电保护端,但单片机振荡器工作时,该引脚上只要出现持续两个机器周期的高电平,就可实现复位操作,是单片机回到初始状态。
̅̅̅̅端保持低电平。
3.单片机只访问外部程序存储器,必须使EA4.单片机程序地址空间中0000H代表复位入口地址、0003H代表外部中断0入口地址、000BH代表定时器/计数器0溢出中断入口地址、0013H代表外部中断1中断入口地址、001BH 代表定时器/计数器1溢出中断入口地址、0023H代表串口中断入口地址。
通常在这些地址中存放一条无条件转移指令。
5.扩展片外数据存储器地址空间与片内数据存储器地址空间可以重叠,是因为访问片内、外使用不同的指令,访问片外采用MOVX指令。
6.单片机应用程序一般放在ROM中,数据一般存放到RAM中。
7.单片机复位后,寄存器PC为0000H、ACC为00H、PSW为00H、SP为07H,此时选择第0组工作寄存器作为通用寄存器。
8.机器指令由操作码和操作数两部分构成。
9.操作数表示参加操作的数本身或操作数所在的地址。
10.单片机特殊寄存器的选址方式只能是直接寻址。
11.可用于寄存器间接寻址的寄存器包括R0、R1、DPTR,这些寄存器起到地址指针的作用。
12.要用传输指令访问单片机片外RAM,它的指令操作助记符是MOVX。
13.指令AJMP的跳转范围是2K,LJMP可在64KB范围内无条件转移。
14.执行PUSH时堆栈指针SP先加1,执行POP堆栈指令是SP后减1,子程序调用LCALL指令隐含2次压栈,子程序返回指令RET隐含2次出栈(弹栈)。
15.绝对调用指令ACALL addr所能调用子程序的范围是2K,LCALL addr指令则是64K。
16.DB、DW、DS伪指令都只能对程序存储器起作用,不能对数据存储器进行初始化。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机期末复习资料实验3 数码管显示设计1*功能描述:本程序集中体现数码管的静态显示,完成数码管由0到F的静态显示************************************************************/#include<reg52.h>//包含头文件#define uchar unsigned char#define uint unsigned int //宏定义sbit dula=P1^4; //端口定义uchar num,y;uint x; //定义变量uchar code table[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e};//0到F的数码管管码/********************主函数**********************/void main(){while(1)//进入大循环{for(num=0;num<16;num++) //判断是否到F{dula=1;//开启锁存器P0=table[num];//送数码管管码dula=0;//关闭锁存器for(x=2000;x>0;x--)for(y=220;y>0;y--);//延时}}}2 *功能描述:本程序集中体现数码管的动态扫描显示2009,通过改变数组的值可完成对任意四个数的显示************************************************************/#include<reg52.h>#include <intrins.h> //包含头文件#define uchar unsigned char#define uint unsigned int //宏定义sbit Dula=P1^4; //端口定义uchar code table[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6}; //0到F对应的数码管显示代码uchar x,i,temp;uchar a[4]={2,0,0,9}; //定义变量void main() //主函数{temp=0x01;for(i=4;i>0;i--) //将数值送入数码管{Dula=1; //开启锁存器P0=table[a[i-1]];Dula=0; //关锁存器P0=0xff;P1=temp;temp=_crol_(temp,1); //循环左移一位函数for(x=110;x>0;x--); //延时}课后重点习题第二章15.AT89C51单片机的片内都集成了哪些功能部件?各个功能部件的最主要的功能是什么?(1)1个微处理器(CPU);(2)128个数据存储器(RAM)单元;(3)4KB Flash程序存储器;(4)4个8位可编程并行I/O口(P0口、P1口、P2口、P3口);(5)1个全双工串行口;(6)2个16位定时器/计数器;(7)一个中断系统,5个中断源,2个优先级;(8)21个特殊功能寄存器(SFR)。
16.说明AT89C51单片机的引脚EA的作用,该引脚接高电平和低电平时各有何种功能?答:当EA脚为高电平时,单片机读片内程序存储器(4KB Flash),但在PC值超过0FFFH(即超出4KB地址范围)时,将自动转向读外部程序存储器内的程序。
当EA脚为低电平时,对程序存储器的读操作只限定在外部程序存储器,地址为0000H~FFFFH,片内的4KB Flash程序存储器不起作用。
17.64KB程序存储器空间有5个单元地址对应AT89C51单片机5个中断源的中断入口地址,请写出这些单元的入口地址及对应的中断源。
答:64KB程序存储器空间中有5个特殊单元分别对应于5个中断源的中断服务程序的入口地址,见下表。
表518.当AT89C51单片机运行出错或程序陷入死循环时,如何摆脱困境?答:按下复位按钮。
第三章13.访问SFR,可使用哪些寻址方式?答:只能使用直接寻址方式。
14.下列程序段的功能是什么?PUSH AccPUSH BPOP AccPOP B答:A的内容与B的内容互换。
15.写出完成如下要求的指令,但是不能改变未涉及位的内容。
(1)把ACC.3,ACC.4,ACC.5和ACC.6清“0”。
(2)把累加器A的中间4位清“0”。
(3)使ACC.2和ACC.3置“1”。
答:(1)ANL A,#87H(2)ANL A,#0C3H(3)ORL A,#0CH第四章2.说明伪指令的作用。
“伪”的含义是什么?常用伪指令的功能如何?答:伪指令不属于指令系统中的汇编语言指令,它是程序员发给汇编程序的控制命令。
只有在汇编前的源程序中才有伪指令。
所以“伪”体现在汇编后,伪指令没有相应的机器代码产生。
4.下列程序段经汇编后,从1000H开始的各有关存储单元的内容是什么?ORG 1000HTAB1 EQU 1234HTAB2 EQU 3000HDB "MAIN"DW TAB1,TAB2,70H答:4D 41 49 4E 12 34 30 00 00 705.设计子程序时应注意哪些问题?答:在编写子程序时应注意以下问题。
(1)子程序的第一条指令前必须有标号。
(2)使用子程序调用指令时,有两条调用指令可供使用。
①使用绝对调用指令(ACALL addr11)要注意,被调用的子程序的首地址与本绝对调用指令的下一条指令的高5位地址相同,即只能在同一2KB程序存储区内。
②使用长调用指令(LCALL addr16)时,addr16为直接调用的子程序的目标地址,也就是说,被调用的子程序可放置在64KB程序存储器区的任意位置。
(3)子程序结构中必须用到堆栈,堆栈通常用来保护断点和现场保护。
(4)子程序返回主程序时,最后一条指令必须是RET指令。
(5)子程序可以嵌套,即主程序可以调用子程序,子程序又可以调用另外的子程序。
6.试编写一个程序,将内部RAM中45H单元的高4位清“0”,低4位置“1”。
答:参考程序如下:MOV A,45HANL A,#0FHORL A,#0FHMOV 45H,A7.试编写程序,查找在内部RAM的30H~50H单元中是否有0AAH这一数据。
若有,则将51H 单元置为“01H”;若未找到,则将51H单元置为“00H”。
答:参考程序如下:START: MOV R0,#30HMOV R2,#20HLOOP: MOV A,@R0CJNE A,#0AAH,NEXTMOV 51H,#01HLJMP EXITNEXT: INC R0DJNZ R2,LOOPMOV 51H,#00HEXIT: RET8.试编写程序,查找在内部RAM的20H~40H单元中出现“00H”这一数据的次数,并将查找到的结果存入41H单元。
答:参考程序如下:START: MOV 41H,#0MOV R0,#20HMOV R2,#20HLOOP: MOV A,@R0JNZ NEXTINC 41HNEXT: INC R0DJNZ R2,LOOPRET9.在内部RAM的21H单元开始存有一组单字节无符号数,数据长度为20H,编写程序,要求找出最大数存入MAX单元。
答:略:10.若SP = 60H,标号LABEL所在的地址为3456H。
LCALL指令的地址为2000H,执行如下指令2000H LCALL LABEL后,堆栈指针SP和堆栈内容发生了哪些变化?PC的值等于什么?如果将指令LCALL直接换成ACALL是否可以?如果换成ACALL指令,可调用的地址范围是什么?答: (1)SP=SP+1=61H (61H)=PC的低字节=03HSP=SP+1=62H (62H)=PC的高字节=20H(2)PC=3456H(3)可以(4)2KB=2048 Byte第五章2.若(IP) = 00010100B,则优先级最高者为,最低者为。
答:外部中断1;定时器T1。
8.下列说法正确的是。
A.同一级别的中断请求按时间的先后顺序响应B.同一时间同一级别的多中断请求将形成阻塞,系统无法响应C.低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求D.同级中断不能嵌套答:A、C、D。
13.某系统有3个外部中断源1、2、3,当某一中断源发出的中断请求使INT1引脚变为低电平时(见图5-10),便要求CPU进行处理,它们的优先处理次序由高到低为3、2、1,中断处理程序的入口地址分别为1000H、1100H、1200H。
试编写主程序及中断服务子程序(转至相应的中断处理程序的入口即可)。
答:参见电路如图5-10所示,参考程序如下:ORG 0000HLJMP MAINORG 0013HLJMP INT_EX1ORG 0030HMAIN: CLR IT0 ;采用电平触发,低电平有效中断SETB EX1 ;允许外部中断1SETB EAWAIT: LJMP WAIT ;用原地跳转代替一段用户程序;以下为外部中断1服务子程序INT_EX1: JNB P1.2,NEXT1 ;P1.2=0,不是3号中断,跳转NEXT1LJMP INT_IR3 ;是3号中断,跳转到对应的中断处理程序NEXT1: JNB P1.1,NEXT2 ;P1.1=0,不是2号中断,跳转NEXT2LJMP INT_IR2 ;跳转到2号中断处理程序NEXT2: LJMP INT_IR1 ;跳转到1号中断处理程序ORG 1000HINT_IR3: 插入相应中断处理程序RETI ;中断返回ORG 1100HINT_IR2: 插入相应中断处理程序RETI ;中断返回ORG 1200HINT_IR1: 插入相应中断处理程序RETI ;中断返回第六章3.定时器/计数器用作定时器模式时,其计数脉冲由谁提供?定时时间与哪些因素有关?答:定时器/计数器用作定时器时,其计数脉冲由系统振荡器产生的内部时钟信号12分频后提供。
定时时间与时钟频率和定时初值有关。
7.编写程序,要求使用T0,采用方式2定时,在P1.0输出周期为400µs,占空比为10∶1的矩形脉冲。
答:根据题意,从P1.0输出的矩形脉冲的高低电平的时间为10∶1,则高低电平的时间分别为363.63µs和36.37µs。
如果系统采用6MHz晶振,Tcy=2µs,因此高低电平输出取整,则约为364µs和36µs。
参考程序如下:ORG 0000HLJMP MAINORG 000BHLJMP IT0PMAIN: MOV TMOD,#02H ;定时器/计数器T0为定时方式2MOV TL0,#4AH ;定时364 s初值赋值SETB TR0 ;启动T0,开始计数SETB ET0 ;允许T0中断SETB EA ;CPU开中断SETB P1.0WAIT: AJMP WAITIT0P: CLR EACLR P1.0 ;关中断MOV R0,#9DLY: DJNZ R0,DLY ;延时36 sMOV TL0,#4AH ;定时364 s初值赋值SETB P1.0SETB EARETI7题②.方法2参考程序#include<reg51.h>#define uchar unsigned charsbit P1_0=P1^0;void main( ) //主函数data uchar j=10; //全局变量j{ TMOD=02; //T0为定时方式2TL0=236; //定时40us初值赋值TH0=236; //定时40us初值赋值TR0=1; //启动T0,开始计数ET0=1; //允许T0中断EA=1; //CPU开中断P1_0=1; //先输出“1”while(1);}void T0_int( ) intrruput 1 //T0中断函数{ j--;if (j==0){ P1_0=1;j=10;}else P1_0=0;}对于利用定时器产生波形的程序,参看课本P90,C51那本书P101,定时器计数器的编程和应用。