51单片机项目实战之51基础知识篇
51单片机开发需要准备的知识以及软件:
c语言,以C语言为基础来编写单片机程序
keil软件:51开发集成环境
protues软件:电路仿真软件
MCS-51单片机的硬件结构:
1、 微处理器(CPU)
2、 数据存储器(RAM)
3、 程序存储器(ROM/EPROM)
4、4个8位并行I/O口(P0口 P1口 P2口 P3口)
5、1个串行口
6、 2个16位定时/计数器
7、 中断系统
8、 特殊功能寄存器
MCS-51引脚概述:
XTAL1 、XTAL2接外部晶振
RST 复位信号输入端,高电平有效
ALE 地址锁存允许信号
PSEN程序存储器允许输出信号
EA外部存储器选择端,高电平访问内部程序存储器,低电平访问外部程序存储器,一般我们接高电平
I/O口概述:
P0口有3个功能,普通I/O, 地址总线,数据总线。P0作为普通I/O口时,必须
接上拉电阻才能输出1;作为地址总线时配合P2口使用,是
地址总线的低8位
P1口只能作为普通的I/O口使用,当它作为输入口时,必须先
写入1,然后才能做输入
P2口是准双向I/O口,也可以当
地址总线的高8位
P3口可以作为普通I/O口,但绝大多数情况做为一个特殊功能口使用
P3口的第二功能:
P3.0 RXD穿行输入
P3.1 TXD穿行输出
P3.2 INT0外部中断0
P3.3 INT1外部中断1
P3.4 T0定时器0外部计数输入
P3.5 T1定时器1外部计数输入
P3.6 WR外部数据存储器写选通,低电平有效
P3.7 RD外部数据存储器读选通,低电平有效
MCS-51的周期:
时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。
在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。
指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成。
51单片机的一个机器周期等于
12个时钟周期,绝大部分指令都是单周期的
51中断系统:
MCS-51中断系统共有5个中断请求源,它们是
INT0 外部中断请求0, 中断请求标志IE0
INT1 外部中断请求1,
中断请求标志IE1
定时器/计数器T0溢出中断请求,
中断请求标志TF0
定时器/计数器T1溢出中断请求,
中断请求标志TF0
串口中断请求,
中断请求标志RI 或TI
TCON寄存器:
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
IT0------外部中断请求0触发方式,IT0=0为(低)电平触发,IT0=1为下降沿触发
IE0------外部中断0请求标志位,由硬件清零
IT1------外部中断请求1触发方式,IT1=0为(低)电平触发,IT1=1为下降沿触发
IE1------外部中断1请求标志位,由硬件清零
TF0------定时器/计数器0溢出中断,由硬件清零
TF1------定时器/计数器1溢出中断,由硬件清零
SCON寄存器:
D7 D6 D5 D4 D3 D2 D1 D0
- - - - - - TI RI
TI---串行发送中断请求标志位,串口发送一帧数据后产生中断,硬件置1,必须软件清零
RI---串行接受中断请求标志位,串口接受一帧数据后产生中断,硬件置1,必须软件清零
IE中断控制寄存器
D7 D6 D5 D4 D3 D2 D1 D0
EA - - ES ET1 EX1 ET0 EX0
EA---总中断允许控制位,EA=1使能所有中断,EA=0关闭所有中断
ES---总中断允许控制位,ES=1使能所有中断,ES=0关闭所有中断
ET1---定时器/计数器T1溢出中断允许控制位,ET1=1使能T1溢出中断,ET1=0关闭T1溢出中断
EX1---外部中断1允许控制位,EX1=1使能外部中断1,EX1=0关闭外部中断1
ET0---定时器/计数器T0溢出中断允许控制位,ET0=1使能T0溢出中断,ET0=0关闭T0溢出中断
EX0---外部中断0允许控制位,EX0=1使能外部中断0,EX0=0关闭外部中断0
MCS-51中断优先级:
从高到底顺序:外部中断0、T0溢出中断、外部中断1、T1溢出中断、串行中断
MCS-51定时器:
51单片机有2个定时/计数器,T0和T1。T0由2个特殊功能寄存器TH0和TL0组成,
T1由2个特殊功能寄存器TH1和TL1组成
工作方式选择寄存器TMOD
D7 D6 D5 D4 D3 D2 D1 D0
GATE C/T M1 M0 GATE C/T M1 M0
D0~D3控制T0, D4~D7控制T1
GATE门控位,当GATE=0时,以运行控制位TR0/TR1(置1)来启动定时/计数器0或1,当GATE=1时,用外部中断INT0/1上的高电平来启动定时/计数器
C/T计数和定时模式选择位,C/T=1时为计数器模式,C/T=0时为定时器模式
M0、M1工作方式选择位,定时/计数器工有四种工作方式
M1 M0
0 0 工作方式0, 13位定时/计数器
0 1 工作方式1, 16位定时/计数器
1 0 工作方式2,8位自动重新装载的定时/计数器(以TL0/1计数,溢出之 后TH0/1 数据直接装载到TL0/1,是最常用的方式)
1 1 工作方式3,仅适用T0,将T0分成2个8位的定时/计数器