您现在的位置是:首页 >其他 >单片机原理及应用——持续更新网站首页其他
单片机原理及应用——持续更新
目录
一、单片机概述
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。
②控制引脚:、ALE/、/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)/Vpp(31脚)
为该引脚的第一功能:外部程序存储器访问控制端。
Vpp为该引脚的第二功能:在对片内Flash进行编程时,该引脚接入编程电压。
(3)ALE/(30引脚)
ALE为地址锁存控制信号端,为引脚的第一功能。
P0口是作为低8位地址总线与8位数据总线分时复用的。
ALE引脚输出地址锁存控制信号如下图所示
单片机在正常运行时,ALE端一直有正脉冲信号输出,此频率为时钟振荡器频率的1/6。
为该引脚的第二功能,在对片Flash程序存储器编程时,此引脚作为变成脉冲输入端。
(4)(29脚)
访问片外程序存储器的读选通信号,低电平有效。当访问片外程序存储器读取指令码时,每个机器周期引脚产生两次有效信号,即输出两个有效脉冲。在执行读取片内程序存储器指令码时,该引脚不再产生此脉冲。
(三)并行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 | 外部中断0输入 | |
P3.3 | 外部中断1输入 | |
P3.4 | T0 | 定时器0外部计数输入 |
P3.5 | T1 | 定时器1外部计数输入 |
P3.6 | 外部数据存储器的写选通控制信号 | |
P3.7 | 外部数据存储器的读选通控制信号 |
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的个数是偶数。
持续更新中,点关注,不迷路!!!