单片机原理及应用——持续更新

奋斗吧
奋斗吧
擅长邻域:未填写

标签: 单片机原理及应用——持续更新

2023-06-03 18:23:24 300浏览

单片机原理及应用

目录

一、单片机概述

1、单片机简介

2、单片机的特点

3、MSC-51系列与AT89S5x系列单片机

(1)MSC-51系列单片机

(2)AT89S5x系列单片机

二、AT89S52单片机的片内硬件结构

1、AT89S52单片机的硬件组成

2、AT89S52单片机的引脚功能

(一)电源及时钟引脚

(二)控制引脚

(三)并行I/O口引脚

3、AT89S52单片机的CPU

(一)运算器

(二)控制器

4、AT89S52单片机的存储器结构

存储空间分类:


一、单片机概述

1、单片机简介

        单片机就是在一片半导体硅片上,集成了中央处理单元(CPU)、存储器(RAM(随机)和ROM(只读))、中断系统、定时器/计数器、并行I/O口、时钟电路及系统总线,用于测控领域的单片微型计算机,简称单片机。

        单片机又称为嵌入式微控制器或者微控制器。

        单片机按照其用途可分为两大类:通用型单片机和专用型单片机。

2、单片机的特点

(1)简单方便,易于掌握和普及。

(2)功能齐全,应用可靠,抗干扰能力强。

(3)发展迅速,背景广阔。

(4)嵌入容易,用途广泛。

(5)体积小,性价比高,灵活性强。

3、MSC-51系列与AT89S5x系列单片机

(1)MSC-51系列单片机

        ①基本型

        典型产品有8031、8051、8751。

        8031内部包括1个8位CPU、128BRAM,21个特殊功能寄存器(SFR)、4个8位并行I/O口、1个全双工串行口,2个16位定时器/计数器、5个中断源,但片内无程序存储器,需外部扩展程序存储芯片。

        8051是在8031的基础上,片内又集成有4KB ROM作为程序存储器。

        8751与8051相比,片内4KB的EPROM取代了8051的4KB ROM。

        ②增强型

        典型产品有8032、8052、8752。

        它们的内部RAM由128B增至256B,8052/8752的片内程序存储器由4KB增至8KB,16位定时器/计数器由2个增至3个。

(2)AT89S5x系列单片机

        AT89S5x的“S”档系列是ATMEL公司继AT89C5x系列之后推出的新机型,“S”表示含有串行下载的Flash存储器。

        AT89C51工作频率的上限为24MHz,而AT89S51为33MHz。

        AT89S51与AT89S52单片机的差别在于AT89S51片内有4KB Flash存储器、128B RAM、5个中断源以及2个定时器/计数器;而AT89S52片内有6KB Flash程序存储器、256B RAM、6个中断源、3个定时器(比AT89S51多出1个定时器,且具有捕捉功能)。AT89S52在片内硬件资源方面对AT89S51做了“增强”。

二、AT89S52单片机的片内硬件结构

1、AT89S52单片机的硬件组成

AT89S52单片机片内硬件结构如下图所示

(1)CPU(微处理器):8位的CPU,包括了运算器和控制器两大部分。还有面向控制的位处理和位控功能。

(2)数据存储器(RAM):片内为256B,片外最多还可外扩64KB的数据存储器。

(3)程序存储器(8KB Flash ROM):用来存储程序。AT89S52片内有8KB的Flash存储器;AT89S53/AT89S54/AT89S55片内分别集成了12KB/16KB/20KB的Flash存储器,如果片内程序存储器容量不够,片外最多可外扩至64KB程序存储器,即“片内+片外”的程序存储器总容量不超过64KB。

(4)定时器/计数器:片内有3个16位的定时器/计数器,有4种工作方式。

(5)终端系统:具有6个中断源,2级中断优先权。

(6)串行口:1个全双工的通用的异步收发串行口(UART),有4种工作方式。

(7)4个8位的并行口:P0口、P1口、P2口和P3口。

(8)特殊功能寄存器(SFR):共有32个特殊功能寄存器,用于CPU对片内各外设部件进行管理、控制和监视。这些特殊功能寄存器映射在片内RAM区的80H~FFH的地址区间内。

(9)1个看门狗定时器(WDT):当单片机由于干扰而使程序陷入死循环或跑飞状态时,可引起单片机复位,使程序恢复正常运行。

        AT89S52单片机完全兼容AT89C51/AT89S51单片机,使用AT89C51/AT89S51单片机的系统,在保留原来软硬件的基础上,可用AT89S52直接替换。

2、AT89S52单片机的引脚功能

        AT89S52单片机与各种8051单片机的引脚都是兼容的。目前,AT89S52单片机多采用40引脚的DIP封装(双列直插),以及44引脚的PLCC(向内折叠)和TQFP(向外折叠)封装方式。外形图如下图所示

