理论教育 C51单片机结构与原理的认知-实训教程

C51单片机结构与原理的认知-实训教程

时间:2023-11-25 理论教育 版权反馈
【摘要】:◇任务要求◇了解单片机的相关常识,掌握AT89S52单片机的构造与原理。图2-1AT89S52单片机内部结构框图AT89S52 单片机内部包括:一个8位微处理器,是单片机的运算和指挥中心。表2-1AT89S52单片机数据存储器结构工作寄存器区。当单片机复位后,系统默认工作寄存器0组为当前工作寄存器组。

C51单片机结构与原理的认知-实训教程

◇任务要求◇

了解单片机的相关常识,掌握AT89S52单片机的构造与原理。

◇任务准备◇

一、AT89S52单片机的基本组成

单片机,全称单片微型计算机,就是在一块芯片上集成了微处理器(CPU)﹑程序存储器(ROM)﹑数据存储器(RAM)﹑定时/计数器以及多种I/O接口电路的具有一定规模的微型计算机,因最早被应用在工业控制领域,所以又被称为微控制器。

AT89S52 单片机内部结构框图如图2-1所示。

图2-1 AT89S52单片机内部结构框图

AT89S52 单片机内部包括:

(1)一个8位微处理器(CPU),是单片机的运算和指挥中心。

(2)片内8 K字节程序存储器(ROM),用于存放程序﹑原始数据及表格。

(3)片内256字节数据存储器(RAM),用于存放临时数据,如运算的中间结果及欲显示数据。

(4)4组8位并行输入/输出端口(I/O端口)P0~P3,每个端口均有8条I/O线,用于与外部交换信息。

(5)3个16位的定时器/计数器,均可以根据需要设为定时器或计数器使用。

(6)1个 6 向量2级中断结构,6个中断源和2个中断优先级。中断源分别是两个外部中断(INT0和INT1)﹑三个定时中断(定时器0﹑1﹑2)和一个串行口中断。

(7)1个全双工UART(通用异步接收发送器)的串行I/O口。

(8)片内晶振及时钟电路。

二、AT89S52单片机的中央处理器(CPU)

中央处理器(CPU)也称微处理器,是单片机的核心部件,也是单片机的控制和指挥中心。它主要包含运算器和控制器两部分。

1.运算器

运算器可以对数据进行算术运算﹑逻辑运算和位操作运算。运算器包括算术逻辑运算单元ALU﹑累加器A﹑通用寄存器B﹑暂存器﹑程序状态字寄存器PSW等。

(1)算术逻辑运算单元ALU:可进行4位(半字节)﹑8位(全字节)﹑16位(双字节)数据的加﹑减﹑乘﹑除﹑加1﹑减1等算术运算,逻辑与﹑或﹑异或﹑求补等逻辑运算,以及数据的位操作。

(1)累加器A:8位寄存器。通常,存储的一个运算数经暂存器2进入ALU的输入端,与另一个来自暂存器1的运算数进行运算,运算结果又被送回累加器A,即运算前放操作数,运算后放操作结果,是单片机中最忙碌的一个寄存器。

(3)通用寄存器B:8位寄存器。在乘﹑除运算之前存放乘数或除数,运算之后存放乘积的高8位或除法的余数,也可作为一般存储器使用。

(4)程序状态字寄存器PSW:8位标志寄存器。用于存放指令执行后的状态信息,供程序查询和判别使用。

2.控制器

控制器由程序计数器PC﹑指令寄存器IR﹑指令译码器ID﹑振荡器及定时电路等组成。

(1)程序计数器PC:16位寄存器,用于存放将要执行的下一条指令的地址,能自动加1。

(2)振荡器及定时电路:AT89S52单片机片内有振荡电路,只需外接石英晶体和频率微调电容就可产生脉冲信号。CPU在这种基本节拍的控制下发出控制信号,协调各部件的工作。

三、AT89S52单片机的存储器

AT89S52单片机内部的存储器分为两种:程序存储器ROM和数据存储器RAM。

程序存储器ROM用于存放程序﹑原始数据或表格,可在线编写程序,掉电后数据保持不变。

数据存储器RAM用于存放运算的中间结果﹑最终结果或欲显示的数据等,其数据可随时改写,掉电后数据消失。

AT89S52单片机存储器空间配置如图2-2所示。

