两小时搞定单片机原理

单片机原理

第一部分 硬件基础

1、 单片机的并行I/O口在使用时,有哪些注意的地方?
较重的负载接在P0口;P0口输出时应接上拉电阻;P0可复用地址/数据线
读P1需要先输出1使三极管截止;
P2可做地址线;
2、单片机的存储器;程序存储器和数据存储器的寻址范围,地址总线和数据总线的位数;数据存储器内存空间的分配;特殊功能寄存器区;
3、时钟及机器周期;
4、单片机的控制总线、地址总线及数据总线等。
例:
一、填空
1.MCS-51单片机有4个存储空间,它们分别是: 片内数据存储区 、 片内程序存储区 、 片外数据存储区 、 片外程序存储区 。
2、MCS-51单片机的一个机器周期包括 6个状态周期, 12 个振荡周期。设外接12MHz晶振,则一个机器周期为 1μs。
3.程序状态字PSW由 8位组成。
4.在MCS-51单片机内部,其RAM高端128个字节的地址空间称 特殊功能寄存器区,但其中仅有83 个字节11个特殊功能寄存器有实际意义。
5. MCS-51 系列单片机为 8位单片机,其数据总线为 8位,地址总线为16 位,可扩展的地址范围为 0000H~FFFFH。
6. MCS-51 单片机的4 个并行I/O 口若作为普通I/O 口使用时,输入操作分为读引脚和读锁存器,需要先向端口写“1”的操作是P1 。
7. MCS-51 单片机的特殊功能寄存器分为可位寻址和不可位寻址两种,那么IE 为可位寻址 ,TMOD 为不可位寻址 。
在这里插入图片描述

8.通常MCS-51单片机上电复位时PC=0000H、SP=07 H、通用寄存器采用第0 组,这一组寄存器的地址范围是00H-07H H。

在这里插入图片描述
在这里插入图片描述

9.MCS-51单片机堆栈遵循先低地址后高地址 的数据存储原则。
10.在MCS-51单片机中,使用P2、P0口传送 信号,且使用P0口来传送 信号,这里采用的是 技术。
11.MCS-51单片机位地址区的起始字节地址为 20H 。
12.对于并行口在读取端口引脚信号时,必须先对端口写 1 。
13.PC的内容是下一条要执行的指令的首地址 。
14、MCS-51 单片机运行出错后需要复位,复位的方法是在复位引脚上加一个持续时间超过 2个时钟周期的高电平。
在这里插入图片描述

15、具有4KBytes 储存容量之存储器,其至少需具有 12根地址线。
16、若地址总线有12条,则单片机可寻址的范围为00H-FFFH 。
二、问答
1.简述MCS-51 单片机的P0、P1、P2 和P3 口的功能和特点。
都可作为准双向口;P0复用为地址/数据线,需要接上拉电阻;P1输入需要先写1;P2可作为地址线;P3可作为第二功能口;
2.MCS-51单片机的三总线是由哪些口线构成的。
数据线:P0口
地址线:第八位由P0口,高八位由P2口
控制线:P3口
3.MCS-51单片机的位寻址区的字节地址范围是多少?位地址范围是多少?
20-2F,00-7F
4. MCS-51单片机存储器在结构上有什么特点?在物理上和逻辑上各有那几个地址空间?
采用指令和数据统一物理地址的冯洛依曼(普林斯顿)结构,物理上四个,逻辑上三个;
5.简述MCS-51单片机00H-7FH片内RAM的功能划分,写出它们的名称以及所占用的地址空间。
00-1FH:四组8位通用功能寄存器
20-2FH:位寻址区
30H-7FH:特殊功能寄存器

在这里插入图片描述
在这里插入图片描述

6.请写出MCS-51单片机的五个中断源的入口地址。

在这里插入图片描述

第二部分 C51程序设计

1、C51的指令规则;C51编程语句及规则;
2、C51表达式和运算符;
3、顺序程序、分支程序及循环程序设计;
4、C51的函数;
5、中断函数。
例:
1.程序的基本结构有顺序、选择、循环 。
2.C51的存储器模式有small 、 compact 、 large 。
在这里插入图片描述

3.C51中int型变量的长度为8bit ,其值域为0-255 ;unsigned char型变量的长度为8位,其值域为 -128-127 。
4.C51中关键字sfr的作用访问特殊功能寄存器 ,sbit的作用 位寻址 。
5.函数定义由 函数名 和 函数体 两部分组成。
6.C51的表达式由运算符和操作数 组成。C51表达式语句由表达式和分号 组成。
7.若局部变量未初始化,其初值为 0 。
8.C51中“!”运算符的作用是 逻辑非 ;运算符”~”的作用是 取反 。
9.若函数无返回值,用 void 关键字指定。
10. 在C51中,语句while(1){循环体语句}的含义是 如果没有break语句则一直循环执行循环体中语句,否则执行到break跳出。
11. C51中,用于定义变量片内数据存储器类型的关键字是 small 。
二、程序设计题
1、电路如图所示,要求编程实现一个流水灯。

