单片机原理与应用1.docx
《单片机原理与应用1.docx》由会员分享,可在线阅读,更多相关《单片机原理与应用1.docx(19页珍藏版)》请在冰豆网上搜索。
![单片机原理与应用1.docx](https://file1.bdocx.com/fileroot1/2023-6/25/dc76f4eb-315a-4b32-9012-97fb80f48f9d/dc76f4eb-315a-4b32-9012-97fb80f48f9d1.gif)
单片机原理与应用1
单片机原理与应用复习大纲
一、填空题
1、电源控制寄存器PCON中PD=1,进入掉电保护(掉电保持)方式。
P29
2、电源控制寄存器PCON中IDL=1,进入待机(空闲运行)方式。
P29
3、MCS-51单片机的定时计数器有T0和T1两个。
用于实现定时计数器控制的两个特殊功能寄存器是TCON和TMOD组成。
P78
4、MCS-51单片机的定时计数器实际是加1的16位计数器,由高8位和低8位寄存器组成。
P78
5、当定时计数器工作在定时功能时,如果晶振频率为12MHZ,则机器周期为1S。
P78
当定时计数器工作在定时功能时,如果晶振频率为6MHZ,则机器周期为2S。
P78
当定时计数器工作在定时功能时,如果晶振频率为24MHZ,则机器周期为0.5S。
P78
6、按总线的功能来分,可分数据总线、地址总线和控制总线。
P15
7、地址总线A0-A15的高8位是由P2提供的,低8位由P0提供。
P15
8、数据总线D0-D7是由P0提供,所以该口是分时传送地址和数据的。
P15
9、8255A有三个8位并行I/O口,为PA口、PB口、PC口。
从编程上可分2组,每组12个,有三种工作方式。
P117
10、8255A有三种工作方式:
基本I/O、选通I/O和双向传输。
P117
11、8155有256B的静态RAM和一个14位定时计数器。
P123
12、数码管按内部发光二极管的接线形式可分为共阴极和共阳极两种。
P162
13、LED数码管按显示方式分可分为静态显示和动态显示两种。
P162
14、LED按其发光管排布的不同可分为LED数码管和LED点阵显示器。
P162
15、根据像素颜色的数目,LED点阵可分为单色、双基色和三基色等。
P162
16、键盘可以分为独立式键盘和矩阵式键盘。
P175
17、键盘抖动时间的长短与开关的机械特性有关,一般为5~10ms。
P175
18、键盘工作方式有三种:
编程扫描、定时扫描和中断扫描。
P175
19、LCD按排列形状可分为字段型、点阵字符型和点阵图形型三种。
P186
20、字符型LCD分4位和8位两种数据传输方式。
P186
21、DAC0832有三种的工作方式:
直通方式、单缓冲方式和双缓冲方式。
P230
22、AD转换器按转换原理可分为:
计数式、双积分式、逐次逼近式和并行式四种类型。
P232
二、选择题
1、单片机的应用领域不包括以下那个(D)范畴。
P3
A、仪器仪表B、工业控制C、家用电器D、半导体工艺
2、以下属于半导体制造工艺技术(C)。
P4
A、AHMOSB、BHMOSC、CHMOSD、DHMOS
3、单片机的(B)是CPU中使用最频繁的寄存器。
P19
A、ALUB、AC、DPTRD、PSW
4、8051单片机的控制信号引脚共(C)根。
P15
A、6B、5C、4D、3
5、PSW中的进位标志位是(A)符号。
P20
A、CYB、ACC、F0D、F1
6、RS0RS1=11组合是指寄存器组的(D)。
P18
A、0区B、1区C、2区D、3区
7、以下(B)不是特殊功能寄存器。
P18
A、SPB、PCC、DPTRD、SBUF
8、MCS-51单片机内部设置有两个(B)的定时/计数器。
P78
A、8位B、16位C、24位D、32位
9、当定时计数器工作在计数功能时,如果晶振频率为12MHZ,则最高计数频率为(A)MHZ。
P79
A、0.5B、1C、2D、4
10、方式选择位M1M0=01时,功能描述如下(C)。
P79
A、11位B、13位C、16位D、8位
11、MSC-51有(C)独立的接收、发送缓冲器SBUF。
P97
A、0个B、1个C、2个D、3个
12、MSC-51的接收、发送缓冲器SBUF的字节地址是(D)。
P97
A、96HB、97HC、98HD、99H
13、SCON的SM0SM1的方式(A)时,其功能是8位同步移位寄存器。
P97
A、方式0B、方式1C、方式2D、方式3
14、SCON的SM0SM1的方式(B)时,其功能是8位异步收发。
P97
A、方式0B、方式1C、方式2D、方式3
15、SCON的SM0SM1的方式(C)时,其功能是9位异步收发。
P97
A、方式0、1B、方式6、7C、方式2、3D、方式4、5
16、8255A的端口选择A0A1为00时,选中(A)P119
A、端口AB、端口BC、端口CD、控制字口
17、8255A的端口选择A0A1为01时,选中(C)P119
A、端口AB、端口BC、端口CD、控制字口
18、8255A的端口选择A0A1为10时,选中(B)P119
A、端口AB、端口BC、端口CD、控制字口
19、8255A的端口选择A0A1为11时,选中(D)P119
A、端口AB、端口BC、端口CD、控制字口
20、8155含有一个(B)的可编程定时计数器。
P220
A、12位B、14位C、16位D、18位
21、8155内部有(C)工作方式寄存器。
P123
A、3个B、2个C、1个D、0个
22、8155的M2M1为00时,为(A)工作方式。
P123
A、单次方波B、连续方波C、单脉冲D、连续脉冲
23、8155的M2M1为01时,为(B)工作方式。
P123
A、单次方波B、连续方波C、单脉冲D、连续脉冲
24、8155的M2M1为10时,为(C)工作方式。
P123
A、单次方波B、连续方波C、单脉冲D、连续脉冲
25、8155的M2M1为11时,为(D)工作方式。
P123
A、单次方波B、连续方波C、单脉冲D、连续脉冲
增加复习内容:
a、简单IO接口扩展所用芯片为74系列的(D)电路,CMOS电路也可作为MCS-51系列的扩展IO接口。
A、TLLB、LLTC、LTLD、TTL
b、同步通信方式中的在单同步字符帧结构中,同步字符常采用ASCII码中规定的(D)代码。
A、10HB、12HC、14HD、16H
c、同步通信方式中的在双同步字符帧结构中,同步字符一般采用国际通用标准代码(A)。
A、EB90HB、EB92HC、EB94HD、EB96H
d、串行接口电路能够完成异步通信的硬件电路称为(A)。
A、UARTB、USRTC、USARTD、USANRT
e、串行接口电路能够完成同步通信的硬件电路称为(B)。
A、UARTB、USRTC、USARTD、USANRT
f、串行接口电路能够完成异步和同步通信的硬件电路称为(C)。
A、UARTB、USRTC、USARTD、USANRT
g、用于单片机与存储器之间或单片机与IO口之间传输数据的总线是(D)
A、内部总线B、外部总线C、地址总线D、数据总线
h、掉电后信息不丢失,只有在紫外线的照射下,存储器的信息才可去掉是(A)
A、EPROMB、EEPROMC、EBROMD、PEPROM
i、2716的EPROM的存储容量是(A)
A、2KBB、4KBC、8KBD、16KB
j、2732的EPROM的存储容量是(B)
A、16KbitB、32KbitC、64KbitD、128Kbit
k、以下(C)不属于SRAM的62系列的。
A、6264B、62128C、62188D、62256
三、判断题
1、电源控制寄存器PCON可以位寻址。
(×)
2、定时器属软件定时和计数,是单片机中效率高且工作灵活的部件。
(×)
3、定时器方式寄存器TMOD中的GATE=1,代表软件和硬件共同启动定时器。
(√)
4、定时器控制寄存器TCON不能位寻址。
(×)
5、定时计数器T0的方式0是一个由TH0中的8位和TL0中的低5位组成的13位计数器。
(√)
6、异步通信方式的校验位是设置位奇偶校验。
(√)
7、同步通信方式中的同步字符帧由同步字符、数据字符和校验字符三部分组成。
(√)
8、在单片机应用系统中,数据通信主要采用同步串行通信方式。
(×)
9、TTL电平传输数据方式,抗干扰性能好,传输距离长。
(×)
10、MSC-51的接收、发送缓冲器SBUF不可以位操作。
(√)
11、TCON中的SM2是多机通信控制位。
(√)
12、TCON中的TI是接收中断标志位。
(×)
13、TCON中的RI是发送中断标志位。
(×)
14、MCS-51的多机通信采用主从式多机通信方式。
(√)
15、内部总线是指CPU系统内部各部件之间的通路。
(√)
16、外部总线是指CPU系统和其外围单元之间的通路。
(√)
17、74LS273是八D锁存器。
(×)
18、74LS377是带使能的八D触发器。
(√)
19、74LS373是八D触发器。
(×)
20、2764的EPROM的存储容量是8KB。
(√)
21、27128的EPROM的存储容量是16KB。
(√)
22、DRAM就是半导体静态随机读写存储器。
(×)
23、8255A的数据缓冲器是一个单向三态的8位数据缓冲器。
(×)
24、8255A的A组控制是控制端口A和端口C的高位。
(√)
25、8255A的B组控制是控制端口B和端口C的低位。
(√)
26、8155的端口C既可用于传送数据,也可用作控制信号线。
(√)
27、8155中的命令字可读可写。
(×)
28、DS18B20是具有One-wire总线接口的芯片。
(√)
29、AT24C01是具有IIC总线接口的芯片。
(√)
30、AT25040是具有SPI总线接口的芯片。
(√)
四、简答题
1、简述单片机的发展趋势。
P2
1)制造工艺的进步
2)CPU的改进
3)存储容量的扩大
4)片内输入/输出接口功能的提高
5)低功耗化
6)外围电路集成化
7)片内固化应用软件和系统软件
2、简述单片机的应用。
P3
1)在智能仪器仪表上的应用。
2)在工业控制中的应用。
3)在家用电器中的应用。
4)在计算机网络和通信领域中的应用。
5)单片机在医用设备领域中的应用。
6)在各种大型电器中的模块化应用。
7)单片机在汽车设备领域中的应用。
3、单片机KEILC51语言编程的优点。
P32
(1)C51编译器管理内部寄存器和存贮器的分配,编程时,无需考虑不同存储器的寻址和数据类型等细节问题;
(2)程序有规范的结构,可分成不同的函数,这种方式具有良好的模块化结构,使已编好程序容易移植;
(3)有丰富的子程序库可直接引用,具有较强的数据处理能力,从而大大减少用户编程的工作量;
(4)C语言和汇编语言可以交叉使用。
4、C51编译器(KeilC)与标准ANSIC编译器的主要区别。
P32
单片机C编译器与ANSIC有所不同,主要是由于它们所针对的硬件系统有其各自不同的特点。
C51的特点和功能主要是80C51单片机自身特点引起的。
(1)头文件:
51单片机有不同的厂家和系列,不同单片机的主要区别在于内部资源,为了实现内部资源功能,只需将相应的功能寄存器的头文件加载在程序中,就可实现指定的功能。
因此,C51系列头文件集中体现了各系列芯片的不同功能。
(2)数据类型:
由于51系列器件包含了位操作空间和丰富的位操作指令,因此C51比ANSIC多一种位类型。
(3)数据存储类型:
51系列单片机有程序存储器和数据存储器。
数据存储器又分片内和片外数据存储器。
片内数据存储器还分直接寻址区和间接寻址区,分别对应code、data、idata、xdata以及根据80C51系列特点而设定的pdata类型。
5、简述C51的标识符和关键字。
P33
1)标识符用来标识源程序中对象的名字,这些对象可以是语句、数据类型、函数、变量、数组等。
标识符区分大小写,第一个字符必须是字母或下划线。
2)关键字是编程语言保留的特殊标识符,有时又称为保留字,它们具有固定名称和含义,在C语言的程序编写中不允许标识符与关键字相同。
6、简单介绍“函数定义”和“函数体”两个概念。
P43
解:
函数由“函数定义”和“函数体”两个部分组成。
函数定义部分包括有函数类型、函数名、形式参数说明等,函数名后面必须跟一个圆括号(),形式参数在()内定义
函数体由一对花括号“{}”组成,在“{}”的内容就是函数体。
如果一个函数内有多个花括号,则最外层的一对“{}”为函数体的内容。
7、简述中断优先级结构。
P66
MCS-51中断系统具有两级优先级(由IP寄存器把各中断源的优先级分为高优先级和低优先级),它们遵循下列两条基本原则:
1).为了实现中断嵌套,高优先级中断请求可以中断低优先级的中断服务,反之,则不允许;
2).同等优先级中断源之间不能中断对方的中断服务过程。
为了实现上述两条原则,中断系统内部包含两个不可寻址的优先级状态触发器。
其中一个用来指示某个高优先级的中断源正在得到服务,并阻止所有其他中断的响应;另一个触发器则指出某低优先级的中断正得到服务,所有同级的中断都被阻止,但不阻止高优先级中断源。
8、简述中断系统的初始化。
P68
MCS-51中断系统功能,是可以通过上述特殊功能寄存器进行统一管理的,中断系统初始化是指对这些特殊功能的寄存器中各控制位进行赋值。
中断系统初始化步骤如下:
1).置位相应中断源的中断允许;
2).设定所有中断源的中断优先级;
3).若为外部中断,则应规定低电平还是负边沿的中断触发方式。
9、8051单片机的定时计数器四种工作方式各有什么特点?
P79
答:
方式0是13位计数器,方式1是16位计数器
方式2是自动重装初值8位计数器
方式3的T0是两个独立的8位计数器,T1无中断的计数器
10、8051单片机的定时计数器初始化步骤。
P81
在使用8051单片机的定时器/计数器前,应对它进行初始化编程,主要是对TCON和TMOD寄存器编程,还需要计算和装载T/C的计数初值,一般应完成以下几个步骤:
1)确定T/C的工作方式——编程TMOD寄存器;
2)计算T/C中的计数初值,并装载到TH和TL;
3)T/C在中断方式工作时,需开CPU中断和源中断——编程IE寄存器;
4)启动T/C——编程TCON中的TR1或TR0位。
五、程序题(要求运用C语言编程)
1、在单片机开发板上编写程序,以间隔1s的时间使第一个发光二极管亮灭闪烁的程序。
解:
#include
#defineuintunsignedint
sbitled1=P1^0;
sbitP2.5=P2^5;
uinti,j;
voidmain()//主函数
{
P2.5=1;
while
(1)//大循环
{
led1=0;//点亮第一个发光二极管
for(i=1000;i>0;i--)//延时
for(j=110;j>0;j--);
led1=1;//熄灭第一个发光二极管
for(i=1000;i>0;i--)//延时
for(j=110;j>0;j--);
}
}
2、编程在单片机开发板上从最右边的发光二极管起,依次从右至左点亮一个,每次往左移一位,时间间隔为1S,一直到最左,然后周而复始的循环。
#include
#include
#defineuintunsignedint
#defineucharunsignedchar
voiddelayms(uint);
uchara;
voidmain()
{
a=0xfe;//11111110B
while
(1)
{
P1=a;
delayms(1000);实际参数
a=_crol_(a,1);
}
}
voiddelayms(uintxms)形式参数
{
uinti,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
3、编程在单片机开发板上从最左边的发光二极管起,依次从左至右点亮一个,每次往右移一位,时间间隔为1S,一直到最右,然后周而复始的循环。
#include
#include
#defineuintunsignedint
#defineucharunsignedchar
voiddelayms(uint);
uchara;
voidmain()
{
a=0x7f;//0111111B
while
(1)
{
P1=a;
delayms(1000);实际参数
a=_cror_(a,1);//循环右移
}
}
voiddelayms(uintxms)形式参数
{
uinti,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
4、单只共阳数码管循环显示0~9。
程序中的循环语句反复将0~9的段码送至P2口,使数字0~9循环显示。
#include
Unsignedchartab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//延时
voiddelay(unsignedintt)
{unsignedinti,j;
for(i=0;i{for(j=0;j<200;j++);}
}
voidmain(void)
{unsignedcharKK;
while
(1)
{
P2=tab[KK];
KK++;delay(500);if(KK==10)KK=0;
}
}
5、定时器控制单只LED(查询方式)
说明:
LED在定时器的控制下1S闪烁。
/*利用定时器0,查询方式,工作方式1,晶振12M*/
#include
unsignedchart=0;
voidmain(void)
{TMOD=0x01;
TH0=0x3c;
TL0=0xb0;
TR0=1;
while
(1)
{if(TF0==1)
{TF0=0;TH0=0x3c;TL0=0xb0;
t++;if(t==20){t=0;P0_0=~P0_0;}}
}
}
6、定时器控制单只LED(中断方式)
说明:
LED在定时器的控制下1S闪烁。
/*利用定时器0,工作方式1,晶振12M*/
#include
unsignedchart=0;
voidtimer0(void)interrupt1
{
TH0=0x3c;
TL0=0xb0;
t++;
if(t==20)
{
P0_0=~P0_0;
t=0;
}
}
voidmain(void)
{
TMOD=0x01;
TH0=0x3c;
TL0=0xb0;
TR0=1;
ET0=1;
EA=1;
while
(1);}
7、K1-K2控制LED移位
说明:
按下K1时,P0口LED以1S左移;
按下K2时,P0口LED以1S右移;
sbitkey1=P3^6;
sbitkey2=P3^7;
//延时
voiddelay(unsignedintt)
{unsignedinti,j;
for(i=0;i{for(j=0;j<200;j++);}
}
//主程序
voidmain()
{unsignedcharKK;
while
(1)
{if(key1==0)
{P0=0XFE;
for(KK=0;KK<8;KK++)
{delay(500);P0=P0<<1;P0=P0+1;}
}
if(key2==0)
{P0=0X7F;
for(KK=0;KK<8;KK++)
{delay(500);P0=P0>>1;P0=P0+0X80;}
}
}
}
8、名称:
INT0中断计数
说明:
每次按下计数键时触发INT0中断,中断程序累加计数,计数值显示在2只数码管上,按下清零键时数码管清零。
#include
unsignedcharmiao=0;
unsignedchartab[]=
{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
voidint0(void)interrupt0using0
{miao++;
if(miao==60)miao=0;
}
voidmain(void)
{unsignedcharkk;
EA=1;EX0=1;IT0=1;
while
(1)
{P3=0xfd;P2=tab[miao%10];for(kk=0;kk<230;kk++);
P3=0xfe;P2=tab[miao/10];for(kk=0;kk<230;kk++);
if(P3_7==0)miao=0;
}
}
9、八位共阴极数码管动态扫描显示数字;
/*名称:
八位共阴极数码管动态扫描显示数字
说明:
k1-k8显示数码管八位数字;显示数字由自己程序定义修改*/
#include
unsignedchartab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
/*数码管为共阴八位数码管P2.0-P2.7接段码a-dp,P0.0-P0.7接位选*/
unsignedchark1=1,k2=2,k3=3,k4=4,k5=5,k6=6,k7=7,k8=8;//延时
voiddelay(unsignedintt)
{unsignedinti,j;
for(i=0;i{for(j=0;j<200;j++);}
}
voidmain(void)
{
while
(1)
{
P0=0xfe;P2=tab[k1];delay
(1);P0=0xfd;P2=tab[k2];delay
(1);
P0=0xfb;P2=tab[k3];delay
(1);P0=0xf7;P2=tab[k4];delay
(1);
P0=0xef;P2=tab[k5];delay
(1);P0=0xdf;P2=tab[k6];delay
(1);
P0=0xbf;P2=tab[k7];delay
(1);P0=0x7f;P2=tab[k8];delay
(1);
}
}