图2-2 AT89S52单片机存储器空间配置

1.程序存储器

AT89S52单片机片内程序存储器 ROM有8 K字节,其地址为0000H~1FFFH;片外可接扩展程序存储器ROM,最大达64 K字节,地址为0000H~FFFFH,片内外统一编址。CPU访问片内﹑片外程序存储器ROM时用MOVC指令。

当引脚(31脚)接低电平(接地)(等于0)时,AT89S52 单片机片内ROM不起作用,CPU只能从片外ROM(0000~FFFH)中取指令。

当引脚接高电平(等于1)时,AT89S52单片机的程序计数器PC只在0000H~1FFFH内执行片内ROM中的指令。只有当PC的值超过1FFFH后,CPU才自动转到片外ROM相应的地址(2000H~FFFFH)取指令。

系统在程序存储器低端的一些固定存储单元是特定程序的入口地址:

●0000H:单片机上电复位后主程序的入口地址;

●0003H:外部中断0的中断服务程序入口地址;

●000BH:定时器0的中断服务程序入口地址;

●0013H:外部中断1的中断服务程序入口地址;

●001BH:定时器1的中断服务程序入口地址;

●0023H:串行通信的中断服务程序入口地址;

●002BH:定时器2的中断服务程序入口地址。

当单片机上电复位后,程序计数器PC中的内容清零(PC=0000H),所以CPU总是从0000H单元开始执行程序。通常在该单元中存放一条绝对转移指令(如LJMP 0030H),指明用户程序所在的单元地址(0030H),则CPU会跳转到该地址执行主程序。

除0000H单元外,其他的6个特殊单元分别存放着单片机6种中断源的中断服务程序入口地址。编程时,通常在这些单元中存放一条绝对转移指令,而真正的中断服务程序是从转移地址开始存放的。当发生中断时,CPU会根据指令指示的地址在程序存储器相应的区域找到中断服务程序并执行。

2.数据存储器

AT89S52单片机片内数据存储器RAM有256字节,其地址为00H~FFH;片外可接扩展数据存储器RAM,最大达64 K字节,地址为0000H~FFFFH。访问片内RAM时用MOV指令,访问片外RAM时用MOVX指令。

AT89S52单片机数据存储器结构如表2-1所示。

表2-1 AT89S52单片机数据存储器结构

(1)工作寄存器区。

AT89S52单片机在片内RAM中划分出低地址的32个字节单元(00H~1FH)作为工作寄存器区,供用户使用。工作寄存器区分为4个工作寄存器组,每个组有8个寄存器,分别称为R7~R0,占8个字节。

在单片机工作时,只有一组寄存器作为当前工作寄存器组R7~R0使用。当单片机复位后,系统默认工作寄存器0组为当前工作寄存器组。

(2)位寻址区。

在工作寄存器区后的20H~2FH共16个字节为位寻址区,共有128位(8×16=128),每一位都有相应的位地址(00H~7FH)。利用位寻址可以对某一位进行单独操作,而无须将一个字节的8位全部重新操作一遍。

AT89S52单片机数据存储器位寻址区结构如表2-2所示。

表2-2 AT89S52单片机数据存储器位寻址区结构

(3)通用RAM区。(www.daowen.com)

AT98S52单片机片内通用RAM区地址为30H~FFH,这里通常设为堆栈区,栈顶的位置由堆栈寄存器SP指定。系统复位时,SP的初始值为07H。

3.特殊功能寄存器SFR

在AT89S52单片机片内80H ~0FFH的128个地址中,离散分布了一些特殊功能的寄存器SFR,它们与片内RAM高128 B数据存储器地址相同,但访问方式不同,特殊功能寄存器只能直接寻址访问,而片内RAM高128 B数据储存器只能间接寻址访问,所以不会混淆。

部分特殊功能寄存器的地址和名称如表2-3所示。其中有12个具有位寻址能力,它们的字节地址正好能被8整除(即16进制的地址码尾数是0或8),在表中标星号的寄存器即可位寻址。

表2-3 部分特殊功能寄存器的地址和名称

续表

相关部分功能如下:

(1)累加器ACC(E0H)。

累加器ACC是89S52最常用﹑最忙碌的8位特殊功能寄存器,许多指令的操作数都取自累加器ACC,许多运算中间结果也存放于累加器ACC中。在指令系统中,用A作为累加器ACC的助记符。