#include<reg51.h>
#define led P2
Int mian()
{
Led = 0xFE;
While(1){
Led=(led<<1)|!(~led);
}
Return 0;
}
2、电路如图所示,要求编程实现:数码管显示0~9,循环显示。

#include <reg51.h>
#define digital P2
Void delay(int xx)
{
While(0<xx–);
}
Int main()
{
Digital=0;
While(1){
If(digital<=9){
Digital+=1;
Delay(5000);
}
Else
Digital=0;
}
Return 0;
}

第三部分 中断系统

1、 中断的定义;
2、 中断源及其优先级;
3、 中断过程及中断应用编程。
例:
一、 填空题

在这里插入图片描述

1.MCS-51单片机有 5 个中断源。上电复位时,同级中断的自然优先级从高至低依次为 外中断0,定时器0,外中断1,定时器1,串口中断,若IP=00010100B,优先级别最高者为外部中断1 、最低者为定时器1 。
在这里插入图片描述

2.外部中断请求有 电平 触发和 边沿 触发两种触发方式。
3.MCS-51单片机5个中断源的中断入口地址为:外部0 0003H,;定时0000B;外部1 0013H;定时1 001BH;串口中断 002BH; 。
4.中断向量是中断服务程序的 识别标志,用于生成中断服务程序入口地址(入口地址指示器) 。
5.当定时器/计数器1申请中断时,TF1为1 ,当中断响应后,TF1为0 。
在这里插入图片描述

当串口完成一帧字符接收时,RI为1 ,当中断响应后,RI为1 ,需
要 软件 清零。
6.在MCS-51单片机的中断系统中,中断优先级共分为 2 级。

在这里插入图片描述

  1. MCS-51 单片机定时器T0 的中断类型号是 1 。

二、 简答题
1.MCS-51单片机有几个中断源?各中断标志是如何产生的?如何撤销的?各中断源的中断矢量分别是什么?
5个中断源;中断标志在TCON寄存器中设定的对应的触发条件达成时由硬件置位;除串口中断外,进入处理函数前由硬件撤销中断标志;串口中断标志由软件清除;中断向量分别为:0003;000B;0013;001B;0023;
在这里插入图片描述

2.简述MCS-51中断过程。
程序执行过程中中断条件达成,当前执行空间的参量入栈保存后跳转到对应的中断服务函数,执行完后将先前的参量出栈继续执行前一过程;如果有多个中断同时被触发,先执行高优先级的中断服务函数;如果有同优先级中断,按照自然优先级顺序执行;
在这里插入图片描述

  1. MCS-51 单片机有哪几个中断源?它们的中断类型号分别是什么?自然优先级由高到低依次是什么?
    外部0 0;计时0 1;外部1 2;计时1 3;串口中断 4;
    三、程序设计题
    1、没有外部中断时,七段数码管显示8,当有外部中断时,七段数码管上显示的8连续闪烁8次,然后继续显示8。要求编写程序实现上述功能。

#include<reg51.h>
Int0_srv() interrupt 0
{
For(int i=0;i<8;i++){
P2=0x00;
Delay();
P2=0xff;
}
}
Int main()
{
While(1){
P1=0xff;
}

Return 0;
}

2、没有中断发生时,发光二极管亮,有中断发生时,有外部中断时,在8个发光LED上按从上到下点亮一遍,然后再从下向上点亮一遍,每次点亮一个发光二极管。要求编写程序实现上述功能。

#include<reg51.h>
Void int0_srv() interrupt 0
{
P2=0xff;
P2=0xfe;
Delay();
For(int i=0;i<8;i++)
P2=(P2<<1)|(~P2);
For(int i=0;i<8;i++)
P2=(P2>>1)|(~P2);
}

Int main()
{
While(1){
P2=0x00;
}

Return 0;
}

第四部分 定时/计数器

1.定时/计数器的组成;
2.工作方式
3.应用编程。
例:
一、填空

  1. MCS-51单片机中有2 个 16 位的定时器/计数器,定时/计数器的核心是一个 十六位加一 计数器。
  2. 定时器/计数器T0可以工作于方式0、1、2、3 。
  3. 方式0为 十三位 位定时器/计数器。
  4. 若系统晶振频率为12MHz,则T0工作于定时方式1时最多可以定时65536µs。
  5. 若MCS-51 晶振频率为12MHz,则T0 工作于计数方式时,可以接受的计数脉冲频率范围为 0-0.5MHz 。
  6. TMOD中的M1M0= 11时,定时器工作于方式3 。
  7. 若系统晶振频率为6MHz,则定时器可以实现的最小定时时间为 2 µs。
  8. MCS-51单片机工作于定时状态时,计数脉冲来自 内部时钟脉冲 。
  9. MCS-51单片机工作于计数状态时,计数脉冲来自 外部输入引脚T0/T1 。
  10. 当GATE=0时,TR0 启动T0开始工作。
    在这里插入图片描述
    在这里插入图片描述

