-----
-----
一、填空题
1、若采用6MHz的晶体振荡器,则MCS-51单片机的振荡周期为____2/12us_____,
机器周期为_______2us________。
2、MCS-51单片机共有5个中断源,由IE寄存器设定中断的开放
和禁止;
每个中断源有两个优先级,由IP寄存器设定。
3、单片机的内部RAM区中,可以位寻址的地址范围是
_________20H~2FH_________,特殊功能寄存器中,可位寻址的地址是
_______80H~FFH__________。
4、MSC-51单片机引脚信号中,信号名称带上划线的表示可外接电路
或低电平时该信号有效;
5、函数是C语言的基本单位。
6、若由程序设定RS1、RS0=0、1,则工作寄存器R0~R7的直接地址为
____08H~0FH_____。
7、串行口通信方式2接收到的第9位数据送SCON寄
存器的RB8位中保存。
8、MCS-51内部提供2个可编程的16位定时/计数器,
定时器有4种工作方式。
9、在C51中,变量的数据类型说明为bit,则其取值范围是0或
1。
10、串行口方式3发送的第9位数据要事先写入SCON寄存
器的RB8位。
11、MCS—51单片机外部中断请求信号有电平方式和脉冲方式,在电平方式下,
当采集到
P3.2或P3.3引脚的有效信号为低电平时,
激活外部中断。
12、CPU又称MPU,一般由运算器和控制
器两部分组成。
13、使用DPTR作间址指针进行寄存器间接寻址时,其寻址能力为所有存
储器。
14、整型变量的占用的存储空间是两个字节;字符型变量占用的
存储空间是一个字节
15、ALU指的是算术/逻辑单元。
16、MCS-51单片机的中断源分别是外部中断0、定时/计数器
0、外部中断1、定时/计数器1、
串行口接收/发送中断。
17、KeiLC51软件中,工程文件的扩展名是____.Uv2______,编译连接后生
成可烧写的文件扩展名是_____.hex______
二、选择题
1、C语言中最简单的数据类型包括(B/D)。
A、整型、实型、逻辑型B、整型、实型、字符型
C、整型、字符型、逻辑型D、整型、实型、逻辑型、字
符型
-----
-----
2、下列描述中正确的是(D)。
A、程序就是软件B、软件开发不受计
算机系统的限制
C、软件既是逻辑实体,又是物理实体D、软件是程序、数据与相关文档的集合
3、下列计算机语言中,CPU能直接识别的是(D)。
A、自然语言B、高级语言C、汇编语言D、机
器语言
4、MCS-5l单片机的堆栈区是设置在(C)中。
A、片内ROM区B、片外ROM区C、片内RAM区D、片外RAM区
5、以下叙述中正确的是(C)。
A、用C语言实现的算法必须要有输入和输出操作
B、用C语言实现的算法可以没有输出但必须要有输入
C、用C程序实现的算法可以没有输入但必须要有输出
D、用C程序实现的算法可以既没有输入也没有输出
6、定时器/计数器工作方式1是(D)。
A、8位计数器结构B、2个8位计数器结构
C、13位计数结构D、16位计数结构
8、C语言提供的合法的数据类型关键字是(D)。
A、DoubleB、shortC、
integerD、Char
9、片内RAM的20H~2FH为位寻址区,所包含的位地址是(B)。
A、00H~20HB、00H~7FHC、20H~2FHD、00H~FFH
10、以下能正确定义一维数组的选项是(B)。
A、inta[2,5]={0,1,2,3,4,5};B、char
a[]={0,1,2,3,4,5};
C、chara={'A','B','C'};D、inta[5]="0123";
11、MCS-51单片机的复位信号是(A)有效。
A、高电平B、低电平C、脉
冲D、下降沿
12、8051的单片机的堆栈指针(D)
A、只能位于内部RAM低128字节范围内
B、可位于内部RAM低256字节范围内
C、可位于内部ERRAM内。
D、可位于内部RAM或外部RAM内
13、在串行口工作于异步通信方式时,其接收由(C)来启动。
A、RENB、RIC、REN和RID、TR
14、存储16×16点阵的一个汉字信息,需要的字节数为(A)
A、32B、64C、128
D、256
15、设MCS-51单片机晶振频率为12MHz,定时器作计数器使用时,其最高的输
入计数频率应为(B)
A、2MHzB、1MHzC、
500kHzD、250kHz
16、利用下列(D)关键字可以改变工作寄存器组
-----
-----
A、interruptB、sfr
C、whileD、using
17、C51中一般指针变量占用(c)字节存储。
A、一个B、两个C、三个D、四个
18、使用宏来访问绝对地址时,一般需包含的库文件是(b)
A、、、、startup.h
19、单片机的定时器/计数器工作方式1是(D)。
A、8位计数器结构B、2个8位计
数器结构
C、13位计数结构D、16位计数结构
20、串行口每一次传送(C)字符。
A、1个B、1串C、1
帧D、1波特
21、数据的存储结构是指(D)。
A、存储在外存中的数据B、数据所占的存储空间量
C、数据在计算机中的顺序存储方式D、数据的逻辑结构在计算机中的表示
22、下列关于栈的描述中错误的是(C)。
A、栈是先进后出的线性表B、栈只能顺序存储
C、栈具有记忆作用D、对栈的插入和删除操作中,不需要改变
栈底指针
23、在寄存器间接寻址方式中,间址寄存器中存放的数据是(B)。
A、参与操作的数据B、操作数的地址值
C、程序的转换地址D、指令的操作码
24、MCS-51单片机的复位信号是(A)有效。
A、高电平B、低电平C、脉
冲D、下降沿
25、为了使模块尽可能独立,要求(A)。
A、模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B、模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C、模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D、模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
26、若MCS-51单片机使用晶振频率为6MHz时,其复位持续时间应该超过
(4)。
A、2μsB、4μsC、
8μsD、1ms
27、以下选项中可作为C语言合法常量的是(A)
A、-80B、-080C、-
8e1.0D、-80.0e
28、能够用紫外光擦除ROM中程序的只读存储器称为(C)。
A、掩膜ROMB、PROMC、EPROMD、EEPROM
29、以下不能定义为用户标识符是(D)。
A、MainB、_0C、
_intD、sizeof
30、下选项中,不能作为合法常量的是(B)。
-----
-----
A、1.234e04B、1.234e0.4C、1.234e+4D、
1.234e0
31、存储16×16点阵的一个汉字信息,需要的字节数为(D)
A、32B、64C、
128D、256
32、以下选项中合法的字符常量是(D)
A、"B"B、’010’C、
68D、D
33、设MCS-51单片机晶振频率为12MHz,定时器作计数器使用时,其最高的输
入计数频率应为(B)
A、2MHzB、1MHzC、500kHzD、
250kHz
34、下列数据字定义的数表中,(D)是错误的。
A、DW“AA”B、DW“A”C、DW“OABC”D、DWOABCH
三、判断题
(√╳)1、在对某一函数进行多次调用时,系统会对相应的自动变量重新
分配存储单元。
(√)2、自动变量属于局部变量。
(√)3、Continue和break都可用来实现循环体的中止。
(╳)4、在MCS-51系统中,一个机器周期等于1.5μs。
(√)5、若一个函数的返回类型为void,则表示其没有返回值。
(√)6、所有定义在主函数之前的函数无需进行声明。
(√)7、定时器与计数器的工作原理均是对输入脉冲进行计数。
(√)8、END表示指令执行到此结束。
(╳)9、MCS-51的相对转移指令最大负跳距是127B。
(╳)10、MCS-51的程序存储器只是用来存放程序的。
(√)11、TMOD中的GATE=1时,表示由两个信号控制定时器的的启停。
(╳)12、MCS-51的特殊功能寄存器分布在60H~80H地址范围内。
(√)13、片内RAM与外部设备统一编址时,需要专门的输入/输出指令。
(√)14.寄存器间接寻址可以访问数据存储器,也可以访问程序存储器。
(√)15.在C51中,将数据的存储类型说明为data,则该数据映射的存储
空间为片内位寻址空间。
(╳)16.MCS—51属于16位的单片机。
(╳)17.基址加变址寻址只能访问程序存储器。
(√)18.位地址和字节地址在形式上没有区别。
(√)19.如果x=0xEA,则执行x<<2后,x的值为0xA8。
(√)20.在MCS—51的指令系统中,地址分为字节地址和位地址。
(╳)21.汇编语言指令就是指能被CPU直接执行的指令。
(√)22.在MCS—51的指令系统中,伪指令、指令都是在程序执行的时候
起作用。
(╳)23、(R7)表示工作寄存器R7中的内容。
(√)24、若一个函数的返回类型为void,则表示其没有返回值。
(√)25、定时器与计数器的工作原理均是对输入脉冲进行计数。
-----
-----
(√)26、SFR中凡是能被8整除的地址,都具有位寻址能力。
(√)27、不能用“sfr16”直接访问定时器/计数器0和1。
(╳)28、MCS-51单片机的程序存储器只能用来存放程序的。
(╳)29、串口中断标志由硬件清0。
(√)30、特殊功能寄存器的名字,在C51程序中,全部大写。
(√)31、“sfr”后面的地址可以用带有运算的表达式来表示。
(√)32、#include
(╳)33、sbit不可以用于定义内部RAM的可位寻址区,只能用在可位寻址
的SFR上。
四、简答题
1、在使用8051的定时器/计数器前,应对它进行初始化,其步骤是什么?
解:1、配置定时器/计数器的工作方式。
2、给THi和TLi赋初值。
3、启动定时/计数器。
4、打开定时/计数器中断标志。
5、打开总中断。
2、在有串行通信时,定时器/计数器1的作用是什么,怎样确定串行口的波特率?
解:如果有串行通信时,定时器/计数器1的作用是控制波特率。
串行口的波特率是有定时器1的溢出率决定的。
3.51系列单片机具有几个中断源,分别是如何定义的?其中哪些中断源可以被
定义为高优先级中断,如何定义?
解:51系列单片机具有5个中断源。
外部中断0、1是由EXi外部中断标志位,ITi中断触发方式和EA总中断决
定。
定时器/计数器0、1是由TMOD工作方式控制器,THi和TLi初始值控制器,
TRi定时/计数器开关,ETi定时/计数器中断标志位和EA总中断决定。
串行口接收/发送中断是由SCON串行口控制寄存器,定时/计数器的波特率
设置决定。
51系列单片机的5个中断源都可以被定义为高优先级。只要在IP中断优先
级控制寄存器的相应位控制就可以!如:串行口优先级:PS置1,串口通信就是
高优先级,反之为低优先级。
4.在C51语言中,定义MSC-51单片机的中断服务函数时需要使用关键字
interruptm进行定义。参数m可以取那些值?分别表示何种意义?
解:m可以去0~4,相应对应各个中断,0为外部中断0,1为定时器/计数器0,2
外部中断1,3为定时器/计数器1,4为串行口接收/发送中断。
5.什么是指令周期、机器周期和震荡周期?
解:指令周期为单片机执行一条指令的时间,机器周期为单片机执行一条最简单
的指令需要的时间,震荡周期为石英震荡器震荡一次的时间。
6.在C51中,存储器类型有几种,它们分别表示的存储器区域是什么?
解:片内数据存储器,片外程序存储器,片外数据存储器。
片内数据存储器由00H~FFH;
片外程序存储器由0000H~FFFFH;
-----
-----
片外数据存储器由0000H~FFFFH;
7.简述动态局部变量和静态局部变量的区别。
解:静态局部变量具有局部作用域,它只被初始化一次,自从第一次被初始化直
到程序运行结束都一直存在,且静态局部变量只对定义自己的函数体始终可见。
动态局部变量也只有局部作用域,它是自动对象(auto),它在程序运行期间
不是一直存在,而是只在函数执行期间存在,函数的一次调用执行结束后,变量
被撤销,其所占用的内存也被收回。
—51单片机指令系统中有哪几种寻址方式?
解:1、立即寻址,2、直接寻址,3、寄存器寻址,4、寄存器间接寻址,5、
变址寻址,6、相对寻址,7、位寻址。
五、计算题
1已知一单片机系统的外接晶体振荡器的振荡频率为12MHz,请计算该单片机系
统的拍节P、状态S、机器周期所对应的时间是多少?指令周期中的单字节双周期
指令的执行时间是多少?
解:时钟周期=1/12MHZ=0.0833us;
因为一个机器周期可分为12个时钟周期,一个状态周期可分为2个时钟周
期,两个时钟周期可分为2个节拍。
所以1个节拍P的时间=时钟周期=0.0833us,1个状态S的时间=2*时钟周期
=0.167us;
1个机器周期=12*时钟周期=1us;
指令周期中得单字节指令的执行时间是一个机器周期=1us;1个双字节指令的执
行时间是两个时钟周期=2us;
2、51单片机,当fosc=6MHz和fosc=12MHz时,最大定时各为多少?
解:当fosc=6MHz时;一个机器周期为2us;定时器的最大定时数为65536;
时间T=65536*2us=131072us=0.131072s;
当fosc=12MHz时;一个机器周期为1us;定时器的最大定时数为65536;
时间T=65536*1us=65536us=0.065536s;
3、若fOSC=6MHZ,要求T1定时10ms,选择方式0,装入时间初值后T1计数器
自启动。计算时间初值X=?并填入TMOD、TCON和TH1、TL1的值?
解:fOSC=6MHZ,一个机器周期为2us;方式0的最大定时是8192*2=16384us;
10ms=(8192-X)*12/fosc;X=3192;
TMOD=0x00;TCON=0x40;IE=0x88;
TH1=0x0c;TL1=0x78;
一、填空题
1.相对寻址是以PC的当前值为基准,加上指令中给出的相对偏移量形成目
标地址的方式。
2.AT89S51单片机的1个机器周期含有12个晶振周期或6状态周期。
3.AT89S51单片机进行扩展时,用P0口作为地址/数据总线,用P2口作为地址总
线高8位。
-----
-----
4.假定累加器A的内容30H,执行指令:1000H:MOVCA,@A+PC后,把
程序存储器1031H单元的内容送累加器A中
5.指令格式是由操作码和操作数部分组成。
89S51单片机的串行口控制寄存器中有2个中断标志位,它们是TI和RI
指令执行时,当CY位为0时程序发生跳转。
8.单片机位寻址区的单元地址是从20H单元到2FH单元,若某位地址是10H,它所在单元
的地址应该是22H。
9.外部中断0的中断入口地址为0003H,定时/记数器T1的中断入口地址为
001BH。
10.串行口工作方式2为9位异步通信,若SMOD=0,f
OSC
=6MH
Z
,则其相应波特率为
6×106/64b/s
11.堆栈应遵循先进后出规律,堆栈指针的符号为SP
12、程序计数器PC存放的是下一条要执行指令的地址;
13、指令MOVXA,@DPTR的寻址方式是寄存器间接寻址:
14、MCS-51访问ROM、片内RAM、片外RAM的指令助记符分别为MOVC、
MOV和MOVX。
15、机器字长为8位,则[—10]原=8AH,[-10]反=F5H,[-
10]补=F6H。
16、已经累加器A=97H,则执行指令ADDA,#7DH后,A=14H,C=
1,OV=0,AC=1。
二、单项选择题
1.AT89S51单片机的(d)口的引脚,还具有外中断、串行通信等第二功能。
a)P0b)P1c)P2d)P3
2.单片机应用程序一般存放在(b)
a)RAMb)ROMc)寄存器d)CPU
-----
-----
3.已知某数的BCD码为0010则其表示的十进制数值为(b)
a)7542Hb)7542c)75.42Hd)75.42
4.下列指令中不影响标志位CY的指令有(d)。
a)ADDA,20Hb)CLRc)RRCAd)INCA
5.CPU主要的组成部部分为(a)
a)运算器、控制器b)加法器、寄存器
c)运算器、寄存器d)运算器、指令译码器
6.AT89S51的CPU是(c)位的单片机
a)16b)4
c)8d)准16
7.当需要从AT89S51单片机程序存储器取数据时,采用的指令为(b)。
a)MOVA,@R1b)MOVCA,@A+DPTR
c)MOVXA,@R0d)MOVXA,@DPTR
8.AT89S51单片机中既可位寻址又可字节寻址的单元是(a)
a)20Hb)30Hc)00Hd)70H
9.下列哪条指令是正确的(d)
a)PUSHR2b)ADDR0,A
c)MOVXA@DPTRd)MOV@R0,A
11.要使累加器A的高4位置为0000,低4位不变,以下指令正确的是B。
(A)ANLA,#0F0H(B)ANLA,#0FH(C)ORLA,#0F0H(D)ORLA,#0FH
12.利用串行口工作方式1进行异步串行通信,当其波特率为4800bps,每秒最多能传送
A个字符。
(A)480(B)960(C)4800(D)9600
13.C51中,要编写一个中断函数,则必须在函数名后加B修饰符。
(A)void(B)interrupt(C)using(D)unsigned
14.51系列单片机系统中需扩展32KByte的片外RAM,则需要C片6264(8K×8bit)。
(A)1(B)2(C)4(D)8
15.若单片机当前正在执行高优先级的中断服务,则以下能响应的中断是D。
(A)高优先级中断(B)同优先级中断(C)低优先级中断(D)以上都不能响应
16.键盘的软件消除键抖动是通过C来实现的。
(A)加滤波器(B)中断(C)延时(D)加RS触发器
三、写出实现下列各要求的指令或程序段
1、将80H单元中的内容与数据4FH相比较,相等返回,不相等将80H单元置FFH返回。
MOVA,80H
-----
-----
CJNEA,#4FH,BD
SJMPL1
BD:MOV80H,#0FFH
L1:RET
2、外部RAM单元2000H的内容传送到内部RAM单元70H;
MOVDPTR,#2000H
MOVXA,@DPTR
MOV70H,A
3、将32H单元中内容的第7位取反后送给50H。
MOVA,32H
CPLACC.7
MOVC,ACC.7
MOV50H,C
4、若(50H)=40H,试写出执行以下程序段后累加器A、寄存器R0及内部RAM的40H、41H、
42H单元中的内容各为多少?(5分)
MOVA,50H;(A)=40H
MOVR0,A;(R0)=40H
MOVA,#00H;(A)=0
MOV@R0,A;(40H)=0
MOVA,#3BH;(A)=3BH
MOV41H,A;(41H)=3BH
MOV42H,41H;(42H)=3BH
(A)=3BH;(R0)=40H;
(40H)=0;(41H)=3BH;(42H)=3BH
5、将外部数据存储器3000H开始100个存储单元的内容存入3070开始的存储单
元(9分)
MOVDPTR#3000H
MOVP2,#30H
MOVR1,#70H
MOVR5,#100
L1:MOVXA,@DPTR
MOVX@R1,A
INCR1
INCDPTR
DJNZR5,L1
RET
四、读程序填空
1.CLRC
-----
-----
MOVA,4DH
SUBBA,,4EH
MOV30H,A
MOVA,7FH
SUBBA,2BH
MOV31H,A
SJMP$
(1)该程序的功能是:两个16位数的减法:(7F4DH)-(2B4EH),结果存入内部RAM的
30H和31H单元,31H单元存差的高8位,30H单元存差的低8位
(2)若(4DH)=06H,(4EH)=05H,(7FH)=0AH,(2BH)=01H
则执行上述程序后(30H)=01H。(31H)=09H。
2.START:MOVR0,#40H
MOVR7,#04H
MOVA,@R0
LOOP:INCR0
MOV50H,@R0
CJNEA,50H,NEXT
NEXT:JNCBIE1
MOVA,50H
BIE1:DJNZR7,LOOP
MOV30H,A
RET
(1)该程序的功能是:求出40H—44H中最大的无符号数,并将最大数存入30H中
(2)设(40H)=12H,(41H)=22H,(42H)=6EH,(43H)=5AH,(44H)=8AH,
填写程序执行后的结果,(30H)=8AH。
3.已知(30H)=49H,(31H)=2BH,(32H)=0A3H,执行以下程序:
MOVR7,#4
RR0:MOVR6,#3
CLRC
MOVR0,#30H
RR1:MOVA,@R0
RRCA
MOV@R0,A
INCR0
DJNZR6,RR1
DJNZR7,RR0
RET
从该程序可看出这段程序的功能是:将内RAM中30H~32H的内容
右移4位
执行后结果:(30H)=04H,(31H)=92H,(32H)=0BAH。
-----
-----
(3分)
4、已知(A)=58H,(30H)=7FH,(P1)=EAH,执行下列程序:
MOVSP,#40H
PUSHA
PUSH30H
MOVA,P1
MOV30H,A
POP30H
POPA
执行后结果:(SP)=40H,(A)=58H,(30H)=7FH,(41H)=58H。
五、根据题意,按要求答题。
98S51单片机P1口上接8只发光二极管(高电平亮,低电平灭),若晶振频率是12MHz,
用定时/计数器T0以工作方式1工作,使8只发光二极管每1S单循环点亮。
(1)计算定时初值,写出过程
(2)根据相关注释,填写程序
(3)
答:(1)定时初值:
(216-X)×1μS=50mS
X=216-50000
=15536
(2)MOVTMOD,#01H;设T0工作方式
MOVDPTR,#15536;置定时初值50mS
MOVTH0,DPH
MOVTL0,DPL
MOVA,#01H;置A初值
SETBTR0;允许定时
LOOP:MOVR7,#20;设定时次数
MOVP1,A;从P1口输出
LOOP1:JNBTF0,$;判断定时50mS到没
CLRTF0;定时时间到,TF0清0
MOVTH0,DPH;重新置定时初值50mS
MOVTL0,DPL
DJNZR7,LOOP1;判断定时次数到没
RLA;输出左移
SJMPLOOP;继续循环输出
END
2、根据给定存储类型和数据类型,声明下列变量:
(1)在片内RAM低128字节定义一个有符号整型变量val,初值为100;
(signed)intdataval=100;
-----
-----
(2)在ROM定义一个3元素的无符号字节数组num,数组内容分别为:12H,34H,56;
unsignedcharcodenum[3]={0x12,0x34,56};
(3)在片外RAM定义一个指向无符号字节类型的指针变量p;
unsignedcharxdata*p;
6、简述矩阵式8行2列键盘的工作过程,其中P1口连接8根行线,P3.0和P3.1连接2根
列线。
判断是否有键按下:先给列线P3.0和P3.1送低电平,然后读行线P1的值,判断P1是否为
0xff;若P1为0xff则表示没有键按下,则返回重新判断是否有键按下;若P1不为0xff则表
示有键按下,则延时10ms去抖动,再重新读行线P1口,再次判断是否有键按下。
若确实有键按下,则判断哪一个键按下:先给第一根列线P3.0送低电平,而P3.1送高电平,
然后读行线P1,判断P1是否为0xff;若是则表示按下的键在这第一列;否则给第二列P3.1
送低电平,而P3.0送高电平,然后读行线P1,判断P1是否为0xff,若是则表示按下的键在
这第二列;找到按键所在列后,再根据读到的行线值中0的位置从而判断按键所在行线。
确定按键后,执行按键所对应的服务程序;然后等待键释放;按键释放通过给所有的列线
P3.0和P3.1送低电平,然后读行线P1的值来进行判断;按键释放后再次延时去抖动,然后
返回重新判断是否有键按下。
7、简述51单片机串行双机通信的过程,写明发送和接收时软硬件分别执行的操作。
先
数据发送时,在TI=0时,CPU将待发送数据送入SBUF,启动发送;数据由TXD引脚按位送
出,发送时钟由T1控制,最先送出起始位(0),然后依次是8位数据位(低位在前),最后
是停止位(1);一帧数据发送完毕后,硬件自动将TI置1,向CPU请求中断;CPU接收到
请求信号后,需将TI清0,然后才能启动下一次发送。
数据接收时,允许接收位REN必须置1,接收器开始工作;当接收到起始位(0),启动接收;
在波特率的控制下,把接收到的数据依次移入移位寄存器;当接收完一帧数据,将移位寄存
器中的数据送入SBUF,同时硬件自动将RI置1,向CPU请求中断。CPU接收到请求信号后,
需将RI清0,然后才能正常接收下一帧数据。
本文发布于:2022-11-12 22:35:54,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/88/7085.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |