手把手带你了解80C51(持续更新)

前言:

我自己学习51单片机呢,也已经有一段时间了,趁着今天有空,把一些重要的知识归纳起来,以便以后回顾。

一、MCS-51的基本结构:

(1)、外部结构:

MCS-51系列单片机一般采用40只引脚的双列直插封装(DIP),以80c51为例,如下图:

80C51的引脚按功能划分可分为3类:

1、电源及晶振引脚;

(1)电源引脚:Vcc(第40脚):接+5V电源引脚        Vss(第20脚):接地引脚

(2)外接晶振引脚:XTAL1(第19脚)、XTAL2(第18脚),逻辑方向为:XTAL2-->XTAL1,外接晶振电路原理图如下:

注意:C1、C2一般取30pF左右,作用是帮助振荡器起振,晶体的振荡频率范围在1.2~13MHz。晶体的振荡频率越高,系统的时钟频率就越高,单片机运行速度与就越快。在通常情况下,MCS-51的时钟频率为6~12MHz。

2、控制引脚:

(1)RST/Vpd(第9脚):

       (a)复位端RST:若该引脚上输入满足复位时间要求的高电平(该时间等于系统时钟振荡周期建立时间再加2个机器周期),单片机复位。常用的复位电路如下:

       (b)备用电源端Vpd:当主电源Vcc发生故障,降低到某一规定的低电平时,可将外接的+5V电源作为备用电源,为单片机片内的ARM供电,保证片内的RAM信息不丢失,从而保证单片机恢复电压后正常工作。

(2)ALE/PROG(第30引脚):

        (a)地址锁存使能输出ALE:当单片机访问外部存储器时,外部存储器的16位地址信号由P0口输出低8位,P2口输出高8位,ALE可作为低8位地址锁存控制信号。当不用做外部存储器地址锁存控制信号时,引脚以时钟脉冲频率的1/6固定输出正脉冲。

         (b)编程脉冲输入端PROG:对含有EPROM的单片机,在进行片内EPROM编程时需要由此输入编程脉冲

(3)PSEN(第29引脚):输出访问片外程序存储器读选通信号。CPU在从片外ROM取指令期间,该引脚将在每个机器周期内产生两次负跳变脉冲,用作片外ROM芯片的使能信号。

(4)EA/Vpp(第31脚):外部ROM允许访问/编程电源输入

         (a)外部ROM允许访问EA:当EA= 1时,CPU从片内ROM开始读取指令。当程序计数器PC的值超过4KB地址范围时,将自动执行片外ROM的指令。但EA=0时,CPU仅访问片内ROM

           (b)编程电源输入Vpp:在对含有EPROM的单片机进行EPROM编程时,此引脚应接芯片的编程电压。(具体的编程电压参考芯片说明手册)

3、并行I/O引脚:

P0~P3口都可作为准双向IO口,但P0口需要外接上拉电阻。

在扩展片外存储器时,8位数据总线由P0口组成,16位地址总线由P0口和P2口组成,其中P0口作为低8位地址总线,P2口作为高8八位地址总线,P3口和PSEN、EA、ALE、RESET则组成控制总线

(2)、内部结构:

MCS-51基本结构如下:

CPU按功能可分为:控制器和运算器

运算器

程序计数器PC:16位寄存器,存放下一条指令的地址,当指令取出,PC加1

指令寄存器IR:8位寄存器,暂存待执行的指令,等待译码

指令译码器ID:对指令进行译码,转换成所需的电信号

数据指针DPTR:专业地址指针寄存器,包括DPH和DPL寄存器,其中DPH表示高八位,DPL表示低八位。

控制器:

累加器ACC:8位寄存器,简称A,通过暂存器与ALU(算术逻辑部件)相连,用来存放一个操作数或中间结果

算术逻辑部件(ALU):用来对数据进行四则运算或逻辑运算,ALU的两个操作数,一个由A通过暂存器2输入,另一个由暂存器1输入,运算结果的状态传给PSW(程序状态字寄存器)

程序状态字寄存器(PSW):用来存放程序过程中的各种状态信息

CPU的工作过程:

取指令-->指令译码-->执行指令-->修改指令计数器-->取指令······

二、特殊功能寄存器:

89C51单片机ARM上共有21个特殊寄存器,我只写下一些常用的寄存器。

