资源描述
单片机技术应用与实践习题
1. 单片机基础知识
1.1 单片机学习的意义与方法
1.2 微型计算机的基本结构
(1)一台微型计算机基本包含了(ABCD)等部件。(多选)
(A)主机 (B)显示器 (C)键盘鼠标 (D)软件
(2)主机内的主板通常由( ABCD )等部件组成。(多选)
(A)微处理器 (B)内存 (C)I/O接口 (D)总线
(3)软件不属于微型计算机的基本结构。(×)
1.3 单片机的概念与特点
(1)单片机的基本组成包括( B )。
(A)CPU、存储器、输入输出设备 (B)CPU、存储器、I/O接口
(C)存储器、输入输出设备、I/O接口 (D)CPU、输入输出设备、I/O接口
(2)同一型号的单片机,若采用不同封装,则引脚数必须保持一致。(×)
(3)国际上对单片机通用的称呼为(C)。
(A)CPU (B)SCMC (C)MCU (D)IC
(4)下列属于单片机通用的特点有(ABCD)。
(A)小巧灵活,成本低,易产品化; (B)集成度高,可靠性高,适应温度范围宽;
(C)易扩展,控制能力强; (D)可方便的实现多机和分布式控制系统;
1.4 单片机的发展
(1)MCS-51是( B )位的单片机。
(A)4 (B)8 (C)16 (D)32
(2)下列单片机中,不属于51内核的是(D)。
(A)AT89S52 (B)P89C51 (C)STC12C5A60S2 (D)PIC16F1527
(3)Microchip的PIC系列单片机特点是(抗干扰能力强),TI的MSP430系列单片机特点是(低功耗)。
(4)51单片机按指令集分属于(A),按存储结构分属于(C)。
(A)CISC (B)RISC (C)哈佛结构 (D)冯诺依曼结构
1.5 单片机的应用
(1)单片机的CPU能处理什么信号?( A )
(A)数字信号 (B)模拟信号 (C)数字和模拟信号 (D)非数字、非模拟信号
(2)模拟信号须经(B)后才能送入单片机。
(A)模拟信号处理电路 (B)模数转换器
(C)数字信号处理电路 (D)数模转换器
(3)下列输入输出设备中,属于数字输入的有(A),属于数字输出的有(BC),属于模拟输入的有(DE),属于模拟输出的有(F)。(不定项选择)
(A)按键 (B)Led (C)LCD (D)麦克风 (E)温度传感器
(F)直流电机
1.6 数制转换
(1)十进制数123转换为二进制( D )。
(A)1011101 (B)1011101B (C)1111011 (D)1111011B
(2)二进制数0110 1101B转换为十进制( C )。
(A)69 (B)73 (C)109 (D)137
(3)下列二进制与十六进制的等式错误的是( D )。
(A)1011 0110B = 0xB6 (B)0110 1101B = 0x6D
(C)1101 1111B = 0xDF (D)0111 1011B = 0x7A
1.7 数的运算
(1)下列二进制的运算错误的是( A ),结果仅保留8位二进制。
(A)1010 1110B + 1001 1010B = 1010 0100B
(B)1011 0001B – 0111 1110B = 0011 0011B
(C)1101 1011B & 1110 0011B = 1100 0011B
(D)1100 1010B | 1101 1100B = 1101 1110B
(2)已知下列二进制数X、Y,试求X + Y、X – Y(8位字长,结果保留8位二进制)。
(A)X = 1101 1010B,Y = 1001 0101B;X + Y = (0110 1111B);X – Y = (0100 0101B);
(B)X = 1110 0110B,Y = 0101 1001B;X + Y = (0011 1111B);X – Y = (1000 1101B);
(3)已知下列十六进制数X、Y,试求X + Y、X – Y、X & Y、X | Y、X、X⊕Y。(8位字长,结果保留2位十六进制)。
(A)X = 29H,Y = 54H;X + Y = (7DH);X – Y = (D5H);X & Y = (00H)、X | Y = (7DH)、X = (D6H)、X⊕Y = (7DH);
(B)X = ABH,Y = 78H;X + Y = (23H);X – Y = (33H);X & Y = (28H)、X | Y = (FBH)、X = (54H)、X⊕Y = (D3H);
1.8 数的表示
(1)补码为0010 0100B的数,其真值为( B )。
(A)34 (B)36 (C)38 (D)40
(2)-6的原码为(E),反码为(F),补码为(G)。
(A)10110B (B)11001B (C)11010B (D)0111 1001B
(E)1000 0110B (F)1111 1001B (H)1111 0110B (G)1111 1010B
(3)求下列各数的原码、反码和补码(8位字长)。
(A)[+36]原 = (0010 0100B);[+36]反 = (0010 0100B);[+36]补 = (0010 0100B);
(B)[-25]原 = (1001 1001B);[-25]反 = (1110 0110B);[-25]补 = (1110 0111B);
(C)[+99]原 = (0110 0011B);[+99]反 = (0110 0011B);[+99]补 = (0110 0011B);
(D)[-88]原 = (1101 1000B);[-88]反 = (1010 0111B);[-88]补 = (1010 1000B);
(4)78的压缩BCD码为(0111 1000)B,该BCD码转换成十六进制为(78H)。
1.9 字符的表示
(1)字符‘0’的ASCII码值为( C )。
(A)0 (B)30 (C)0x30 (D)0x48
(2)字符‘a’的ASCII码值为(0x61),字符‘@’的ASCII码值为(0x40)。
2. 单片机的基本原理
2.1 Intel 51系列单片机简介
(1)下列部件中,( E )不是MCS-51中固有的。
(A)振荡器 (B)CPU (C)ROM (D)RAM (E)模/数转换器
(F)定时/计数器 (G)中断系统 (H)I/O接口 (I)串行口
(2)51单片机的51子系列内部RAM有(A),52子系列内部RAM有(B)。
(A)128B (B)256B (C)4kB (D)8kB (E)64kB
(3)在单片机内部是由(内部总线)连接各个部件的。
2.2 中央处理器CPU
(1)CPU由( B )和( C )两大部分组成。
(A)算术逻辑单元 (B)运算部件 (C)控制部件 (D)指令寄存器
(2)CPU中使用最频繁的寄存器是(A),管理指令执行次序的寄存器是(D)。
(A)A (B)B (C)PSW (D)PC
(3)指令的执行步骤是(取指)、(译码)、(执行)。
2.2.1 程序状态字PSW
(1)标志寄存器PSW用于保存指令执行结果,其中C为(进位位),AC为(辅助进位位),OV为(溢出位),P为(奇偶校验位)。
(2)满足条件(BC),则OV置1。(多选)
(A)ACC.7向更高位进位,ACC.6向ACC.7进位;
(B)ACC.7向更高位进位,ACC.6未向ACC.7进位;
(C)ACC.7未向更高位进位,ACC.6向ACC.7进位;
(D)ACC.7未向更高位进位,ACC.6未向ACC.7进位;
(3)0x6A + 0x7B执行后,C为(A),AC为(B),OV为(B),P为(B)。
(A)0 (B)1
(4)0x99 + 0x48执行后,C为( A ),AC为( B ),OV为( A ),P为( A )。
(A)0 (B)1
2.2.2 程序执行过程
(1)下列功能中( C )不是程序计数器PC的功能。
(A)复位功能 (B)自动加1 (C)自动减1 (D)直接置位功能
(2)MCS-51单片机存放当前正在执行的指令地址的寄存器是(B)。
(A)指令寄存器 (B)地址寄存器 (C)程序计数器 (D)状态寄存器
2.3 存储器
(1)下列特点中,属于ROM的有( ACDG ),属于RAM的有( BEF )。(多选)
(A)存放程序 (B)存放数据 (C)存放常数表格 (D)运行时只读
(E)可读可写 (F)掉电后数据丢失 (G)掉电数据不丢失
(2)常见的ROM类型有(ABCDE)。(多选)
(A)掩模ROM (B)PROM (C)EPROM (D)EEPROM (E)FLASH
(3)RAM通常分为(静态RAM)和(动态RAM)两种。
2.3.1 程序存储器编址
(1)8051 ROM的寻址能力可达( D )。
(A)4kB (B)8kB (C)16kB (D)64kB
(2)程序计数器PC用来存放(D)。
(A)指令 (B)上一条的指令地址
(C)正在执行的指令地址 (D)下一条的指令地址
(3)对于8031单片机,EA引脚必须(B)。
(A)接地 (B)接电源 (C)悬空 (D)接上拉电阻
(4)对于8051单片机,EA引脚接了高电平,程序从(A)地址为0000H的单元开始执行,当执行到地址为1000H的单元时,从(B)地址为(D)开始执行。
(A)片内ROM (B)片外ROM (C)0000H (D)1000H
(5)MCS-51的ROM中存在7个特殊地址,是用于(复位)和(中断)的。
2.3.2 数据存储器编址
(1)8051 片内RAM的寻址能力可达( F )B,其地址为( A )位;片外RAM的寻址能力可达( D )kB,其地址为( B )位。
(A)8 (B)16 (C)32 (D)64 (E)128 (F)256
(2)堆栈中,数据存取的原则是(B)。
(A)先进先出,后进后出 (B)先进后出,后进先出
(C)依次进出 (D)根据数据地址进出
(3)堆栈指针SP的内容是(B)。
(A)堆栈顶部数据 (B)堆栈顶部地址 (C)堆栈底部数据
(D)堆栈底部地址 (E)堆栈地址 (F)堆栈数据
(4)单片机扩展片外器件时,可以占用( D )空间。
(A)片内ROM (B)片外ROM (C)片内RAM (D)片外RAM
(5)关于数据指针DPTR的说法,错误的是(B)。
(A)主要用于存放一个16位的地址; (B)主要用于存放一个16位的数据;
(C)由两个8位的寄存器组成 (D)主要用于访问外部存储器
2.4 输入/输出接口
(1)51单片机引脚中,用于输入/输出的引脚有(C)个。
(A)4 (B)8 (C)32 (D)256
(2)P0 – P3是51单片机的并行I/O口,它们共有的功能是( A ),其中P0口的第二功能是( E ),P2口的第二功能是( B )。
(A)通用I/O口 (B)高8位地址总线 (C)低8位地址总线
(D)数据总线 (E)低8位地址总线与数据总线分时复用
(3)在并行扩展外部存储器时,I/O口中传送低8位地址的(A),传送高8位地址的是(C),传送8位数据的是(A);常用于第二功能的是(D),用户真正能使用的I/O通常只有(B)。
(A)P0口 (B)P1口 (C)P2口 (D)P3口
(4)51单片机的4个并行I/O口中,用作输出口时需外接上拉电阻的是(A),用作输入口时需先写入“1”的有(ABCD)。(不定项选择)
(A)P0口 (B)P1口 (C)P2口 (D)P3口
2.5 外部引脚与片外总线
(1)单片机引脚中,低8位地址锁存信号是( E );
(A)PSEN (B)EA (C)WR (D)RD (E)ALE
(2)片外RAM读选通信号是( D );
(A)PSEN (B)EA (C)WR (D)RD (E)ALE
(3)片外RAM写选通信号是( C )。
(A)PSEN (B)EA (C)WR (D)RD (E)ALE
(4)51单片机的片外总线包括(ACD)。(多选)
(A)数据总线 (B)内部总线 (C)地址总线 (D)控制总线
(5)51单片机的P0口经锁存器输出的是(B)。
(A)数据总线 (B)低8位地址总线 (C)高8位地址总线 (D)控制总线
2.6 单片机工作方式
(1)51单片机复位的条件是(RST)引脚出现两个机器周期的(高)电平。
(2)上电复位后,P1口输出( B )。
(A)0x00 (B)0xff (C)0x07 (D)0x80
2.7 单片机工作时序
(1)8051单片机的时钟频率为12MHz,则一个机器周期为(B)μs。
(A)0.5 (B)1 (C)2 (D)6 (E)12
(2)若8051外接晶振为11.0592MHz,则单片机的机器周期为( C )。
(A)0.922μs (B)1μs (C)1.085μs (D)2μs
(3)当CPU不执行访问片外RAM的指令时,ALE的信号频率是振荡频率的( A )倍。
(A)1/6 (B)1/2 (C)2 (D)6
3. 单片机C语言程序设计
3.1 C语言与51单片机
(1)C语言并不能直接在51单片机中运行。(√)
(2)一个完整的C程序中,必然存在的函数是(B)。
(A)Main (B)main (C)printf (D)scanf
(3)8051单片机的C程序中,若用到一些特殊功能寄存器SFR,则必须存在(C)。
(A)include <reg51.h> (B)include <stdio.h> (C)#include <reg51.h>
(D)#include <stdio.h> (E)include <reg51.h>; (F)include <stdio.h>;
(G)#include <reg51.h>; (H)#include <stdio.h>;
3.2 C51的数据类型
(1)C51中,一个变量的取值范围是0~250,其最适合的数据类型是( B );
(A)char (B)unsigned char (C)int (D)unsigned int
(2)C51中,若一个变量的取值范围是-250~250,则最适合的数据类型是( C )。
(A)char (B)unsigned char (C)int (D)unsigned int
(3)C51中,要对端口P1.0重命名成P10,下列语句正确的是( D )。
(A)bit P10 = P1.0; (B)bit P10 = P1^0;
(C)sbit P10 = P1.0; (D)sbit P10 = P1^0;
(4)下列关于位类型说法正确的是(ABCD)。(多选)
(A)位类型只能访问可位寻址的单元
(B)bit类型的变量位于片内RAM的20H~2FH中的某一位
(C)sbit只能用于已经分配好地址的且可位寻址的变量
(D)sbit常用于特殊功能寄存器中可寻找位的重命名
3.3 C51的运算量
(1)下列对于C51中常量的写法正确的是(ABDF)。(多选)
(A)0.618 (B)-256 (C)45H (D)0x63 (E)0xefH (F)-0x12
(2)下列对于C51中变量的命名正确的是(ADHI)。(多选)
(A)VALUE (B)2Sum (C)A+B (D)B2C (E)char (F)#33
(G)result2.0 (H)val_2 (I)_total (J)a>b
(3)C51中,在片内RAM定义的变量,其存储器类型是( A );
(A)data (B)xdata (C)code (D)static
(4)C51中,变量若定义在片外RAM,存储类型是( B );
(A)data (B)xdata (C)code (D)static
(5)C51中,变量若定义在ROM中,存储类型为( C )。
(A)data (B)xdata (C)code (D)static
(6)下列变量定义中,能实现在片内RAM低128字节定义一个无符号字节变量val1的是( B )。
(A)char data val1; (B)unsigned char data val1;
(C)char xdata val1; (D)unsigned char xdata val1;
(7)下列变量定义中,能实现在ROM定义一个5元素的有符号字节数组LedCode,数组内容分别为:0x3f,0x06,0x5b,0x4f,0x66的是( D )。
(A)char data LedCode[5] = {0x3f, 0x06, 0x5b, 0x4f, 0x66};
(B)char code LedCode[5];
(C)char data LedCode[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66};
(D)char code LedCode[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66};
3.4 绝对地址访问
(1)使用预定义宏方式访问绝对地址时,必须包含头文件(C)。
(A)reg51.h (B)reg52.h (C)absacc.h (D)stdio.h
(2)下列语句中,能将片内RAM 0x30单元的内容送到片外RAM 0x3000单元中的是( A )。
(A)XBYTE[0x3000] = DBYTE[0x30]; (B)XBYTE[0x30] = DBYTE[0x3000];
(C)DBYTE[0x30] = XBYTE[0x3000]; (D)DBYTE[0x3000] = XBYTE[0x30];
(3)使用指针方式访问绝对地址时,定义指针变量需指定其(存储类型),如定义了指针变量*point,则point存放的是(地址),而*point则表示(内容)。
(4)用预定义宏方式实现下列无符号字节单元的操作:
(A)把数据20H送入片内RAM的40H单元;(DBYTE[0x40] = 0x20;)
(B)片内RAM的56H单元送到片内RAM的66H单元;(DBYTE[0x66] = DBYTE[0x56];)
(C)片外RAM的30H单元送到片外RAM的3000H单元;(XBYTE[0x3000] = XBYTE[0x30];)
(D)ROM的365H单元送到片内RAM的35H单元;(DBYTE[0x35] = CBYTE[0x365];)
(E)将片内RAM地址为Addr的单元内容送到片外RAM地址为ExAddr的单元;(XBYTE[ExAddr] = DBYTE[Addr];)
(F)将程序中首地址为Tab的常数表格的第4个字节单元内容取出送到变量Value中;(Value = CBYTE[Tab + 3];)
3.5 C51的运算符与语句
(1)已知unsigned char 类型变量a = 23,b = 11,试求下列表达式c的值。
(A)c1 = a * b; c1 = (253); (B)c2 = a / b; c2 = (2);
(C)c3 = (a++) - b; c3 = (12); (D)c4 = (++a) - b; c4 = (13);
(E)c5 = a % b; c5 = (1); (F)c6 = (--a) % b; c6 = (0);
(2)已知x = 19,y = 3,则执行完语句w = (++x) * (y--);后,w的值为( C )。
(A)57 (B)38 (C)60 (D)40
(3)试判断下列逻辑表达式的运算结果。
(A)2 && 0;(0); (B)(2 / 2) && (2 % 2);(0);
(C)(2 / 2) || (2 % 2);(1); (D)3 || 0;(1);
(E)(10 != 3 + 6)&& (10 == 3 + 6);(0); (F)!(3 + 2)(0);
(4)已知unsigned char 类型的两个变量x = 15,y = 7,试求下列复合赋值运算结果。
x += y; (I) x %= y; (B) x &= y; (D)
x ^= y; (E) x <<= 2; ( J ) x >>= y; ( A )
(A)0 (B)1 (C)0x03 (D)0x07 (E)0x08 (F)0x0f
(G)0x0a (H)0x0e (I)0x16 (J)0x3c (K)0xf8
3.6 C51的输入输出函数
(1)C51中要用scanf、printf这样的输入输出函数,则必须加上头文件(stdio.h),同时程序中必须加上(串口初始化)程序段。
(2)已知int类型的两个变量x = 15,y = 7,求运行下列程序段后各自输出的结果。
z = !y; printf(“%d”, z); (A)
z = ~y; printf(“%d”, z); (E)
z = x && y; printf(“%d”, z); (B)
z = x || y; printf(“%d”, z); (B)
z = x | y; printf(“%d”, z); (D)
(A)0 (B)1 (C)0x03 (D)0x0f (E)0xf8
(3)写出下列程序段的输出结果,注意空格。
#include <stdio.h>
externserial_initial();
main()
{
int x, y, z;
serial_initial();
x = y = 8; z = ++x; printf(“\n%d%d%d”, y, z, x);
x = y = 8; z = x++; printf(“\n%2d%2d%2d”, y, z, x);
x = y = 8; z = --x; printf(“\n%3d%3d%3d”, y, z, x);
x = y = 8; z = x--; printf(“\n%4d%4d%4d”, y, z, x);
printf(”\n”);
while (1);
}
答案:
899
8 8 9
8 7 7
9 8 7
3.7 C51的基本结构
(1)下列程序段中,语句P10 = !P10;执行的次数是( A )。
unsignedint x = 99, i;
while (x--)
{
for (i=1; i<10; i++)
{
P10 = !P10;
}
}
(A)891 (B)900 (C)990 (D)1000
(2)用do-while循环求sum = 1 + 3 + 5 + … + 99的程序段如下所示,请仿照该程序段分别用while循环和for循环编写程序段求:sum = 2 + 4 + 6 + … + 100。
unsigned char n = 1;
unsignedint sum = 0;
do
{
sum = sum + n;
n = n + 2;
}
while (n <= 99);
while循环:
unsigned char n = 2;
unsignedint sum = 0;
while (n <= 100)
{
sum = sum + n;
n = n + 2;
}
for循环:
unsigned char n;
unsignedint sum = 0;
for (n = 2; n <= 100; n = n + 2)
{
sum = sum + n;
}
3.8 C51中的函数
(1)函数unsigned char GetScore(unsigned char number)中,number是(入口参数),GetScore是(函数名),unsigned char 表示(返回值)类型。
(2)函数Sum的功能是(C)。
unsigned char Sum(unsigned char x, unsigned char y)
{
return (x> y ? y : x);
}
(A)求x与y的和作为返回值
(B)求x与y差的绝对值作为返回值
(C)求x与y的较小值作为返回值
(D)求x与y的较大值作为返回值
(3)为表示一个函数是中断函数,其关键词是(interrupt),后面加上表示中断类型的(中断号)。
(4)下列关于中断函数的说法错误的是(D)。
(A)中断函数没有入口参数,也没有返回值
(B)中断函数不能被调用,但是可以调用其他函数
(C)为提高实时性,中断函数应尽量简短
(D)中断函数通常放在C程序文件开头
3.9 数组与指针
(1)下面关于数组的定义中正确的是( C )。
(A)int x; (B)int Array[5];
int Array[x]; Array[5] = {1, 2, 3, 4, 5};
(C)int x[5]; (D)int Array[] = {1, 2, 3, 4, 5};
x[5] = 5;
(2)下列程序段的功能是(A)。
unsigned char i, index = 0, temp, Value[10];
for (i=0; i<9; i++)
{
if (Value[i] < Value[i + 1]) index = i + 1;
}
temp = Value[0]; Value[0] = Value[index]; Value[index] = temp;
(A)找出数组Value中的最大值放在第一个单元
(B)找出数组Value中的最小值放在第一个单元
(C)给数组Value从大到小排序 (D)给数组Value从小到大排序
(3)下面语句中,能正确定义一个指向片外RAM地址为0x1000单元的是( B )。
(A)int x; (B)int *x; (C)int x; (D)int *x;
x = 0x1000; x = 0x1000; *x = 0x1000; *x = 0x1000;
3.10 C51程序的版式
3.11 实验环境与调试步骤
3.12实验一 C51程序调试基础
3.13实验二绝对地址访问
3.14实验三函数的使用
3.15实验四数组排序
4. 51单片机内部资源
4.1 并行输入输出接口
(1)控制P1口高4位输出高电平,低4位输出低电平,只需写入指令(P1 = 0xF0;)。
(2)将P2口的8位状态读入变量KeyVal的指令为(KeyVal = P2;)。
(3)sbit Control = P1^2; 则控制P1.2输出高电平的指令为(Control = 1;),控制P1.2输出低电平的指令为(Control = 0;),控制P1.2取反输出的指令为(Control = !Control;)。
(4)sbitEOC = P3^3; 则读入P3.3的状态到位变量eoc的指令为(eoc = EOC;),等待P3.3由低电平变成高电平的指令为(while(!EOC);)。
4.1.1 开关控制发光二极管
(1)针对下面原理图,若要让8位发光二极管从上至下的状态为:亮灭亮灭亮亮灭灭,则P1口应送出的值为( D )。
(A)0xAC (B)0x3A (C)0x53 (D)0xCA
(2)利用上个原理图实现跑马灯(流水灯),发光二极管从上至下依次循环点亮,同一时刻仅点亮一个发光二极管,则控制程序为(第一空);若改为从下而上依次循环点亮一个,则控制程序又为(第二空)。
第一空:
while (1)
{
value = 0x01;
for (i = 0; i< 8; i++)
{
P1 = ~value;
value<<= 1;
Delay();
}
}
第二空:
while (1)
{
value = 0x80;
for (i = 0; i< 8; i++)
{
P1 = ~value;
value>>= 1;
Delay();
}
}
(3)上述程序中如果不加入延时程序,对于现象的影响为(C)。(不定项选择)
(A)没有任何影响 (B)发光二极管的变化太过缓慢
(C)发光二极管的变化太过迅速,看不清 (D)发光二极管的变化顺序会被打乱
4.1.2 I/O口控制蜂鸣器
(1)针对下面原理图,若要让蜂鸣器Speaker发声,则P1.1( B )。
(A)送出高电平 (B)送出低电平
(C)不论送出什么电平,都不能发声 (D)不论送出什么电平,都能发声
(2)下列原理图中,能使得发光二极管正常点亮的是( B )。
(A) (B)
(C) (D)
4.1.3 硬件实验平台
4.1.4实验五 I/O口跑马灯
4.2 定时/计数器接口
4.2.1 特性与结构
(1)8051单片机的定时/计数器对(A)计数,是计数器;
(A)外部事件脉冲 (B)时钟脉冲 (C)机器周期脉冲 (D)ALE信号脉冲
(2)8051单片机的定时/计数器对( C )计数,是定时器。
(A)外部事件脉冲 (B)时钟脉冲 (C)机器周期脉冲 (D)ALE信号脉冲
(3)若定时/计数器用于计数方式时,脉冲须从(多选)(CD)引脚输入。
(A)P3.2 (B)P3.3 (C)P3.4 (D)P3.5
(4)若定时/计数器用于计数方式时,需要(B)个机器周期才能识别一个计数脉冲。
(A)1 (B)2 (C)4 (D)8
4.2.2 相关寄存器
(1)下列语句中,能控制定时/计数器T1实现方式2定时的是(A)。
(A)TMOD = 0x20; (B)TMOD = 0x02;
(C)TMOD = 0x60; (D)TMOD = 0x06;
(2)已知TMOD的值,试分析T0、T1的工作状态。
如:TMOD = 0x93; T1定时,方式1,运行与INT1有关;T0定时,方式3,运行与INT0无关;
(A)TMOD = 0x68; T1计数,方式2,运行与INT1无关;T0定时,方式0,运行与INT0有关;
(B)TMOD = 0xCB; T1计数,方式0,运行与INT1有关;T0定时,方式3,运行与INT0有关;
(C)TMOD = 0x52; T1计数,方式1,运行与INT1无关;T0定时,方式2,运行与INT0无关;
(3)下列语句中,能控制启动定时/计数器T1的是( D )。
(A)TR0 = 0; (B)TR0 = 1; (C)TR1 = 0; (D)TR1 = 1;
(4)定时/计数器T0定时时间到后,标志位(B)自动置1。
(A)TR0 (B)TF0 (C)TR1 (D)TF1
4.2.3 工作方式
(1)8051单片机的定时/计数器4种工作方式中,计数值最大的是( B ),计数初值能自动重装载的是( C )。
(A)方式0 (B)方式1 (C)方式2 (D)方式3
(2)8051单片机工作在12MHz的振荡频率下,利用T0方式2实现周期200μs方波,则下列计数初值的赋值正确的是( A )。
(A)TH0 = 156; (B)TL0 = 156;
(C)TH0 = 56; (D)TH0 = 56; TL0 = 56;
(3)按下列要求设置定时初值,计算TH0/TH1、TL0/TL1的值。
(A)系统晶振12MHz,T0方式1,定时50ms; TH0 = 0x3C, TL0 = 0xB0;
(B)系统晶振6MHz,T1方式2,定时300μs; TH1 = 0x6A, TL1 = 0x6A;
(C)系统晶振8MHz,T1方式1,定时15ms; TH1 = 0xD8, TL1 = 0xF0;
4.2.4 500μs方波发生器实例
(1)利用T0进行定时,则语句while(!TF0);的含义是(C)。
(A)TF0为0,定时时间到,继续循环 (B)TF0为1,定时时间到,继续循环
(C)TF0为0,定时时间没到,继续循环 (D)TF0为1,定时时间没到,继续循环
(2)已知系统晶振12MHz,利用T1方式1实现在P1.0输出周期为10ms的方波。
#include <reg52.h>
sbit P10=P1^0;
void main()
{ TMOD = 0x10;
TH1 = 0xEC; (60536)
TL1 = 0x78;
TR1 = 1;
while(1)
{
while (!TF1);
TH1 = 0xEC; (60536)
TL1 = 0x78;
TF1 = 0;
P10 = !P10;
}
}
4.2.5 1s方波发生器实例
(1)已知系统晶振12MHz,利用T1方式2实现在P3.0输出周期为10ms的方波。
#include <reg52.h>
sbit P30=P3^0;
unsigned char count;
void main()
{
TMOD = 0x20;
TH1 = 0x06; TL1 = 0x06;
EA = 1; ET1 = 1;
count = 0;
TR1 = 1;
while(1);
}
void timer1_int(void) interrupt 3
{
count++;
if (count >= 20)
{
P30 = !P30;
count = 0;
}
}
4.2.6 示波器使用步骤
4.2.7实验六方波发生器
4.3 串行接口
4.3.1 并行通信与串行通信
(1)串行通信名词解释:按位顺序传送数据的通信方式。
(2)下列关于串行通信说法错误的是( C )。
(A)传输速度较慢 (B)占用传输线少 (C)成本高 (D)适用于远距离通信
(3)通信双方之间只有一根信号线连接,而双方都要给对方传送数据,此时最适合采用(B)串行通信。
(A)单工 (B)半双工 (C)全双工
4.3.2 串行通信格式
(1)下列关于同步通信和异步通信说法错误的是( D )。
(A)异步通信双方采用各自的时钟 (B)同步通信双方由同一个时钟控制
(C)同步通信常用于同一块电路板上两个器件之间的通信
(D)异步通信双方的发送和接收速率可以不一致
(2)异步通
展开阅读全文