44引脚的PLCC和TQFP封装方式的芯片,有4只引脚是无用的,标记为“NC”。

40只引脚按功能可分为以下3类:

        ①电源及时钟引脚:Vcc、Vss,XTAL1、XTAL2。

        ②控制引脚:\overline{PSEN}、ALE/\overline{PROG}\overline{EA}/Vpp、RST(即RESET)。

        ③I/O口引脚:P0、P1、P2与P3,为4个8位并行I/O口的外部引脚。

(一)电源及时钟引脚

(1)电源引脚

        ①Vcc(40脚):接+5V电源

        ②Vss(20脚):接数字地

(2)时钟引脚

        ①XTAL(19脚):片内时钟振荡器反向放大器的输入端。当使用外部独立时钟振荡器时,该引脚接独立时钟振荡器的输出信号。

        ②XTAL2(18脚):片内时钟振荡器反向放大器的输出端。当使用片外的独立时钟振荡器时,XTAL2引脚应悬空。

 

(二)控制引脚

(1)RST(RESET,9脚)

        复位信号输入端,高电平有效。在此引脚加上持续时间大于2个机器周期的高电平,就可以使单片机复位。

(2)\overline{EA}/Vpp(31脚)

        \overline{EA}为该引脚的第一功能:外部程序存储器访问控制端。

        Vpp为该引脚的第二功能:在对片内Flash进行编程时,该引脚接入编程电压。

(3)ALE/\overline{PROG}(30引脚)

        ALE为地址锁存控制信号端,为引脚的第一功能。

        P0口是作为低8位地址总线与8位数据总线分时复用的。

ALE引脚输出地址锁存控制信号如下图所示

         单片机在正常运行时,ALE端一直有正脉冲信号输出,此频率为时钟振荡器频率f_{osc}的1/6。

        \overline{PROG}为该引脚的第二功能,在对片Flash程序存储器编程时,此引脚作为变成脉冲输入端。

(4)\overline{PSEN}(29脚)

        访问片外程序存储器的读选通信号,低电平有效。当访问片外程序存储器读取指令码时,每个机器周期引脚产生两次有效信号,即输出两个\overline{PSEN}有效脉冲。在执行读取片内程序存储器指令码时,该引脚不再产生此脉冲。

(三)并行I/O口引脚

(1)P0口:P0.7~P0.0引脚

        为漏极开路的8位并行双向I/O口。作为输出口时,每个引脚可驱动8个LS型TTL负载。当AT89S52扩展外部程序存储器以及I/O接口芯片时,P0口为分时复用的低8位地址/数据总线。在向P0口写入1后就成为高阻态的输入口。

        当P0口作为通用I/O口使用时,需外加上拉电阻,这时为准双向口。

(2)P1口:P1.7~P1.0引脚

        准双向I/O口,具有内部上拉电阻,可驱动4个LS型TTL负载。

        在对片内Flash编程和校验时定义为低8位地址线。P1口某些引脚的第二功能如下:

                P1.0/T2:T2引脚为定时器/计数器T2的外部计数信号输入端。

                P1.1/T2EX:T2EX为定时器/计数器T2的捕捉/重新装载触发及方向控制。

                P1.5/MOSI:MOSI用于对片内Flash存储器的串行编程和校验。

                P1.6/MISO:MISO用于对片内Flash存储器的串行编程和校验。

                P1.7/SCK:SCK用于对片内Flash存储器的串行编程和校验的移位脉冲输入引脚。

(3)P2口:P2.7~P2.0引脚

        准双向I/O口,引脚内部接有上拉电阻,可驱动4个LS型TTL负载。

        当AT89S52单片机访问外部存储器及I/O口时,P2口作为高8位地址总线使用,输出高8位地址。

(4)P3口:P3.7~P3.0引脚

        准双向I/O口,引脚内部接有上拉电阻。

        P3口的第一功能是作为通用I/O口使用,可驱动4个LS型TTL负载。

        P3口还具有第二功能,其定义如下表所示

引脚 第二功能 说明
P3.0 RXD 串行数据输入口
P3.1 TXD 串行数据输出口
P3.2 \overline{INT0} 外部中断0输入
P3.3 \overline{INT1} 外部中断1输入
P3.4 T0 定时器0外部计数输入
P3.5 T1 定时器1外部计数输入
P3.6 \overline{WR}

外部数据存储器的写选通控制信号

P3.7 \overline{RD} 外部数据存储器的读选通控制信号

3、AT89S52单片机的CPU

AT89S52单片机的CPU是由运算器和控制器构成的。

(一)运算器

        运算器主要用来对操作数进行算术、逻辑和位操作运算。主要包括算术逻辑运算单元ALU、累加器A、位处理器、程序状态字寄存器PSW和两个暂存器等。

