《第2章.89c51硬件结构和原理[new]概要》由会员分享,可在线阅读,更多相关《第2章.89c51硬件结构和原理[new]概要(109页珍藏版)》请在金锄头文库上搜索。
1、第2章 89C51单片机的结构和原理,2.1 89C51单片机的内部结构及特点 2.2 89C51单片机引脚及其功能 2.3 89C51单片机存储器配置 2.4 时针电路及89C51CPU时序 2.5 复位及复位电路 2.6 89C51的低功耗工作方式 (X) 2.7 输入/输出端口结构,2.1 89C51单片机的内部结构及特点,MCS-51单片机是由INTEL公司研发的。授权生产的公司有ATMEL、PHILIPS和SST等公司。(AT89C51,P89C51,STC89C51) 89C51芯片的特点是:低功耗、高性能、闪速可电改写的ROM、价格便宜。近年来得到极其广泛的应用。,下面以89C5
2、1单片机为典型机,介绍该芯片内部的硬件资源、各个功能部件的结构及原理。,2.1.1 89C51单片机组成原理,不同型号MCS-51单片机的CPU处理能力和指令系统 完全兼容,只是存储器和I/O接口的配置有所不同。,2.1.1 MCS-51单片机的基本组成,2.1.1 89C51单片机组成原理,89C51单片机的组成 : 1. 8位CPU; 片内256字节RAM; 片内4KB的Flash ROM; 4. 4个8位并行 I/O接口; 5. 片内2个16位定时器/计数器 6. 片内5个中断源、2个中断优先级的中断处理系统 7.片内1个全双工串行I/O口 8.具有节电工作方式 9.最高允许振荡频率为2
3、4MHz(8051为12MHz),2.1.2 MCS-51单片机内部结构,2.1.2 MCS-51单片机内部结构,各部分的功能:,一、中央处理单元(CPU),CPU是单片机的核心,是计算机的控制和指挥中心,由运算器和控制器等部件组成。,一、中央处理单元(CPU),1.运算器 有:1个能进行8位算术运算和逻辑运算的单元ALU;8位的暂存器1、暂存器2;8位的累加器ACC;寄存器B;程序状态寄存器PSW;布尔处理器C等组成。,ALU:可对4位(半字节)、8位(一字节)和16位(双字节)数据进行算术和逻辑操作。, ACC:累加器,在指令系统中用助记符A来表示。它是最繁忙的一个8位特殊功能寄存器。 许
4、多指令的操作数取自于ACC,许多运算的中间结果也存放在ACC中。, PSW:程序状态寄存器(8位)。是一个标志寄存器,用来指示指令执行后的状态信息。PSW中的各位状态可供程序查询和判别。, B:寄存器(8位)。在乘、除运算时,运算前B用来存放一个操作数,运算完后用来存放一部分运算结果;当不做乘、除运算时,则作为一般的寄存器使用。, C:布尔处理器(1位)。它是以PSW中的进位标志位CY作为它的累加器,专门用于处理位操作。,2. 控制器,包括:程序计数器PC、指令寄存器IR、指令译码器ID、振荡器及时钟电路。,程序计数器PC:16位,由两个8位的计数器PCH(高8位)和PCL(低8 位)组成。它
5、是程序的字节地址计数器。PC存放的内容是即将要执行的下一条指令的地址。故,改变PC的内容就可以改变程序执行的方向。 PC可对64KB的ROM直接寻址,也可对89C51片内RAM寻址。,程序计数器PC是16位的寄存器。PC变化的轨迹(即其地址的改变)决定程序的流向,PC的宽度(即地址值的位数)决定了程序存储器可以寻址的范围。 PC的基本工作方式有: 1、PC自动加1。这是最基本的工作方式,也就是这个专用寄存器被称为计数器的原因; 2、执行条件或无条件指令(第3章P72-P77,P83)时,PC将被置入新的数值(地址),程序的流向发生变化。变化的方式有: 1)带符号的相对转移指令“SJMP”; 2
6、)短跳转指令“AJMP”,长跳转指令 “LJMP”;3)散转指令“JMP A+DPTR”; 3、在执行调用指令(第3章P76)或响应中断(第5章P99)时: 硬件自动将PC的当前值,即下一条将要执行的指令的地址被送入堆栈,加以保护;同时将子程序的入口地址或者中断入口矢量地址送给PC,程序流向发生改变,程序转向去执行子程序或者中断服务程序。当子程 序或中断服务程序执行完毕,遇到子程序中的最后一条返回指令“RET”或中断服务程序的最后一条指令“RETI”时,硬件自动将保护在堆栈中的内容(地址)送到PC中,程序又返回到原来的地方继续执行。,指令寄存器IR、指令译码器ID :由PC中的内容指定ROM(
7、程序存储器)的地址,取出来的指令经IR送至ID,由ID对指令译码并送PLA产生一定序列的控制信号,以执行指令所规定的操作。,振荡器及时钟电路:89C51片内有振荡电路,只需外接晶振和频率微调电容(2个30皮法左右),频率为: 024MHz.(8051为12MHz)。,二、存储器,1.程序存储器(ROM) 89C51、8751的片内ROM容量为4KB,地址从0000H开始,到0FFFH。用于存放程序和表格常数。,89C51片内有:4KFlash程序存储器(ROM),它只能读不能写;数据存储器(RAM),它可以读、写。,2.数据存储器(RAM) 容量256B 8031、89C51、8751的片内R
8、AM容量中低128B,地址从00H开始,到7FH。用于存放运算的中间结果、数据暂存及数据缓冲等。 另外,在RAM的高128B单元中还有特殊功能寄存器(SFR),地址为80HFFH.详细内容将在后面介绍。,三、I/O接口,89C51有4个8位的并行接口,即:P0P3。它们都是准双向口(为什么是准双向口?后面会解释)。每个端口各有8根I/O线,均可作输入/输出用。 89C51有1个可编程的全双工串行口,即RXD(引脚P3.0,接收)和TXD(引脚P3.1,发送). P0P3口的4个锁存器同RAM统一编址,可以把I/O作为一般特殊功能寄存器来寻址(所谓“寻址”,就是寻找指令中操作数或操作数所在的地址
9、)。,2.2 89C51单片机引脚及其功能,图2-3 89C51的引脚结构,1I/O口线功能 4个8位并行 I/O 接口引脚 P0.0P0.7 、P1.0P1.7 、 P2.0P2.7 和 P3.0P3.7。 除P1口外,其它为多功能引 脚,可自 动切换用 作数据总线、 地址总线、控制总线或I/O 接 口外部引脚。,2.2 89C51单片机引脚及其功能,只有熟悉单片机的引脚功能,才能进行硬件电路的设计!,单片机的输入/输出口 P0P3,点亮一个LED发光二极管,通常红色贴片LED:靠电流驱动,电压1.8V2.2V,电流120mA,在15mA亮度有所变化,5mA以上亮度基本无变化。,点亮一个LE
10、D发光二极管,限流电阻R1取值:150欧3K,;汇编语言程序 ORG 0000H ;ORG是汇编伪指令,通电后单片机从0000H单元开始取指令 AJMP L1 ;跳转到标号为L1的指令 ORG 0030H ;从0030H单元放第1条指令 L1:CLR P1. 0 ;P1. 0 为低电平 SJMP $ ;程序在此处原地等待,防止程序跑飞 END ;汇编伪指令,意思是(机器)汇编结束,/C语言程序 #include /头文件 sbit LED1=P10 /位地址声明,注意:sbit必须小写,P必须大写 void main() LED1=0; /使LED1亮 while(1); /程序在此处原地等待
11、,防止程序跑飞 ,编译软件:Keil(美国);万利,伟福(中国)等。 编译就是将C/汇编程序翻译成“机器码”。 硬件仿真软件:Protues(英国),2.2 89C51单片机引脚及其功能,2控制线 ALE/ PROG: ALE 地址锁存允许信号端。 CPU访问片外存储器时,该引脚输出信号作为锁存低8位地址的控制信号。 PROG是对片内带有4KB EPROM的8751编程写入时的编程脉冲输入端。 用示波器查看ALE端,若有脉冲信号输出,则说明89C51基本上是好的。,2控制线,PSEN: 外部ROM读选通信号端。在访问片外ROM时(该引脚接片外ROM 的OE端),定时输出负脉冲作为读片外ROM的
12、选通信号。 检查一个89C51最小系统上电后能否正常工作,可用示波器查看该引脚有无脉冲输出,若有,则说明基本上工作正常。 EA/VPP: EA程序存储器选择信号端。 VPP固化编程电源输入端(12V)。,2.2 89C51单片机引脚及其功能,当EA引脚接高电平(EA=1)时,CPU只访问片内ROM/EPROM,并执行片内程序存储器中的指令,当PC(程序计数器)的值超过0FFFH(89C51、8751为4KB)时,将自动转去执行片外ROM内的程序。,当EA引脚接低电平(接地,EA=0)时,CPU只访问片外ROM/EPROM,并执行片外程序存储器中的指令,而不管片内是否有ROM。 故对于无片内RO
13、MR 的8031、8032,需要外扩EPROM,此时,EA引脚必须接地。,3. 复位:,RST/VPD:复位信号端和后备电源输入端。 输入10ms以上高电平脉冲,单片机复位。 VPD使用后备电源,可实现掉电保护。,复位电路: 1)外部信号复位 2)上电复位,4.电源 工作电源:VCC(+5V) VSS(即GND端为接地端)。,5. 外接晶振引脚,XTAL2 接外部晶振和微调电容的一端。若须采用外部时钟电路时,该引脚悬空。 要查看89C51的振荡电路是否工作,可用示波器查看该引脚有无脉冲信号输出,若有则说明振荡器工作正常。 XTAL1 接外部晶振和微调电容的另一端。若须采用外部时钟电路时,该引脚
14、是外部时钟的输入端。,6. 输入/输出端口,P0口(P0.0P0.7):P0口是一个漏极开路的8位准双向I/O端口。每一位口线能驱动8个LS型TTL负载。 当P0口作为输入口使用时,要先向端口写“1”。而作为输出口使用时则不需要。 P0口内部无上拉电阻,故当作为输出口使用,需输出高电平时,应加外部上拉电阻。,在Proteus ISIS中做实验: 1)未加上拉电阻,观察LED; 2)加入上拉电阻,观察LED。,1、若P0.1为高电平时:LED1亮 2、若P0.5为低电平时:LED2不亮,;上拉电阻实验程序 ORG 0000H ;ORG是汇编伪指令,通电后单片机从0000H单元开始取指令 AJMP
15、 L1 ;跳转到标号为L1的指令 ORG 0030H ;从0030H单元放第1条指令 L1:SETB P0.1 ;P0.1为高电平 SETB P0.5 ; P0.5为高电平 SJMP $ ;程序在此处原地等待,防止程序跑飞 END ;汇编伪指令,意思是(机器)汇编结束,在Proteus ISIS中做个实验 1)未加上拉电阻,观察LED; 2)加入上拉电阻,观察LED。,6. 输入/输出端口,P0口还是复用端口,当CPU访问片外存储器时, P0口分时提供低8位的地址和8位数据。,6. 输入/输出端口,P1口(P1.0P1.7):P1口是一个带内部上拉电阻的8位准双向I/O端口。每一位口线能驱动4
16、个LS型TTL负载。 当P1口作为输入口使用时,要先向端口写“1”。而作为输出口使用时则不需要。,P2口(P2.0P2.7):P2口是一个带内部上拉电阻的8位准双向I/O端口。每一位口线能驱动4个LS型TTL负载。 当P2口作为输入口使用时,要先向端口写“1”。而作为输出口使用时则不需要。 当CPU访问片外存储器时,P2口输出地址的高8位。, P3口(P3.0P3.7):P3口是一个带内部上拉电阻的8位准双向I/O端口。每一位口线能驱动4个LS型TTL负载。 P3口作为输入口使用时,要先向端口写“1”。而作为输出口使用时则不需要。 P3口还具有第二功能。, P3口作为第二功能端口时的功能表,P21. 表2-1,实例(输入/输出),水位的电信号从P1.0和P1.1输入,即P1.0和P1.1输入口使用。水位的电信号要从P1