11.欲对300个外部事件计数,可以选用定时器/计数器T1的模式 0 或模式1 。
12. 若MCS-51单片机的晶振频率为12MHz,则T0工作于计数方式时,可以接受的计数脉冲频率范围为 0-0.5MHZ 。
二、简答题
1、定时器/计数器T0和T1各有几种工作方式?简述每种工作方式的特点。如何控制定时器/计数器的工作方式?
2、设MCS-51单片机的晶振频率fOSC=12MHz,分别讨论定时器/计数器0在各种工作方式下的最长定时时间。若定时100ms,则计算各种方式下的定时初值。
机器周期T=12/fosc=1us;0:2^13us; 1:65536us;2:256us;3:65535us

三、程序设计题
1、利用单片机定时功能实现倒计时9s时间,一位数码管显示。要求T0用方式2实现。晶振频率为12MHz。
Int num=9;
Int data[]={0X8F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};
Void it0_srv() interrupt 1
{
TL=(65535-5000)%256;
TH=(65536-5000)/256;

If(Num!=0)	

Num–;
Else
Num=0;
}
Int main()
{
TMOD=0X02;
TL=(65535-5000)%256;
TH=(65536-5000)/256;

TR0=1;
While(1){
P2=data[num];

}

Return 0;
}

2、按钮按下时要求发光二极管熄灭,按钮没有按下时要求发光二极管按亮1秒,灭1秒的频率闪烁。已知:单片机的时钟频率为12MHz,要求采用定时器完成定时,中断方式编程。

4、 利用定时器T0定时中断控制P1.7驱动LED发光二极管亮1s灭1s的闪烁,设时钟频率为12MHz。
5、 航标灯电路如下图图2所示,白天有光时光敏三极管Q2导通,开关三极管Q1也导通;夜晚无光时,Q2截止,Q1也截止。请编写程序实现白天时熄灭航标灯D1,夜晚时开启D1,并要求D1发光时按亮1秒,灭1秒的频率闪烁。已知:单片机的时钟频率为12MHz,要求采用定时器T0的方式1完成定时,中断方式编程。
(1)、写出定时初值的计算过程(可以不换算为16进制)。(5分)
(2)、编程实现要求的航标灯功能。(20)

图2 航标灯电路图

第五部分 串行通信

1、串行接口的组成;
2、串行通信过程;
3、通信方式及应用编程。
例:
一、填空题
1.在串行通信中,把每秒中传送的二进制数的位数叫 波特率。
2.当SCON中的M0M1=10时,表示串口工作于方式 2 ,波特率为 32或者64分频晶振频率 。

在这里插入图片描述

3.SCON中的REN=1表示 串口允许接受数据 。
4.PCON 中的SMOD=1表示 波特率在原有基础上加倍 。
在这里插入图片描述
在这里插入图片描述

5.SCON中的TI=1表示 串口发送中断触发 。
6.MCS-51单片机串行通信时,先发送 低位,后发送 高 位。
7.MCS-51单片机方式2串行通信时,一帧信息位数为11 位。
8.设T1工作于定时方式2,作波特率发生器,时钟频率为11.0592MHz,SMOD=0,波特率为2.4K时,T1的初值为 0 。
9.MCS-51单片机串行通信时,通常用指令 AT 启动串行发送。
10.MCS-51 单片机的串行口工作于方式0 时用于 配合 移位寄存器。MCS-51单片机串行方式0通信时,数据从 P3.0 引脚发送/接收。
二、简答题
1、串行口设有几个控制寄存器?它们的作用是什么?
两个 SCON串行口控制寄存器;中断标志和工作模式设置
PCON电源控制寄存器:配置波特率和掉电控制
2、 简述MCS-51 单片机串行口的数据发送和数据接收过程。
发送 数据由CPU送到发送数据缓冲器,发送控制寄存器将并行数据转为串行数据并加上起始位、可编程位和停止位,完成后T1置位,通知cpu数据已经送到TXD引脚

在这里插入图片描述

3、 MCS-51单片机串行口有几种工作方式?各自的特点是什么?怎样确定其工作方式?
四种、通过SCON寄存器的SM0和SM1位配置;
4、MCS-51单片机串行口各种工作方式的波特率如何设置,怎样计算定时器的初值?
在这里插入图片描述

在这里插入图片描述

第六部分 按键与显示

1、按键的识别与处理
2、共阳极数码管与共阴极数码管的构成特点;
3、掌握共阳极数码管与共阴极数码管显示段码的编写
4、数码管的静态显示和动态扫描
例:
一、填空题
1.键盘抖动可以使用 两种办法消除。
2.要让共阴极的七段数码管显示数字7,试问要让 引脚通电。
3.键盘中断扫描方式的特点是 。
4.数字5的共阴极七段LED显示代码是 ,数字5的共阳极七段LED显示代码是 。
5. 所谓动态扫描显示技术是指 。
二、问答题:
1.具体按键的识别有几种方法?各有什么特点?
2.何谓LED静态显示?何谓LED动态显示?两种显示方式各有何优缺点?

  • 26
    点赞
  • 347
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值