右边第一位为最低位

PSW(程序状态字寄存器)

CYACF0RS1RS0OVF1P

CY:进位标志,进行加减运算,操作结果最高为有进位或借位时,CY由硬件1,否则清零

AC:辅助进位标志,进行加减运算,操作结果的低4位数向高4位产生进位或借位时,由硬件置1,否则清0,也可用于BCD码调整时的判断位

F0、F1:用户标志位,由用户置位或复位

P:奇偶判断标志位,自动追踪A中含"1个数的奇偶性

RS1、RS0:工作寄存组选择方式位

工作寄存组RS1RS0
000
101
210
311

 

 

 

 

 

TCON(定时、计数控制寄存器)

88H  可位寻址

TF1TR1TF0TR0IE1IT1IE0

IT0

ITX:外部中断X的中断方式选择位,1 --> 边沿触发有效,0 --> 低电平有效

IEX:外部中断X的中断请求标志位

TRX:定时器X运行控制位,1 --> 开始计时, 0 --> 计时停止

TFX:定时器X溢出标志位。中断执行时由硬件自动清零

TMOD(定时、计数方式控制寄存器)

89H 不可寻址

GATEC/TM1M0CATEC/TM1M0

CATE:门控位   0 --> TRX=1,TX启动;1 --> TRX=1, INTX=1,TX启动

C/T:定时和外部事件计数方式选择位;0,定时器方式,内部脉冲;1,外部事件计数器方式,外部脉冲

M1、M0工作方式选择位:

M1M0工作方式功能说明
00013位定时/计数器
01116位定时/计数器
1028位自动重装定时/计数器
1133种定时/计数器

 

初值:a = 2^n - t(fosc/12)                   计数值:N = 2^n - a

方式0和方式1逻辑结构图(以T1为例):

注意:

1、方式0和方式1的逻辑结构是一样的,区别在于TLX的有效为不同。方式0是低5位有效,高3位补0,方式1全有效。

2、使用方式0时,求出的初值,转换成二进制后,要在低五位后再添3个0,这时的二进制数才是THX和TLX要装进的

方式2逻辑结构图(以T1为例):

方式3逻辑结构图:

3种组合关系:

TH0+TF1+TR1组成的带中断功能的8位定时器

TL0+TR0+TF0组成的带中断功能的8位定时/计数器

TI组成的无中断功能的定时/计数器

特别说明:

当TH和TL溢出后会使TF置1,进而判断是否执行中断

T1可作为波特率发生器使用

当T0为工作方式3时,T1只可使用公式0,1,2,这是因为T0为工作方式3时会占用T1的资源。

IE(中断允许寄存器)

A8H 可位寻址

EA      ESET1EX1ET0EX0

 

EXX:外部中断X允许位,1 --> 允许中断,0 --> 停止中断

ETX:定时/计数器TX的溢出中断允许标志位,1 --> 允许中断,0 --> 禁止中断

ES:串行口中断允许位,1 --> 允许中断,0 --> 禁止中断

EA:中断允许总控制位,1 --> CPU开放中断,0 --> CPU屏蔽所以的中断申请

IP(中断优先级寄存器)

B8H 可位寻址

         PSPT1PX1PT0PX0

PS:串行口中断优先级控制位

PTX:定时/计数器TX中断优先级控制位

PXX:外部中断X中断优先级控制位

SCON(串行口控制寄存器)

98H 可位寻址

SM0SM1SM2RENTB8RB8TIRI

TI、RI:串行通信中断请求标志,发送、接收TI、RI置1,需要软件清0

RB8:接收数据第九位

TB8:发送数据第九位

REN:允许接收控制位,1 --> 允许接收, 0 --> 禁止接收

SM2:多机通信控制位,1 --> 多机通信, 0 --> 点对点通信

SM1、SM0:串行通信工作方式定义位

SM0SM1方式功能说明
0008位同步移位寄存器方式
01110位数据异步通信方式
102

11位数据异步通信方式

11311位数据异步通信方式

 

 

PCON(电源控制寄存器)

SMOD         GF1GF0PD

TDL

 

SMOD:波特率选择位,1 --> 在原基础上加倍, 0 --> 保持原有数值

GF1、GF0:通有标志位

PD:掉电控制位

TDL:空闲控制位

三、中断系统:

  • 14
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值