(1)算术逻辑运算单元ALU

        ALU不仅可对8位变量进行逻辑与、或、异或以及循环、求补和清0等操作,还可以进行加、减、乘、除等基本算术运算。ALU还具有位操作功能。可对位变量进行位处理,如置1、清0、求补、测试转移及逻辑与、或等操作。

(2)累加器A

        累加器A是CPU中使用最频繁的1个8位寄存器,是AT89S52单片机的特殊功能寄存器之一,位于片内的特殊功能寄存器区。

        累加器的作用如下:

                ①累加器A是ALU单元的输入数据源之一,同时又是ALU运算结果的存放单元。

                ②CPU中的数据传送大多通过累加器A,故累加器A又相当于数据的中转站。

(3)程序状态字寄存器PSW

        AT89S52单片机的程序状态字寄存器PSW位于片内的特殊功能寄存器区,字节地址为DOH。

        PSW的各个位包含程序运行状态的不同信息,其中4位保存当前指令执行后的状态,以供程序查询和判断。PSW的格式如下表所示

  

         PSW中各个位的功能如下:

                ①Cy(PSW.7)进位标志位       若最高位有进位或借位,则Cy=1;否则,Cy=0。

                ②Ac(PSW.6)辅助进位标志位        当D3位向D4位产生进位或借位时,Ac=1;否则,Ac=0。

                ③F0(PSW.5)用户使用标志位        可用指令来使它置1或清0。

                ④RS1、RS0(PSW.4、PSW.3)4组工作寄存器选择控制位1和位0。RS1、RS0与所选择的4组工作寄存器区的对应关系如下表所示:

RS1 RS0 所选的4组寄存器
0 0 0区(片内RAM地址00H~07H)
0 1 1区(片内RAM地址08H~0FH)
1 0 2区(片内RAM地址10H~17H)
1 1 3区(片内RAM地址18H~1FH)

                ⑤OV(PSW.2)溢出标志位        运算结果如果产生溢出,OV=1;否则,OV=0。

                ⑥PSW.1位        保留位,未用

                ⑦P(PSW.0)奇偶标志位        P=1,表示累加器A中1的个数为奇数;P=0,表示累加器A中1的个数是偶数。

(二)控制器

主要任务:识别指令,再根据其性质对片内部件进行控制。

主要包括:程序计数器、指令寄存器、指令译码器、定时及控制电路等。

主要功能:控制指令的读入、译码和执行。

程序计数器PC:

        控制器中最基本的寄存器,是程序存储器的地址针,也称为程序指针。

        是一个独立的16位计数器。

        用户不能直接使用指令访问。

4、AT89S52单片机的存储器结构

        AT89S52单片机的存储结构为哈佛结构,即片外程序存储空间和数据存储空间是独立的。

存储空间分类:

        (1)程序存储器空间:

                程序存储器是只读存储器(ROM),用来存放程序和表格之类的固定常数。                

                分为片内和片外两部分,片内为8KB的Flash存储器,可使用编程器对其编程,也可在线编程(ISP)。片外最多可扩展至64KB。

        (2)数据存储器空间:

                分为片内和片外两部分。片内有256B的RAM,用来存放可读/写的数据。片外扩展最多64KB的RAM。

                ①堆栈指针SP

                        只能设在片内的RAM区。SP的内容指示出堆栈顶部在片内RAM区中的位置,可指向片内RAM 00H~FFH的任何单元。

                        堆栈主要是为了子程序调用和中断操作而设立的,有两个功能:保护断点和现场保护。

                        堆栈的操作有两种:一种是数据压入(PUSH)堆栈,另一种是数据从堆栈中弹出(POP)。

                ②寄存器B

                        进行乘法和除法的操作。

                        乘法运算时,两个乘数分别放在A、B中,执行指令后,乘积放在BA寄存器对中。B中放乘积的高8位,A中放乘积的低8位。

                        除法运算时,被除数取自A,除数取自B,商存放在A中,余数存放在B中。

                ③AUXR寄存器

                        AUXR是辅助寄存器。

                        DISABLE:ALE的禁止/允许位。

                        DISRTO:禁止/允许看门狗定时器WDT溢出时的复位输出。

                        WDIDLE:WDT在空闲模式下的禁止/允许控制位。

                ④数据指针DPTR0和DPTR1

                        为双数据指针寄存器,是为了便于访问数据存储器而设置的。

                ⑤看门狗定时器WDT

                        WDT包含1个14位计数器和看门狗复位寄存器(WDTRST)。

        (3)特殊功能寄

                片内共有32个特殊功能寄存器,实际上是片内各外设部件的控制寄存器及状态寄存器。

        (4)位地址空间:

                片内共有219个可寻址位,位地址范围为00H~FFH。

持续更新中,点关注,不迷路!!!

好博客就要一起分享哦!分享海报

此处可发布评论

评论(0展开评论

暂无评论,快来写一下吧

展开评论

您可能感兴趣的博客

客服QQ 1913284695