试卷中可能会遇到的特殊功能寄存器
1、TMOD:
D7 GATE D7 EA D7 TF1 D6 C/T D6 - D6 TR1 D5 M1 D5 - D5 TF0 D4 M0 D4 ES D4 TR0 D3 GATE D3 ET1 D3 IE1 D2 C/T D2 EX1 D2 IT1 D1 M1 D1 ET0 D1 IE0 D0 M0 D0 EX0 D0 IT0 2、IE:
3、TCON:
一、填空题〔每空1分,共20分。〕
得分
1.微型电脑由 CPU 、 存储器 和 IO端口 组成。
2.除SFR外,8051单片机的片内包含有 128 字节RAM作为数据存储器使用, 字节 4K ROM作为程序存储器使用。
3.PSW是8051的程序状态字寄存器,其中CY位是: 奇偶标志位,标示ACC中1个数的奇偶性 。
4.DIV AB指令执行两个字节的无符号除法,该指令执行完成后,商存放在 A 、余数存放在___B_____中。
5.当8051的复位脚〔RESET〕为高电平时,CPU处于 复位 状态,这时I/O口P1
的值为 FF H, 堆栈指针(SP)的值为 07 H。
6.8051单片机包括 2 个 16 位的定时/计数器,共有 4 种工作模式。 7.T0或T1作为定时器使用时,其工作时钟信号依赖于晶体振荡器的频率〔fosc〕,当
fosc=12MHz时,定时器T1的工作时钟频率为 1 MHz。
8.标准8051单片机有 5 个中断请求源,具有 2 个中断优先级。
9.8051单片机的串行口具有多种工作方式,其中方式3的有效数据位数是____9___位(不
含起始位和停止位)。
10.异步串行通讯的波特率是指单位时间传输的数据位数 。
字节进/借位 ,P位是:
学习文档 仅供参考
得分 二、单项选择题 (每题1分,共10分。)
1.以下第 B 个语句可以实现外部16位地址的读操作。
〔A〕 MOVX A,@R0 〔C〕 MOVX @R0,A
〔B〕 MOVX 〔D〕 MOVX
A,@DPTR @DPTR,A
2.当累加器A的初始值为 D 时,且Cy = 0,执行“RRC A”指令后,累加器A的结果为23H,并且Cy = 1。
〔A〕 23H 〔C〕 47H
〔B〕 BDH 〔D〕 C3H
3.当需要启动定时器T1时,下面哪一项是必须的? D
〔A〕 SETB IT0 〔C〕 SETB TR0
〔B〕 SETB IT1 〔D〕 SETB TR1
4.下面 B 的陈述是正确的?
〔A〕 8051单片机有6个中断向量,分2个优先级别 〔B〕 8051单片机有5个中断向量,分2个优先级别
〔C〕 8051单片机可以扩展最大容量为128K字节的程序存储器 〔D〕 8051单片机可以扩展最大容量为32K字节的外部数据存储器
5.下面 A 源操作数不是来自程序存储器。
〔A〕 MOV A, #20H
〔B〕 MOVC A,@A+PC
A,@R0
〔C〕 MOVC A,@A+DPTR 〔D〕 MOV
6.下面的关于ADC和DAC的描述 C 是正确的?
〔A〕 AD574是数模转换器件
〔B〕 ADC0809有32个信号输入通道,同时可以进行32个通道的信号转换 〔C〕 DAC0832是数模转换器件
〔D〕 DAC0832可以同时进行多个通道的信号转换
7.8051支持位操作,其专用的可位寻址的存储器区域位于 B 。
〔A〕 所有SFR区域
〔B〕 片内RAM的20~2FH之间
〔C〕 片外0000~00FFH之间 〔D〕 程序存储器区域
8.下面操作执行后堆栈指针SP一定变小的是 A 。
〔A〕 PUSH ACC
〔B〕 LCALL SUB
学习文档 仅供参考
〔C〕 AJMP LOP 〔D〕 RETI
9.下面哪种半导体存储器适宜作为8051单片机系统的数据存储器使用? D
10.下面关于MCS-51单片机系统外部扩展能力的描述正确的选项是 C
〔A〕 扩展的外部程序存储器和数据存储器统一编址 〔B〕 扩展的外部数据存储器和I/O接口不能统一编址 〔C〕 扩展的并行数据存储器最大容量通常不超过K字节
〔D〕 P1端口可以“分时复用”作为数据总线和低8位地址总线使用 〔A〕 EEPROM
〔B〕EPROM
〔C〕OTPROM
〔D〕SRAM
三、简答题 (每题10分,共20分。)
1. 简单画出MCS-51单片机上电及手动复位的RC复位电路。并简述其工作原理。 答:
+5V得分 VccRSTMCS-51单片机GNDC1ηFPBR10K
2. up监控电路能够从根本上提高51单片机系统的可靠性吗?原因是?
答:不能。 up监控电路只能是防止程序跑飞或者死机唤醒,并不能从根本上提高系统的可靠性。系统的稳定性取决于软件的编写与硬件的设计是否合理,而不是依靠监控电路。
学习文档 仅供参考
得分 四、阅读以下程序,并填写运行结果 (每空1分,共20分。)
1. MOV R2,#H MOV R1,#02H
MOV A,R1 ORL A,R2 MOV R1,A MOV A,#0FH ANL A,R2 MOV R3,A
MOV A,R2 CPL A
SWAP A
CLR C
RLC A ; MOV R2,A ;
执行完上面的程序之后,
〔A〕= 72H ;标志位〔C〕= 1 ;〔R1〕= 66H ;〔R2〕= 72H ;〔R3〕= 04H 2.
MOV MOV MOV MOV ANL
DPTR,#8006H R1,#22H A,#0F8H R2,#9 A,R1
; ; 取余 MOVX @DPTR,A INC MOV RL
DPTR
间接寻址 A,R1 A
; 不带进位左移 MOVX @DPTR,A
A
BB:INC
DJNZ INC
; ; 自加1 R2,BB DPTR
自减1不为0跳转 MOVX @DPTR,A RET
; 返回 A
〕:
当上面程序执行到“RET”处,填写下面的寄存器或地址中的值: 〔
学习文档 仅供参考
4DH ;〔R1〕 22H ;〔R2〕 0 ;〔DPTR〕 8008H ; 〔20H ;〔8007H〕 44H ;〔8008H〕 4DH 。
8006H〕
五、采用C语言,按照要求编写程序 (共30分。)
1. 假设系统的晶体振荡器频率为11.0592MHz,初始化I/O口,使得P1.0 、P1.4 、P1.5、 P1.6、 P1.7 置高电平,采用任意定时器设计如下循环任务:〔a〕P1.1、P1.2输出低电平,P1.3置高电平;〔b〕2分钟后,将P1.1 、P1.2置高电平,同时将P1.3输出低电平;〔c〕再1分钟后,将P1.3置高电平;〔d〕接着等待30秒后,执行步骤〔a〕,进而实现〔a〕、〔b〕、〔c〕、〔d〕循环。
参考程序:
#include\"io51.h\"
unsigned int Def_Timestart_Flag=0; unsigned int Def_Time_Flag=0; unsigned int Water_Time_Flag=0; unsigned char Def_Falg=0; void Init_8051(void) {
EA=0;
TCON=0X00; TMOD=0X00; IE=0X0A; IP=0XFF; TL0=0X00; TH0=0XE0; P1=0X00; EA=1; TR0=1; }
void mian(void) {
Init_8051();
学习文档 仅供参考
得分 while(1) {
P2.3=1; } }
interrupt [0x0B] void T0_ISR(void) {
Def_Timestart_Flag++; Water_Time_Flag++;
if((Def_Timestart_Flag<=24000)&&(Def_Falg==0)) {P1.1=0; P1.2=0; P1.3=1; }
if((Def_Timestart_Flag>24000)&&(Def_Falg==0)) {
Def_Time_Flag++;
P1.1=1; P1.2=1; P1.3=0;
if(Def_Time_Flag>=12000) {
P1.3=1;
Def_Falg=1; Def_Timestart_Flag=0;
Water_Time_Flag=0; } }
if((Water_Time_Flag>= 6000) &&(Def_Falg==1)) {
Def_Timestart_Flag=0; Water_Time_Flag=0; Def_Falg=0;
Def_Time_Flag=0; }
TL0=0X00; TH0=0XE0;}
学习文档 仅供参考