资源描述
学习情境5 简单原理图的绘制和单片机内部结构
知识点:
1.熟悉Protel 99 SE运行环境、掌握Protel 99 SE数据库文件的管理;
2.掌握电路原理图工作环境的设置;
3.掌握添加、卸载软件自带元件库的方法;
4.掌握电路中常见电气对象(元器件、导线、节点、电源、地线)的放置方法;
5.掌握编辑电路中常见电气对象(元器件、导线、节点、电源、地线)属性的编辑方法;
6.单片机各引脚功能及端口基本作用、单片机的内部结构及资源;
7.单片机的时钟电路和复位电路。
技能点:
1.正确安装Protel 99 SE软件、掌握Protel 99 SE系统参数设置、新建设计数据库文件和原理图文件,并会文件的导入与输出;
2.会设计显示电路并将单片机端口与显示电路连接起来。
2.根据电路图需要添加相应电路元件库、运用Protel 99 SE 的电路原理图编辑器绘制简单模拟电路原理图。
学习情境目标
使学生掌握Protel 99 SE软件的启动方法、原理图文件的创建和保存,掌握放置常用元件的方法,掌握常用元件属性的编辑,初步具备简单原理图的绘制能力,熟悉和掌握80C51单片机的内部结构和构成,特别是内部存储器的组成,几个特殊寄存器功能及引脚功能等。
任务一 绘制简单电路原理图
任务目标
利用Protel 99 SE原理图编辑器绘制图5.1——分压式共射放大电路原理图,要求设置具有一定特色的电路原理图设计环境,放置常见电气对象并编辑其属性。
任务分析
放大电路是电子电路专业的基本电路,种类繁多,在日常生活中应用极为广泛。图5.1是一种分压式共射放大电路,图中主要由电子元器件、导线、电源等电气对象组成。
任务实施过程
绘制共射放大电路原理图的流程如图5.2所示,其中步骤一和步骤二的详细操作见前一任务。
图5.1 共射放大电路
图5.2 绘制电路原理图的过程
1、新建数据库文件——共射放大电路.ddb
(1)在计算机硬盘D上建立自己的文件夹:电气08308张峰。
(2)启动Protel 99 SE软件,双击桌面快捷图标,即可进入如图5.3所示Protel 99 SE系统设计环境。
图5.3 Protel 99 SE系统设计环境
(3)在图5.3所示系统设计环境界面,利用菜单命令File/New打开新建项目对话框,如图5.4所示。
图5.4 确定新数据库存放目录
(4)在图5.4中,设计存贮类型(Design Storage Type)选为MS Access Database;数据库文件名(Database File Name)改为共射放大电路.ddb;新数据库存放路径(Database Location)为D:\电气08308张峰。
(5)点击OK按钮后,进入图5.5——共射放大电路.ddb设计环境。
图5.5 基本设计环境界面
2、新建原理图文件——共射放大电路.sch
(1)在图5.5中打开Documents后,执行菜单命令File/New(或在空白处点击鼠标右键,选择快捷菜单中 “NEW”命令),调出新文件(New Documents)对话框,选择原理图文件设计图标。如图5.6所示。
图5.6 原理图新建界面
(2)单击OK按钮,进入图5.7,更改原理图设计文件名为:共射放大电路.sch,此时建立了一个未打开的空白原理图设计文档。
注意:原理图文件扩展名应为.sch。
图5.7 建立共射放大电路.sch文件
3、原理图环境设置
(1)设置图纸的图幅。根据所要绘制的电路图内容多少选用合适的图纸,将方便后续绘制工作。双击共射放大电路.sch文件名,进入原理图设计系统工作界面,如图5.8所示。执行菜单命令Design/Options…,系统弹出Document Options(文档选项)对话框,如图5.9所示。在Sheet Options标签右边的标准图纸(Standard Styles)和自定义图纸(Custom Style)选项中进行图纸尺寸设置。因为共射放大电路非常简单,可选用较小的标准A4图纸来绘制。
提示1:Protel 99 SE原理图设计系统提供了十多种广泛使用的英制及公制标准图纸尺寸供用户选择,见表5-1(表中数据单位为英寸),这些标准图纸可在图5.9对话框中Standard Styles下拉列表中选取。
提示2:用户还可以自定义图纸大小。在图5.9的Custom Style栏中,选中Use Custom Style复选框,激活自定义图纸功能。在Custom Width框中填入自定义图纸宽度,在Custom Height框中填入自定义图纸高度,其它框中均可采用默认值。
图5.8 原理图设计的界面
图5.9 图纸尺寸设置对话框
表2-1
尺 寸
宽度×高度
尺 寸
宽度×高度
A
11.00×8.50
A0
46.80×33.07
B
17.00×11.00
ORCADA
9.90×7.90
C
22.00×17.00
ORCADB
15.4×9.90
D
34.00×22.00
ORCADC
20.60×15.60
E
44.00×34.00
ORCADD
32.60×20.60
A4
11.69×8.27
ORCADE
42.8×32.80
A3
16.54×11.69
Letter
11.00×8.50
A2
23.39×16.54
Legal
14.00×8.50
A1
33.07×23.39
TABLOID
17.00×11.00
(2) 设置图纸方向。图纸是纵向还是横向摆放,可在图5.9的Orientation(方向)下拉列表中选取。该图纸选择Landscape,水平放置图纸(而如果选择portrait,则可垂直放置图纸)。
(3) 设置图纸栅格。设计电路原理图时,图纸上的栅格为放置元器件、导线等设计工作带来极大方便。执行菜单命令Tools/Preferences…,弹出Preferences对话框,选取Graphical Editing标签。在Cursor/Grid Options选项中提供了两种栅格形式,即线状栅格(Lines)和点状栅格(Dots),如图5.10所示。系统一般默认为线状栅格。
图5.10 设置图纸栅格
(4)工具栏的打开与关闭。所有工具栏的打开与关闭,均可通过图5.8中菜单View/Toolbars下各类工具栏的对应命令调出,如图5.11所示。为了方便绘图工作,一般工具栏Main Tools、Drawing Tools和Wiring Tools都处于打开状态。
图5.11 工具栏打开和关闭菜单
(5)设计管理器的打开与关闭。设计管理器的打开与关闭,可通过图5.8中菜单View/Design Manager实现,一般设计管理器都处于打开状态。环境设置完成后如图5.12所示。
图5.12 设计管理器已打开
4、绘制共射放大电路原理图
(1)加载或卸载相应的元件库。电路图中的元器件均分门别类地存放在相应元件库中,为了方便调用元器件,必须首先将元件所在元件库调入当前设计管理器中。若电路图使用元件较多,一次载入所有所需元件库将会占用较多系统资源,同时也会降低程序执行效率,因此最好装入目前必要和常用的元件库,其它元件库当需要时再加载。加载元件库过程如下:
步骤1:单击图5.12中设计管理器的Browse Sch选项卡,再单击Add/Remove...按钮,或执行菜单命令Design/Add/Remove Library…,系统将弹出图5.13所示“增加/删除元件库”对话框。
步骤2:在路径C:\Program Files\Design Exploer 99 SE\Library中找到Sch目录,双击该目录名,在打开的Sch目录里找到所需要元件库文件,然后双击该库文件名,或点击Add按钮,此元件库文件就会出现在Selected Files下拉框中,如图5.13下半部分所示。
注意:
1、元件库文件扩展名为.ddb,它是一个大型数据库文件,里面包括多个小型子元件库 (*.lib文件),这是Protel 99 SE的一大特点。
2、一般电阻、电容等常用元件在Miscellaneous Devices.ddb库中,常用的TTL、CMOS数字集成电路、运算放大器、集成稳压电源等在Protel Dos Schematic Libraries元件库中。
步骤3:选中所需元件库后点击OK按钮,完成元件库的加载。利用设计管理器的Filter(过滤)条件“*”,可将该元件库中每个元件详细内容(名称、元件原理图符号、元件上功能模块数)显示在设计管理器的下半部分,如图5.14所示。
图5.13 “元件库添加/删除”对话框
步骤4:当要卸载一元件库时,则重新执行步骤1、步骤2操作,如要卸载NSC Analog.ddb元器件库,可在图5.13所示对话框的Selected Files框内选取要卸载的NSC Analog.ddb元件库名,点击Remove按钮可卸载掉NSC analog.ddb库。
(2)放置元器件。在图5.14中,打开元件库Miscellaneous Devices.lib,利用滚动条找到“RES2”元件,并选定它(让名称变为蓝色),双击“RES2”或单击下方Place按钮,此时屏幕上出现一个随着鼠标指针移动的“RES2”元件符号,将它放到适当位置后单击鼠标左键定位,这样就在图纸上放置了一个RES2元件。依照上述方式,按照表5-2提示信息将其它各元件放置到图纸中,并综观全局调整各元件位置,以便后续电连接线和节点的放置。共射放大电路中所有元器件在图纸上的放置如图5.15所示。
表5-2
编号
参数值
所在元件库名
元件封装名
R1、R2、R3、R4、R5
18K、3.3K、680、200、10K
Miscellaneous Device.lib
AXIAL0.4
C1、C2、C3
1uF、10uF、1uF
Miscellaneous Device.lib
RB.2/.4
Q1
2N2222A
Sim.ddb(BJT.LIB)
TO-220
JP
CON 3
Miscellaneous Device.lib
SIP3
图5.14 元件库管理器
图5.15 放置元件
注意:
l 单个元件移动方法。用鼠标箭头对准需移动对象,点击鼠标左键并按住,如图5.16所示,拖动该对象到目标位置后放开鼠标左键,该对象被移动到了目标位置。
l 放置元件过程中按Space键可旋转元件(中文输入法状态),改变元件放置方向。
l 放置元件时按X键实现水平镜像,按Y键实现垂直镜像,如图5.17所示。
图5.16单个元件移动 图5.17 元件镜像前后
(3) 编辑各元器件属性。电路中每个元器件的编号必须是唯一的,即一个电路中不能有两个以上的元器件具有相同的编号,但电路中可以有多个元器件具有相同的参数标称值和相同的封装型号。本图编辑元器件属性时请参照元件列表2-2。双击需要修改属性的元件,调出该元件的属性对话框,电容C1的属性对话框填写如图5.18所示,所有元件属性修改完成后如图5.20所示。
图5.18 C1属性对话框填写 图5.19修改元件放置角度的对话框
注意:
l 放置元件时按Tab键也可进入该元件的属性对话框,实现对其属性内容的修改。
l 通过修改元件属性对话框Graphical Attrs标签的Orientation栏,同样可以改变元件放置的位置,如图5.19所示。
图5.20 编辑各元件属性后效果
(4)放置电连接线。放置电连接线的目的是按照电路设计要求实现网络的实际连通。单击Wiring Tools工具栏上按钮,或执行菜单命令Place/Wire,如图5.21所示,欲连接C1、C2两个电容,首先移动光标到C1元件引脚端点上,点击一次鼠标左键,然后移动光标到C2元件引脚端点上,再点击鼠标左键,在C1、C2间放置一条电连接线,将C1、C2的两个引脚连接。依照上述方法绘制其它导线。
图5.21 放置电连接线 图5.22 节点效果
(5)放置电连接点。放置电连接线时系统会给出一些节点,如图5.22所示,若需要另外放置节点,单击Wiring Tools工具栏上按钮,或执行菜单命令Place/Junction后,鼠标箭头上出现一个小圆点(节点),移动鼠标到线段交叉位置上单击鼠标左键,就可在此处放置一个节点。
(6)放置电源VCC、GND。电源/地线是电路图中不可缺少的电气对象。执行菜单命令Place/Power Port,鼠标箭头上会有一个电源/地线对象跟着鼠标移动,此时按Tab键,系统弹出如图5.23所示Power Port属性对话框,在Net栏填写VCC或GND网络名称,在Style栏选取所需的电源/地线形状。绘制完成的共射放大电路原理图如图5.24所示。
图5.23 电源属性对话框
注意:当需要总体观察所绘电路时,用鼠标对准电路中心或所关心的元件,按Page Up键放大图纸,按键Page Down缩小图纸。
图5.24 绘制好的共射放大电路原理图
5、保存并打印共射放大电路原理图
(1) 保存原理图文件。执行菜单命令File/Save,或点击主工具栏上的图标,将该电路图直接保存到一开始指定的D:\电气08308张峰\共射放大电路.ddb中。
(2)打印输出电路原理图。执行菜单命令File/Setup Printer…,弹出如图5.25所示的打印设置窗口,其中
Select Printer:选择打印机型号。
Batch Type:选择打印的文件,有Current Document(当前文件)、All Document(所有文档)。
Color:选择打印色彩,有Color(彩色)、Monochrome(单色)。
Margins:设置页边距。
Scale:设置打印缩放比例,也可选择Scale to fit page使原理图充满整张打印纸。
Preview:预览需打印的原理图。
Include on Printout:选择打印图纸中想要包括的附加信息。
Vector Font Options:选择矢量字类型。
Print:启动打印机打印原理图。
图5.25 打印设置对话框
实训练习
[实训题1] 单极性电源电路如实训图2-2,试画出它的原理图,元件见实训表2-2。
实训图5.1
实训表5-1
元件编号
元件参考值
封装名
元件库中名
TF1
10TO1
SOT-143
10TO1
D1
无
DIP4
DRIDGE1
C1\C2
470Uf\1000Uf
RB.2/.4
ELECTRO1
R1\R2
680\5K
AXIAL0.4
RES2
D2
1N4737
DIODE0.4
ZENER3
Q1
2N2222A
TO-39
2N2222A
J
无
SIP2
CON2
[实训题2] 集成功率放大电路如实训图2.2所示,试画出它的原理图,元件见实训表2-2。
实训图5.2
实训表5-2
编号
元件参考值
封装名
元件库中参考名
R2
2.8
AXIAL0.4
RES2
R1
10k
VR5
POT2
C1\C2\C4
5.1uF\5.1uF\510uF
RB.2/.4
ELECTRO1
JP1
CON2
SIP2
CON2
C3
0.1uF
RAD0.2
CAP
U1
LM339
DIP14
LM339
SP
AXIAL0.4
SPEAKER
[实训题3] 实用门铃电路如实训图5.3所示,试画出它的原理图,元件见实训表5-3。
实训图5.3
实训表5-3
编号
元件参考值
封装名
元件库中参考名
R1\R2\R3\R4
47K\30K\22K\22K
AXIAL0.3
RES2
C2
0.01uF
RAD0.2
CAP
C1\C3
47uF\47uF
RB.2/.4
ELECTRO1
JP1
CON2
SIP2
CON2
D1\D2
IN4148
DIODE0.4
DIODE
U1
NE555VD(8)
DIP8
NE555VD(8)
SP
RAD0.1
SPEAKER
S1
RAD0.2
SW-PB
任务二 认识单片机
任务目标
本任务是通过单片机芯片或实验板,认识单片机AT89C51的引脚功能,通过对情境4的复习,学习单片机内部结构、存储器的结构、时钟电路和复位电路的组成。
相关知识
1. 几个概念
(1)单片机
就是把中央处理器CPU(Central Processing Unit)、随机存取存储器RAM(Random Access Memory)、只读存储器ROM(Read Only Memory)、定时器/计数器以及I/O(Input/Output)接口电路等主要计算机部件,集成在一块集成电路芯片上的微型计算机。
(2)单片机最小系统
单片机最小系统就是能让单片机工作起来的一个最基本的组成电路。如图1.1所示,包含时钟电路、复位电路、工作电源输入。
2. 80C51单片机的基本组成
80C51单片机的基本组成如Error! Reference source not found.5.26所示。
Error! Reference source not found.5.26 单片机结构框图
l 中央处理器(CPU)
中央处理器是单片机核心,完成运算和控制功能。
l 内部数据存储器(内部RAM)
80C51芯片中共有256个RAM单元,高128单元被专用寄存器占用,用户使用低128单元存放数据。通常所说的内部数据存储器就是指低128单元,简称内部RAM。
l 内部程序存储器(内部ROM)
80C51共有4 KB Flash,用于存放程序、原始数据或表格,称为程序存储器,简称内部ROM。
l 定时/计数器
80C51共有两个16位的定时/计数器,实现定时或计数功能。
l 并行I/O口
80C51共有4个8位的I/O口(P0、P1、P2、P3),实现数据的并行输入/输出。
l 串行口
80C51单片机有一个全双工的串行口,实现单片机和外设的串行数据传送。该口既可作为全双工异步通信收发器使用,也可作为同步移位器使用。
l 中断控制系统
80C51共有5个中断源,即外部中断两个,定时/计数中断两个,串行中断一个。中断可分为高、低两个优先级。
l 时钟电路
80C51芯片内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率一般为6 MHz和12 MHz。
综上所述,80C51虽是单一芯片,但作为计算机的基本部件基本都已包括,只需加上较少的、所需要的输入/输出设备或驱动电路,就可构成一个实用的微型计算机系统。
3. 80C51的引脚及功能
80C51单片机实际有效的引脚为40个,如图5.27为双列直插式集成电路芯片。
图5.27
(1)主电源引脚GND和Vcc
GND 电源地。
Vcc 电源正端,+5V。
(2)时钟电路引脚XTAL1和XTAL2
外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。
(3)控制信号引脚
l ALE:
地址锁存控制信号。在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。此外,由于ALE是以晶振1/6的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。
l :
外部程序存储器读选通信号。在读外部ROM时,有效(低电平),以实现外部ROM单元的读操作。
l :
访问程序存储控制信号。当信号为低电平时,对ROM的读操作限定在外部程序存储器;当信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。
l RST:
复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。
(4)输入/输出引脚(P0、P1、P2和P3端口引脚)
P0、P1、P2和P3端口是单片机与外界联系的4个8位双向并行I/O端口。
l P0.0 ~ P0.7:
P0口8位双向口线。
l P1.0 ~ P1.7 :
P1口8位双向口线。
l P2.0 ~ P2.7 :
P2口8位双向口线。
l P3.0 ~ P3.7 :
P3口8位双向口线。P3口线的每一个管脚都有第二功能。如表5-3所示。
表5-3
4. 80C51的内部数据存储器
80C51的内部RAM共有256个单元,通常把这256个单元按其功能划分为两部分:低128单元(单元地址00H~7FH)和高128单元(单元地址80H~FFH)。如图5.28所示
图5.28 片内RAM的配置
其中,低128单元是单片机的真正RAM存储器,按其用途划分为三个区域:
1)寄存器区
共有四组寄存器,每组8个8位的寄存单元,各组都以R0~R7编号。常用于存放操作数及中间结果等,四组通用寄存器占据内部RAM的00H~1FH单元地址。
在任一时刻,CPU只能使用其中的一组寄存器,并把正在使用的那组寄存器称之为当前寄存器组。由程序状态字寄存器PSW中RS1,RS0位的状态组合来决定使用哪一组。
2)位寻址区
表5-4 片内RAM位寻址区的位地址
内部RAM的20H~2FH单元,既可作为一般RAM单元使用,进行字节操作,也可以对单元中的每一位进行位操作,因此把该区称之为位寻址区。表5-4为位寻址区的位地址表。
位寻址区共有16个RAM单元,共128位,位地址为00H~7FH。
3)用户RAM区
在内部RAM低128单元中,通用寄存器占去32个单元,位寻址区占去16个单元,剩下80个单元,是供用户使用的一般RAM区,其单元地址为30H~7FH。
对用户RAM区的使用没有任何规定或限制,但在应用中常把堆栈开辟在此区中。
其中高128单元为专用寄存器区:
内部RAM的高128单元是供给专用寄存器使用的,称之为专用寄存器区,其单元地址为80H~FFH。因此 类寄存器的功能已作专门规定,称为专用寄存器(SFR),或称为特殊功能寄存器。
80C51共有22个专用寄存器,其中可寻址的专用寄存器有21个,其中有11个专用寄存器即可字节寻址,又可位寻址。其中部分寄存器简单介绍如下:
程序计数器(PC——Program Counter)
PC是一个16位的计数器。其内容为将要执行的指令地址,寻址范围达64KB。PC有自动加1功能,从而实现程序的顺序执行。
PC没有分配地址,是不可寻址的,但可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。
累加器(ACC——Accumulator)
累加器为8位寄存器,是最常用的专用寄存器,既可用于存放操作数,也可用来存放运算的中间结果。
B寄存器
B寄存器是一个8位寄存器,主要用于乘除运算。乘法运算时作为乘数。乘法操作后,乘积的高8位存于B中。除法运算时作为除数。除法操作后,余数存于B中。该寄存器也可作为一般数据寄存器使用。
程序状态字(PSW——Program Status Word)
程序状态字是一个8位寄存器,用于寄存程序运行的状态信息。PSW的各位定义如下:
位 序
PSW.7
PSW.6
PSW.5
PSW.4
PSW.3
PSW.2
PSW.1
PSW.0
位标志
CY
AC
F0
RS1
RS0
OV
/
P
除PSW.1位保留未用外,对其余各位的定义及使用介绍如下:
·CY(PWS.7)——进位标志位
CY是PWS中最常用的标志位,其功能有二:一是存放算术运算的进位标志;二是在位操作中,作累加位使用。位传送、位与、位或等位操作,操作位之一固定是进位标志位。
·AC(PSW.6)——辅助进位标志位
加减运算中当有低4位向高4位进位或借位时从C由硬件置位,否则AC位被清0。在十进制调整中也要用到AC位状态。
·F0(PSW.5)——用户标志位
这是一个供用户定义的标志位,需要时用软件方法置位或复位,用以控制程序的转向。
·RS1和RS0(PSW.4,PSW.3)——寄存器组选择位
用于设定通用寄存器的组号。通用寄存器共有四组,其对应关系为:
RS1
RS2
寄存器组
R0~R7地址
0
0
组0
00H~07H
0
1
组1
08H~0FH
1
0
组2
10H~17H
1
1
组3
18H~1FH
·OV(PSW.2)——溢出标志位
在带符号数加减运算中,OV=1表示加减运算超出了累加器A所能表示的符号数有效范围(-128~+127),即产生了溢出,因此运算结果是错误的;否则,OV=0表示运算正确,即无溢出产生。
在乘法运算中,OV=1表示乘积超过255,即乘积分别在B与A中;否则,OV=0,表示乘积只在A中。
在除法运算中,OV=1表示除数为0,除法不能进行;否则,OV=0,除数不为0,除法可正常进行。
·P(PSW.0)—一奇偶标志位
表明累加器A中数的奇偶性,在每个指令周期由硬件根据A的内容对P位自动置位或复位。
数据指针(DPTR)
数据指针为16位寄存器,它是MCS-51中惟一的一个16位寄存器。编程时,DPTR既可以按16位寄存器使用,也可以按两个8位寄存器分开使用,即:
DPH DPTR高位字节
DPL DPTR低位字节
DPTR通常在访问外部数据存储器时作地址指针使用,由于外部数据存储器的寻址范围为64KB,故把DPTR设计为16位。
堆栈及堆栈指示器
Ø 堆栈的功能
堆栈是为子程序调用和中断操作而设立的。其具体功能有两个:保护断点和保护现场。
断点和现场内容保存在堆栈中。为使计算机能进行多级中断嵌套及多重子程序嵌套,要求堆栈要有足够的容量(或有足够堆栈深度)。
Ø 堆栈指示器
堆栈共有两种操作:进栈和出栈。但不论是数据进栈还是数据出栈,都是栈顶单元进行的,即对栈顶单元的写和读操作。为了指示栈顶地址,要设置堆栈指示器SP(Stack Pointer),SP的内容就是堆栈栈顶的存储单元地址。
80C51单片机堆栈设在内部RAM中,并且SP是一个8位专用寄存器。
系统复位后SP的内容为07H。堆栈最好在内部RAM的30H~7FH单元中开辟,在程序设计时应把SP值设置为30H以后。
Ø 堆栈使用方式
堆栈的使用有两种方式。
一种是自动方式,即在调用子程序或中断时,返回地址(断点)自动进栈。程序返回时,断点再自动弹回PC。这种堆栈操作无需用户干预,因此称为自动方式。
另一种是指令方式,即使用专用的堆栈操作指令,进行进出栈操作。其进栈指令为PUSH,出栈指令为POP。例如现场保护就是一系列指令方式的进栈操作;而现场恢复则是一系列指令方式的出栈操作。
5. 80C51的内部程序存储器
80C51芯片内有4K ROM存储单元,其地址为0000H~0FFFH,这就是所说的内部程序存储器(内部ROM)。
6. 并行输入/输出口电路结构
单片机芯片内还有一项主要内容就是并行I/O口。80C51共有4个8位的并行I/O口,分别记作P0、P1、P2、P3。每个口都包含一个锁存器、一个输出驱动器和输入缓冲器。各口也属于专用寄存器,并具有字节寻址和位寻址功能。
80C51单片机的4个I/O口都是8位双向口,在结构和特性上基本相同,但又各具特点。
P0口
P0口的口线逻辑电路如图5.29所示。由图可见,电路中包含有一个数据输出锁存器和两个三态数据输入缓冲器。此外,还有数据输出的驱动和控制电路。
图5.29 P0口口线逻辑电路图
P0口既可以作为通用的I/O口进行数据的输入输出,也可以作为单片机系统的地址/数据线使用。
但要注意,当P0口进行一般的I/O输出时,由于输出电路是漏极开路电路,必须外接上拉电阻才能有高电平输出;当P0口进行一般的I/O输入时,必须先向电路中的锁存器写入“1”,使FET截止,以避免锁存器为“0”状态时对引脚读入的干扰。
在实际应用中,P0口绝大多数情况下都是作为单片机系统的地址/数据线使用,这要比作一般I/O口应用简单。
P1口
P1口的口线逻辑电路如图5.30。
图5.30 P1口口线逻辑电路图
因为P1口通常是作为通用I/O口使用的,所以在电路结构上与P0口有一些不同之处。首先它不再需要多路转接电路MUX;其次是电路的内部有上拉电阻,与场效应管共同组成输出驱动电路。
为此P1口作为输出口使用时,已能向外提供推拉电流负载,无需再外接上拉电阻。当P1口作为输入口使用时,同样也需先向其锁存器写入“1”,使输出驱动电路的FET截止。
P2口
P2口的口线逻辑电路如图5.31所示。P2口电路中比P1口多了一个多路转接电路MUX,这又正好与P0口一样。P2口可以作为通用I/O口使用。这时多路转接开关倒向锁存器Q端。但通常应用情况下,P2口是作为高位地址线使用,此时多路转接开关应倒向相反方向。
图5.31 P3口口线逻辑电路图
P3口
P3口的口线逻辑电路如图5.32所示。
P3口的特点在于为适应引脚信号第二功能的需要,增加了第二功能控制逻辑。由于第二功能信号有输入和输出两类,因此分两种情况说明。
对于第二功能为输出的信号引脚,当作为I/O使用时,第二功能信号引线应保持高电平,与非门开通,以维持从锁存器到输出端数据输出通路的畅通。当输出第二功能信号时,该位的锁存器应置“1”,使与非门对第二功能信号的输出是畅通的,从而实现第二功能信号的输出。
对于第二功能为输入的信号引脚,在口线的输入通路上增加了一个缓冲器,输入的第二功能信号就从这个缓冲器的输出端取得。而作为I/O使用的数据输入,仍取自三态缓冲器的输出端。不管是作为输入口使用还是第二功能信号输入,输出电路中的锁存器输出和第二功能输出信号线都应保持高电平。
图5.32 P3口口线逻辑电路图
7.时钟电路
(1)时钟信号的产生
在80C51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2 。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟电路。如图5.33所示。
时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。
通常,电容C1和C2取30pF左右,晶体的振荡频率范围是1.2~12MHz。晶体振荡频率高,则系统的时钟频率也高,单片机运行速度也就快。80C51在通常应用情况下,使用振荡频率为6 MHz或12 MHz。
(2)引入外部脉冲信号
在有多片单片机组成的系统中,为了各单片机之间时钟信号的同步,通常使用唯一的公用外部脉冲信号作为各单片机的振荡脉冲。外部的脉冲信号经XTAL2引脚注入,其连接如图所示。如图5.34所示。
图5.33 时钟振荡电路 图5.34 外部时钟源接法
8.单片机的复位电路
(1)复位操作
复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,需按复位键重新启动。
除PC之外,复位操作还对其它一些专用寄存器有影响,它们的复位状态如下:
PC
0000H
TCON
00H
ACC
00H
TLO
00H
PSW
00H
THO
00H
SP
07H
TL1
00H
DPTR
0000H
TH1
00H
P0~P3
FFH
SCON
00H
IP
××000000B
SBUF
不定
IE
0×000000B
PCON
0×××0000B
TMOD
00H
(2)复位信号及其产生
RST引脚是复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡脉冲周期(即二个机器周期)以上,若使用频率为6MHS的晶振,则复位信号持续时间应超过4才能完成复位操作。
(3)复位方式
复位操作有上电自动复位和按键手动复位两种方式。如图5.35所示。
图5.35 各种复位电路
思考题:
1.80C51单片机主要是由哪些部分组成?
2.80C51单片机可寻址的ROM为多大?内部RAM由哪几部分组成?
3.位地址55H和字节地址55H有什么区别?在内部RAM区,位寻址区域在那里?其位地址编号为哪些?
4.P3口的第二功能是什么?
5.80C51单片机有多少个特殊功能寄存器?它们分布在何地址范围?
6.DPTR是什么寄存器?它的作用是什么?它是由哪几个寄存器组成的?
7.简述程序状态寄存器PSW各位的含义。单片机如何确定和改变当前的工作寄存器区?
8.什么是堆栈?堆栈指示器SP的作用是什么?在堆栈中存取数据时的原则是什么?
9.P0口~P3口作为输入或输出口时,各有何要求?
展开阅读全文