(2)寄存器B(F0H)。

在乘﹑除指令中,用到了8位寄存器B。乘法指令的两个操作数分别取自A和寄存器B,乘积存于寄存器B和A两个8位寄存器中。除法指令中,A中存放被除数,寄存器B中存放除数,商存放于A,余数存放于寄存器B。

在其他指令中,寄存器B可作为一般通用寄存器使用。

(3)程序状态寄存器PSW(D0H)。

程序状态寄存器PSW是一个8位特殊功能寄存器,它的各位包含了程序执行后的各种状态信息,供程序查询或判别之用。

程序状态寄存器PSW功能如表2-4所示。

表2-4 程序状态寄存器PSW功能表

●CY(PSW.7):进/借位标志位。在执行加法(或减法)运算指令时,如果运算结果的最高位(D7位)向前有进位(或借位),则CY位由硬件自动置为1(CY=1);如果运算结果的最高位无进位(或借位),则CY位被清0(CY=0)。

●AC(PSW.6):辅助进/借位标志位。当执行加法(或减法)操作时,如果运算结果(和或差)的低4位(D3位)向高4位(D4位)有半进位(或借位),则AC位将被硬件自动置为1(AC=1);否则AC位被清0(AC=0)。

●F0(PSW.5):用户标志位0。用户可以根据自己的需要对F0位赋予一定的含义,由用户置位或复位以作为软件标志。

●RS1﹑RS0(PSW.4﹑PSW.3):工作寄存器组选择位。在单片机数据存储器中有4组工作寄存器组(寄存器3组﹑寄存器2组﹑寄存器1组﹑寄存器0组),每个寄存器组中有8个寄存器R7~R0。程序运行时只能有一组寄存器组工作,可以通过设置RS1﹑RS0的值来进行选取。

工作寄存器组选择表如2-5所示。

表2-5 工作寄存器组选择表

单片机上电复位时,RS1=RS0=0,CPU自动选择寄存器0组为当前工作寄存器组。

●OV(PSW.2):溢出标志位。当进行算术运算时,如果运算结果超出了-128~+127,则有溢出,OV位由硬件自动置为1(OV=1);否则无溢出,OV位清0(OV=0)。

●F1(PSW.1):用户标志位1(仅AT89S52单片机有)。作用与用户标志位0相同。

●P(PSW.0):奇偶标志位。每条指令执行完后,该位始终跟踪指示累加器ACC中1的个数。如果A中的1为奇数,则P=1,A中的1为偶数,则P=0。此位常用于校验串行通信中的数据传送是否出错。

(4)堆栈指针SP(81H)。

堆栈指针SP是一个8位特殊功能寄存器,SP的内容可指向AT89S52片内00H~7FH RAM的任何单元。系统复位后,SP初始化为07H,即指向地址为07H的RAM单元。

(5)数据指针DPTR(83H,82H)。

数据指针DPTR是一个16位特殊功能寄存器,其高位字节寄存器用DPH表示(地址83H),低位字节寄存器用DPL表示(地址82H)。

数据指针DPTR用于存放16位地址,以便对64 KB片外RAM作间接寻址。

◇任务实施◇

一、查看芯片手册熟悉AT89S52芯片内部结构

(1)苾片选择AT89S52芯片。

(2)查阅内容:

①芯片的基本功能;

②芯片的存储空间;

③芯片的寻址方式;

④芯片的地址范围;

⑤特殊功能寄存器的功能。

二、完成做答

(1)简述什么是单片机。

(2)访问AT89S52单片机SFR﹑片内高128 B的RAM区时,怎样区分二者?

(3)AT89S52单片机的片内RAM有多大范围?如何分类?

(4)AT89S52单片机的程序存储器有多大范围?哪些地址有特殊用途?

三、完成对比

通过上网搜索﹑查阅书籍等手段,查阅其他单片机芯片的使用手册,完成不同芯片共同点与不同点的分析对比。

◇任务评价◇

一、任务完成合格度评价

任务完成度评分标准如表2-6所示。

表2-6 任务完成度评分标准

续表

二、工作效果评分标准

工作效果评分标准如表2-7所示。

表2-7 工作效果评分标准

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