精华内容
参与话题
问答
  • d-2 单片机基础

    2017-12-30 18:02:49
    我们要如何控制某一个脚输出电流 每一个脚都有一个名称如下 我们只要在程序中写入 P1.0 = 1 //就可以使相应的脚输出电流; 若要断开 P1.0 = 0

    这里写图片描述

    我们要如何控制某一个脚输出电流

    每一个脚都有一个名称如下
    这里写图片描述
    我们只要在程序中写入

    P1.0 = 1 //就可以使相应的脚输出电流;

    若要断开
    P1.0 = 0

    展开全文
  • 单片机:基础知识

    万次阅读 多人点赞 2019-06-09 09:04:03
    单片机内部结构 单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、...

    单片机内部结构

    单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统

    分类:

    • 1、通用型
      按单片机(Microcontrollers)适用范围来区分。例如,80C51式通用型单片机,它不是为某种专门用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。
    • 2、总线型
      按单片机(Microcontrollers)是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总线、 数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。
    • 3、控制型
      按照单片机(Microcontrollers)大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是惟一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。

    51单片机的结构与功能

    基本功能:
    1.8位数据总线,16位地址总线的CPU;
    2.具有布尔处理能力和位处理能力;
    3.采用哈佛结构,程序存储器与数据存储器地址空间各自独立,便于程序设计;
    4.相同地址的64KB程序存储器和64KB数据存储器;
    5.0-8KB片内程序存储器(8031无,8051有4KB,8052有8KB,89C55有20KB);
    6.128字节片内数据存储器(8051有256字节);
    7.32根双向并可以按位寻址的I/O线;
    8.两个16位定时/计数器(8052有3个);
    9.一个全双工的串行I/O接口;
    10.多个中断源的中断结构,具有两个中断优先级;
    11.片内时钟振荡器 。

    特点:
    1.以微处理器(CPU)为核心;
    2.CPU与其他部件间通过三总线连接。
    总线: 指能为多个部件服务的信息传送线 。

    内部结构
    在这里插入图片描述
    在这里插入图片描述

    单片机外部结构

    在这里插入图片描述

    一共40根外部引脚如图:

    在这里插入图片描述
    引脚功能介绍

    引脚号 引脚名称 说明
    1~8 P1.0~P1.7 端口P1
    9 RST 复位信号输入端
    10~17 P3.0~P3.7 端口P3,该端口具备第二功能
    18 XTAL2 时钟震荡器输出端,内部震荡器输出段
    19 XTAL1 时钟震荡器输入端,内部震荡器输入段
    20 GND 电源地
    21~28 P2.0~P2.7 端口P2
    29 PSEN(低) 外部程序存储器从程序存储器中取指令或读取数据时,该信号有效
    30 ALE/PROG(低) 地址锁存信号访问外部存储器时,该信号锁存低8位地址;无RAM时,此引脚输出晶振的6分频信号
    31 EA(低)/VPP 程序存储器有效地址,EA=1时从内部开始执行程序;EA=0时从外部开始执行程序
    32~39 P0.7~P0.0 端口P0
    40 VCC 电源正

    1、P0口的结构

    P0口字节地址为80H,位地址80H~87H。
    如图,一个端口由锁存器、输入缓冲器、多路开关、一个非门、一个与门及场效应管驱动电路构成。

    P0位结构:
    在这里插入图片描述

    • 输入缓冲器
      在P0口中,有两个三态的缓冲器,三态门有3个状态,即在其输出端可以是高电平、低电平,同时还有一种高阻状态(或称为禁止状态),要读取D锁存器输出端Q的数据,需要使读锁存器中这个缓冲器的三态控制端有效,下面一个是读引脚的缓冲器,要读取P0.X引脚上的数据,也要使标号为“读引脚”的三态缓冲器的控制端有效,引脚上的数据才会传输到单片机的内部数据总线上。
    • D锁存器
      构成一个锁存器,通常要用一个时序电路,一个触发器可以保存一位二进制数(即具有保持功能),在51单片机的32根I/O口线中,都是用一个D触发器来构成锁存器的。图1-4中的D锁存器,D端是数据输入端,CP是控制端(即时序控制信号输入端),Q是输出端,Q非是反向输出端。
      对于D锁存器来讲,当D输入端有一个输入信号,如果这时控制端CP没有信号(即时序脉冲没有到来),这时输入端D的数据是无法传输到输出端Q及反向输出端的。如果时序控制端CP的时序脉冲到达,这时D端输入的数据就会传输到Q及Q非端。数据传送过来后,当CP时序控制端的时序信号消失时,输出端还会保持着上次输入端D的数据(即把上次的数据锁存起来)。如果下一个时序控制脉冲信号到来,这时D端的数据才再次传送到Q端,从而改变Q端的状态。
    • 多路开关
      在51单片机中,当内部的存储器够用时(即不需要外扩展存储器时,这里讲的存储器包括数据存储器及程序存储器),P0口可以作为通用的输入/输出端口(即I/O)使用,对于8031(内部没有ROM)的单片机,或者编写的程序超过了单片机内部的存储器容量需要外扩存储器时,P0口就作为地址/数据总线使用。那么这个多路选择开关就是用于选择是作为普通I/O口使用还是作为地址/数据总线使用的选择开关了。从图1-4可知,当多路开关与下端接通时,P0口作为普通的I/O口使用;当多路开关是与上端接通时,P0口作为地址/数据总线使用。

    利用P0口进行扩展外部存储器和I/O时,P0口将作为地址和数据分时复用,CPU发控制信号,打开与门,使MUX打向上边,形成推拉式结构,数据信号可直接读入或输出到内部总线。利用P0作为通用I/O时,此时P0口是一个准双向口,CPU发控制信号,封锁与门,使上拉管截止,MUX打向下边,与D触发器Q连接。

    2、P1口的结构

    P1口字节地址为90H,位地址为90H~97H。

    P1位结构:
    在这里插入图片描述

    与P0不同,P1口只能作为I/O口使用,无MUX,但其内部有一个上拉电阻,所以连接外围负载时不需要外接上拉电阻,这一点P1、P2、P3都一样。

    3、P2口的结构

    P2口字节地址为A0H,位地址为A0H~A7H

    P2位结构:
    在这里插入图片描述

    P2口作为I/O口线时用法与P0口一样,当内部开关拨向另一个方向,即作地址输出时,可以输出程序存储器或外部数据存储器的高8位地址,并与P0口输出的低地址一起构成16位的地址线。

    4、P3口的结构

    P3口字节地址为B0H,位地址为B0H~B7H。

    在这里插入图片描述

    P3口作为I/O口线用时同其他的端口相同,也是准双向口,不同的是,P3口的每一位都有另一种功能,也叫第二功能,具体作用在用到时将详细解释。当P3口作为通用I/O口时,准双向口第二功能端保持高电平。

    当P3口作为第二功能时,锁存器输出Q=1,如图为P3口第二功能列表:
    在这里插入图片描述

    5、注意

    • (1)在无片外扩展存储器的系统中,这4个端口的每一位都可以作为准双向通用I/O端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口作为双向总线,分时作为低8位地址和数据的输入/输出线。
    • (2)P0口作为通用双向I/O口使用时,必须外接上拉电阻。
    • (3)P3口除了作通用I/O口使用外,各位还具有第二功能。当P3口某一位用于第二功能作输出时,则不能再作通用I/O口使用。
    • (4)当P0~P4端口用作输入时,为了避免误读,都必须先向对应的输出锁存器写入1,使FET截止,然后再读端口引脚,例如以下程序:
      MOV P1, #0FFH
      MOV A, P1

    51的程序存储器和数据存储器是独立分开的,数据寄存器除内部数据寄存器外,还可以扩展数据寄存器,并存但访问指令不同

    程序寄存器

    当EA引脚接高电平,CPU将使用内部程序寄存器,若程序超过内部程序存储器空间时,则CPU会自动从外部程序存储器重读取超过部分的程序代码

    数据寄存器

    0000H ~ 007FH
    1、寄存器组区
    0000H~001FH共有32个地址位寄存器组区
    每组寄存器组都包括R0、R1、R2、R3、R4、R5、R6、R7等8个寄存器,任何一个时间,都只能使用其中一个寄存器组。
    寄存器组的切换,可由程序状态字(PSW)中的RS1、RS0来决定
    RS0 RS1 寄存器组 位址
    0 0 RB0 0000H~0007H
    0 1 RB1 0008H~000FH
    1 0 RB2 0010H~0017H
    1 1 RB3 0018H~001FH

    2、可位寻址区
    0020H~002FH 共16字节的存储区为可位寻址区
    设置20H存储器地址的位5设置为1:SETB 20H.5
    设置20H存储器地址的位5设置为0:CLR 20H.5

    3、一般数据与堆栈区
    0030H~007FH的80字节为一般数据访问及堆栈区
    0080H~00FFH之间的128B位特殊功能寄存器(SFR)
    特殊功能寄存器
    P0、P1、P2、P3
    它们是51的4个输入/输出端口,其地址分别为80H、90H、A0H及B0H。
    P0口:该8位都为漏级开路输出,每个引脚可以驱动8个LS型TTL负载;且内部没有上拉电阻,执行输出功能时,外部必须接上拉电阻(10千欧即可);若要执行输入功能,必须先输出高电平,方能读取该端口所连接的外部数据;若系统连接外部存储器,则P0可作为地址总线(A0A7)及数据总线(D0D7)的多功能引脚。
    P1口:内部有30千欧上拉电阻,执行输出功能时,不必连接外部上拉电阻;该8位都为漏级开路输出,每个引脚可以驱动4个LS型TTL负载;若要执行输入功能,必须先输出高电平,方能读取该端口所连接的外部数据;
    P2口:内部有30千欧上拉电阻,执行输出功能时,不必连接外部上拉电阻;该8位都为漏级开路输出,每个引脚可以驱动4个LS型TTL负载;若要执行输入功能,必须先输出高电平,方能读取该端口所连接的外部数据;若系统连接外部存储器,而外部存储器的地址线超过8条时,则P0口可作为地址总线(A8~A15)引脚。
    P3口:内部有30千欧上拉电阻,执行输出功能时,不必连接外部上拉电阻;该8位都为漏级开路输出,每个引脚可以驱动4个LS型TTL负载;若要执行输入功能,必须先输出高电平,方能读取该端口所连接的外部数据;
    P3口其他功能:
    P3 其它功能 说明
    P3.0 RXD 串行口的接收引脚
    P3.1 RTD 串行口的传送引脚
    P3.2 INT0 INT0中断输入
    P3.3 INT1 INT1中断输入
    P3.4 T0 timer 0输入
    P3.5 T1 Timer 1输入
    P3.6 WR 写入外部存储器控制引脚
    P3.7 RD 读取外部存储器控制引脚

    SP
    SP为堆栈指针寄存器,其地址为81H。

    DPL、DPH
    DPL与DPH均为8位的数据指针寄存器,其地址分别为82H、83H。若以DPL为低8位、DPH为高8位,即可组成一个16位的数据指针寄存器,简称DPTR,如此将可寻址到64KB的数据地址。

    PCON
    PCON作为电源控制寄存器,其地址位87H,其功能是设定CPU的电源方式。
    它是一个不可位寻址的寄存器。如图所示:
    SMOD ― ― ― GF1 GF0 PD IDL
    Bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
    其中各位说明如下:
    SMOD位为比特率倍增位。当串行端口工作于模式1、模式2、模式3,且使用定时器1为其比特率产生器时,若其为1,这比特率加倍,若为0,这比特率正常。
    GF1、GF0位为一般用途标志位,用户可自行设定或清除这两个标志。通常使用这个两个标志作为有中断唤醒闲置模式中的8051系统。
    PD位为功率下降模式位。为1时,进入功率下降模式;为0时,结束功率下降模式。
    IDL位为闲置模式位。为1时,进入闲置模式;为0时,结束闲置模式。

    TCON
    TCON为定时器/计数器控制寄存器,其地址为88H

    TMOD
    TMOD为计数器/计数方式控制寄存器,其地址为89H,其功能是设置它的方式

    TL0、TL1、TH0、TH1
    TL0、TH0为第一组定时器、计数器的计量寄存器,其地址为8AH、8CH,将TL0与TH0组合即可进行16位的定时/计数。TL1、TH1为第二组定时器、计数器的计量寄存器,其地址为8BH、8DH,将TL1与TH1组合即可进行16位的定时/计数。

    SCON
    SCON为串行端口控制寄存器,其地址为98H,其功能是设定串行端口工作方式与标志。

    SBUF
    SBUF为串行端口缓冲器,其地址为99H, 这是由使用同一个地址的两个寄存器所构成,其中一个寄存器作为传送数据用的缓冲器,另一个寄存器作为接收数据用的缓冲器。至于如何分辨同一个地址的两个寄 存器,则视指令而定,若是数据传送指令,则自动定位到传送数据用的缓冲器;若是接受数据指令,则自动定位到接收数据用的缓冲器。详细以后再讲咯。IE
    IE为中断使能寄存器,其地址为A8H。

    IP
    IP为中断优先级寄存器。

    T2CON
    T2CON为Timer 2的定时器/计数器控制寄存器,其地址为C8H,其功能死设定Timer 2的启动、记录定时/计数溢出,以及外部中断触发方式等。

    RCAP、RCAP2H
    RCAP、RCAP2H为捕捉寄存器,其地址为CAH、CBH。当Timer 2在捕捉方式时,若T2EX(P1.1)引脚上的输入信号有高电平转为低电平时,TL2与TH2的内容将被载入RCAP与RCAP2H,就像是把Timer 2的内容捉进RCAP寄存器一样。

    TL2、TH2
    TL2、TH2为第三组定时器、计数器的计量寄存器,其地址为CCH、CDH,将TL2与TH2组合即可进行16位的定时/计数。

    PSW
    PSW为CPU的程序状态字寄存器,其地址为D0H,其内容如下:
    7 6 5 4 3 2 1 0
    PSW CY AC F0 RS1 RS0 OV P
    PSW.7:本位为进位位(CY),加减法时产生进位或错位,将自行设定为1,否则为0。
    PSW.6:本位为辅助进位位(AC),进行加减法运算产生进位或错位,将自行设定为1,否则为0。
    PSW.5:本位为用户标志位,用户自行设定。
    PSW.4与PSW.3:这两个位为寄存器组选择位(RS1、RS0),其功能如下表所示。
    RS1 RS0 寄存器组
    0 0 RB0
    0 1 RB1
    1 0 RB2
    1 1 RB3
    PSW.2:本位为溢出标志位(OV),运行时,若发生溢出,为1,否则为0。
    PSW.1:本位为保留位,没有提供服务。
    PSW.0:本位位奇偶位(P),8051采用偶同位,若ACC中奇数个1,则为1,偶数个1,则为0。

    ACC
    ACC累加器又称为A寄存器,其地址为E0H。
    B
    B寄存器的地址为F0H,主要功能是配合A寄存器进行乘法或除法运算。进行乘法运算时,乘数放在B寄存器,而运算结果,高8位放在B寄存器;进行除法运算时,除数放在B寄存器,而运算的结果,余数放在B寄存器。若不进行乘/除法运算,B寄存器也可当成一般寄存器使用。

    门电路

    • 与门
    • 或门
    • 非门
    • 同或门
    • 异或门
    • 门间的组合电路

    在这里插入图片描述

    门电路的实现TTL和MOS集成门电路

    寄存器和锁存器

    • 触发器分类:
      1、基本R-S触发器
      2、同步RS触发器、同步D触发器
      3、主从R-S触发器、主从JK触发器
      4、边沿触发器:
      上升沿触发器(D触发器、JK触发器)
      下降沿触发器(D触发器、JK触发器)

    • 触发器逻辑功能表示方法:
      特性表、卡洛图、特性方程、状态图、时序图

    • 各种触发器介绍
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    展开全文
  • 51单片机外围模块——A/D模数转换

    千次阅读 2019-02-11 21:41:39
    一、A/D转换器的主要技术指标 1、分辨率 ADC的分辨率是指使输出数字量变化一个相邻数码所需输入模拟电压的变化量。常用二进制的位数表示。例如12位ADC的分辨率就是12位,或者说分辨率为满刻度的1/(2^12)。...

    一、A/D转换器的主要技术指标

    1、分辨率
    ADC的分辨率是指使输出数字量变化一个相邻数码所需输入模拟电压的变化量。常用二进制的位数表示。例如12位ADC的分辨率就是12位,或者说分辨率为满刻度的1/(2^12)。
    一个10V满刻度的12位ADC能分辨输入电压变化最小值是10V×1/(2^12 )=2.4mV。

    2、量化误差
    ADC把模拟量变为数字量,用数字量近似表示模拟量,这个过程称为量化。量化误差是ADC的有限位数对模拟量进行量化而引起的误差。实际上,要准确表示模拟量,ADC的位数需很大甚至无穷大。一个分辨率有限的ADC的阶梯状转换特性曲线与具有无限分辨率的ADC转换特性曲线(直线)之间的最大偏差即是量化误差。 

    3、偏移误差
    偏移误差是指输入信号为零时,输出信号不为零的值,所以有时又称为零值误差。假定ADC没有非线性误差,则其转换特性曲线各阶梯中点的连线必定是直线,这条直线与横轴相交点所对应的输入电压值就是偏移误差。

    4、满刻度误差
    满刻度误差又称为增益误差。ADC的满刻度误差是指满刻度输出数码所对应的实际输入电压与理想输入电压之差。

    5、线性度
    线性度有时又称为非线性度,它是指转换器实际的转换特性与理想直线的最大偏差。

    6、绝对精度
    在一个转换器中,任何数码所对应的实际模拟量输入与理论模拟输入之差的最大值,称为绝对精度。对于ADC而言,可以在每一个阶梯的水平中点进行测量,它包括了所有的误差。

    7、转换速率
    ADC的转换速率是能够重复进行数据转换的速度,即每秒转换的次数。而完成一次A/D转换所需的时间(包括稳定时间),则是转换速率的倒数。

    逐次逼近式ADC的转换原理

    逐次逼近式AD转换器与计数式A/D转换类似,只是数字量由“逐次逼近寄存器SAR”产生。SAR使用“对分搜索法”产生数字量,以8位数字量为例,SAR首先产生8位数字量的一半,即10000000B,试探模拟量Vi的大小,若Vn>Vi,清除最高位,若Vn<Vi,保留最高位。在最高位确定后,SAR又以对分搜索法确定次高位,即以低7位的一半y1000000B(y为已确定位) 试探模拟量Vi的大小。在bit6确定后,SAR以对分搜索法确定bit5位,即以低6位的一半yy100000B(y为已确定位) 试探模拟量的大小。重复这一过程,直到最低位bit0被确定,转换结束

    双积分式ADC的转换原理

    ——————————————————————————重点来啦!—————————————————————————————————————————————————————————————————————————————————

    单片机采用的A/D芯片为XPT2046,引脚图如下:

    AIN0为电位器、AIN1为热敏电阻、AIN2为光敏电阻、AIN3为外部通道(可外接其他传感器)

    XPT2046引脚图如下:

    两种输入模式配置图如下:

    控制寄存器说明:

    如果要检测转换电位器模拟信号,控制字命令寄存器值为0X94或者0XB4.
    如果要检测转换热敏电阻模拟信号,控制字命令寄存器值为0XD4.
    如果要检测转换光敏电阻模拟信号,控制字命令寄存器值为0XA4.
    如果要检测转换AIN3通道上模拟信号,控制字命令寄存器值为0XE4.

    XPT2046读写时序图如下:

     

     

    展开全文
  • 单片机笔记(1)

    2020-04-14 12:37:30
    第2章 89C51单片机的结构与原理 2.1 89C51单片机的主要特性 89C51具有如下特性: (1)面向控制的8位CPU; (2)一个片内振荡器和时钟产生的电路; (3)片内4 KB Flash ROM 程序存储器; (4)128B的片内数据存储器...

    第2章 89C51单片机的结构与原理

    2.1 89C51单片机的主要特性

    89C51具有如下特性:
    (1)面向控制的8位CPU;
    (2)一个片内振荡器和时钟产生的电路;
    (3)片内4 KB Flash ROM 程序存储器;
    (4)128B的片内数据存储器;
    (5)可寻址64 KB的片外程序存储器和片外数据存储器控制电路;
    (6)2个16位定时/计数器;
    (7)4个并行I/O口,共32条可单独编程的的I/O线;
    (8)5个中断源,2个中断优先级;
    (9)一个全双工的异步串行口;
    (10)21个特殊功能寄存器(SFR);
    (11)具有节点工作方式

    2.2 89C51单片机的内部总体结构

           有8个部件组成,CPU、片内数据存储器、片内程序存储器、输入/输出接口、可编程串行口、定时/计数器、中断系统和特殊功能寄存器。见书P8 图2-1。 在这里插入图片描述

           CPU:单片机的最核心部分,它是整个单片机的控制和指挥中心,完成所有的计算和控制任务。
           程序存储器:用于存放单片机的程序。
           数据存储器:用于存放内部待处理的数据和处理后的结果。
           并口和串口:数据传输通道,方便CPU从芯片外部取得待处理的对象及将处理结果送到芯片外部。
           中断控制逻辑:处理临时到达的突发事件。
           定时器/计数器:完成对外部输入脉冲的计数或者根据内部的时钟及定时设置,周期性的产生定时信号。
           内部总线:内部CPU与程序存储器、数据存储器、并行I/O接口、串行I/O接口和定时器/计数器之间都是通过内部总线联系在一起。

    2.3 89C51单片机的引脚功能

    2.3.1 89C51单片机引脚功能

           本书讨论的是40脚双列直插封装。

           如图是89C51单片机的引脚图(导出自Proteus,DIP40) 。

    在这里插入图片描述

    1. 电源引脚 VSS 和 VCC
      VSS(20脚):接地端;
      VCC(40脚):电源端;

    2. 时钟振荡电路引脚
      XTAL1(19脚)和XTAL2(18脚)的内部是一个振荡电路。
      当使用内部振荡电路时在这两个管脚上外接石英晶体和微调电容;
      当使用外部时钟时,用于接外部时钟脉冲信号,此时XTAL1接外部时钟脉冲,XTAL2悬空。

    3. 输入/输出引脚
      P0,P1,P2,P3共四个8位并行I/O口。

      口 线 第二功能 名称
      P3.0 RXD 串行数据接收端
      P3.1 TXD 串行数据发送端
      P3.2 INT0\rm \overline {INT0} 外部中断 0 申请输入端
      P3.3 INT1\rm \overline {INT1} 外部中断 1 申请输入端
      P3.4 T0 定时器 0 计数输入端
      P3.5 T1 定时器 1 计数输入端
      P3.6 WR\rm \overline {WR} 外部 RAM 写选通
      P3.7 RD\rm \overline {RD} 外部 RAM 读选通
    4. 控制信号引脚 RESET、ALE/PROG\rm {ALE/}\overline {PROG}​PSEN\rm \overline{PSEN}​EA/VPP\rm \overline{EA}/VPP​

      ALE\rm ALE​ :地址锁存允许信号输出端;
      PSEN\rm \overline{PSEN}​:外部程序存储器读选通信号输出端,低电平有效;
      EA\rm \overline{EA}​:访问内部/外部程序存储器选择控制信号;
      RESET\rm RESET​:复位信号输入端。

    2.3.2 三总线结构

           单片机的引脚除了电源、复位、时钟接入和用户I/O外,扩展出的其他引脚构成了三总线,如下图。

    在这里插入图片描述

           地址总线:16位,可寻址64K,由P0口(A0~A7), P2口(A8~A15)组成;
           数据总线:8位,由P0口提供;
           控制总线:由P3口的部分引脚实现(RD,WR\rm \overline{RD},\overline{WR})及RESET\rm RESETEA,PSEN\rm \overline{EA},\overline{PSEN}, ALE\rm ALE 4根独立控制线。

    2.3.3 单片机工作原理

           单片机在电路连接无误后,将程序下载到单片机的程序存储器中,单片机系统就可以上电工作了。
           上电复位后,从存储器的0000H单元开始取指令,并执行指令。

    2.3.4 点亮最小单片机系统

           按图连线,上电工作后,点亮一个发光二极管。
           由仿真结果可见,当P2.0引脚输出低电平时,PN结导通,发光二极管LED-GREEN上有电流流过,发光二极管发光。

    在这里插入图片描述

           代码部分如下

    		ORG  0000H
    		MOV  P2,#11111110H  ;P2.0引脚输出低电平
    		END
    

    2.4 89C51单片机的主要组成部分

           89C51单片机的主要组成:CPU、存储器和I/O接口。

    2.4.1 CPU

           CPU是单片机的核心部分,89C51单片机内部有一个8位的CPU,由运算器和控制器组成。
            运算器:主要用来实现数据的传送,数据的 算术和逻辑运算,位变量处理等。
            存储器:统一指挥和控制计算机工作的部件。

    2.4.2 存储器

           89C51可寻址范围64KB(16位地址线);

           89C51单片机在物理上有4个独立的存储空间
                   64K字节程序存储器空间;
                   128字节内部RAM;
                   128字节内部特殊功能寄存器空间;
                   64K外部数据存储器空间

           64KB的程序存储器中,有4KB的地址对片内ROM(程序存储器)和片外ROM是公共的,地址为0000H~0FFFH, 从1000H~FFFFH为外部ROM的地址, 即内部ROM地址为0000H~0FFFH, 外部ROM地址为0000H~FFFFH;

           128B的内部RAM(数据存储器)地址从00H~7FH(8位地址); 64KB外部RAM地址从0000H~FFFFH.
    在这里插入图片描述

    1. 程序存储器

           89C51内部有 4KB Flash ROM,片外最多可扩展 64 KB ROM,两者统一编址,CPU的控制器专门提供 一个控制信号EA\rm \overline{EA} 来区分内部ROM和外部ROM的公共地址区0000H~0FFFH;当EA\rm \overline{EA}接高电平,单片机从片内4KB的ROM取指令,指令地址超过0FFFH后,自动转向片外ROM。当EA\rm \overline{EA}接低电平时,CPU只从片外ROM取指令。

           89C51复位后,CPU总是从0000H开始执行程序。

    2. 数据存储器

           RAM分为内外两部分,89C51内部有128B RAM,地址为00H~7FH;片外最多可扩展64KB RAM,地址为0000H~FFFFH。

           内部128B RAM 从功能和用途可以划分为三个区域:

           工作寄存器区:00H~1FH, 4组工作寄存器,由PSW中的RS0和RS1选择。每组有R0~R7共8个工作寄存器;

           位寻址区:20H~2FH,不仅可以字节寻址,8个字节的每一位都可以位寻址 ;
                   位地址范围 00H~7FH, 地址范围 20H~2FH
                   位地址表示方法:位地址,字节地址.位
                   位地址与字节地址的转换关系 : 位地址=(字节地址-20H)*8+Di的 i 值

           用户RAM区:30H~7FH,可用作堆栈或数据缓冲器。
                   若用作堆栈,后进先出。可用于保护现场和断点地址。
                   堆栈指针sp,指示栈顶的位置。
                   堆栈操作指令:

              %进栈指令%
    			PUSH ; (sp)+1→sp,数据进栈
              %出栈指令%
    			POP  ; (sp)-1→sp,数据出栈
    

    3. 特殊功能寄存器(SFR)

           离散地分布在80H~FFH中,共21个 :

    ​        (1)是MCS-51单片机中各个功能部件所对应的寄存器
    ​         (2)用以存放相应功能部件的控制命令、状态或数据的区域。

           与片内RAM统一编址(未占用的地址单元无定义)。
            (1)部分可以位寻址,也可以字节寻址。其中带*号的(能被8整除)寄存器即可字节寻址又可位寻址。
           (2)编程中,可使用符号,也可使用地址。
            (3)可位寻址的可用位符号,可用位地址,也可用“字节 地址.位”,还可用“寄存器名.位”

    寄存器符号 地 址 寄存器名称
    * ACC E0H 累加器
    * B F0H 乘法寄存器
    * PSW D0H 程序状态字
    SP 81H 堆栈指针
    DPL 82H 数据存储器指针(低8位)
    DPH 83H 数据存储器指针(高8位)
    * IE A8H 中断允许控制器
    * IP D8H 中断优先级控制器
    * P0 80H 通道0
    * P1 90H 通道1
    * P2 A0H 通道2
    * P3 B0H 通道3
    PCON 87H 电源控制和波特率选择
    * SCON 98H 串行口控制器
    SBUF 99H 串行数据缓冲器
    * TCON 88H 定时控制器
    TMOD 89H 定时方式选择
    TL0 8AH 定时器0 低8位
    TL1 8BH 定时器1 低8位
    TH0 8CH 定时器0 高8位
    TH1 8DH 定时器1高8位

           CPU中使用的特殊功能寄存器:

    (1)程序计数器 PC (不属于SFR)

           16位,存放下一条将要从程序存储器中 取出的指令的地址。 用户无法对其进行读写,只能通过转移、调用和返回等指令来改变其内容。
    基本工作方式:每取出1字节机器码后,自动加1 ;
    执行转移指令时,被置入新的数值。

    (2)累加器A

           最常用的8位特殊功能寄存器,它既可用于存放操作数,也可用来存放中间结果。

    (3)寄存器B

           一个8位寄存器,主要用于乘除法运算。也可作一般寄存器使用。

    (4)状态字寄存器 PSW

    8位,用于存放程序运行的状态信息。

    D7 D6 D5 D4 D3 D2 D1 D0
    CY AC FO RS1 RS0 OV P

           CY(PSW.7):进位标志,是累加器 A的溢出位,如果操作结果在最高位有进位或借位时,置1;
            AC(PSW.6):辅助进位标志,低半字节进位位,加减法运算中低4位向高4位有进位或借位时,置1;
            FO(PSW.5):用户标志位;
            RS1(PSW.4)、RS0(PSW.3):工作寄存器组选择位;

    RS1 RS0 当前寄存器组 对应的RAM地址
    0 0 第0组 00H~07H
    0 1 第1组 08H~0FH
    1 0 第2组 10H~17H
    1 1 第3组 18H~1FH

           OV(PSW.2):溢出标志位;
            P(PSW.0):奇偶标志位,跟踪累加器A内容的奇偶性。如果有奇数个“1”,则P置1,反之为0.

    (5)堆栈指针SP

           堆栈式在内存中专门开辟出来按照 “先进后出、后进先出” 的原则进行存取的RAM区域。

           堆栈可设置在内部 RAM 的任意区,堆栈共有两种操作:进栈和出栈,都是对栈顶单元进行的。

    在这里插入图片描述

           89C51单片机复位后,堆栈指针SP总是初始化到内部 RAM 地址07H。

    (6)数据指针DPTR

           DPTR是要给16位寄存器,用来存放16位的存储器地址,以实现对外部RAM的访问。可以分为两个8位寄存器:DPH、DPL。

    *关于DPTR与PC的比较

           相同点:都是与地址有关的16位寄存器。
                          作为地址寄存器时,PC与DPTR都通过P0,P2口(作为16为地址总线)输出。

           不同点:PC与程序存储器有关,DPTR与数据存储器有关;
                          PC的输出与ALE及/PSEN引脚有关,DPTR与ALE\rm ALERD\rm \overline{RD}WR\rm \overline{WR}引脚有关。
                          PC只能作为16位寄存器;
                          PC不可访问,其内容变化与程序流程有关。

    2.4.3 并行I/O口

           基本功能:
    P0:I/O口(系统扩展时作为地址/数据总线口,分时复用)。
    P1: I/O口
    P2: I/O口(系统扩展时作为高8位地址总线口)
    P3: I/O口(特殊输入/输出线)

    1. P0口的结构

           P0口字节地址为80H,位地址为80H~87H
    在这里插入图片描述
           如图,当控制线C=0时,MUX开关向下,P0口作为普通 I/O口使用;当C=1时,MUX开关向上,P0口作为地址/数据总线使用。由于P0内部没有上拉电阻,每根口线必须 外接上拉电阻。P1~P3口内部有上拉电阻,不用外接。

    2. P1口的结构

           P1口的字节地址为90H,位地址为90H~97H,只能作为普通I/O口使用,没有转换开关MUX。

    在这里插入图片描述

           当P1口输出高电平时,可以向外提供拉电流负载,所以不必再接上拉电阻;

           当输入时,与P0口一样,必须先向锁存器写 “1” ,使场效应管截止

           通过一条指令将数据写入P1的数据锁存器,然后通过输出驱动器送到端口引脚。

           MOV P1, A      ;累加器A中内容送P1口 
    

           读端口,为适应对口进行“读-修改-写”类指令的需要。

    	   ANL P1,#0FH    ;读P1锁存器中数据,与立 即数 0FH进行逻辑与操作后,将结果写回P1口。
    

    3. P2口的结构

           P2口的字节地址为0A0H,位地址为0A0H~0A7H, 可以作为普通I/O口或高8位地址线。

    在这里插入图片描述

           P2口作第二功能时:作为系统扩展的地址总线口,输出高8位地址A8~A15。

           P2口高8位地址来源:CPU访问外部程序存贮器时,来源于PC 的高8位。 CPU访问外部数据存贮器时,来源于DPH。

    3. P3口的结构

           P3口的字节地址为0B0H,位地址为0B0H~0B7H, 可以作为普通I/O口或特殊输入/输出线。

    在这里插入图片描述

    展开全文
  • 电子设计从这开始——51单片机25个小作品

    万次阅读 多人点赞 2016-09-23 13:09:09
    这是大二我做某实验室管理员,为了方便自己管理整理,都是一些51单片机的小作品,适合给刚学完51单片机的新手练手 一目录 1基于51单片机的火灾温度烟雾报警器 2基于51单片机的声光电子琴 3基于51单片机的音乐喷泉 4...
  • 51单片机通过WIFI模块ESP8266控制LED灯

    万次阅读 多人点赞 2018-06-16 18:47:40
    手机APP通过ESP8266 WIFI模块与51单片机通信控制LED灯的开关。下位机由单片机、ESP8266模块和LED灯组成,上位机由Android手机APP承担。我们在APP上发送LED灯的开关控制指令,ESP8266将收到的数据发送给单片机,从而...
  • 51单片机通过ESP8266模块与手机进行通讯(单片机

    万次阅读 多人点赞 2018-02-08 18:29:43
    Step1:配置ESP8266 通过USB转TTL模块把ESP8266模块和电脑连接起来,如图 把ESP8266模块的VCC,GND,CH_PD,UTXD,URXD口分别接USB转TTL模块的3.3v,地,3.3v,RXD,TXD 连接好后,就准备用电脑用串口调试助手向ESP8266...
  • 基于51单片机的交通灯控制系统设计

    万次阅读 多人点赞 2018-11-24 13:38:11
    本设计为基于51单片机交通灯系统的设计,采用模块化、层次化设计。运用单片机AT89C51进行数据的分析和处理,为显示提供信号,显示部分采用8位数码管显示倒计时值。系统电路简单、集成度高、工作稳定、调试方便、检测...
  • 单片机

    千次阅读 2012-06-18 15:42:10
    单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟...
  • 基于51单片机电子时钟

    万次阅读 多人点赞 2019-01-05 21:39:20
    1 基于51单片机用LCD1602实现时-分的显示 2. 按键控制时-分的调整 3. 能实现整时报时的功能(蜂鸣器响) 4. 闹钟模式 5.按键切换模式(模式一:时-分显示,模式二:60秒倒计时) 一、设计思路: 主体: 通过外部中断...
  • 51单片机DHT11温湿度检测手机蓝牙APP显示设计

    万次阅读 多人点赞 2018-08-18 21:50:42
    今天给大家介绍的是一个温湿度检测设计,基于51单片机、蓝牙模块、温湿度传感器、Android APP完成。首先先展示一下设计好的实物,接下来将从系统方案、硬件设计、软件设计这三个方面来阐述。 1.系统方案 先...
  • 快速入门51单片机

    千次阅读 多人点赞 2018-05-09 09:08:55
    有些学生觉得单片机很难学其实掌握入门方法也不难 开发环境搭建,不用多说,看网上教程 拿到51单片机该如何做? 首先打开看51单片机的管脚分布,51单片机是8个引脚一组,为什么是8个一组呢? 因为它是8位...
  • 单片机串口通讯RXD与TXD如何对接详解(独家!)

    万次阅读 多人点赞 2011-07-25 16:39:06
    相信很多人都对单片机与计算机或者芯片通信时,RXD与TXD如何连接比较困惑。因为在一些电路图中,有的是直连接法,有的是交叉接法,让人有点摸不着头脑。 首先需要明白两个概念,就是DTE和DCE。DTE是指数据终端设备,...
  • 51单片机DHT11温湿度ESP8266WiFi手机APP显示设计

    万次阅读 多人点赞 2019-03-17 12:30:53
    基于51单片机、ESP8266WiFi模块、温湿度DHT11传感器、Android APP完成。首先先展示一下设计好的实物,接下来将从系统方案、硬件设计、软件设计这三个方面来阐述。 1、系统方案 DHT11温湿度传感器采集数据传送...
  • 51单片机入门教程(2)——实现流水灯

    万次阅读 多人点赞 2018-11-03 13:06:52
    51单片机入门教程(2)——实现流水灯一、搭建流水灯电路二、流水灯程序2.1 延时程序2.2 延时函数2.3 按字节寻址2.4 逻辑移位2.5 条件判断 一、搭建流水灯电路 在Proteus中搭建流水灯电路如图 二、流水灯程序 我们...
  • 51单片机按键控制步进电机加减速及正反转

    万次阅读 多人点赞 2018-11-02 11:33:59
    之前尝试用单片机控制42步进电机正反转,电机连接导轨实现滑台前进后退,在这里分享一下测试程序及接线图,程序部分参考网上找到的,已经实际测试过,可以实现控制功能。 所用硬件:步进电机及驱动器、STC89C52...
  • 51单片机连接ESP8266串口WiFi模块

    万次阅读 多人点赞 2017-01-18 15:53:57
    51单片机 VCC 3.3V (5V连接时间过长可能会烧坏WiFi模块) GND GND CH_PD 3.3V GPIO0 GND UTXD TXD URXD RXD 烧录固件 打开烧录软件,选择配置选项卡,点击第二栏的小齿轮图标 - 加载固件...
  • 单片机控制步进电机

    万次阅读 多人点赞 2019-06-06 18:05:40
    单片机控制步进电机正转 反转 加速 减速;由LCD1602实时显示步进电机的状态;F-正转,B-反转;数字越大,转速越大; 仿真原理图如下: MCU和LCD1602显示模块: ULN2803驱动和步进电机模块: C语言代码如下...
  • 基于51单片机的交通灯控制设计

    万次阅读 多人点赞 2019-07-12 21:29:19
    课程名称 单片机课程设计 题目 交通灯控制设计 课程设计目标与任务、计划与进度安排: 实践教学要求与任务: 1、了解交通灯的基本工作原理; 2、用Proteus模拟实现交通灯控制; 3、用Keil C51编程实现上述功能; 4、用...
  • 单片机20个实例超详细图文教程

    千次下载 热门讨论 2011-11-09 12:53:48
    非常有用,值得收藏 单片机20个实例超详细图文教程
  • 基于51单片机的火灾报警器

    万次阅读 多人点赞 2019-01-21 20:43:46
    火灾报警器,主要检测温度和烟雾,再通过单片机控制相应的报警和驱动负载。通过液晶显示当前的烟雾值和温度值,通过按键设定相应的阀值。 主要包括以下几项功能: (1)火情探测功能:为了提高火灾报警的准确性和及时...
  • 51单片机学习历程(二)快速入门51单片机

    千次阅读 多人点赞 2018-07-19 11:43:59
    有些学生觉得单片机很难学其实掌握入门方法也不难 开发环境搭建,不用多说,看网上教程 拿到51单片机该如何做? 首先打开看51单片机的管脚分布,51单片机是8个引脚一组,为什么是8个一组呢?  因为它是8位...
  • 基于STC89C51单片机的温湿度检测系统

    万次阅读 多人点赞 2019-02-21 21:04:30
    基于STC89C51单片机的温湿度检测系统 摘 要:设计一种计算机教室温度、湿度检测系统,用于控制机房的温、湿度。整个系统采用STC89C51微处理器作为主控系统,硬件电路主要包括51单片机、DHT11温湿度传感器、显示器...
  • 51单片机学习历程(一)单片机入门

    万次阅读 多人点赞 2018-07-19 11:42:24
    单片机入门 什么是单片机 单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器...
  • 基于51单片机的RFID智能门禁系统

    万次阅读 多人点赞 2019-04-20 22:47:57
    1.概述 (1)本设计采用STC89C52作为主控芯片,专用读卡器模块用来读射频卡的信息,当有卡进入到读卡器读卡的范围内时就会读取到相应的卡序列号,并根据得到的卡序列号做出相应的操作。若正确则开门,若不正确则报警...
  • 单片机入门

    万次阅读 多人点赞 2017-12-24 21:50:19
    单片机入门
  • 51单片机最小系统原理图、PCB及组成原理详解

    万次阅读 多人点赞 2018-04-07 09:40:54
    单片机:单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示...
  • 51单片机——51单片机入门基础知识

    万次阅读 多人点赞 2018-07-20 19:38:07
    MSC-51单片机指以8051为核心的单片机,由美国的Intel公司在1980年推出,80C51是MCS-51系列中的一个典型品种;其它厂商以8051为基核开发出的CMOS工艺单片机产品统称为80C51系列。 单片机:在一片集成电路芯片上集成...
  • 51单片机与蓝牙模块连接

    万次阅读 多人点赞 2018-02-22 12:17:38
    不久前开始学习使用蓝牙模块,在模块与51单片机连接的过程中出现了非常多的问题,我想应该也是很多新手和我一样会遇到这样的问题,因此特地写这篇文章,想分享下在学习过程中遇到的问题以及解决方法。此次学习用到...
  • 在学习单片机时,还应注意区别通用单片机和专用单片机单片机单片机系统、单片机应用系统和单片机开发系统、单片机的程序设计语言和软件。 二.单片机单片机系统: 单片机只是一个芯片,而单片机系统则是在...

空空如也

1 2 3 4 5 ... 20
收藏数 183,294
精华内容 73,317
关键字:

d单片机