首页资源分类电子电路其他 > 电子工程师自学速成 设计篇

电子工程师自学速成 设计篇

已有 451496个资源

下载专区

文档信息举报收藏

标    签:电子

分    享:

文档简介

电子工程师自学速成 设计篇

文档预览

tyw藏书 目录 封面 扉页 前言 第1章 单片机入门 1.1 概述 1.1.1 什么是单片机 1.1.2 单片机应用系统的结构与工作过程 1.1.3 单片机的开发过程 1.1.4 单片机的应用 1.2 单片机基础知识 1.2.1 单片机基础电路 1.2.2 数制与数制的转换 1.2.3 单片机中数的表示及运算 第2章 单片机硬件原理 2.1 单片机的结构 2.1.1 CPU 2.1.2 时钟振荡器 2.1.3 中断控制器 2.1.4 ROM 2.1.5 RAM 2.1.6 定时器/计数器 2.1.7 串行通信口 2.1.8 I/O接口 2.1.9 总线控制器 2.2 MCS-51系列单片机的引脚功能 2.2.1 基本工作条件引脚 2.2.2 输入/输出引脚 2.2.3 控制引脚 2.3 单片机的基本工作条件与工作时序 2.3.1 基本工作条件 2.3.2 工作时序 2.4 单片机的I/O接口 tyw藏书 2.4.1 P0端口 2.4.2 P1端口 2.4.3 P2端口 2.4.4 P3端口 2.5 单片机的存储器 2.5.1 存储器基础知识 2.5.2 程序存储器 2.5.3 数据存储器 第3章 单片机的开发过程 3.1 单片机的硬件开发过程 3.1.1 明确单片机应用系统要实现的功能 3.1.2 选择单片机型号 3.1.3 设计单片机外围电路 3.2 单片机的软件开发过程 3.2.1 编写程序 3.2.2 编译或汇编程序 3.2.3 仿真、调试程序 3.2.4 用编程器将程序写入单片机 第4章 单片机编程 4.1 编程基础知识 4.1.1 指令和程序 4.1.2 编程语言 4.1.3 汇编语言指令格式 4.1.4 从实例了解单片机编程 4.2 寻址方式 4.2.1 立即寻址 4.2.2 直接寻址 4.2.3 寄存器寻址 4.2.4 寄存器间接寻址 4.2.5 变址寻址 4.2.6 相对寻址 4.2.7 位寻址 4.3 指令系统 4.3.1 数据传送类指令 tyw藏书 4.3.2 算术运算类指令 4.3.3 逻辑运算类指令 4.3.4 程序控制类指令 4.3.5 位操作类指令 4.4 伪指令 4.4.1 汇编起始指令(Origin) 4.4.2 定义字节指令(Define Byte) 4.4.3 定义字指令(Define Word) 4.4.4 定义预留存储单元指令(Define Space) 4.4.5 等值指令(Equate) 4.4.6 数据地址赋值指令 4.4.7 位地址符号赋值指令 4.4.8 汇编结束指令 第5章 中断技术 5.1 概述 5.1.1 什么是中断 5.1.2 中断的有关概念 5.1.3 中断的处理过程 5.2 中断系统的结构 5.2.1 中断源寄存器 5.2.2 中断允许寄存器IE 5.2.3 中断优先级控制寄存器IP 5.3 中断程序的编写 5.3.1 从实例了解中断程序的编写 5.3.2 中断程序的编写方法 第6章 定时器/计数器 6.1 概述 6.1.1 定时器 6.1.2 计数器 6.2 定时器/计数器的结构与工作原理 6.2.1 定时器/计数器的结构 6.2.2 定时器/计数器的工作原理 6.3 定时器/计数器的控制 6.3.1 定时器/计数器控制寄存器TCON tyw藏书 6.3.2 工作方式控制寄存器TMOD 6.3.3 定时器/计数器的工作方式 6.4 定时器/计数器的应用 tyw藏书 6.4.1 利用定时器/计数器控制发光二极管的发光时间 6.4.2 利用定时器/计数器产生脉冲信号 第7章 串行通信技术 7.1 概述 7.1.1 串行通信方式 7.1.2 串行通信的数据传送方向 7.2 串行通信口的结构与工作原理 7.2.1 串行通信口的结构 7.2.2 串行通信口的工作原理 7.3 串行通信口的控制 7.3.1 串行控制寄存器SCON 7.3.2 电源控制寄存器PCON 7.4 4种工作方式与波特率的设置 7.4.1 方式0 7.4.2 方式1 7.4.3 方式2 7.4.4 方式3 7.4.5 波特率的设置 7.5 串行通信口的应用 7.5.1 单工通信 7.5.2 双工通信 第8章 接口技术 8.1 输入接口 8.1.1 开关量输入接口 8.1.2 键盘输入接口 8.1.3 模拟量输入接口 8.2 输出接口 8.2.1 开关量输出接口 8.2.2 数字量输出接口 8.2.3 显示输出接口 第9章 Protel软件入门 9.1 概述 9.2 Protel 99 SE基础知识 9.2.1 Protel 99 SE的运行环境 9.2.2 Protel 99 SE的组成 9.2.3 Protel 99 SE设计电路的流程 9.3 Protel 99 SE使用入门 9.3.1 设计数据库文件的建立、关闭与打开 9.3.2 Protel 99 SE设计界面的介绍 9.3.3 文件管理 9.3.4 系统参数的设置 第10章 设计电路原理图 10.1 电路原理图编辑器 10.1.1 电路原理图编辑器界面介绍 10.1.2 图纸大小的设置 10.1.3 图纸的方向、标题栏、边框和颜色的设置 10.1.4 图纸网格的设置 10.1.5 图纸文件信息的设置 10.1.6 光标与网格形状和颜色的设置 10.1.7 系统字体的设置 10.2 电路原理图的设计 10.2.1 装载元件库 10.2.2 查找元件 10.2.3 放置元件 10.2.4 元件的编辑 10.2.5 绘制导线和节点 10.2.6 电源和接地符号的放置 10.2.7 输入/输出端口的放置 10.2.8 元件标号的查找、替换与重排 10.3 图形的绘制和文本、图片的编辑 10.3.1 直线的绘制 10.3.2 矩形的绘制 10.3.3 多边形的绘制 10.3.4 椭圆弧线的绘制 10.3.5 椭圆的绘制 tyw藏书 10.3.6 扇形的绘制 10.3.7 曲线的绘制 10.3.8 文本的插入与设置 10.3.9 图片的插入与设置 10.4 层次原理图的设计 10.4.1 主电路与子电路 10.4.2 由上向下设计层次原理图 10.4.3 由下向上设计层次原理图 10.5 原理图报表的生成 10.5.1 ERC报表的生成 10.5.2 网络表的生成 10.5.3 元件清单表的生成 10.5.4 交叉参考元件表的生成 10.5.5 层次项目组织表的生成 10.5.6 原理图的打印输出 第11章 制作新元件 11.1 元件库编辑器 11.1.1 元件库编辑器的启动 11.1.2 元件库编辑器介绍 11.2 新元件的制作与使用 11.2.1 绘制新元件 11.2.2 修改已有的元件 11.2.3 绘制复合元件 11.2.4 新元件的使用 11.3 元件报表的生成与元件库的管理 11.3.1 元件报表的生成 11.3.2 元件库的管理 第12章 手工设计PCB 12.1 PCB设计基础 12.1.1 PCB的基础知识 12.1.2 PCB的设计过程 12.1.3 PCB编辑器 12.1.4 PCB设计前的设置 12.1.5 PCB编辑器参数设置 tyw藏书 12.2 手工设计PCB的具体方法 12.2.1 放置对象 12.2.2 手工布局 12.2.3 手工布线 第13章 自动设计PCB 13.1 基础知识 13.1.1 PCB的自动设计流程 13.1.2 利用原理图生成网络表 13.2 自动设计PCB的具体方法 13.2.1 自动规划PCB 13.2.2 装载元件封装和网络表 13.2.3 自动布局元件 13.2.4 手工调整布局 13.2.5 自动布线 13.2.6 手工调整布线 13.3 PCB的显示 13.3.1 单层显示模式 13.3.2 三维显示模式 13.4 PCB报表的生成及PCB的打印 13.4.1 引脚报表的生成 13.4.2 电路板信息报表的生成 13.4.3 网络状态报表的生成 13.4.4 设计层次报表的生成 13.4.5 NC钻孔报表的生成 13.4.6 元件报表的生成 13.4.7 电路特性报表的生成 13.4.8 元件位置报表的生成 13.4.9 PCB的打印 第14章 制作新元件封装 14.1 元件封装库编辑器 14.1.1 元件封装库编辑器的启动 14.1.2 元件封装库编辑器介绍 14.2 制作新元件封装的方法 14.2.1 手工制作新元件封装 tyw藏书 14.2.2 利用向导制作新元件封装 14.3 元件封装的管理 14.3.1 查找元件封装 14.3.2 更改元件封装名称 14.3.3 放置元件封装 14.3.4 删除元件封装 14.3.5 编辑元件封装引脚焊盘 版权 tyw藏书 电子工程师自学速成——设计篇 蔡杏山 主编 tyw藏书 人民邮电出版社 北京 前言 tyw藏书 “电子技术无处不在”,小到身边的随身听,大到“神舟飞船”,无一不闪现着电子技术 的身影。电子技术应用于社会的众多领域,根据应用领域的不同,电子技术可分为家庭消 费电子技术(如电视机)、通信电子技术(如移动电话)、工业电子技术(如变频器)、 机械电子技术(如智能机器人控制系统)、医疗电子技术(如 B 超机)、汽车电子技术 (如汽车电气控制系统)、消费数码电子技术(如数码相机)和军事科技电子技术(如导 弹制导系统)等。 电子工程师是指从事各类电子产品和信息系统研究、教学、产品设计、科技开发、生 产和管理等工作的高级工程技术人才。电子工程师一般分为硬件电子工程师和软件电子工 程师,其中硬件电子工程师主要负责运用各种电子工具进行电子产品的装配、测试和维修 等工作,其工作是技术与手动操作的结合;软件电子工程师主要负责分析、设计电路图, 制作印制电路板(PCB),以及对嵌入式系统(如单片机)进行编程等工作。 为了让读者能够轻松快速地进入电子工程师行列,我们推出了“电子工程师自学速 成”丛书,该丛书分为“入门篇”、“提高篇”和“设计篇”共3本,各书内容说明如下。 《电子工程师自学速成——入门篇》的内容包括电子技术入门基础、电子元器件(电 阻器、电容器、电感器、变压器、二极管、三极管、光电器件、电声器件、晶闸管、场效 应管、IGBT、继电器、干簧管、显示器件、贴片元器件、集成电路和传感器)、基础电 子电路、收音机与电子产品的检修、电子测量基础、指针万用表、数字万用表、信号发生 器、毫伏表、示波器、频率计和扫频仪等。 《电子工程师自学速成——提高篇》的内容包括模拟电路和数字电路两大部分,其中 模拟电路部分的内容有电路分析基础、放大电路、放大器、谐振电路、滤波电路、振荡 器、调制电路、解调电路、变频电路、反馈控制电路、电源电路和晶闸管电路,数字电路 部分的内容有数字电路基础、门电路、数制、编码、逻辑代数、组合逻辑电路、时序逻辑 电路、脉冲电路、D/A转换器、A/D转换器和半导体存储器。 《电子工程师自学速成——设计篇》的内容包括单片机技术和Protel电路绘图设计两 大部分,其中单片机技术部分的内容有单片机入门、单片机硬件原理、单片机的开发过 程、单片机编程、中断技术、定时器/计数器、串行通信技术和接口技术,Protel电路绘图 设计部分的内容有Protel软件入门、设计电路原理图、制作新元件、手工设计PCB、自动 设计PCB和制作新元件封装。 “电子工程师自学速成”丛书主要有以下特点。 ◆基础起点低。读者只需具有初中文化程度即可阅读本套丛书。 tyw藏书 ◆语言通俗易懂。书中少用专业化的术语,遇到较难理解的内容用形象的比喻说 明,尽量避免复杂的理论分析和烦琐的公式推导,使得图书阅读起来十分顺畅。 ◆内容解说详细。考虑到自学时一般无人指导,因此在本套丛书编写过程中对书中 的知识和技能进行了详细解说,让读者能轻松理解所学内容。 ◆采用图文并茂的表现方式。书中大量采用读者喜欢的直观形象的图表方式表现内 容,使阅读变得非常轻松,不易产生阅读疲劳。 ◆内容安排符合认知规律。图书按照循序渐进、由浅入深的原则来确定各章节内容 的先后顺序,读者只需从前往后阅读图书,便会水到渠成。 ◆突出显示知识要点。为了帮助读者掌握书中的知识要点,书中用阴影和文字加粗 的方法突出显示知识要点,指示学习重点。 ◆网络免费辅导。读者在阅读时遇到难理解的问题可登录易天教学网: www.eTV100.com,观看有关辅导材料或向老师提问进行学习,读者也可以在该网站了解 本套丛书的新书信息。 本套丛书在编写过程中得到了许多老师的支持,其中,蔡玉山、詹春华、黄勇、何 慧、黄晓玲、蔡春霞、邓艳姣、刘凌云、刘海峰、刘元能、邵永亮、万四香、何宗昌、朱 球辉、何彬、李清荣、蔡理刚、何丽、蔡华山、梁云、蔡理峰、唐颖、王娟、蔡任英和邵 永明等参与了书中资料的收集和部分章节的编写工作,在此一致表示感谢。由于我们水平 有限,书中的错误和疏漏在所难免,望广大读者和同仁予以批评指正。 编者 tyw藏书 第1章 单片机入门 1.1 概述 1.1.1 什么是单片机 单片机是单片微型计算机(Single Chip Microcomputer)的简称,由于单片机主要用于 控制领域,所以国际上通常将单片机称作微型控制器(Microcontroller Unit,MCU)。单 片机与微型计算机都是由CPU、存储器和输入/输出接口(I/O接口)等组成的,但两者又 有所不同,微型计算机和单片机的基本结构分别如图1-1(a)和图1-1(b)所示。 图1-1 微型计算机与单片机的结构 从图1-1可以看出,将CPU、存储器和输入/输出接口等部件安装在电路板上,外部输 入/输出设备通过电路板上的接插件与输入/输出接口连接起来就组成了微型计算机;如果 将CPU、存储器和输入/输出接口等做在一块集成电路内部,这种集成电路就是单片机, 输入/输出设备通过单片机的引脚与内部输入/输出接口连接。图1-2所示就是一个具有40个 引脚的单片机,其内部集成了 CPU、存储器和输入/输出接口等电路。 tyw藏书 图1-2 一种单片机的外形 微型计算机可以根据需要更换电路板上的CPU、存储器和输入/输出接口部件,从而 提升性能和扩展功能;而单片机是无法更换CPU、存储器和输入/输出接口的(因为它们 都做在一块集成电路内部),如果要进行复杂的控制,可以选用功能强大的单片机。 与单片机相比,微型计算机具有性能高、功能强的特点,但其价格昂贵,并且体积 大,所以在一些不是很复杂的控制方面,如电动玩具、缤纷闪烁的霓虹灯和家用电器中完 全可以采用价格低廉的单片机来进行控制。 1.1.2 单片机应用系统的结构与工作过程 1.结构 将CPU、存储器和输入/输出接口等制作在一块集成电路中就构成了单片机,但单独 一块单片机集成电路是无法工作的,必须给它加一些外围电路,构成单片机应用系统才可 以工作。典型的单片机应用系统的结构如图1-3所示。从图1-3 中可以看出,一个典型的单 片机应用系统包括单片机、输入电路和输入部件、输出电路和输出部件。 2.工作过程 图1-4所示为VCD影碟机托盘进出单片机控制电路,下面以它为例来说明单片机应用 系统的工作过程。 图1-3 典型的单片机应用系统的结构 tyw藏书 图1-4 VCD影碟机托盘进出单片机控制电路 当按“出盒”键后,影碟机的托盘被推出机器,在托盘上放好光盘,然后往机器内轻推 托盘,托盘马上将托盘检测开关S压上闭合,在A点得到一个低电平,该电平送到单片机 后,单片机马上输出控制信号(高电平),该信号通过R2送到驱动管VT的基极,VT导 通,有电流通过电动机,电动机运转将托盘收回到机器内;一旦托盘完全进入机器,与托 盘联动的托盘检测开关S断开,A点得到一个高电平,该电平送入单片机后,单片机马上 输出控制信号(低电平),驱动管VT截止,电动机停转。 1.1.3 单片机的开发过程 单片机的开发主要指单片机应用系统的开发,包括硬件开发和软件开发。 硬件开发是指根据单片机要实现的控制功能开发出实际的电路,如设计图1-4所示的 VCD影碟机托盘进出单片机控制电路就是硬件开发。 软件开发是指为单片机编写程序,使单片机在程序的控制下,接收输入端送入的信号 并发出相应的控制信号,驱动硬件电路工作,从而实现相应的控制功能。如在图1-4所示 的电路中,单片机要随时检测输入端有无信号输入,如果有信号输入,是高电平还是低电 平,若是低电平输入应发出什么控制信号,若是高电平输入又应发出什么控制信号,这些 都是由单片机内部的程序决定的。 单片机的开发一般按图1-5所示的流程来进行,单片机的详细开发过程将在第3章介 绍。 tyw藏书 图1-5 单片机开发流程 1.1.4 单片机的应用 单片机的应用非常广泛,已深入到工业、农业、商业、教育、国防及日常生活等各个 领域。下面简单介绍一下单片机在其中一些领域的应用。 1.单片机在家电方面的应用 单片机在家电方面的应用主要有:彩色电视机、影碟机内部的控制系统,数码相机、 数码摄像机中的控制系统,中高档电冰箱、空调器、电风扇、洗衣机、加湿机和消毒柜中 的控制系统,中高档微波炉、电磁灶和电饭煲中的控制系统等。 2.单片机在通信方面的应用 单片机在通信方面的应用主要有:移动电话、传真机、调制解调器和程控交换机中的 控制系统,智能电缆监控系统,智能线路运行控制系统,智能电缆故障检测仪等。 3.单片机在商业方面的应用 单片机在商业方面的应用主要有:自动售货机、无人值守系统、防盗报警系统、灯光 音响设备和IC卡等。 4.单片机在工业方面的应用 单片机在工业方面的应用主要有:数控机床、数控加工中心、无人操作、机械手操 作、工业过程控制、生产自动化、远程监控、设备管理、智能控制和智能仪表等。 5.单片机在航空、航天和军事方面的应用 单片机在航空、航天和军事方面的应用主要有:航天测控系统、航天制导系统、卫星 遥控遥测系统、载人航天系统、导弹制导系统和电子对抗系统等。 6.单片机在汽车方面的应用 单片机在汽车方面的应用主要有:汽车娱乐系统、汽车防盗报警系统、汽车信息系 统、汽车智能驾驶系统、汽车全球卫星定位导航系统、汽车智能化检验系统、汽车自动诊 断系统和交通信息接收系统等。 tyw藏书 1.2 单片机基础知识 1.2.1 单片机基础电路 tyw藏书 单片机内部主要由数字电路组成。为了在分析单片机内部电路结构时更容易理解,这 里简单介绍一下单片机中常用的基础电路。 1.与门 与门如图1-6所示。它是一个由二极管和电阻构成的电路,其中A、B为输入端,Y为 输出端,+5V电压经R1、R2分压,在E点得到3V的电压。 图1-6 二极管与电阻构成的与门 (1)工作原理 当A、B两端同时输入低电平(0V)时,由于E点电压为3V,所以二极管VD1、VD2都 导通,E点电压马上下降到0.7V (低电平),即当A、B端均输入低电平“0”时,Y端输出 低电平“0”。 当 A 端输入低电平(0V)、B 端输入高电平(5V)时,由于E点电压为3V,所以二 极管VD1马上导通,E点电压下降到0.7V。此时VD2正端电压为0.7V,负端电压为5V, VD2处于截止状态,即当A端输入低电平“0”、B 端输入高电平“1”时,Y端输出低电 平“0”。 当A端输入高电平(5V)、B端输入低电平(0V)时,VD1截止,VD2导通,E点电压 为0.7V (低电平),即当A端输入高电平“1”、B端输入低电平“0”时,Y端输出低电 平“0”。 当A、B端同时输入高电平(5V)时,VD1、VD2均不能导通,E点电压为3V(高电 平),即当A、B两端都输入高电平“1”时,Y端输出“1”。 由此可见,与门的特点是:只有输入端都输入高电平时,输出端才会输出高电平;只 要有一个输入端输入低电平,输出端就会输出低电平。 (2)真值表 真值表是列举电路的各种输入值和对应输出值的表格,它能使人们直观地看出电路的 输入与输出之间的关系。表1-1是上述与门的真值表。 (3)逻辑表达式 tyw藏书 真值表虽然能直观描述电路的输入和输出之间的关系,但比较麻烦且不便记忆,为此 可以用一个关系式来表示电路的输入与输出之间的关系,该关系式称为逻辑表达式。上述 与门的逻辑表达式为: 式中:A、B之间的“· ”表示“与”,读作“A”与“B”(或“A”乘“B”)。 (4)逻辑符号 图1-6所示的与门由4个元器件组成,在画图和分析时很不方便,为此可用一个简单的 符号来表示整个与门,该符号称为逻辑符号。与门的逻辑符号如图1-7所示,其中旧符号 是指早期采用的符号,常用符号是指有些国家采用的符号,新标准符号是指我国公布的最 新的标准符号。 表1-1 与门的真值表 图1-7 与门逻辑符号 2.或门 (1)逻辑符号 或门的逻辑符号如图1-8所示。 (2)逻辑表达式 或门的逻辑表达式为: (3)真值表 或门的真值表见表1-2。 图1-8 或门逻辑符号 表1-2 或门的真值表 tyw藏书 由或门的真值表可以看出,或门的特点是:只要有一个输入端输入高电平,输出端就 会输出高电平;只有输入端都为低电平时,输出端才输出低电平。 3.非门 (1)逻辑符号 非门的逻辑符号如图1-9所示。 (2)逻辑表达式 非门的逻辑表达式为: 式中:“-”表示非(或相反)。 (3)真值表 非门的真值表见表1-3。 图1-9 非门逻辑符号 表1-3 非门的真值表 由非门的真值表可以看出,非门的特点是:输入状态与输出状态总是相反。 4.与非门 与非门由一个与门和一个非门组成,其逻辑结构及逻辑符号如图1-10所示。 图1-10 与非门的逻辑结构及逻辑符号 (1)工作过程分析 与非门的工作过程比较简单,下面以图1-10(a)来说明。 tyw藏书 当A端输入“0”、B端输入“1”时,与门的C端(输出端)会输出“0”,C端的“0”送到非 门的输入端,结果非门的Y端(输出端)输出“1”。 A、B端的其他3种输入情况读者可以按上述方法分析,这里不再赘述。 (2)逻辑表达式 与非门的逻辑表达式为: 根据逻辑表达式很容易求出输入值和对应的输出值,例如当A=0、B=1时,Y=1。 (3)真值表 与非门的真值表见表1-4。 表1-4 与非门的真值表 由与非门的真值表可以看出,与非门的特点是:只有输入端都为高电平时,输出端才 输出低电平;只要有一个输入端为低电平,输出端就为高电平。 5.或非门 或非门由一个或门和一个非门组合而成,其逻辑结构及逻辑符号分别如图1-11(a) 和图1-11 (b)所示。 (1)工作过程分析 或非门的工作过程比较简单,下面以图1-11(a)来说明。 当A端输入“0”、B端输入“1”时,或门的C端(输出端)会输出“1”,C端的“1”送到非 门的输入端,结果非门的Y端(输出端)输出“0”。 A、B端的其他3种输入情况读者可以按上述方法分析,这里不再赘述。 (2)逻辑表达式 或非门的逻辑表达式为: 例如当A=0、B=1时,Y=0。 (3)真值表 或非门的真值表见表1-5。 tyw藏书 图1-11 或非门的逻辑结构及逻辑符号 表1-5 或非门的真值表 由或非门的真值表可以看出,或非门的特点是:只有输入端都为低电平时,输出端才 为高电平;只要输入端有一个为高电平,输出端就为低电平。 6.三态门 (1)逻辑符号 三态门的逻辑符号如图1-12所示。 图1-12 三态门逻辑符号 三态门有输入端、输出端和控制端三端,它的输出不但取决于输入,还与控制端有 关。以图1-12 (a)所示的高电平有效型三态门为例,若控制端 EN=1,输出端与输入端 反相,即如果 A=1 时,输出端 Y=0;若 EN=0,输入端与输出端之间相当于开路,三态门 处于高阻状态(又称悬浮状态或禁止状态),输入信号无法通过三态门。 (2)三态门的应用 在单片机中三态门常用于数据传送电路,利用它不但可以进行单向数据传送,还能进 行双向数据传送。用三态门构成的数据传送电路如图1-13所示。 tyw藏书 图1-13 三态门数据传送电路 图1-13(a)所示为三态门构成的单向数据传送电路。当控制端EN=1时,两个三态门 都导通,存储器输出的数据可以通过这两个三态门送到两根数据总线上。 图1-13(b)所示为三态门构成的双向数据传送电路。当控制端EN=1时,三态门A导 通,三态门B处于禁止状态,存储器输出的数据可以通过三态门A送到数据总线上;当控 制端EN=0时,三态门A处于禁止状态,三态门B导通,数据总线上的数据可以通过三态门 B送入存储器。 7.寄存器 单片机内部有大量寄存器,寄存器是一种能够存储数据的电路,由触发器构成。 (1)触发器 触发器是一种具有记忆存储功能的电路,由门电路组成。常见的触发器包括:RS 触 发器、D 触发器和 JK触发器等,其中D触发器最为常用。D触发器的逻辑符号如图1-14所 示。 图1-14 D触发器逻辑符号 从图1-14中可以看出,D触发器的端子包括:输入端D、输出端Q、反相输出端 、时 钟脉冲输入端CLK、置“0”端R和置“1”端S。 数据存储过程:当D触发器的D端输入数据“1”时,数据并不能马上被存入触发器,只 有CLK端时钟脉冲信号上升沿(即低电平转为高电平时)到来时,“1”才能被存入触发 器,存入后Q端输出“1”, 端输出“0”。也就是说,只有时钟脉冲上升沿到来时,D触发器 才能将输入端的数据存储起来,并从Q端输出。 tyw藏书 D触发器的置“0”和置“1”:当置“0”端R为低电平时,触发器被置“0”,即Q端为“0”; 当置“1”端S为低电平时,触发器被置“1”,即Q端为“1”。 (2)寄存器 寄存器是单片机内部的基本存储单元,由触发器构成,一个触发器就是1位寄存器。 图1-15所示是一种由D触发器构成的4位寄存器。 图1-15 由D触发器构成的4位寄存器 在工作时,寄存器先让清0线为低电平,该低电平送到各触发器的CLR端(实际为D 触发器的R端),将各触发器清0,Y3Y2Y1Y0=0000;然后将数据送到各触发器输入端, 当CLK端的时钟脉冲上升沿到来时,输入端的数据就被存入到各触发器中,并从输出端输 出。 8.锁存器 锁存器也是一种能存储数据的电路。其特点是当锁存信号没有到来时,输出端的状态 随输入端状态的变化而变化;当锁存信号来到时,输入端的数据被锁存到输出端,即当输 入端的信号再变化时输出端也不会发生变化。下面以图1-16为例来说明锁存器的工作原 理。 图1-16 锁存器示意图 当锁存器的控制端EN=1时,锁存器输出端Y与输入端A的状态保持一致,即A端数据 变化时,Y端数据也变化;当锁存器的控制端EN由“1”变为“0”时,输入端此刻的数据马上 被锁存到输出端,在EN=0期间,输出端的数据始终保持不变,不会随输入端而变化;当 EN又变为“1”时,即取消锁存,输出端又会随输入端的变化而变化。 1.2.2 数制与数制的转换 1.数制 tyw藏书 数制就是数的进位制。日常生活中经常会接触到0、7、8、9、168、295等这样的数 字,它们的进位制为十进制。另外,还有二进制和十六进制等。 (1)十进制数 十进制数有以下特点。 ① 有 10 个不同的数码:0、1、2、3、4、5、6、7、8、9。任意一个十进制数均可以 由这 10个数码组成。 ② 遵循“逢十进一”的计数原则。 对于任意一个十进制数N,它都可以表示成: 式中:m 和 n 为正整数;an−1,an−2,…,a−m称为数码;10 称作基数;10n−1,10n −2,…,10−m是各位数码的“位权”。 例如:根据上面的方法可以将十进制数 3259.46 表示为 3259.46=3×103+2×102+5×101+9×100+4×10−1+6×10−2。 (2)二进制数 十进制是最常见的数制,此外,还有二进制、八进制、十六进制等。在数字电路中, 二进制用得最多。 1)二进制数的特点 二进制数有以下特点。 ① 有两个数码:0和1。任何一个二进制数都可以由这两个数码组成。 ② 遵循“逢二进一”的计数原则。 对于任意一个二进制数N,它都可以表示成: 式中:m和n为正整数;an−1,an−2,…,a−m称为数码;2称作基数;2n−1,2n −2,...,2−m是各位数码的“位权”。 例如:二进制数11011.01可表示为 11011.01B=1×24+1×23+0×22+1×21+1×20+0×2−1+1×2−2。 注:为了说明数据为二进制数,一般在数据后加上“B”,十六进制数加上“H”。 2)二进制数的四则运算。 ① 加法运算。加法运算的法则是:“逢二进一”。具体有: 当遇到“1+1”时向相邻高位进1。 例如:求1011B+1011B=?可以用与十进制数相同的竖式计算 即1011B+1011B=10110B ② 减法运算。减法运算的法则是:“借一当二”。具体有: tyw藏书 当遇到“0−1”时,需向高位借1当2用。 例如:求1100B−111B=? 即1100B−111B=101B ③ 乘法运算。乘法运算的法则是:“各数相乘,再作加法运算”。具体有: 例如:求1101B×101B=? 即1101B×101B=1000001B ④ 除法运算。除法运算的法则是:“各数相除,再作减法运算”。具体有: 例如:求1111B÷101B=? 即1111B÷101B=11B (3)十六进制数 十六进制数有以下特点。 ① 有16个数码:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。这里的A、 B、C、D、E、F分别代表10、11、12、13、14、15。 ② 遵循“逢十六进一”的计数原则。 对于任意一个十六进制数N,它都可以表示成: tyw藏书 式中:m 和 n 为正整数;an−1,an−2,…,a−m称为数码;16 称作基数;16n−1,16n −2,…,16−m是各位数码的“位权”。 例如:十六进制数3A6.DH可表示为3A6.DH=3×162+10×161+6×160+13×16−1。 2.数制的转换 (1)二、十六进制数转换成十进制数 二、十六进制数转换成十进制数的方法是:将二、十六进制数各位数码与位权相乘后 求和,就能得到十进制数。下面举例说明。 二进制数转换成十进制数:101B=1×22+0×21+1×20=4+0+1=5 十六进制数转换成十进制数:C6H=12×16+6×160=198 (2)十进制数转换成二、十六进制数 十进制数转换成二进制数的方法是:采用除 2 取余法,即将十进制数依次除 2,并依 次记下余数,一直除到商数为0,最后把全部余数按相反次序排列,就能得到二进制数。 十进制数转换成十六进制数的方法与转换成二进制数基本相同,不同之处在于采用除 16取余法。 例如:将十进制数29转换成二进制数。 即29=11101B 例如:将十进制数181转换成十六进制数。 即181=B5H (3)二进制数与十六进制数的相互转换 ① 二进制数转换成十六进制数。二进制数转换成十六进制数的方法是:从小数点起 向左、右按4位分组,不足4位的,整数部分可在最高位的左边加“0”补齐,小数点部分可 在最低位右边加“0”补齐,每组用其对应的十六进制数代替,将各个十六进制数依次写出 即可。 例如:将二进制数1011000110.111101B转换为十六进制数。 tyw藏书 注:十六进制的 16 位数码为 0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、 F,它们分别与二进制数0000、0001、0010、0011、0100、0101、0110、0111、1000、 1001、1010、1011、1100、1101、1110、1111相对应。 ② 十六进制数转换成二进制数。十六进制数转换成二进制数的过程与上述方法相 反。其过程是:从左到右将待转换的十六进制数中的每个数码依次用4位二进制数表示。 例如:将十六进制数31AB.6DH转换成二进制数。 1.2.3 单片机中数的表示及运算 单片机中的数是以二进制表示的,分为有符号数和无符号数两种。 1.有符号数的表示方法 有符号数是指有“+(正)”、“−(负)”符号的数。由于单片机采用二进制数,所以只 有“1”和“0”两种数字,其中用“0”表示“+”,用“1”表示“−”。单片机中的数据一般只有 8 位,一般规定最高位为符号位,因为要用1位表示数的符号,所以只有7位用来表示数值, 可以表示−127~+128。 有符号数的表示方法有3种:原码、反码和补码。同一有符号数,用3种表示方法得到 的数是不同的。下面用3种方法来表示两个有符号数+1011101和−1011101。 (1)原码 用“1”表示“−”,用“0”表示“+”,其他各数保持不变,采用这种方法表示出来的数称为 原码。 +1011101用原码表示是01011101,可写成[01011101]原。 −1011101用原码表示是11011101,可写成[11011101]原。 (2)反码 反码是在原码的基础上求得的。对于正的有符号数,其反码与原码相同;对于负的有 符号数,其反码除符号位与原码相同外,其他各位数由原码各位数取反得到。 +1011101用反码表示是01011101,可写成[01011101]反。 −1011101用反码表示是10100010,可写成[10100010]反。 (3)补码 补码是在反码的基础上求得的。对于正的有符号数,其补码与反码、原码相同;对于 负的有符号数,其补码除符号位与反码一致外,其他数由反码加1得到。 +1011101用补码表示是01011101,可写成[01011101]补。 −1011101用补码表示是10100011,可写成[10100011]补。 2.有符号数的运算 tyw藏书 用原码表示有符号数简单、直观,但在单片机中,如果采用原码进行减法运算,需要 很复杂的硬件电路;如果用补码,可以将减法运算变为加法运算,从而省去减法器而简化 硬件电路。 例如:用二进制减法运算和补码加法运算分别计算35−21。 ① 二进制减法运算:35−21=00100011−00010101=00001110 ② 用补码加法运算。 先将算式转换成补码形式,35−21=[+35]+[−21]=[00100011]原+[10010101]原= [00100011]反+[11101010]反=[00100011]补+[11101011]补。 再对补码进行二进制加法运算: 从上面的运算过程可以看出,补码的符号也参与运算,在8位单片机中,由于数据长 度只能有8位,上式结果有9位,第9位会自然丢失,补码加法的运算结果与二进制减法的 运算结果是一样的,都是00001110=14。 由此可见,用补码的形式进行运算,可以将减法运算转换为加法运算,运算结果仍是 正确的,所以单片机普遍采用补码的形式表示有符号数。 3.无符号数的表示方法 无符号数因为不用符号位,8 位全部用来表示数据,所以这种方法可以表示的数据范 围是 0~255。8位二进制数的不同表示方式的换算关系见表1-6。 表1-6 8位二进制数的不同表示方式的换算关系 续表 tyw藏书 从表1-6中可以看出,对于同一个二进制数,当采用不同的表示方式时,得到的数值 是不同的,特别是大于10000000的有符号数。若想确切知道单片机中的二进制数所对应的 十进制数是多少,先要了解该二进制数是有符号数还是无符号数,再换算出该二进制数对 应的十进制数。 tyw藏书 第2章 单片机硬件原理 2.1 单片机的结构 单片机的种类很多,其中以Intel公司生产的MCS-51系列单片机应用最为广泛。由于 各种单片机的工作原理基本相同,所以本书就以MCS-51系列单片机为例来介绍单片机技 术。 MCS-51 系列单片机的具体型号很多,如 Intel 公司生产的 8031、8051、8751、 8032、8052 和Atmel公司生产的AT89C51、AT89S51等都属于MCS-51系列单片机。MCS51系列单片机的内部组成基本相同,具体如图2-1所示。 图2-1 MCS-51系列单片机的内部组成 从图2-1可以看出,单片机内部主要由CPU、时钟振荡器、中断控制器、程序存储器 (ROM)、随机存取存储器(RAM)、两个定时器/计数器、串行通信口、输入/输出 (I/O)接口和总线控制器组成。 2.1.1 CPU CPU(中央处理器)是单片机的核心部件,决定了单片机的主要功能和特性。工作 时,CPU从ROM中调取程序并进行运算,然后发出控制信号通过总线送到I/O接口,再由 I/O接口将控制信号送到外围的输出电路。 2.1.2 时钟振荡器 时钟振荡器的功能是产生时钟信号送给单片机内部各电路,并且控制这些电路,使它 们有节拍地工作。时钟信号频率越高,内部电路工作速度越快。 tyw藏书 2.1.3 中断控制器 当CPU执行正常的程序时,如果在INT0或INT1端给中断控制器送入一个中断请求信 号(一般为低电平信号),中断控制器马上让CPU停止正在执行的程序,转而去执行 ROM中特定的某段程序,执行完该段程序后再继续执行先前中断的程序。 MCS-51系列单片机中断控制器可以接受5个中断请求:两个外部中断请求、两个定时 器/计数器中断请求和串行通信口中断请求。 2.1.4 ROM ROM(只读存储器,又称程序存储器)是一种具有存储功能的电路,断电后其中的 信息不会消失。ROM主要用来存储程序代码。欲使单片机完成不同的控制功能,可以将 不同的程序写入到ROM中。 工作时,CPU会自动从ROM中读取程序再进行运算,然后通过I/O接口向外部电路输 出相应的控制信号。早期的ROM一般是单独的芯片,没有集成在单片机内部(如8031单 片机内部就没有ROM,需要外接),现在的单片机基本上都将ROM集成在内部。 ROM主要有下面几种。 (1)Mask ROM(掩膜ROM) Mask ROM中的内容由厂家生产时一次性写入,以后不能改变。这种ROM成本低,适 用于大批量生产。 (2)PROM(可编程ROM) PROM中没有内容,编程者可将程序写入内部,但只能写一次,以后不能更改。如果 PROM在单片机内部,PROM中的程序写错了,整个单片机便不能使用。 (3)EPROM(紫外线可擦写PROM) EPROM是一种可擦写的PROM,采用EPROM的单片机上面有一块透明的石英窗口, 平时该窗口被不透明的标签贴封,当需要擦除EPROM内部的信息时,可撕开标签,再用 紫外线照射透明窗口15~30min,即可将内部的信息全部擦除,然后重新写入新的信息。 (4)EEPROM(电可擦写PROM) EEPROM也是一种可反复擦写的存储器,但它不像EPROM需要用紫外线来擦除信 息,该ROM只要加适当的擦除电压,就可以轻松快速地擦除其中的信息,然后重新写入 信息。EEPROM反复擦写可达1000多次,目前主流单片机内部就采用这种ROM。 2.1.5 RAM RAM(随机存取存储器,又称可读写存储器、数据存储器)也是一种存储电路。 tyw藏书 RAM的特点是:可以存入信息(称作写),也可以将信息取出(称作读),断电后存储 的信息会全部消失。单片机的RAM主要用来存储一些临时数据。 2.1.6 定时器/计数器 定时器/计数器就像单片机的内部时钟或计数器,可以根据需要将它设为定时器或计 数器。如果要求CPU在一段时间(如5ms)后执行某段程序,可让定时器/计数器工作在定 时状态,定时器/计数器开始计时,当计到5ms后马上产生一个请求信号送到中断控制器, 中断控制器则输出信号让CPU停止正在执行的程序,转而去执行ROM中特定的某段程 序。 如果定时器/计数器工作在计数状态,可以从T0或T1端输入脉冲信号,定时器/计数器 开始对输入的脉冲进行计数,当计数到某个数值时,马上输出一个信号送到中断控制器, 让中断控制器控制CPU去执行ROM中特定的某段程序。 2.1.7 串行通信口 串行通信口是单片机和外部设备进行串行通信的接口。当单片机要将数据传送给外部 设备时,可以通过串行通信口将数据由TXD端输出;外部设备送来的数据可以从RXD端 输入,通过串行通信口将数据送入单片机。 串行是指数据传递的一种方式,串行传递数据时,数据是一位一位进行传递的。 2.1.8 I/O接口 MCS-51系列单片机有4组I/O接口,它们分别是P0、P1、P2和P3端口。单片机通过这 些端口与外部设备连接。这4组端口都是复用端口,既可作为输出端口,也可以作为输入 端口,具体作为哪种端口由单片机内部的程序来决定。 当这些端口用作输入端口时,可以外接键盘、各种传感器和检测开关等输入部件;如 果用作输出端口,可以接发光二极管、继电器等输出部件。 单片机在工作时,输入部件通过输入端口将输入信号送入内部,CPU根据输入信号来 执行ROM中的相关程序,然后从输出端口输出控制信号,控制输出部件工作。 2.1.9 总线控制器 单片机内部用ROM来存储写入的程序,但内部的ROM容量通常较小,只能存储一些 不复杂的程序,如果遇到一些大型复杂的程序,所占容量大,单片机内部的 ROM 将无法 完全装下,解决这个问题的方法就是使用外接存储器。总线控制器主要用于控制外接存储 器,使它能像单片机内部的存储器一样使用。 tyw藏书 2.2 MCS-51系列单片机的引脚功能 tyw藏书 学习单片机技术,一定要了解单片机中各引脚的功能。MCS-51系列单片机共有40个 引脚,各引脚的排列如图2-2所示。 MCS-51系列单片机的40个引脚根据功能可以分作3类:基本工作条件引脚、输入/输 出(I/O)引脚和控制引脚。 2.2.1 基本工作条件引脚 单片机基本工作条件引脚有电源引脚、复位引脚和时钟引脚,只有具备了基本工作条 件,单片机才能开始工作。 图2-2 MCS-51系列单片机各引脚排列图 (1)电源引脚 40脚为电源正极引脚(VCC),20脚为电源负极引脚(VSS)。 电源正极引脚一般接5V电源,电源负极引脚接地。 (2)复位引脚 9脚为复位引脚(RST/VPD)。 在单片机接通电源后,为了使内部电路正常工作,需要复位电路为它提供复位信号, 使内部电路进入初始状态,然后才开始工作。MCS-51 系列单片机采用高电平复位,即外 接复位电路给复位引脚送入高电平信号后,就可以对单片机内部电路进行复位。 9脚还具有掉电保持功能,为了防止掉电使单片机内部RAM中的数据丢失,可在该脚 tyw藏书 再接一个备用电源,掉电时,由备用电源为该脚提供4.5~5.5V的电压,可保持RAM中的 数据不会丢失。 (3)时钟引脚 18、19脚为时钟引脚(XTAL2、XTAL1)。 单片机内部有大量的数字电路,这些数字电路工作时需要时钟信号进行控制,才能有 次序、有节拍地工作。单片机内部的时钟振荡器与时钟引脚外接的定时电路构成时钟振荡 电路,产生时钟信号供给内部电路使用;另外,也可以由外部的振荡器产生时钟信号,通 过时钟引脚送入单片机,供给内部电路。 2.2.2 输入/输出引脚 MCS-51系列单片机有P0、P1、P2和P3共4组I/O接口,每组接口又有8个引脚:P0端口 引脚P0.0~P0.7,P1端口引脚P1.0~P1.7,P2端口引脚P2.0~P2.7,P3端口引脚P3.0~ P3.7。这4组接口既可用作输入端口将外部信号输入单片机,也可以用作输出端口将信号 从单片机内输出。另外,这些接口还具有一些其他功能,具体说明如下。 P0端口(32~39脚)的功能有:输入8路信号,输出8路信号,用作8位数据总线,或 用作16位地址总线中的低8位地址总线。 P1端口(1~8脚)的功能有:输入8路信号,输出8路信号。 P2端口(21~28脚)的功能有:输入8路信号,输出8路信号,用作16位地址总线中 的高8位地址总线。 P3端口(10~17脚)的功能有:输入8路信号,输出8路信号。P3端口的8个引脚还具 有其他功能,具体说明如下。 P3.0:用作串行数据输入端(RXD)。 P3.1:用作串行数据输出端(TXD)。 P3.2:用作外部中断0请求信号输入端( )。 P3.3:用作外部中断1请求信号输入端( )。 P3.4:用作定时器/计数器T0的外部脉冲信号输入端(T0)。 P3.5:用作定时器/计数器T1的外部脉冲信号输入端(T1)。 P3.6:该端在写片外RAM时,输出写控制信号( )。 P3.7:该端在读片外RAM时,输出读控制信号( )。 P0、P1、P2、P3端口具有多种功能,具体应用哪一种功能,由单片机内部的程序来 决定。需要注意的是,在某一时刻,端口的某一引脚只能用作一种功能。 2.2.3 控制引脚 控制引脚的功能主要有:当单片机外接存储器(RAM或ROM)时,通过控制引脚控 tyw藏书 制外接存储器,使单片机能像使用内部存储器一样使用外接存储器;在向单片机编程(即 向单片机内部写入编好的程序)时,编程器通过控制引脚使单片机进入编程状态,然后才 能将程序写入单片机。 控制引脚的功能说明如下。 EA/VPP (31脚):存储器使用控制输入端/编程电压输入端。 当EA=1(高电平)时,单片机使用内部存储器;当EA=0(低电平)时,单片机使用 外接存储器。在用编程器往单片机写入程序时,要在该脚加12~25V的编程电压。 PSEN (29脚):程序存储允许输出端。它是外部ROM读选通控制端,当单片机要从 外接ROM 中读取信息时,该端要输出一个低电平给外接ROM。 ALE/ (30脚):低8 位地址锁存允许信号输出端/编程脉冲输入端。 在外接存储器时,如图2-3所示,该脚输出控制信号到单片机的外接锁存器,让锁存 器将P0 端口送来的 8 位地址信号锁存起来,当作低 8 位地址信号A0~A7(高8位地址A8 ~A15由P2端口送出),这样P0端口不用再输出8位地址信号,就可以空闲下来,用来传 送8位数据信号。在单片机编程时,编程器由该脚将编程脉冲输入单片机。 图2-3 单片机外接存储器 2.3 单片机的基本工作条件与工作时序 2.3.1 基本工作条件 tyw藏书 单片机是一种大规模的数字集成电路,它的基本工作条件是电源、复位信号和时钟信 号,只有具备了这些条件,单片机才能开始工作。 1.电源的提供 单片机内部有各种电路,这些电路在工作时需要提供电源。 40脚为电源正极引脚(VCC),20脚为电源负极引脚(VSS)。 电源正极引脚一般接5V电源,负极引脚接地。 2.复位电路 单片机内部有大量的数字电路,在为这些电路提供电源的同时,还要给它们提供复位 信号,让这些电路都进入初始状态,然后才开始工作。 单片机的复位电路如图2-4所示,9脚为复位引脚(RST)。 图2-4 单片机的复位电路 在接通+5V 电源的瞬间,由于 C1 来不及充电,其两端的电压 UC1为 0V,R2 两端的 电压 UR2为 5V (UC1+UR2=5V),即单片机的9脚为高电平,该高电平信号进入9脚,对 内部电路进行复位,让内部电路都进入初始状态。随着+5V电源对C1不断充电,C1两端的 电压迅速上升,而 R2 两端的电压则迅速下降,当C1两端电压充到5V时,R2两端电压为 0V,单片机9脚变为0V(低电平),复位完成,单片机的内部电路开始工作。由于该复位 过程在单片机接通电源时就会自动进行,故又称上电复位。 如果单片机工作不正常,可按一下复位开关S,在按下开关时,+5V电源通过R1加到9 脚,9脚为高电平,该高电平对内部电路进行复位,使内部电路全部回到初始状态,当S 断开时,9脚变为低电平,复位结束,单片机内部电路全部恢复到起始状态,然后重新开 始工作。该复位过程称作手工复位。 3.时钟电路 tyw藏书 为了让单片机的内部电路有次序、有节拍地工作,需要为这些电路提供时钟脉冲信 号,让时钟信号来控制它们工作。有的电路来一个时钟脉冲就工作一次,有的电路需要来 多个时钟脉冲才工作一次,如果没有时钟脉冲到来,这些电路就不能正常工作。时钟信号 频率越高,这些电路的工作速度越快。 18、19 脚为时钟信号引脚(XTAL2、XTAL1)。单片机可采用两种时钟电路来提供 时钟信号,如图2-5所示。 图2-5 单片机的时钟电路 图2-5(a)采用了内时钟电路,单片机内部的反相放大器与 XTAL2、XTAL1 引脚外 接的反馈兼选频电路(C1、C2、晶振)构成时钟振荡器,产生时钟信号提供给单片机的 内部电路。如果晶振的频率为12MHz,则时钟振荡器产生的时钟信号频率为12MHz。 图2-5(b)采用了外时钟电路,单片机外部的振荡电路产生的时钟信号经放大器放大 后,进入XTAL2引脚,送给单片机的内部电路。单片机XTAL2、XTAL1引脚之间的内部放 大电路由于无外接反馈选频电路,并且XTAL1引脚接地,所以不会产生振荡。 2.3.2 工作时序 单片机是在时钟脉冲的控制下工作的,有的电路来一个时钟脉冲就可完成一次工作, 而有的电路需要来多个时钟脉冲才能完成一次工作。为了方便分析工作时序,单片机中规 定了几种周期:时钟周期、状态周期、机器周期和指令周期。 1.时钟周期 时钟周期是指振荡器产生的时钟信号周期,也即时钟振荡频率的倒数。例如:单片机 时钟信号的频率为12MHz,那么时钟周期就为1/12μs。 2.状态周期 状态周期由两个时钟周期组成,它分为P1节拍和P2节拍,第1个时钟周期为P1节拍, 第2个时钟周期为P2节拍。 3.机器周期 单片机在执行指令时,通常把执行过程划分成几个基本的操作,完成一个基本操作所 tyw藏书 需要的时间称为机器周期。一个机器周期由6个状态周期,也即12个时钟周期组成。 4.指令周期 指令周期是指执行一条指令所需要的全部时间,它通常为1~4个机器周期。例如,单 片机在执行“MOV A,#C3H”指令时,需要2个机器周期,即24个时钟周期,若时钟周期为 1/12μs,那么执行该指令需要2μs。 2.4 单片机的I/O接口 tyw藏书 MCS-51系列单片机有4组I/O接口:P0、P1、P2和P3。前面简单介绍了一下各个端 口,要学好单片机技术,非常有必要详细了解这些端口的内部结构及工作原理。 2.4.1 P0端口 P0端口有P0.0~P0.7共8个引脚,这些引脚除了可作I/O引脚外,在外接存储器时,还 可作地址/数据总线引脚。P0端口每个引脚的内部电路结构都相同,其内部电路结构如图 2-6所示。 图2-6 P0端口内部电路结构 (1)当P0端口用作输出端口时 如果要将P0端口用作输出端口,单片机内部的CPU会发出一个“0”到与门的控制端。 控制端的“0”一方面关闭与门(即与门的一端为“0”时,不管另一端输入何种信号,输出都 为“0”),使地址/数据总线送来的信号无法通过与门;另一方面控制电子开关,让电子开 关与锁存器的 端接通。 此时若给锁存器的写锁存器端送写脉冲信号,内部总线送来的数据就可以通过D端进 入锁存器并从Q和 端输出,如D端输入“1”,则 端输出“0”(Q端输出“1”),该“0”经电 子开关送到场效应管VT2的栅极,VT2截止,从P0端口输出“1”。 也就是说,当给P0端口内部的与门控制端送“0”,同时给写锁存器端送写脉冲信号 时,单片机内部总线的信号就可以通过接口电路从P0端口输出。 (2)当P0端口用作输入端口时 当将P0端口用作输入端口时,P0端口的信号既送到三态门,又送到VT2的漏极。如果 锁存器之前锁存的为“0”,即Q=0、 =1,其中 =1会使VT2导通,P0端口被钳在“0”电平 上,“1”将无法送入P0端口。 tyw藏书 解决的方法是:在将数据输入P0端口前,先通过内部总线向锁存器写“1”,即让 =0,VT2截止,P0 端口输入的“1”就可以送到三态门的输入端,此时再给三态门的读引脚 送一个读控制信号,“1”就可以通过三态门送到内部总线。 也就是说,要将P0端口作为输入端口,先要将P0端口的锁存器写“1”,然后再给输入 三态门送读控制信号,P0端口的数据就可以通过接口电路,送到单片机内部的总线上。 (3)当P0端口用作地址/数据总线引脚时 如果要将 P0 端口用作地址/数据总线引脚,先要给与门的控制端送“1”,于是与门打 开,同时电子开关和非门输出端接通。当地址/数据总线为“1”时,“1”一方面通过与门送 到VT1的栅极, VT1导通,另一方面送到非门,经反相变为“0”,再经电子开关送到VT2的 栅极,VT2截止,VT1导通,VT2截止使P0端口输出为“1”;当地址/数据总线为“0”时, VT1导通,VT2也导通,P0端口输出为“0”。 也就是说,当给与门的控制端送“1”时,内部地址/数据总线上的信号就可以从P0端口 输出, P0端口就可当作地址/数据总线引脚使用。 2.4.2 P1端口 P1端口有P1.0~P1.7共8个引脚,这些引脚可作I/O引脚。P1端口每个引脚的内部电路 结构都相同,其内部电路结构如图2-7所示。 图2-7 P1端口内部电路结构 从图2-7 中可以看出,P1 端口的结构较P0端口简单很多,由于P1端口内部采用了一只 场效应管,并且与电源之间接了一只上拉电阻,所以不需要在P1端口的外部接上拉电 阻。 (1)当P1端口用作输出端口时 如果要将P1端口用作输出端口,应给锁存器的写锁存器CL端送写脉冲信号,内部总 线送来的数据就可以通过 D 端进入锁存器并从Q和 端输出,如D端输入“1”,则 端输 出“0”(Q端输出“1”),该“0”送到场效应管的栅极,场效应管截止,从P1端口输出“1”。 tyw藏书 (2)当P1端口用作输入端口时 当将P1端口用作输入端口时,如果锁存器以前锁存的为“0”,即Q=0、 =1,其中 =1 会使场效应管导通,P1端口被钳在“0”电平上,“1”将无法送入P1端口。所以与P0端口一 样,在将数据输入P1端口前,先要通过内部总线向锁存器写“1”,让 =0,场效应管截 止,P1端口输入的“1”就可以送到输入三态门的输入端,此时再给三态门的读引脚送一个 读控制信号,“1”就可以通过输入三态门送到内部总线。 2.4.3 P2端口 P2端口有P2.0~P2.7共8个引脚,P2端口每个引脚的内部电路结构都相同,其内部电 路结构如图2-8所示。 图2-8 P2端口内部电路结构 从图2-8中可以看出,P2端口的内部结构与P0端口很相似。P2端口也可作I/O引脚,在 外接存储器时,还可以作为地址总线引脚。 (1)当P2端口用作地址总线引脚时 如果要将P2端口用作地址总线引脚,单片机内部的CPU会发出一个控制信号到电子开 关的控制端,让电子开关与内部地址总线接通,地址总线上的信号就可以在通过电子开 关、非门和场效应管后从P2端口引脚输出。 (2)当P2端口用作I/O接口时 如果要将P2端口用作I/O接口,单片机内部的CPU会发出一个控制信号到电子开关的 控制端,让电子开关与锁存器接通。 当将P2端口用作输出端口时,给锁存器的CL端送写脉冲信号,内部总线上的数据就 被锁存进锁存器并从Q端输出,再通过电子开关、非门和场效应管从P2端口引脚输出。 当将P2端口用作输入端口时,如果锁存器以前锁存的为“0”,即Q=0,经非门反相后 会使场效应管导通,P2端口被钳在“0”电平上,“1”将无法送入P2端口。所以与P0、P1端口 一样,在将数据输入P2端口前,先通过内部总线向锁存器写“1”,让Q=1,场效应管截 tyw藏书 止,P2端口输入的“1”就可以送到输入三态门的输入端,此时再给读引脚送一个读控制信 号,“1”就可以通过三态门送到内部总线。 2.4.4 P3端口 P3端口有P3.0~P3.7共8个引脚,P3端口可作为I/O接口,还可以用于其他方面。P3端 口每个引脚的内部电路结构都相同,其内部电路结构如图2-9所示。 图2-9 P3端口内部电路结构 (1)当P3端口用作I/O接口时 如果要将P3端口用作I/O接口,应让与非门的选择输出功能端为“1”,以开通与非门。 当将P3端口用作输出端口时,给锁存器的CL端送写脉冲信号,内部总线送来的数据 就可以通过D端进入锁存器并从Q端输出,再通过与非门和场效应管从P3端口引脚输出。 当将 P3 端口用作输入端口时,应先通过内部总线向锁存器写“1”,让 Q=1,场效应管 截止, P3端口输入的信号就可以通过缓冲器、输入三态门送到内部总线。 (2)当P3端口用作第二功能时 P3端口用作第二功能(又称复用功能)时,实际上也是在该端口输入或输出信号, 只不过输入、输出的是一些特殊功能的信号。所以当P3端口用作第二功能时,其内部电 路的工作原理与用作I/O接口时是一样的,在用作输入功能时,端口的锁存器同样要先 置“1”。 P3端口8个引脚的第二功能详见表2-1。例如P3.2引脚用作第二功能时,该端口可输入 由外部设备送到的中断请求信号,该信号通过缓冲器、输入三态门送到内部总线。 P3端口除了可以接收外界的输入信号外,还可以接收内部的替代输入功能端送来的 信号,该信号通过输入三态门送到内部总线。 总之,P0、P1、P2和P3端口的功能是:都可以作输入或输出端口;P0、P2、P3端口 具有第二功能,各种端口的第二功能见表2-1。例如,表中说明P0端口的第二功能可以用 tyw藏书 作低8位地址总线/数据总线,P2端口可用作高8位地址总线,P3.0端口可用作串行数据接 收端。 表2-1 MCS-51系列单片机各端口的第二功能 2.5 单片机的存储器 一般来说,电路设计好后,它的功能也就固定下来;而对于单ty片w机藏,只书要写入程序不 同,它的功能就会发生变化。写入单片机的程序保存在程序存储器中,单片机在工作时通 过执行程序存储器中的程序来实现不同的功能。 单片机中有两种存储器:程序存储器和数据存储器。程序存储器用来存储编程人员写 入的程序,而数据存储器用来存放单片机工作时的一些临时数据。进行单片机开发一定要 了解单片机存储器的结构。 2.5.1 存储器基础知识 1.存储器常用单位 存储器的常用单位如下。 位(bit):它是计算机中最小的数据单位。由于计算机采用二进制数,所以 1 位二 进制数称作1bit,例如101011为6bit。 字节(Byte,单位简写为B):8位二进制数称为一个字节,1B=8bit。 字(Word):两个字节构成一个字,即2B=1Word。 在单片机中还有一个术语:字长。所谓字长指单片机一次能处理的二进制数的位数。 MCS-51系列单片机一次能处理8位二进制数,所以它的字长为8位。 2.存储器的工作原理 存储器的功能是存取各种二进制数据。存储器的结构如图2-10所示。 图2-10中大虚线框内的部分为存储器的组成结构,它的容量为4bit,可以存储4bit二进 制数;小虚线框内为存储体,存储体中有4个存储单元,每个存储单元可存储1bit二进制 数。为了区分这4个存储单元,对这4个单元分别编号为00、01、10和11。存储器连接的引 线有3种:A0、A1称为地址总线,D0称为数据总线,R/ 、 称为控制总线。 tyw藏书 图2-10 存储器的结构 单片机在工作时,可以取出存储器中的数据,称作读(R);也可以将数据存入存储 器,称作写(W)。下面以图2-10所示存储器为例来说明存储器的工作原理。 (1)存储器的读过程 下面以取出01单元中的“1”为例来说明存储器的读过程。 首先让片选端 =0、读/写控制端R/ =1。 =0经非门反相后变为“1”,它控制电子 开关S2闭合;R/ =1送到三态门1、三态门2的控制端,三态门1处于高阻状态,输入与输 出之间相当于开路,三态门2则处于导通状态。这样数据总线D0就通过S2、三态门2与存 储器内部接通。 然后给地址总线 A0、A1 送地址信号,即让 A0=1、A1=0,这两个地址信号经地址译 码器译码后,从内部行线X0端输出“1”(即X0=1),从列线Y1端输出“1”(即Y1=1), X0=1选中00、01两个单元,Y1=1控制电子开关S1闭合。 这样被选中的01单元中的数据“1”就可以通过S1、三态门2、S2送到外部数据总线D0 上。虽然00单元也被X0=1选中,由于S0是断开的,所以该单元中的数据无法送到数据总 线。 (2)存储器的写过程 下面以向01单元存入数据“1”为例来说明存储器的写过程。 首先让片选端 =0、读/写控制端R/ =0。 =0经非门反相后变为“1”,它控制电子 开关S2闭合;R/ =0送到三态门1、三态门2的控制端,三态门2处于高阻状态,输入与输 出之间相当于开路,三态门1则处于导通状态。这样数据总线D0就通过S2、三态门1与存 储器内部接通。 tyw藏书 然后给地址总线 A0、A1 送地址信号,即让 A0=1、A1=0,这两个地址信号经地址译 码器译码后,从内部行线X0端输出“1”(即X0=1),从列线Y1端输出“1”(即Y1=1), X0=1选中01单元, Y1=1控制电子开关S1闭合。 这样外部数据总线D0上的数据“1”就可以通过S2、三态门1、S1存入被选中的01单元 中。 3.存储器有关术语 (1)总线 总线是指为多个部件传递信息的信号线。根据信号线上传递信息类型的不同,总线可 分为地址总线、数据总线和控制总线。 图2-10中的A0、A1为地址总线,用来传送地址信号;D0为数据总线,用来传送数 据;R/ 、 为控制总线,用来传送控制信号,其中R/ 为读/写控制端,当R/ =1时, 可以读取存储器中的数据,当R/ =0时,可以向存储器写入数据,而 片选端称为片选 控制端,当多片存储器连接在一起时,要对其中一片进行读/写操作,可让该存储器的 =0,而让其他存储器的 =1。 (2)存储容量 存储器的功能是存储二进制数,其存储二进制数的多少称为存储容量。存储器存储容 量的大小,取决于存储器中存储单元的多少和单元中存储二进制数的位数。图2-10所示的 存储器有4个存储单元,每个单元存储1位二进制数,所以它的存储容量为4×1bit;如果每 个单元能存储8位二进制数,那么它的容量就是4×8bit。 大多数存储器的每个存储单元能存1B(8位二进制数),如果一片存储器中有 1024(212)个存储单元,每单元存1B,该存储器的存储容量为1024×8bit,即1KB。 (3)地址编号 存储器中有很多存储单元,为了查找方便,需要给每个单元赋予不同的编号,这就是 地址编号。图2-10所示的存储器中有4个存储单元,它们的地址可以用2位二进制数编号来 表示,地址编号分别是00、01、10、11。如果一个存储器中有1024个存储单元,则至少需 要用12位二进制数来表示,地址编号分别是000000000000,000000000001,…, 111111111110,111111111111。 存储器的存储单元越多,地址编号需要的二进制数位数越多。对于大容量的存储器, 用二进制数进行地址编号非常不方便,也容易出错。为此,现在的存储器都用十六进制数 地址编号来代替二进制数编号。 二进制数地址编号转换成十六进制数地址编号的规则是:将二进制数地址编号从低到 高4位编为一组,高位不足4位补0,再将每4位二进制数转换成十六进制数,得到的即为十 六进制数地址编号。例如,二进制数地址编号0000 1100 0000B、111 1010 0001 B转换成十 六进制数地址编号分别是0 C 0 H、7 A 1 H。 tyw藏书 4.存储器容量的扩展 单片机内部存储器的容量一般不会很大,如果内部存储器容量不够用,可在单片机外 围增加存储器进行容量扩展。图2-11所示就是一种单片机存储器容量扩展示意图。 图2-11 一种单片机存储器容量扩展示意图 如果单片机要读取内部存储器中的数据,内部电路(图2-11中未画出)让 线 为“1”,R/ 线为“1”,并从地址总线A0~A15送出16位地址信号。 =1让外部存储器不 工作, =1经非门变为“0”,内部存储器被选中;R/ =1控制内部存储器执行读操作;A0 ~A15送出的地址信号选中内部存储器中的某个存储单元,该单元中存储的数据就通过数 据线D0~D7输出到单片机的某些电路。 如果单片机要读取外部存储器中的数据,内部电路让 线为“0”,R/ 线为“1”,并 从地址总线A0~A15送出16位地址信号。 =0让外部存储器工作, =0经非门变 为“1”,内部存储器不工作;R/ =1控制外部存储器执行读操作;A0~A15送出的地址信 号选中外部存储器中的某个存储单元,该单元中存储的数据就通过数据线D0~D7输出, 送入单片机内部。 2.5.2 程序存储器 程序存储器(ROM)是存放程序的电路。单片机在编程时,一般先在计算机中用软 件编写程序,再通过编程器将编好的程序写入到程序存储器中,单片机通过执行程序存储 器中的程序来产生各种信号,从而实现各种控制。 1.程序存储器的使用 tyw藏书 MCS-51系列单片机可以使用内部程序存储器,也可以使用外部程序存储器。MCS-51 系列单片机使用内部程序存储器还是外部程序存储器,受31脚 端的控制。 当 端=0时,单片机只能使用外部程序存储器,无法使用内部程序存储器。8031、 8032单片机内部无程序存储器,只能使用外部程序存储器,因此 端必须接地。 当 端=1时,单片机先使用内部程序存储器,容量不够时将会自动使用外部程序存 储器。 2.程序存储器的地址编号 8x51(如8051、8751)单片机内部有4KB的程序存储器(该存储器内有4096个存储单 元,每个单元存储1B),存储单元的地址编号是0000H~0FFFH,当进行扩展外接程序存 储器时,可外接60KB的程序存储器,外部程序存储器的地址编号是1000H~FFFFH。8x51 单片机程序存储器的地址编号如图2-12(a)所示。 图2-12 程序存储器的地址编号 8x52(如8052、8752)单片机内部有8KB的程序存储器,地址编号是0000H~ 1FFFH,当进行扩展外接程序存储器时,可外接 56KB 的程序存储器,外部程序存储器的 地址编号是 2000H~FFFFH。8x52单片机程序存储器的地址编号如图2-12(b)所示。 2.5.3 数据存储器 数据存储器(RAM)用来存放数据和运算结果等信息。与程序存储器一样,单片机 除了可以使用内部数据存储器外,也可以使用外部数据存储器。 MCS-51系列单片机的内部数据存储器有256B的存储空间(即有256个存储单元,每 个单元存储1B数据),地址编号为00H~FFH(也可用0000H~00FFH表示);外部数据 tyw藏书 存储器地址编号为0000H~FFFFH,有64KB的存储空间。外部数据存储器最开始的一段地 址(0000H~00FFH)与内部数据存储器相同,对于相同的地址,单片机是通过不同的指 令来区分的。MCS-51 系列单片机数据存储器的地址编号如图2-13所示。 从图2-13中可以看出,内部数据存储器分为4个区:工作寄存器区、位寻址区、数据 缓存区和特殊功能寄存器区。前3个区的详细结构如图2-14所示。 图2-13 MCS-51系列单片机数据存储器地址编号 图2-14 MCS-51系列单片机数据存储器前3个区的结构 1.工作寄存器区 工作寄存器区的地址编号为00H~1FH,该区域又分为4组(0~3组),每组有8个存 储单元,都用R0~R7表示。单片机在工作时,在同一时间内这4组寄存器中只能有 1 组工 作,到底是哪一组寄存器工作由特殊功能寄存器区内的程序状态字寄存器(PSW)中的 RS1位和RS0位的状态决定,默认为0组工作,具体见表2-2。 表2-2 工作寄存器与RS1、RS0的关系 tyw藏书 例如,当寄存器中的RS1=0、RS0=1时,1组(08H~0FH)寄存器处于工作状态。 2.位寻址区 位寻址区的地址编号为20H~2FH,该区域有16个存储单元,在该区域既可以对某个 存储单元进行字节操作,也可以用位操作指令对某个存储单元进行位操作。下面以图2-15 为例来说明字节操作和位操作的过程。 图2-15 字节操作与位操作 在进行字节操作时,用字节操作指令选中编址为24H的存储单元,然后可以将1B的数 据存入该单元,或从该单元取出。图2-15(a)中是将1B的数据11011001存入编址为24H 的存储单元。 在进行位操作时,用位操作指令选中编址24H,该24H是一个位地址,在图中它是字 节地址24H的第4位,该地址存储了一位数“0”,如果要将该位转换成“1”,可用位操作指令 选中位地址24H,然后将“1”存入该位,该位就变为“1”,整个字节就变为11011001。 单片机在工作时,是通过程序指令区分地址是字节地址还是位地址的,有关的指令知 识将在后续章节介绍。地址编号为20H~2FH的位寻址区有16个存储单元,每个单元有8 位,共有128位,这128位的位地址见表2-3。 表2-3 片内数据存储器中位寻址区的位地址 tyw藏书 3.数据缓存区 数据缓存区又称用户数据区,或称作内部RAM区,它的地址编号为30H~7FH。该区 域一般用来存储随机数据和运算中间结果等。 4.特殊功能寄存器区 特殊功能寄存器(SFR)区内是一些具有特殊功能的存储单元,地址编号是 80H~ FFH。特殊功能寄存器区中各个寄存器的地址分布见表2-4。 表2-4 特殊功能寄存器中各个寄存器的地址分布 从表2-4中可以看出,特殊功能寄存器区有21个特殊的寄存器,每个寄存器都有一个 地址,如寄存器A(累加器)的地址是E0H,寄存器PCON的地址是87H,各寄存器的地址 tyw藏书 很多是不连续的,第1列的寄存器还具有位寻址功能。特殊功能寄存器区有128个存储单元 (80H~FFH),而真正定义的只有21个单元,对于未定义的单元用户不可使用。 21个特殊功能寄存器的名称、位地址和复位初值见表2-5。 表2-5 MCS-51系列单片机内21个特殊功能寄存器的名称、位地址和复位初值 续表 由于表2-5所列的特殊功能寄存器非常重要,下面先简单介绍一下其中一些常用寄存 器的功能,在以后的学习中将逐步深入说明。 (1)累加器A 累加器A的地址是E0H,它是单片机内应用最多的寄存器。 (2)寄存器B 寄存器B的地址是F0H,它主要用于乘、除运算。 (3)程序状态字寄存器(PSW) 程序状态字寄存器(PSW)的地址是 D0H,它是一个状态指示寄存器(又称标志寄 存器),用来指示系统的工作状态。PSW是一个8位寄存器,可以存储8位数值,每位数值 代表不同的功能。PSW各位的功能如下。 tyw藏书 D7位(CY):进位标志位。在单片机进行加法运算时,如果相加有进位时CY=1,无 进位时CY=0;在进行减法运算时,当有借位时CY=1,无借位时CY=0。 D6位(AC):辅助进位标志位。在进行加、减运算时,低4位向高4位有进位或借位 时,AC=1,否则AC=0。 D5位(F0):用户可自定义的程序标志位。可用软件对该位置“1”或置“0”。 D4位(RS1)、D3位(RS0):工作寄存器选择位。这两位用来控制工作寄存器区 (00H~1FH) 4组中的某一组寄存器进入工作状态,具体见表2-2。 D2 位(OV):溢出标志位。在进行有符号数运算时,如果运算结果不在−128~+127 范围内, OV=1,否则OV=0。 D1位:保留位,该位不可使用。 D0位(P):奇偶校验位。该位用于对累加器A中的数据进行奇偶校验,当累加器A 中“1”的个数为奇数个时,P=1;为偶数个时,P=0。MCS-51系列单片机总是保持累加器A 与P中“1”的总个数为偶数,例如累加器A中“1”的个数为奇数个,那么P要为“1”,这样才能 让两者“1”的总个数为偶数,这种校验方式称作偶校验。 (4)数据指针寄存器(DPTR) 数据指针寄存器(DPTR)是一个16位寄存器,由DPH和DPL两个8位寄存器组成,地 址分别是83H、82H,用它可以访问单片机外部数据存储器中的数据。 (5)堆栈指针寄存器(SP) 人们在日常洗碗碟时,通常是将洗完的碗碟一只一只由下往上堆起来,使用时则是将 碗碟从上往下一只一只取走。这个过程有两个要点:一是这些碗碟的堆放是连续的;二是 先堆放的后取走,后堆放的先取走。 单片机中的堆栈与上述情况类似。堆栈是指在单片机数据存储器中划分出的一个连续 的存储空间,这个存储空间存取数据时具有“先进后出,后进先出”的特点。 在存储器存取数据时,首先由系统给出地址选中某个单元,再将数据存入或取出。如 果有一批数据要连续存入存储器,例如将一批5组数据依次存入地址为30H~34H的存储单 元中,按一般的方法系统先给出地址30H,选中地址为30H的存储单元,再将第1组数据存 入该单元,然后给出地址31H,选中地址为31H的存储单元,再将第2组数据存入该单 元……显然这样存取数据比较麻烦,采用堆栈可以很好地解决这个问题。 在数据存储器中划分堆栈的方法是:通过编程的方法设置堆栈指针寄存器(SP)的 值,如让SP=2FH,堆栈指针寄存器就将存储器的 2FH 单元设置为堆栈的栈顶地址,2FH 单元后面的连续存储单元就构成了堆栈,如图2-16所示。堆栈设置好后,就可以将数据依 tyw藏书 次存入堆栈或从堆栈中取出,在堆栈中存取数据按照“先进后出,后进先出”的规则进行。 图2-16 在数据存储器中划分堆栈 需要注意的是,堆栈指针寄存器中的值并不是堆栈的第1个存储单元的地址,而是前 一个单元的地址,例如SP=2FH,那么堆栈的第1个存储单元的地址是30H,第1组数据存 入30H单元中。 在单片机通电复位后,堆栈指针寄存器的初始值为07H,这样堆栈第1个存储单元的 地址就为08H。由于08H~1FH地址已划分给1~3组工作寄存器,在需要用到堆栈时,通 常通过编程将堆栈设置在30H~7FH的数据缓存区(只要将堆栈指针寄存器的值设为2FH 即可)。 tyw藏书 第3章 单片机的开发过程 单片机开发与普通电路开发不同,普通电路只要进行硬件开发后功能就基本固定不变 了;而单片机开发包括硬件开发和软件开发,硬件开发完成后单片机还不能工作,还需要 向单片机内写入程序,写入的程序不同,单片机实现的功能就会不同。 开发一个单片机应用系统前,首先要明确单片机开发需要实现什么功能,根据需要完 成的功能选择单片机并设计单片机外围电路,然后编写程序,再编译、仿真和调试程序, 如果程序正确无误,就可以通过编程器将程序写入单片机,最后将写入程序的单片机安装 在之前设计好的电路中,单片机就能在内部程序的控制下,通过外围电路完成相应的功 能。单片机应用系统的开发过程如图3-1所示。 图3-1 单片机应用系统的开发过程 3.1 单片机的硬件开发过程 在进行单片机应用系统开发时,一般先进行硬件开发,再进行ty软w件藏开发书。单片机的硬 件开发一般可按下面几个步骤进行。 3.1.1 明确单片机应用系统要实现的功能 在进行单片机开发时,一定要明确开发出来的单片机应用系统需要实现什么样的功 能,之后的硬件、软件设计都要围绕着单片机要实现的功能进行。 例如,要开发一个控制发光二极管亮灭的单片机应用系统,具体功能要求如下。 ① 采用4个开关控制4只发光二极管。 ② 按下某个开关,相应的发光二极管会发光;松开开关,发光二极管会熄灭。 ③ 同时按下4个开关,4只发光二极管都亮。 3.1.2 选择单片机型号 明确单片机应用系统要实现的功能后,再选择单片机的种类和型号。单片机的种类很 多,如PIC系列单片机、MCS-51 系列单片机等,这些单片机又有很多型号,不同型号的 单片机结构和功能有所不同,编程时软件指令也有所不同。 在选择单片机型号时,一般应注意以下两点。 ① 在功能够用的情况下,考虑性能价格比。有些型号的单片机功能强大,但相应的 价格也较高,而选择单片机型号时功能足够即可,不要盲目选用功能强大的单片机。 ② 选择自己熟悉的单片机。不同系列的单片机内部硬件结构和软件指令或多或少有 些不同,而选择自己熟悉的单片机可以提高开发效率,缩短开发时间。 这里选择Atmel公司的AT89S51型号的单片机,选择的理由除了AT89S51单片机与8051 单片机完全兼容(引脚数及功能相同,软件指令也相同,内部结构基本相同)外, AT89S51单片机在市场上也比较容易获得(8051已不生产),另外AT89S51单片机内部的 程序存储器采用可反复擦写的EEPROM,这样有利于反复修改程序,而8051单片机内部的 程序存储器只能写一次。 3.1.3 设计单片机外围电路 单片机的外围电路主要有基本工作条件电路、输入电路和输出电路。根据单片机要实 现的功能设计出来的单片机外围电路如图3-2所示。 tyw藏书 图3-2 单片机外围电路 (1)基本工作条件电路 单片机的VCC电源引脚接+5V电源,C3、R5构成复位电路,晶振X和电容C1、C2与内 部电路构成时钟电路,这些电路分别为单片机提供电源、复位信号和时钟信号,单片机即 开始工作。 (2)输入电路 按键 S1~S4 构成输入电路。当按下某按键时,单片机相应的输入引脚为低电平;当 按键弹起时,相应的输入引脚为高电平。 (3)输出电路 发光二极管VD1~VD4和电阻R1~R4构成单片机的输出电路,其中R1~R4为限流电 阻,用于防止流过发光二极管的电流过大而损坏发光二极管。当单片机的某个输出引脚为 低电平或高电平时,该引脚外接的发光二极管就会亮或灭。 单片机外围电路设计好后,可以将这些电路做在一块电路板上,为了方便之后的单片 机软件开发,可在安装单片机的位置处安装一个40引脚的插座,这样在仿真、编程时可使 单片机容易插入和取出。这样制作出来的电路板常称作实验板。 3.2 单片机的软件开发过程 单片机软件开发过程是先编写程序,再编译、仿真和调试程序ty,w然藏后用书编程器将程序 写入单片机。这几个过程可以分别用几个软件完成,也可以在一个软件中完成。现在很多 单片机开发人员都采用Keil公司开发的KeilC51软件来编写、编译、仿真和调试程序。 3.2.1 编写程序 在编写程序前,需要先安装 KeilC51 软件,然后在该软件中建立项目和源程序文件, 再在源程序文件中编写程序。 1.KeilC51软件的获取与安装 KeilC51软件是德国Keil公司开发的51系列单片机编程软件,在该软件中,用户可用 汇编语言或C语言编写程序,然后对程序进行编译、仿真和调试。 如果读者需要该软件,可到Keil公司网站http://www. Keil.com下载Eval(评估)版 本,也可登录易天教学网(www.eTV100.com)下载。下载该软件后获得的是一个压缩 包,解压后运行SETUP文件夹中的Setup.exe文件,即开始安装软件。在安装时,首先会出 现图3-3所示的对话框,如果不是商业用户,单击“Eval Version”(评估版本)按钮,软件 即开始安装,后面的安装过程与一般的软件安装过程相同,这里不再赘述(注:评估版本 软件对编写的程序要求不能大于 2KB,其他与商业版软件相同。对于初学者来说, KeilC51评估版本基本够用)。 图3-3 选择软件安装版本对话框 2.新建项目和源程序文件 KeilC51 软件安装完成后,双击桌面上的“Keil μVision2”图标,或单击桌面左下角 的“开始”按钮,在弹出的菜单中选择“程序”→“Keil μVision2”命令,就可以启动 Keil μVision2,进入图3-4所示的“μVision2”软件窗口。 (1)新建项目 在进行单片机程序开发时,为了便于管理,需要先在“μVision2”中建立一个项目,然 后在该项目中编写、仿真和调试程序。新建项目的操作过程如下。 ① 选择“Project”→“New Project”菜单命令,如图3-5所示,立刻弹出图3-6所示 的“Create New Project”(建立新项目)对话框。 tyw藏书 ② 在“Create New Project”对话框中选择文件保存的位置,再输入项目文件名“test1”, 文件的默认扩展名(类型)为“.uv2”,然后单击“保存”按钮,立刻弹出图3-7所示的对话 框,要求选择为哪种型号的单片机编写程序。 图3-4 μVision2软件窗口 图3-5 执行新建项目命令 tyw藏书 图3-6 建立新项目对话框 图3-7 选择单片机型号对话框 ③ 在图3-7所示对话框左侧的选择区内选择单片机型号为 Atmel 公司的“AT89S51”, 然后单击“确定”按钮,会弹出图3-8所示的对话框,该对话框询问是否要把标准8051的启 动代码添加到项目中。 图3-8 询问是否将标准8051的启动代码加入到项目中 KeilC51既支持C语言编程也支持汇编语言编程,如果欲用汇编语言编写程序,则应 单击“否”按钮;如果想用C语言编写程序,一般也单击“否”按钮;但是如果用到了某些增 强功能需要初始化配置时,则可以单击“是”按钮。这里单击“否”按钮(即不添加启动代 tyw藏书 码),新建项目结束,在图3-9所示μVision2 软件窗口左边的项目管理器中新增了一 个“Target 1”文件夹,该文件夹中还有一个“Source Group 1”文件夹。 图3-9 新建项目完毕,在μVision2软件窗口中新增“Target 1”文件夹 (2)新建源程序文件 要编写程序,还需要新建一个源程序文件,再在该文件中编写程序。 新建源程序文件的操作过程如下。 ① 新建源程序文件。单击工具栏中的新建按钮 ,也可选择“File”→“New”菜单命 令,即新建一个默认名为“Text 1”的空白文件,同时该文件在软件窗口中打开,如图3-10 所示。 tyw藏书 图3-10 新建源程序文件 ② 保存源程序文件。单击工具栏上的保存按钮 ,也可选择“File”→“Save As”菜单 命令,弹出图3-11所示的“Save As”对话框。在对话框中打开之前建立的项目文件所在的文 件夹,再将文件命名为“test1.asm”(扩展名.asm表示为汇编程序,不能省略),单击“保 存”按钮即将该文件保存下来。 图3-11 保存源程序文件对话框 ③ 建立源程序文件与项目关联。新建的源程序文件与新建的项目没有什么关联,需 要将它加入到项目中。打开项目管理器的“Source Group 1”文件夹,右击该文件夹,弹出 图3-12所示的快捷菜单,在该快捷菜单中选择“Add Files to Group’Source Group 1’”项,会 出现图3-13所示的加载文件对话框。在该对话框中选文件类型为“Asm Source file”,找到 新建的“test1.asm”文件,再单击“Add”按钮,test1.asm文件即被加入到项目中,此时对话框 并不会消失,可以继续加载其他文件,单击“Close”按钮关闭对话框。在Keil软件项目管理 器的“Source Group 1”文件夹中可以看到新加载的“test1.asm”文件,如图3-14所示。 tyw藏书 图3-12 在快捷菜单中选择加载文件命令 图3-13 在对话框中选择要加载的文件 3.编写程序 编写程序有两种方式:一是直接在 Keil 软件中编写;二是在其他软件中编写,再加 载到 Keil软件中。 tyw藏书 图3-14 软件项目管理器中出现加载的文件 (1)在Keil软件中编写程序 在Keil软件的源程序文件中用汇编语言编写程序(也可以用C语言编写),如图3-15 所示。 图3-15 在源程序文件的文本框内编写程序 源程序文件中的汇编语言程序如下: MAIN: MOV  P3,#0FFH tyw藏书 LOOP: MOV P1,P3 LJMP LOOP END 有关程序的编写方法在后面的章节将专门介绍。 (2)加载其他软件编写的程序 Keil 软件源程序文件的文本框对中文的支持不是很好,在输入中文时,有时会出现文 字残缺现象。编程时也可以使用其他文本编辑器(如 Windows 自带的记事本)编写程 序,再将程序加载到Keil软件中进行编译、仿真和调试。加载其他软件编写的程序的过程 如下。 ① 用文本编辑器编写程序。打开Windows 自带的记事本,在其中编写程序,如图3- 16所示。编写完后将该文件保存下来,文件的扩展名为.asm或.a51,这里将文件保存为 test1S.asm。 图3-16 用记事本编写程序 ② 将程序文件装载进 Keil 软件。加载程序文件的过程与图3-12~图3-14所示的过程 相同,具体操作过程如下。 打开Keil软件,在项目管理器中的“Source Group 1”文件夹上右击,弹出快捷菜单,选 择其中的“Add Files to Group’Source Group 1’”项,会出现加载文件对话框,在对话框中选 文件类型为“Asm Source file”,然后找到之前编写的“test1S.asm”文件,再单击“Add”按钮, test1S.asm文件即被加载进Keil软件中,单击“Close”按钮关闭对话框。 加载程序结束后,可以在项目管理器的“Source Group 1”文件夹中看到加载进来 的“test1S.asm”文件,如图3-17所示,双击可以打开该文件。 tyw藏书 图3-17 用记事本编写的程序被加载进项目管理器 3.2.2 编译或汇编程序 用汇编语言写好程序后,程序还不能直接写入单片机,因为单片机只接受二进制数, 所以要将汇编语言程序转换成二进制或十六进制代码(又称机器代码)。将汇编语言程序 或其他程序(如 C语言程序)转换成二进制或十六进制代码的过程称为汇编或编译。 汇编要用到汇编器,汇编器可以将汇编语言程序转换成二进制或十六进制代码;编译 要用到编译器,编译器可以将高级语言程序(如C语言程序)转换成二进制或十六进制代 码。不同类型的单片机需要使用不同的汇编器或编译器,MCS-51系列单片机对汇编语言 程序汇编时采用A51汇编器,而对C语言程序编译时采用C51编译器。 KeilC51 软件本身带有汇编器和编译器,在对程序进行汇编或编译时,会自动调用相 应的汇编器或编译器。下面以汇编test1.asm程序为例,说明汇编和编译的过程。 (1)汇编或编译前的设置 在汇编或编译程序前需要对项目进行一些设置。设置时,选择“Project”→“Options for Target ’Target 1’”菜单命令,弹出图3-18所示的对话框。该对话框中有 10 个选项卡,每个 选项卡中都有一些设置内容,其中“Target”和“Output”选项卡较为常用,默认打 开“Target”选项卡,这里保持默认值。 tyw藏书 图3-18 Target选项卡中的内容 单击“Output”选项卡即可切换到该选项卡,该选项卡的内容如图3-19所示。这里只选 中“Create HEX Fi”复选框,选中该复选框后在汇编或编译时会生成扩展名为.hex的十六进 制文件。 tyw藏书 图3-19 Output选项卡中的内容 (2)进行汇编或编译 在图3-19所示的“Options for Target’Target 1’”对话框中设置完成后,单击“确定”按钮, 返回到Keil软件界面,然后单击编译或汇编按钮 ,软件就开始对test1.asm文件中的程序 进行编译或汇编,完成后,在软件窗口下方的输出窗口中可看到有关的编译或汇编信息。 如图3-20所示,如果出现“0 Error(s),0 Warning(s)”,则表示程序没有问题(至少在语法上 不存在问题);如果存在错误或警告,则要认真检查程序,修改后再编译或汇编,直到通 过为止。 tyw藏书 图3-20 程序汇编或编译结束出现有关的汇编或编译信息 编译或汇编完成后,打开项目文件所在的文件夹,会发现生成了一个“test1.hex”文 件。该文件是由汇编器将汇编语言程序汇编成的十六进制代码,用记事本程序打开它,可 以看见该文件的具体内容,如图3-21所示。通过编程器可以将test1.hex文件中的内容写入 到单片机中。 图3-21 汇编生成的test1.hex文件的内容 3.2.3 仿真、调试程序 编写的程序能顺利编译成功,只能说明程序语法上没有问题,不能保证该程序写入单 片机后一定能达到预期的效果。为了让程序写入单片机后能达到预期的效果,可以对程序 进行仿真和调试。当然如果认为编写的程序没有问题,也可以不进行仿真、调试,而直接 用编程器将程序写入单片机。 仿真有软件仿真和硬件仿真两种。软件仿真是指在软件中(如Keil μVision2)运行编 写的程序,通过观察程序运行的情况来分析、判断程序是否正常。硬件仿真是指将实验 板、仿真机和个人计算机(PC)连接起来,在软件中将程序写入仿真器,让程序在仿真 器中运行,同时观察在实验板上是否实现了预期的效果。 tyw藏书 在仿真的过程中,如果发现程序出现了问题,就要找出问题的所在,并改正过来,然 后再编译、仿真,有问题再改正,如此反复,直到程序完全达到要求,这个过程称为仿 真、调试程序。因为这两个步骤是交叉进行的,所以一般将它们放在一起说明。 由于仿真、调试程序涉及的知识面很广,如果阅读时理解有困难,可稍微浏览一下本 部分内容再去学习后面的知识,待掌握后面一些章节的知识后再重学这部分内容。 1.软件仿真 程序是由一条条指令组成的,前面的“MOV P3,#0FFH”就是一条指令。单片机在执 行程序指令时,一般会改变数据存储器中的值。软件仿真就是让软件模拟单片机来一条一 条执行程序指令,再在软件中观察相应寄存器中值的变化,以此来分析判断程序能否达到 预期的效果。 在Keil μVision2软件中除了可以编写、编译程序外,还能仿真、调试程序,仿真、调 试程序时可按下面的步骤进行。 (1)软件设置 软件仿真指用软件模拟单片机逐条执行程序指令。为了让软件仿真更接近真实的单片 机,要求在仿真前对软件进行一定的设置。为了更好地说明软件仿真的效果,下面以仿真 的test2.asm文件为例进行介绍,如图3-22所示。 图3-22 选择要仿真的文件 软件仿真设置的操作过程如下。 ① 选择“Project”→“Options for Target’Target 1’”菜单命令,弹出图3-23所示的设置对话 框,切换到“Target”选项卡,再将其中的“Xtal(MHz)”(单片机时钟频率)项设为 12.0MHz,然后单击“Output”选项卡,切换到图3-24所示的对话框。 tyw藏书 图3-23 仿真设置对话框中的“Target”选项卡 ② 在图3-24所示的对话框中选中“Create HEX Fi”(建立HEX 文件)复选框,这样在 编译时可以生成扩展名为.hex 的十六进制的文件,然后单击“Debug”选项卡,切换到图325所示的对话框。 tyw藏书 图3-24 在仿真设置对话框的“Output”选项卡中选中“Create HEX Fi”复选框 图3-25 在“Debug”选项卡中选中“Use Simulator”单选按钮 ③ 在图3-25所示的对话框中选中“Use Simulator”(使用仿真)单选按钮,再单击“确 定”按钮,退出设置对话框。 (2)编译或汇编程序 软件设置好后,还要将程序文件(.asm格式)编译或汇编成十六进制.hex格式的文 tyw藏书 件,因为仿真器只认识这种机器语言文件。在图3-26所示的软件窗口中单击编译或汇编按 钮 ,系统开始对test2.asm文件进行编译或汇编。完成后,如果在窗口下方的区域显 示“"2" - 0 Error(s),0 Warning(s)”,则表明程序编译或汇编时没有出现错误。编译或汇编 生成的test.hex文件会自动放置在项目文件中,在软件窗口无法看到,但在仿真、调试时, 软件会自动执行该文件。 (3)仿真、调试程序 程序编译或汇编完成后,就可以开始仿真、调试。通常先在软件中启动仿真、调试, 然后根据需要进行各种仿真、调试操作。 图3-26 在工具栏上单击编译或汇编工具按钮 ① 启动仿真、调试。选择“Debug”→“Start/Stop Debug Session”菜单命令,软件马上进 入图3-27所示的仿真等待状态。从图3-27 中可以看出,软件窗口左侧的项目管理器自动由 文件管理器切换成寄存器状态显示器,在窗口中间还悬浮着P0端口寄存器状态显示框 (如果该显示框没有出现,可以通过选择“Peripherals”→“I/O Ports”→“Port 0”菜单命令将 它调出来)。 tyw藏书 图3-27 软件处于仿真等待状态 ② 进行仿真、调试。单击工具栏上的仿真按钮 ,软件开始执行程序进行仿真。 第1 次单击该按钮时,软件执行第1 行程序指令“MOV A,#0D5H”,该行指令执行完 后,黄色箭头移到第2行。第1行程序指令的执行结果如图3-28所示。从图3-28中可以看 出,第1行指令执行完后,软件窗口左侧寄存器状态显示框中累加器a的数据变为0xd5(这 里0x的含义是说明它后面的d5是十六进制数),同时程序状态字寄存器psw中的数据变为 0x01,它的奇偶校验位p由“0”变为“1”。 tyw藏书 图3-28 第1次单击单步仿真工具按钮 第2次单击仿真按钮 ,软件执行第2行程序指令“MOV R1, #0F7H”,该行指令执行 完后,黄色箭头移到第3行。第2行程序指令的执行结果如图3-29所示。从图3-29中可以看 出,第2行指令执行完后,软件窗口左侧状态显示框中寄存器r1的数据变为0xf7。 tyw藏书 图3-29 第2次单击单步仿真工具按钮 第3次单击仿真按钮 ,软件执行第3行程序指令“MOV A, #00H”,该行指令执行完 后,黄色箭头移到第4行。第3行程序指令的执行结果如图3-30所示。从图3-30中可以看 出,第3行指令执行完后,软件窗口左侧状态显示框中累加器a的数据变为0x00,程序状态 字寄存器psw中的数据变为0x00,它的奇偶校验位p由“1”变为“0”。 tyw藏书 图3-30 第3次单击单步仿真工具按钮 第4次单击仿真按钮 ,软件执行第4行程序指令“MOV P0, #00H”,该行指令执行完 后,黄色箭头移到第5行。第4行程序指令的执行结果如图3-31所示。从图3-31中可以看 出,第4行指令执行完后,软件窗口中悬浮的P0端口寄存器状态显示框中的7~0位都变 为“0”(0x00)。 tyw藏书 图3-31 第4次单击单步仿真工具按钮 第5次单击仿真按钮 ,软件执行第5 行程序指令“SETB P0.2”,该行指令执行完后, 黄色箭头移到第6行。第5行程序指令的执行结果如图3-32所示。从图3-32中可以看出,第 5行指令执行完后,P0端口寄存器状态显示框的第2位(P0.2)变为“1”(0x04)。 图3-32 第5次单击单步仿真工具按钮 第6次单击按钮 ,软件执行第6行程序指令“LJMP LOOP”。由于该行指令的功能是 跳转执行标号LOOP处的指令,所以该行指令执行完后,自动跳转执行第1行,执行完第1 行后黄色箭头移到第2行。第6行指令的执行结果如图3-33所示。从图3-33中可以看出,第 6行指令执行完后,累加器a的数据又变为0xd5,程序状态字寄存器psw中的数据也发生了 变化。 tyw藏书 图3-33 第6次单击单步仿真工具按钮 如果单击工具栏中的编辑按钮 ,软件马上切换到汇编显示窗口,如图3-34所示。 在汇编显示窗口中,第1行为编写的第1行程序指令“LOOP: MOV A, #0D5H”;第2行的第1 列为第1行指令在程序存储器中保存的地址,图3-34中指示出指令保存在0x0000地址开始 的单元中(该指令是 图3-34 汇编显示窗口 2B指令,保存在0x00和0x01单元中),第2列为指令的十六进制代码,该指令的十六 进制代码为74D5,第3、4列是第1行指令的另一种编写形式。汇编显示窗口其他行的显示 规律与第1、2行相同。 当软件处于汇编显示状态时,单击工具栏上的仿真按钮 ,软件开始执行程序仿 真,如图3-35所示。程序执行时的信息在汇编显示窗口和寄存器状态显示器中都可以观察 到。 tyw藏书 图3-35 在汇编显示窗口中单击单步仿真工具按钮进行仿真 在用软件对程序进行仿真运行时,如果观察到有关寄存器的状态不正常,可选 择“Debug”→“Start/Stop Debug Session”菜单命令,让软件停止仿真来更改程序,更改(调 试)完成后,再将调试后的程序重新汇编,然后再进行仿真,如此反复,直到程序运行符 合要求为止。 ③ 一些仿真工具的说明。前文用到了与仿真有关的几个工具,为了更好地进行仿真 操作,这里再对其他一些仿真工具进行说明。常用的仿真工具按钮如图3-36(a)所示, 各按钮的功能说明见图3-36(b)的标注。 tyw藏书 图3-36 各仿真工具的按钮及功能说明 2.硬件仿真 (1)仿真器 软件仿真指在软件中让程序在模拟的单片机中运行,通过观察运行过程中有关寄存器 的数据变化情况来判断程序是否正常。这样虽然方便,但却无法观察到程序在实际的单片 机中运行的效果。 要想知道编写的程序在单片机中运行时能否达到预期的效果,可以通过编程器将程序 写入单片机,然后将写好程序的单片机插入实验板,观察程序在单片机内部运行时对实验 tyw藏书 板外围电路的实际控制效果。如果未达到预期的效果,就需要在软件中检查、修改程序, 然后从实验板上取下单片机,放入编程器,将以前的程序擦除,再将修改后的程序写入, 如此反复,直到程序在单片机中运行时能达到预期的控制效果。 这样做的缺点是显而易见的:一是反复插拔单片机,易损坏单片机引脚;二是反复擦 写单片机,易使内部的程序存储器(ROM)失效,毕竟ROM的擦写次数有限;三是程序 写入单片机后,程序指令会从前往后运行,无法进行人为控制,因此当单片机产生的控制 不正常时,无法判断是哪行程序出现问题造成的。 硬件仿真可以很好地解决这个问题,而硬件仿真要用到仿真器。硬件仿真器可以看作 是一个单片机。在使用时,要先将实验板上的单片机取下,再将仿真器插在单片机的位置 上。由于仿真器较大,不方便直接插在实验板的单片机位置上,一般是通过多针双头插线 (如MCS-51系列单片机采用40针插线),插线一端插在仿真器上,另一端插在单片机位 置上,这样整个仿真器就相当于一个单片机。为了使程序能被随时写入仿真器,仿真器还 通过接口插头与计算机连接。 仿真器虽然相当于一个单片机,但在调试程序时较单片机有很多优点。一是它通过连 接线始终与计算机连接,计算机可以随时将程序写入,不像单片机需要在实验板和编程器 之间反复插拔;二是仿真器的擦写次数高达100万次,无须担心因擦写程序而使仿真器失 效;三是在计算机软件中可以控制程序在仿真器中的运行进程,如可以让程序指令在仿真 器中一条一条地运行,这样易找出有问题的程序指令,方便程序的修改。 仿真器的外形如图3-37所示。从图3-37 中可以看出,仿真器实际上就是一块电路板, 电路板上有仿真芯片和外围元件。仿真器上安插着一个40针的排线,该排线一端插在仿真 器上,另一端是一个40针的插头(与单片机引脚排列相同),在仿真时,该插头取代单片 机而插在实验板中单片机的位置上。仿真器还有两个接口:一个是USB接口,该接口通过 USB线与计算机的USB接口相连,用于向计算机的USB接口取+5V的工作电压;另一个是 COM接口,该接口通过COM线与计算机的COM接口相连,仿真器通过COM线与计算机进 行数据传送。 tyw藏书 图3-37 仿真器 (2)硬件仿真过程 硬件仿真的过程一般是:首先连接仿真器,然后进行仿真设置,再进行仿真。仿真时 若发现问题要进行调试,程序仿真通过后就可以用编程器将程序写入单片机。 ① 连接仿真器。进行硬件仿真,首先要将仿真器、实验板和计算机连接好。以图337所示的仿真器为例,先将实验板上的单片机取下,将仿真器的40针插头插入实验板中单 片机的位置上,然后用COM线将仿真器COM接口和计算机的COM接口连接起来,最后用 USB线将仿真器的USB接口与计算机的USB接口连接起来。 ② 仿真设置。与软件仿真一样,硬件仿真也要进行设置,设置过程如下。 选择“Project”→“Options for Target’Target 1’”菜单命令,弹出图3-38所示的仿真设置对 话框。在该对话框中对“Target”和“Output”选项卡内容的设置与软件仿真设置一样, 而“Debug”选项卡的设置有些不同,单击“Debug”选项卡,切换到该选项卡,如图3-39所 示。 tyw藏书 图3-38 仿真设置对话框 图3-39 在仿真设置对话框的“Debug”选项卡中选中“Use”单选按钮,并选择仿真器 在图3-39所示的“Debug”选项卡中选中“Use”单选按钮,再在后面的下拉列表框中选择 仿真器设备类型为“Keil Monitor-51 Driver”,因为所连接的仿真器就是这种类型。然后单 击“Settings”按钮,弹出图3-40所示的“Target Setup”对话框,在“Port”下拉列表框中选择计 算机连接仿真的COM接口,因为仿真器连接的是计算机的COM1接口,所以选 择“COM1”,再在“Baudrate”下拉列表框中选择 COM1接口的数据传送速率,这里选 择“38400”,然后单击“OK”按钮,关闭对话框,回到图3-39所示的对话框,在该对话框中 单击“确定”按钮,关闭对话框,设置完毕。 tyw藏书 图3-40 仿真器设置对话框 ③ 进行仿真。仿真设置完成后,单击编译按钮 对程序文件进行编译或汇编,完成 后,如果在窗口下方的区域显示“0 Error(s), 0 Warning(s)”,则表明程序汇编时没有出现错 误,然后选择“Debug”→“Start/Stop Debug Session”菜单命令,软件立刻进入图3-41所示的 仿真等待状态。 图3-41 仿真等待状态 后面的仿真操作过程与软件仿真基本相同。硬件仿真与软件仿真的不同之处在于:软 件仿真时只能在软件中观察到程序执行时各寄存器的数据变化情况;而在硬件仿真时,不 tyw藏书 但可以在软件中观察到各寄存器的状态,而且在软件中执行的程序指令会同步通过计算机 的 COM 接口送入仿真器,还可以在实验板上观察到程序在仿真器(相当于单片机)中运 行时对外围元件的控制效果。 在硬件仿真时,如果在软件中发现有关寄存器的状态不正常,或者实验板控制不正 常,则要找出是程序问题还是实验板的电路问题,再进行改正。如果是程序问题,改正后 还要对改正后的程序重新编译,再进行仿真,否则仿真的还是修改前的程序。 3.2.4 用编程器将程序写入单片机 编写的单片机程序经编译、仿真和调试完成后,如果确定没有问题,就可以用编程器 将程序写入单片机。 1.编程器 编程器的主要功能有两个:一是擦除单片机中的程序,二是向单片机中写入程序。不 同类型的单片机一般需要不同的编程器,也有些编程器可以擦写多种类型的单片机,但其 价格较贵。 图3-42所示是SP-51pro编程器的外形,它主要用于擦写MCS-51系列单片机,支持的 类型有最为经典和市场占有量最大的 Atmel 公司 51 系列 AT89C51、AT89C52、 AT89C55、AT89C1051、AT89C2051、AT89C4051、AT89S51、AT89S52、AT89LV52、 AT87F51等单片机和华邦公司的W78E51、W78E52单片机及串行存储芯片AT24C02等。购 买编程器时,可以查看该编程器附带的说明书,以了解它是否支持自己所使用的单片机。 tyw藏书 图3-42 SP-51pro编程器外形 2.用编程器擦写单片机程序 用编程器擦写单片机程序,首先要将编程器与计算机连接起来,再在编程器的插座中 插入要擦写的单片机,然后启动编程软件,在软件中对单片机进行擦写操作。 (1)连接编程器 在连接编程器时,先将编程器的COM接口(用作数据通信)与计算机的COM接口连 接好,如图3-43所示。然后将要擦写的单片机安插在编程器相应的插座中,再用一根USB 线将编程器的USB接口与计算机的USB接口连接起来,让计算机通过这根USB线向编程器 提供+5V的工作电压。 图3-43 连接编程器 (2)擦写单片机 tyw藏书 欲使编程器能够擦写单片机中的程序,需要相配套的软件,购买编程器时会附带这种 软件。在计算机中安装该软件后,再启动它,启动后的 SP-51pro 编程器软件窗口如图344所示。软件启动后会自动检测连接计算机 COM 接口的编程器,检测到编程器后,在软 件窗口右边的窗口中会显示“编程器:就绪”字样。如果检测失败,可单击软件窗口下方 的“设置”项进行设置。 图3-44 SP-51pro编程器软件窗口 启动编程软件并检测到编程器后,再在软件窗口左上角的下拉列表框中选择要擦写的 单片机型号。若想擦除单片机中的程序,可单击窗口左侧的“(自动)擦除器件”项,即可 将单片机中的程序擦除。在向有程序的单片机中写新程序时,要先擦除其中的旧程序。 如果要将程序写入单片机,可单击窗口左侧的“(自动)打开文件”项,在弹出的图345所示的对话框中选择要写入单片机的程序文件“test1.hex”,再单击“打开”按钮,软件窗 口右侧的窗口中会出现“读入文件……”字样,如图3-46所示。 tyw藏书 图3-45 在对话框中选择要写入单片机的程序文件 图3-46 单击“(自动)写器件”项开始将程序写入单片机 单击软件窗口左侧的“(自动)写器件”项,编程器开始将test1.hex文件中的内容写入 单片机,程序完全写入单片机后,在软件窗口左下方的进度条上会出现“写器件完成”字 样,如图3-47所示。 tyw藏书 图3-47 程序写入完毕 程序写入单片机后,将单片机从编程器插座上取下,再将它安装在实验板的单片机插 座上,给实验板通电,单片机工作,内部的程序开始运行,通过 I/O 接口控制外围电路工 作,从而实现预定的控制功能。 tyw藏书 第4章 单片机编程 4.1 编程基础知识 4.1.1 指令和程序 欲使单片机工作,必须给它“下命令”,这里的“命令”称作指令,单片机执行不同的指 令就可以完成不同的操作。对于一些简单任务,单片机执行一两条指令就可以完成,而一 些复杂的任务则需要执行很多条指令才能完成。能使单片机完成特定控制任务的指令集合 称为程序。编写这些指令集合的过程称为程序设计。 程序设计的过程就像是写文章,如果把程序比作文章,那么指令则是文章中的词语。 要写好一篇文章,不但要了解词语的含义和用法,还要掌握将词语组合成文章的规则。同 样,要设计单片机程序,除了要了解单片机指令的含义和用法外,还要掌握指令组合成程 序的规则。 4.1.2 编程语言 写相同内容的文章时,可以采用汉语,也可以采用英语,还可以采用阿拉伯语。同 样,在进行单片机的程序设计时,也可以采用不同的语言。单片机常用的编程语言有机器 语言、汇编语言和 C语言。 1.机器语言 单片机是一种大规模的数字集成电路,它只能识别“0”和“1”这样的二进制代码。在早 期的单片机开发过程中,人们用二进制代码编写程序,再把这些二进制代码程序写入单片 机,单片机执行这些二进制代码程序就可完成相应的任务。 用二进制代码编写的程序称为机器语言程序。在用机器语言编程时,不同的指令用不 同的二进制代码代表,这种二进制代码构成的指令称为机器指令。在用机器语言编写程序 时,由于需要记住大量二进制代码指令及这些代码代表的功能,很不方便且非常容易出 错,所以现在很少有人用机器语言编写程序。 2.汇编语言 由于机器语言编程不方便,人们便用一些有意义且容易记忆的符号来表示不同的二进 制代码指令,这些有意义且容易记忆的符号称为助记符。用有意义的助记符表示的指令称 为汇编语言指令,用助记符编写出来的程序称为汇编语言程序。 下面的两行程序分别是机器语言程序和汇编语言程序: 01110100 00000010 MOV A, #02H tyw藏书 这两行程序的功能是一样的,都是将二进制数据00000010送到累加器A中。可以看 出,机器语言程序要比汇编语言程序难写,并且容易出错。 单片机只能识别机器语言,所以汇编语言程序要先汇编(翻译)成机器语言程序,再 写入单片机中。将汇编语言程序汇编成机器语言程序有手工汇编和软件汇编两种方式,手 工汇编是指用人工的方法将汇编指令逐个翻译成机器指令,软件汇编是利用汇编软件(汇 编器)自动将汇编指令翻译成机器指令。 3.高级语言 高级语言是一种近似于日常会话的语言,这些语言是依据数学语言而设计的,在用高 级语言编程时不用过多考虑单片机的内部结构。与汇编语言相比,高级语言更易学、易 懂,而且通用性很强。高级语言种类很多,如Basic语言、Pascal语言、C语言和Java语言 等,单片机常用C语言作为高级编程语言。 单片机不能识别高级语言编写的程序,因此用高级语言编写完程序后,还要用编译器 将高级语言程序翻译成机器语言程序,再写入单片机中。 在上面3种编程语言中,高级语言编程较为方便,但实现相同的功能,汇编语言代码 少,运行效率更高;另外对于初学者,学习汇编语言编程有利于更好地理解单片机的结构 与原理,也能为以后学习高级语言编程打下扎实的基础。 4.1.3 汇编语言指令格式 要用汇编语言编写正确的程序,一定要了解汇编语言的指令格式。汇编语言的指令格 式如下: [标号:]操作码(空格)[操作数1] [,操作数2] [,操作数3] [;注释] 下面是一条汇编语言指令: MAIN:MOV P3,#FFH ;该指令的功能是将数据11111111(即FFH)送到P3端口 ① 标号。用来标注指令的地址,一般由 1~8 个字母和数字组合而成,但必须以字母 开头,以冒号“:”结束。上面的汇编语言指令中,标号是“MAIN:”。 ② 操作码。用来规定指令的操作功能,一般由 2~5 个字母(英文单词或单词的缩 写)组成。上面的汇编语言指令中,操作码是“MOV”。 ③ 操作数。它是操作码的操作对象,操作数通过空格与操作码分开,在一条指令中 可以有0~3个操作数,操作数之间用逗号“,”隔开。上面的汇编语言指令中,操作数 是“P3, #0FFH”。 ④ 注释。它是编程者对指令的说明,通常用来描述程序的功能。在编写一些大型 的、复杂的程序时,对程序进行注释,有利于调试程序,使别人容易读懂程序,注释以分 tyw藏书 号“;”开始。 在汇编语言指令中,一定要有操作码,而“[ ]”中的内容根据情况可有可无。要注意的 是,指令中的“:”、“,”、“;”为半角符号,应在输入法为英文状态时输入。 4.1.4 从实例了解单片机编程 欲使单片机工作,就需要编写程序,再将程序写入单片机,单片机在程序的控制下工 作以完成指定的任务。没有程序的控制,单片机就无法工作。那么如何编写单片机程序 呢? 1.从一个实例初步了解编程 图4-1所示是一个边长为100m的正方形跑道,有一个人(称作甲)处于A点,如果要 让甲到达B点,可以执行如下的程序: 起点 前进 50m 左转 前进 100m 左转 前进 50m 结束 图4-1 正方形跑道 甲逐条执行程序中的命令:先前进 50m,左转,然后前进100m,左转,再前进50m, 结束,就可以到达B点。如果将上述程序改成: 起点 前进 50m 左转 前进 100m 左转 前进 50m 返回到 起点 结 甲束 执行上述程序中的命令时会怎样呢?当他执行到第5行命令t时y,w会藏到达书B点,接着 执行第6行命令,该命令使他又返回到起点(标号),甲于是又会执行第1行指令……由于 执行到第6行的指令时又会返回执行第1行的命令,永远执行不到结束命令,所以,如果甲 执行上述程序,就会不断在A、B点之间反复运动,不会停止。如果只要求甲在A、B点之 间往返3次,上述程序应如何编写呢?读者可以思考一下,在后面的章节将会讲到这个问 题。 2.分析一个单片机汇编语言程序 从前面的介绍初步了解了编程思想后,再来分析第3章用到的汇编语言程序,程序如 下: MAIN: MOV P3,#0FFH LOOP: MOV P1,P3 LJMP LOOP END 为了更好地理解上面的程序,下面对照图4-2所示的单片机应用电路来进行讲解。 第1 行指令“MAIN:MOV P3,#0FFH”的含义是将数据11111111(0FFH)送到P3 端口 的8个寄存器,让P3端口的P3.0~P3.7这8个引脚全部为高电平。 “MAIN:”为标号,表示该行为主程序开始,这里也可省略,并不影响程序的运 行;“MOV”为数据传送指令;“P3”表示单片机P3端口内部的8个寄存器;“#0FFH”中 的“#”号表示它后面的“0FFH”是一个数据,而不是地址编号,“0FFH”是一个十六进制数, 转换成二进制数就是11111111。 该行指令运行后,图4-2中的单片机P3.0~P3.7这8个引脚内部的寄存器全部为高电 平,相应的这8个引脚也为高电平。 第2行指令“LOOP:MOV P1,P3”的含义是将P3端口8个寄存器中的数据送到P1端口 的8个寄存器中。 “LOOP:”为标号,用来标识指令“MOV P1,P3”,由于该标号后面的指令会被调用, 所以不能省略。 由于第1行指令已经让P3端口8个寄存器内的数据全部为“1”,执行“MOV P1,P3 ”指 令后,P1端口8个寄存器内的数据也全部为“1”,单片机的P1.0~P1.7这8个引脚全部为高 电平,故发光二极管VD1~VD4全部不亮。 第 3 行指令“LJMP LOOP”的含义是返回执行标号LOOP所在行的指令。也就是说,当 执行到该行指令后,又会返回去执行第2行指令“MOV P1,P3”,即不断将 P3 端口 8 个寄 存器中的数据送到P1端口的8个寄存器中。 第4行指令“END”的含义是程序结束。由于执行到第 3 行指令时会自动返回执行第 2 tyw藏书 行指令,所以无法执行到第4行指令,即程序无法结束。 将上面的汇编语言程序汇编成机器语言程序并写入单片机后,在程序的控制下,单片 机内部电路不断将P3端口8个寄存器中的数据送给P1端口的8个寄存器。 图4-2所示的单片机应用电路的工作过程分析如下。 图4-2 单片机应用电路 在没有按下任何按键时,P3端口8个寄存器的数据都为“1”,所以P1端口8个寄存器的 数据也为“1”,P1.0~P1.7这8个引脚都为高电平,发光二极管VD1~VD4全部不亮。 若按下S1按键,P3.2引脚变为低电平,P3.2端口内部寄存器的数据变为“0”,P3.7~ P3.0端口的数据分别为11111011,在第2条指令的控制下,这些数据被送到P1端口,P1.7~ P1.0端口的数据分别为11111011,其中P1.2端口的数据为“0”,P1.2引脚为低电平,于是它 外接的发光二极管VD1有电流通过而发光。 若松开S1按键,P3.2引脚变为高电平,P3.2端口的“1”送到P1.2端口,P1.2引脚为高电 平,其外接的发光二极管VD1截止而不亮。 4.2 寻址方式 单片机工作时,在程序指令的控制下,对数据进行各种操作(ty如w存藏取数书据、对数据进 行运算等),然后输出控制信号。指令要对数据进行操作,必须先找到操作的数据,数据 存放在存储器中,只有找到要操作数据的存储地址,才能对该存储地址中的数据进行操 作。 寻找要操作数据的存储地址的过程称为寻址。单片机常用的寻址方式有7种:立即寻 址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。 4.2.1 立即寻址 立即寻址是在指令中直接给出要操作的数据(而不是数据的存放地址),这个数据称 为立即数,为了表示该数值是一个数据而不是地址,要在该数值前加“#”号。例如: MOV A,#0FFH MOV A,#65H MOV DPTR,#1234H 第1条指令的含义是:将数据0FFH(即11111111)送到累加器A中。 第2条指令的含义是:将数据65H(即01100101)送到累加器A中。 第3条指令的含义是:将数据1234H(即0001001000110100)送到数据指针寄存器 (DPTR)中,其中12H送到DPTR的高8位寄存器DPH中,34H送到DPTR的低8位寄存器 DPL中。 4.2.2 直接寻址 直接寻址是在指令的操作码后给出数据存放的地址,指令可以操作该地址存放的数 据。例如: MOV A,56H 这条指令的含义是将56H单元中的数据送到累加器A中。 如果56H单元中的数据为01101001,如图4-3所示,执行该条指令后,56H单元中的数 据会送到累加器A中,累加器A中的数据也为01101001,而之前存放的数据会消失。 直接寻址方式可以访问存储器的 30H~7FH 单元(即数据缓冲区)、21 个位地址单 元和特殊功能寄存器(SFR),而且特殊功能寄存器只能用直接寻址方式访问。 4.2.3 寄存器寻址 寄存器寻址是在指令的操作码后给出寄存器,指令可以操作寄存器中的数据。例如: MOV A,R7 tyw藏书 这条指令的含义是将寄存器R7中的数据送到累加器A中。 如果寄存器R7中的数据为10101001,如图4-4所示,执行该条指令后,R7中的数据会 送到累加器A中,累加器A中的数据就变为10101001。 图4-3 直接寻址 图4-4 寄存器寻址 4.2.4 寄存器间接寻址 寄存器间接寻址是在指令的操作码后给出寄存器,该寄存器中存储的不是数据,而是 一个地址,指令可以对该地址指示的单元中的数据进行操作。寄存器间接寻址只能对寄存 器R0、R1进行。例如: MOV A,@R0 tyw藏书 这条指令的含义是以寄存器 R0 中的数值作为地址,找到该地址指示的存储单元,再 将该单元中的数据送到累加器A中。 如果寄存器 R0 中的数值为01010000,如图4-5所示,该数值也可用50H表示。执行该 条指令时,先找到寄存器 R0,然后将它存储的数据 50H (01010000)作为地址单元,再 找到50H单元并将该单元存储的数据 01101001送到累加器A中。 图4-5 寄存器间接寻址 4.2.5 变址寻址 变址寻址又称为基址寄存器+变址寄存器间接寻址,它是以DPTR或程序计数器 (PC)中的数值作为基址,以累加器A中的数值作为地址偏移量,将基址和地址偏移量相 加后得到的数值作为地址,再对该地址中的数据进行操作。这种方式主要用来访问 ROM。例如: MOVC A,@A+DPTR 这条指令的含义是将DPTR中的数值(基址)与累加器A中的数值(地址偏移量)相 加,以相加得到的数值作为地址,再将该地址中的数据送到累加器A中。 如果DPTR中的数值是1234H(DPH存储12H,DPL存储34H),累加器A中的数值为 30H,如图4-6所示,执行该指令时,先将DPTR中的数值1234H与累加器A中的数值30H相 加,得到数值1264H,将1264H作为地址,找到ROM的1264H单元,再将该单元中的数据 01010110送到累加器A中,指令执行后,累加器A中的数据变为01010110。 tyw藏书 图4-6 变址寻址 4.2.6 相对寻址 相对寻址是以执行完当前指令后的程序计数器(PC)中的数值为基址,以操作码后 面的数值为地址偏移量,将基址与地址偏移量之和作为地址赋予PC,PC则跳到该地址来 执行此地址单元的内容。该寻址方式只能对ROM进行操作。例如: 1000H:SJMP 06H 在这条指令中,标号“1000H”为PC执行指令前的值,操作码“SJMP”意为相对转 移,“06H”为相对转移量(即地址偏移量)。由于本条指令占用2B的存储单元,如图4-7 所示,当执行完这条指令后,PC的值会变为1002H,将1002H(基址)和06H(地址偏移 量)相加,得到1008H,再把1008H赋予PC,PC值变为1008H,它立刻跳到1008H存储单 元,开始执行该单元的内容。指令执行前、后PC的位置分别如图4-7(a)和图4-7(b)所 示。 tyw藏书 图4-7 相对寻址 4.2.7 位寻址 前面的几种寻址方式都是对存储单元的整个字节进行操作,如果要对某存储单元中的 某位数进行操作,就要用位寻址方式。 1.位寻址的范围 位寻址并不能操作存储器中任何单元中的某位数,它只能操作能进行位寻址的存储单 元。可位寻址的单元如下。 ① 数据存储器(RAM)内部的位寻址区。该区的字节单元地址是20H~2FH,共有16 个存储单元,每个单元有8位,共有128位,这128位的位地址见第2章的表2-3。 ② 特殊功能寄存器(SFR)中一些可位寻址的寄存器。SFR 中可位寻址的寄存器有11 个(可位寻址的寄存器见表2-4的第1列),每个寄存器有8位,共有88位,各位的位地址 见表2-5。 2.位寻址的方法 位寻址的方法通常有以下几种。 (1)直接使用位地址 例如:MOV C,01H 这条指令的含义是将01H位(即20H单元的第1位)的数据送入程序状态字寄存器 (PSW)的CY位(进位标志位)。PSW各位的功能见第2章的相关内容。 (2)采用“字节地址.位序号”形式 例如:MOV C,20H.1 这条指令的含义是将20H单元的第1位数据送入PSW的CY位。 (3)采用“位的符号地址”形式 tyw藏书 例如:CPL AC 这条指令的含义是将PSW的AC位(辅助进位标志位)取反。CPL意为“位取反”。 (4)采用“寄存器符号.位序号”形式 例如:ANL C,PSW.0 这条指令的含义是将PSW的第0位与CY位进行相与运算,再将相与的结果保存在CY 位。 MCS-51系列单片机采用的7种寻址方式见表4-1。 表4-1 MCS-51系列单片机的7种寻址方式 4.3 指令系统 单片机要完成指定的任务,必须要有相应的程序控制,而程序ty是w由藏指令书组成的,所以 编写程序时掌握指令很重要。不同类型单片机的指令或多或少有一些不同,本书讲述的都 是MCS-51系列单片机的汇编指令,学好MCS-51系列单片机的指令就能很容易地学会其他 类型单片机的指令。 MCS-51 系列单片机的指令共有 111 条。根据功能可将其分为以下几类:数据传送类 指令(29条)、算术运算类指令(24 条)、逻辑运算类指令(24 条)、程序控制类指令 (17 条)、位操作类指令(17条)。 这些指令根据转化成机器代码占用的存储空间可分为:单字节指令(49 条)、双字 节指令(45条)、三字节指令(17条);根据执行指令需要的时间可分为:单机器周期指 令(64条)、双机器周期指令(45条)、四机器周期指令(2条)。 4.3.1 数据传送类指令 数据传送类指令的功能是将源操作数中的内容送到目的操作数中。数据传送类指令是 使用最多的一类指令,它又可以分为5种:内部RAM的数据传送指令、外部RAM与累加器 A的数据传送指令、ROM与累加器A的数据传送指令、数据交换指令和堆栈操作指令。 1.内部RAM的数据传送指令 内部RAM的数据传送指令的操作码助记符是“MOV”。 指令格式:MOV目的操作数,源操作数 指令的功能是将源操作数中的内容送到目的操作数中。指令执行后,源操作数内容不 变,目的操作数内容与源操作数一致。 内部RAM的数据传送指令又可以分为以下5种。 ① 以累加器A为目的操作数的传送指令。 ② 以寄存器Rn为目的操作数的传送指令。 ③ 以寄存器Ri间址单元为目的操作数的传送指令。 ④ 以直接地址direct为目的操作数的传送指令。 ⑤ 16位数据传送指令。 (1)以累加器A为目的操作数的传送指令 以累加器A为目的操作数的传送指令有4条,各条指令的形式和功能如下: tyw藏书 其中,#data表示8位数据(立即数),Rn表示工作寄存器组中的8个寄存器R0~ R7(n=0~7), Ri表示工作寄存器组中可间址寻址的2个寄存器R0和R1(i=0,1),@表 示间址寻址,direct表示直接地址。 (2)以寄存器Rn为目的操作数的传送指令 以寄存器Rn为目的操作数的传送指令有3条,各条指令的形式和功能如下: (3)以寄存器Ri间址单元为目的操作数的传送指令 以寄存器Ri间址单元为目的操作数的传送指令有3条,各条指令的形式和功能如下: tyw藏书 (4)以直接地址direct为目的操作数的传送指令 以直接地址direct为目的操作数的传送指令有5条,各条指令的形式和功能如下: (5)16位数据传送指令 16位数据传送指令只有1条,该条指令的形式和功能如下: tyw藏书 2.外部RAM与累加器A的数据传送指令 外部RAM与累加器A的数据传送指令操作码助记符是“MOVX”。 指令格式:MOVX 目的操作数,源操作数 指令的功能是将源操作数中的内容送到目的操作数中。指令执行后,源操作数内容不 变,目的操作数内容与源操作数一致。 外部RAM与累加器A的数据传送指令有4条,各条指令的形式和功能如下: 说明:由于DPTR是16位寄存器,它可以存储216(65536)种不同的地址编号,故表 中的第1、2条指令可访问64KB的外部RAM空间;而Ri是8位寄存器,可以存储28(256) 种不同的地址编号,所以表中的第3、4条指令可访问256B的外部RAM空间。 3.ROM与累加器A的数据传送指令 ROM与累加器A的数据传送指令又称查表指令,它的操作码助记符是“MOVC”。 指令格式:MOVC 目的操作数,源操作数 指令的功能是将源操作数中的内容送到目的操作数中。指令执行后,源操作数内容不 变,目的操作数内容与源操作数一致。 ROM与累加器A的数据传送指令有2条,各条指令的形式和功能ty如w下藏: 书 4.数据交换指令 数据交换指令的操作码助记符有3个:“XCH”、“XCHD”和“SWAP”。 指令格式:数据交换指令操作码助记符 目的操作数,源操作数 指令的功能是将源操作数中的内容与目的操作数的内容交换。指令执行后,源操作数 内容和目的操作数内容互换。 数据交换指令有5条,各条指令的形式和功能如下: tyw藏书 5.堆栈操作指令 堆栈操作指令有2个:进栈指令“PUSH”和出栈指令“POP”。各条指令的形式和功能如 下: 数据传送类指令执行后,不会影响PSW的CY、AC、OV等标志位,但涉及累加器A中 的数据改变时,将会影响到PSW的奇偶校验位P。 4.3.2 算术运算类指令 算术运算类指令的功能是进行加、减、乘、除4种基本算术运算。它包括加法指令、 减法指令、乘法指令、除法指令和十进制数调整指令。 1.加法指令 tyw藏书 加法指令又分不带进位的加法指令、带进位的加法指令和加1指令。 (1)不带进位的加法指令 不带进位的加法指令的操作码助记符是“ADD”。 指令格式:ADD A,操作数2 指令的功能是将操作数2与累加器A中的数据相加,结果保存在A中。 不带进位的加法指令有4条,各条指令的形式和功能如下: 下面举两个例子来说明不带进位的加法指令的功能。 ① ADD A,#36H。在指令执行前,如果累加器A中的数据为56H,那么指令执行后, 累加器A中的数据为8CH(36H+56H)。 ② ADD A,R6。在指令执行前,如果累加器A 中的数据为78H(01111000),R6 中 的数据为89H(10001001),那么指令执行后,相加得到的数据为101H(100000001), 由于累加器A是一个8位寄存器,所以只能存储8位数00000001(01H),而最高位D7的进 位会保存在PSW的进位标志位(CY)中,让(CY)=1,另外两个数据的低4位相加 (1000+1001)时,D3位会向高位D4位进位,在进位的同时会将PSW的辅助进位标志位 (AC)置“1”。 (2)带进位的加法指令 带进位的加法指令的操作码助记符是“ADDC”。 指令格式:ADDC A,操作数2 指令的功能是将操作数2与累加器A中的数据相加,再与PSW中CY位的数据相加,结 果保存在累加器A中。 带进位的加法指令有4条,各条指令的形式和功能如下: tyw藏书 下面举例说明带进位的加法指令的功能。 例如:ADDC A,#36H 在指令执行前,如果累加器A中的数据为56H,寄存器PSW中CY位的数据为“1”,那 么指令执行后,累加器A中的数据为8DH(36H+56H+1)。 (3)加1指令 加1指令又称增量指令,它的操作码助记符是“INC”。 指令格式:INC 操作数 指令的功能是将操作数加1,结果仍保存在该操作数中。 加1指令有5条,各条指令的形式和功能如下: 下面举例说明加1指令的功能。 例如:INC @R0 在指令执行前,如果寄存器R0中的地址为56H,56H单元中的数据为35H,那么指令 执行后,56H单元中的数据为36H。 2.减法指令 减法指令又分带借位的减法指令和减1指令。 (1)带借位的减法指令 带借位的减法指令的操作码助记符是“SUBB”。 指令格式:SUBB A,操作数2 指令的功能是将累加器A中的数据减去操作数2,再减去PSW中CY位的数据,结果保 存在累加器A中。 带借位的减法指令有4条,各条指令的形式和功能如下: tyw藏书 下面举例说明带借位的减法指令的功能。 例如:SUBB A,R6 在指令执行前,如果累加器A中的数据为89H,寄存器R6中的数据为78H,CY位中的 数据为1,那么指令执行后,累加器A中的数据为10H(89H−78H−1)。 如果不需要借位,可先将CY位清0,清0指令将在后面介绍。 (2)减1指令 减1指令的操作码助记符是“DEC”。 指令格式:DEC 操作数 指令的功能是将操作数减1,结果仍保存在该操作数中。 减1指令有4条,各条指令的形式和功能如下: 下面举例说明减1指令的功能。 例如:DEC @R0 在指令执行前,如果寄存器R0中的地址为56H,56H单元中的数据为35H,那么指令 执行后, 56H单元中的数据为34H。 3.乘法指令 乘法指令的操作码助记符是“MUL”。 乘法指令只有1条,该条指令的形式和功能如下: tyw藏书 下面以一个程序段为例来说明乘法指令的功能。例如: MOV A,#36H MOV B,#07H MUL AB 上面的第 1 条指令是将数据 36H(00110110)送到累加器 A 中;第 2 条指令是将数据 07H (00000111)送到寄存器B中;第3条指令是将A和B中的数据相乘 (00110110×00000111);将相乘的结果0000000101111010(017AH)的低8位(7AH)保 存在A中,高8位(01H)保存在B中。 4.除法指令 除法指令的操作码助记符是“DIV”。 除法指令只有1条,该条指令的形式和功能如下: 下面以一个程序段为例来说明除法指令的功能。例如: MOV A,#0FBH MOV B,#12H DIV AB 上面的第 1 条指令是将数据 0FBH(11111011)送到累加器 A 中;第 2 条指令是将数 据 12H (00010010)送到寄存器B中;第3条指令是将A和B中的数据相除 (11111011÷00010010);得到的商1101(0DH)保存在A中,余数10001(11H)保存在B 中。 5.十进制数调整指令 单片机在对十进制数进行加法运算时,用BCD码(由4位二进制数构成)来表示十进 制数,再对BCD码进行加法运算,得到的结果仍要用BCD码表示,但有时得到的结果可能 不是BCD码。例如: tyw藏书 在例(1)中,两个BCD码相加后的运算结果仍是BCD码;在例(2)中,两个BCD码 相加后的结果不是BCD码,因为BCD码只有9个(0000~1001),1110不是BCD码;在例 (3)中,两个BCD码相加后的结果是错误的BCD码,因为BCD码只有4位,如果把10001 当作是2位BCD码,还原就成了11,结果错误。采用十进制数调整指令可以解决这个问 题。 十进制数调整指令又称BCD调整指令,它的操作码助记符是“DA”。 十进制数调整指令的形式和功能如下: 下面以一个BCD码加法程序段为例来说明十进制数调整指令的功能。例如: MOV A,#56H ADD A,#67H DA A 上面的第1条指令是将数据56H送到累加器A中;第2条指令是将A中的数据 56H(01010110)与数据67H(01100111)相加,得到的结果是BDH(10111101),显然 结果不是BCD码(因为1011和1101都不是BCD码);第3条指令是将第2条指令相加后的运 算结果BDH(10111101)进行BCD调整。调整过程如下: 从上面的竖式中可以看出,指令先判断相加结果的低4位是否大于9(1001),若大于 9,则将低4位加6(0110),然后判断低4位加6后得到结果的高4位是否大于9,若大于9, 再将高4位加6,这样修正的结果是100100011(123H=56H+67H)。 在进行普通的加法运算时,后面不用加“DA A”指令;如果在加法运算指令后加上该 指令,进行的加法运算将是BCD加法运算。 4.3.3 逻辑运算类指令 tyw藏书 逻辑运算类指令的功能是进行与、或、非、异或逻辑运算和对数据进行清 0、移位。 它包括逻辑与指令、逻辑或指令、逻辑非指令、逻辑异或指令、清0指令和移位指令。 1.逻辑与指令 逻辑与指令的操作码助记符是“ANL”。 指令格式:ANL 操作数1,操作数2 指令的功能是将操作数1与操作数2按位进行相与运算,结果保存在操作数1中。 逻辑与指令有6条,各条指令的形式和功能如下: 下面以一个程序段为例来说明逻辑与指令的功能。例如: MOV A,#31H MOV R3,#12H ANL A,R3 上面的第 1 条指令是将数据 31H(00110001)送到累加器 A 中,第 2 条指令是将数 据 12H (00010010)送到寄存器R3中,第3条指令是将A和R3中的数据进行按位相与 (00110001∧00010010)运算。运算过程如下: 运算结果为00010000(10H),将结果保存在A中。 2.逻辑或指令 逻辑或指令的操作码助记符是“ORL”。 指令格式:ORL操作数1,操作数2 指令的功能是将操作数1与操作数2按位进行相或运算,结果保存在操作数1中。 逻辑或指令有6条,各条指令的形式和功能如下: tyw藏书 下面以一个程序段为例来说明逻辑或指令的功能。例如: MOV A,#31H MOV R3,#12H ORL A,R3 上面的第 1 条指令是将数据 31H(00110001)送到累加器 A 中,第 2 条指令是将数 据 12H (00010010)送到寄存器R3中,第3条指令是将A和R3中的数据按位进行相或 (00110001∨00010010)运算。运算过程如下: 运算结果为00110011(33H),将结果保存在A中。 3.逻辑非指令 逻辑非指令的操作码助记符是“CPL”。 逻辑非指令的形式和功能如下: 下面以一个程序段为例来说明逻辑非指令的功能。例如: MOV A,#35H CPL A 上面的第1条指令是将数据35H(00110101)送到累加器A中,第2条指令是将A中的 数据35H按位取反,得到的结果CAH(11001010)仍保存在A中。 4.逻辑异或指令 逻辑异或指令的操作码助记符是“XRL”。 指令格式:XRL 操作数1,操作数2 tyw藏书 指令的功能是将操作数1与操作数2按位进行异或运算,结果保存在操作数1中。在两 位数进行异或运算时,若两数相异(即两位数不同)结果为“1”,相同则为“0”。 逻辑异或指令有6条,各条指令的形式和功能如下: 续表 下面以一个程序段为例来说明逻辑异或指令的功能。例如: MOV A,#31H MOV R3,#12H XRL A,R3 上面的第 1 条指令是将数据 31H(00110001)送到累加器 A 中,第 2 条指令是将数 据 12H ( 00010010 )送到寄存器 R3 中,第 3 条指令是将 A 和 R3 中的数据按位进行异 或运算(00110001⊕00010010)。运算过程如下: 运算结果为00100011(23H),将结果保存在A中。 5.清0指令 清0指令的操作码助记符是“CLR”。 清0指令的形式和功能如下: tyw藏书 下面以一个程序段为例来说明清0指令的功能。例如: MOV A,#35H CLR A 上面的第1条指令是将数据35H(00110101)送到累加器A中,第2条指令是将A中的 内容清0,A中清0的结果是00H(00000000)。 6.移位指令 移位指令又分不带进位的左环移指令、带进位的左环移指令、不带进位的右环移指令 和带进位的右环移指令。 各条指令的形式和功能如下: 续表 下面以一个程序段为例来说明移位指令的功能。例如: MOV A,#12H RL A RL A 上面的第1条指令是将数据12H(00010010)送到累加器A中;第2条指令是将A中的 数据00010010(12H)左移一位,数据变为00100100(24H);第3条指令是将A中的数据 00100100(24H)再左移一位,数据变为01001000(48H)。 可以看出,数据每左移一位,相当于将累加器A中的数据进行了“×2”运算(如数据 12H左移一位变为 24H,数据 24H 左移一位就变为 48H)。同样,在右移(RR A)时,A 中的数据每移一位,就相当于进行了“÷2”运算。 4.3.4 程序控制类指令 tyw藏书 大多数程序在运行时会按顺序从前往后执行指令,但有时需要让程序反复多次执行某 段指令,或跳过某段指令去执行另外的指令,这时就需要用程序控制类指令来控制。程序 控制类指令具体分为无条件控制转移指令、有条件控制转移指令、子程序调用及返回指令 和空操作指令。 1.无条件控制转移指令 无条件控制转移指令在使用时无须规定程序转移的条件。它包括短转移指令、长转移 指令、相对转移指令和散转指令。 (1)短转移指令 短转移指令又称绝对转移指令,它的操作码助记符是“AJMP”。 短转移指令的形式和功能如下: 下面以一个程序段为例来说明短转移指令的功能。例如: 1000H: AJMP 0783H # # 1783H: MOV A,#0FFH 在执行该指令前,PC中的值是1000H,即(PC)=1000H,如图4-8(a)所示。执行 该指令时,先将(PC)+2=1002H(0001000000000010),然后再用地址 0783H(0000011110000011)中的低11位替代1002H中的低11位,得到的新地址是 0001011110000011(1783H),在PC中的值为1783H, PC跳转到1783H处并执行该处的指 令(MOV A,#0FFH),如图4-8(b)所示。 tyw藏书 图4-8 短转移指令功能说明 由于短转移指令只可以改变 PC 中的低 11 位,高 5 位不能改变,故 PC 值的变化范围 为 0~211=2048=2KB,所以该指令只可以跳转执行0~2KB范围内的指令,即要求转移的 地址和当前地址相隔不能超过2KB。 (2)长转移指令 长转移指令比短转移指令的跳转范围要大,它的操作码助记符是“LJMP”。 长转移指令的形式和功能如下: 下面以一个程序段为例来说明长转移指令的功能。例如: 0100H:LJMP 0783H 在执行该指令前,PC中的值是0100H,即(PC)=0100H,如图4-9(a)所示。执行 该指令后, PC中的值变为0783H,PC就跳转到0783H地址并执行该处的指令,如图49(b)所示。 长转移指令可以改变PC中的16位,故PC中的地址变化范围为0~216=0~64KB,所以 该指令可以跳转执行0~64KB范围内的指令(如从0000H地址最远只能跳至FFFFH地 址)。 (3)相对转移指令 相对转移指令的操作码助记符是“SJMP”。 tyw藏书 图4-9 长转移指令功能说明 相对转移指令的形式和功能如下: 在编写程序时,rel是一个地址标号。 下面以一个程序段为例来说明相对转移指令的功能。例如: 1000H: MOV A #01H # # 1050H: SJMP 1000H 在上述程序中,当执行到“1050H: SJMP 1000H”时,程序会跳转到1000H处,并执 行“MOV A #01H”指令。 因为(PC)目=(PC)源+2+rel,所以rel=(PC)源−(PC)目−2=1000H−1050H−2=−52H,地 址偏移量为−52H。在编写程序时,只需在“SJMP”后面写地址标号,不用写地址偏移量 (在汇编时,汇编程序会自动计算偏移量)。 SJMP指令转移的目标地址可以在当前PC地址的前128B到后127B之间(−128~ +127)。例如在执行“1050H: SJMP 1000H”指令时,PC 地址为 1050H,“SJMP”指令可转 移的范围是 1050H地址的前128个单元到后127个单元。 (4)散转指令 散转指令的操作码助记符是“JMP”。 散转指令的形式和功能如下: tyw藏书 下面以一个程序段为例来说明散转指令的功能。例如: JMP @A+DPTR 如果指令执行前,(A)=12H,(DPTR)=1234H,上述指令执行后,PC中的值为 1246H,程序将跳转并执行1246H地址单元的指令。 总之,短转移指令AJMP可在0~2KB的ROM空间转移,但要求转移的地址和当前地 址(当前PC值)在同一个0~2KB区域内;长转移指令可在0~64KB的ROM空间任意转 移;相对转移指令可在当前地址的前128B到后127B的ROM空间内转移;散转指令与长转 移指令一样,也可在0~64KB的ROM空间任意转移,但由于累加器A和DPTR中的数据都 可变化,故使用起来更灵活。 2.有条件控制转移指令 有条件控制转移指令在某种条件满足时执行转移,不满足则不执行转移。它包括累加 器判0转移指令、位控制转移指令、比较不相等转移指令和减1不为0转移指令。 (1)累加器判0转移指令 累加器判0转移指令首先判断累加器是否为0,然后决定是否转移。它有2条指令,各 条指令的形式和功能如下: 下面以一个程序段为例来说明累加器判0转移指令的功能。例如: LOOP: CLR A 1010H: JZ LOOP 1012H: MOV A, #23H tyw藏书 第1条指令将累加器A清0;在执行第2条指令时,由于A中数据为“0”,所以程序跳转 执行地址标号LOOP处的指令,如果A的数据不为“0”,程序将执行1012H处的指令,即执 行下一条指令“MOV A, #23H”。这是因为 JZ 指令占 2B,当 JZ 指令执行完后,PC 中的值 变为 1012H,PC指向下一条指令。 (2)位控制转移指令 位控制转移指令根据某位的值来决定是否转移。它有5条指令,各条指令的形式和功 能如下: 下面以一个程序段为例来说明位控制转移指令的功能。例如: LOOP: MOV A,#65H CLR P1.3 JB P1.3,LOOP MOV A,#23H 第1条指令是将数据65H送入累加器A中;第2条指令是将寄存器P1的D3位清0;执行 第3条指令时,由于P1的D3位为“0”,所以程序会执行下一条指令(第4条指令),若将第 2条指令改为“SETB P1.3”,就将P1的D3位置“1”,执行第3条指令时,程序会跳转执行地址 标号为LOOP的第1条指令。 (3)比较不相等转移指令 比较不相等转移指令的操作码助记符是“CJNE”。 指令格式:CJNE操作数1,操作数2,rel 指令的功能是将操作数1与操作数2进行比较,如果两者不相等则转移到地址标号rel 处。 比较不相等转移指令有4条,各条指令的形式和功能如下: tyw藏书 续表 说明:这4条指令为3B指令,转移范围是以当前PC值为中心的前128B到后127B的空 间,即地址标号rel为−128~+127B。 (4)减1不为0转移指令 减1不为0转移指令的操作码助记符是“DJNZ”。 指令格式:DJNZ操作数1,rel 指令的功能是将操作数1减1,如果结果不为“0”则转移到地址标号rel处。 减1不为0转移指令有2条,各条指令的形式和功能如下: tyw藏书 3.子程序调用及返回指令 在编程时,如果需要某段程序反复运行,可以将该段程序写成子程序的形式。在主程 序运行时,可通过子程序调用指令来执行子程序,子程序执行完后,再通过返回指令从子 程序返回到主程序。 (1)子程序调用指令 子程序调用指令有2条:长调用指令和短调用指令(绝对调用指令)。各条指令的形 式和功能如下: 子程序调用指令的工作原理简单来说就是在执行子程序前,先将本指令的下一条主程 序指令的地址保存在 SP 中,然后再执行子程序。之所以要将下一条主程序的指令地址保 存下来,是为了在执行完子程序后能够返回到下一条主程序指令,并执行它。 子程序调用指令执行过程很复杂,但这些过程都是由单片机硬件自动完成的,编程时 一般不用理会。下面以一个程序段为例来说明子程序调用指令的功能。例如: MOV A,#65H LCALL DELAY MOV P2,#23H … DELAY:… RET tyw藏书 当程序运行到“LCALL DELAY”指令时,硬件会先将下一条指令“MOV P2,#23H”的地 址保存到SP中,然后执行DELAY处的子程序,当子程序运行到“RET”指令时,该指令让硬 件将SP中保存的地址送给PC,PC就指向该地址处的指令“MOV P2,#23H”,并执行该条 指令。 (2)返回指令 返回指令有2条:子程序返回指令和中断返回指令。各条指令的形式和功能如下: 返回指令工作原理简单来说就是将保存在 SP 中的指令地址(即调用指令的下一条指 令的地址)取出,送给 PC,然后 PC 指向该地址处的指令并执行它。返回指令从 SP 中取 出地址并送给PC的过程由硬件自动完成,编程时只要知道执行“RET”指令后,程序会返回 到调用指令的下一条指令即可。 4.空操作指令 空操作指令的操作码助记符是“NOP”。 指令格式:NOP 指令的功能是将PC中的值加1,而不进行其他操作,该指令执行时会耗时1个机器周 期。 4.3.5 位操作类指令 位操作类指令的功能是对单片机内部存储器的位单元进行操作。位操作类指令有数据 位传送指令、位变量修改指令、位变量逻辑指令和位控制转移指令。MCS-51 系列单片机 内部能进行位操作的空间如下。 ① 特殊功能寄存器(SFR)中可位寻址的位单元。 ② 地址为 20H~2FH 的 16B 存储单元(每字节存储单元有 8 位,共有 128 个位单 元,这 128个位单元的位地址为00H~7FH)。 1.数据位传送指令 数据位传送指令有2条,各条指令的形式和功能如下: tyw藏书 2.位变量修改指令 位变量修改指令有6条,它们分别可以清0、取反和置“1”。各条指令的形式和功能如 下: 3.位变量逻辑指令 位变量逻辑指令有4条,各条指令的形式和功能如下: 例如:累加器A中的数据为01101010,PSW的CY位中的数据为“1”,现在执行指令: ANL C,/ACC.3 在指令执行时,将累加器A的第3位(位地址为E3H)数据“1”取反变为“0”,然后 将“0”与CY位中的“1”进行与运算,运算结果为“0”,“0”被送到CY位中。 4.位控制转移指令 位控制转移指令有下面5条: JC rel tyw藏书 JNC Rn JB bit,rel JNB bit,rel JBC bit,rel 由于位控制转移指令在前面已详细介绍过(见“程序控制类指令”中的内容),这里不 再说明。 4.4 伪指令 单片机是无法识别汇编语言程序的,所以用汇编语言写好程序ty后w,藏还要书用汇编程序将 汇编语言程序(以下称作源程序)汇编(翻译)成单片机能识别的机器语言程序(又称目 标程序),然后再通过编程器将目标程序写入单片机的程序存储器(ROM)中。 在汇编时,汇编程序会将源程序中的每条汇编语言指令转换成相应的机器指令,如果 在汇编时需要汇编程序对源程序进行一些处理,可在源程序中加入一些特殊的指令,由于 这些指令只是告诉汇编程序在汇编时如何处理源程序,而并不会被转换成机器指令,故将 这些指令称为伪指令。常用的伪指令有下面8条。 4.4.1 汇编起始指令(Origin) 汇编起始指令 操作码助记符:ORG 格式:ORG 16位地址 功能:该指令用于指示下一条指令在程序存储器中的起始地址。 举例:ORG 2000H MOV A,36H “ORG 2000H”的功能是指示它的下一条指令“MOV A,36H”的起始地址为2000H。 4.4.2 定义字节指令(Define Byte) 定义字节指令 操作码助记符:DB 格式:DB 字节内容 功能:该指令用于定义字节内容。 举例:ORG 3000H DB 45H,36H,56H,7AH 第1行指令的功能是指示它的下一条指令的起始地址为3000H;第2行指令的功能是依 次让3000H、3001H、3002H、3003H单元中的数据为45H、36H、56H、7AH,即让 (3000H)=45H、(3001H)=36H、(3002H)=56H、(3003H)=7AH。 4.4.3 定义字指令(Define Word) 定义字指令 操作码助记符:DW 格式:DW 字内容 功能:该指令用于定义字内容。 举例:ORG 4000H tyw藏书 DW 4510H,3621H,5600H 第1行指令的功能是指示它的下一条指令的起始地址为4000H;第2行指令的功能是依 次让4000H、4001H、4002H、4003H、4004H、4005H单元中的数据为45H、10H、36H、 21H、56H、00H,即让(4000H)=45H、(4001H)=10H、(4002H)=36H、(4003H) =21H、(4004H)=56H、(4005H)=00H。 4.4.4 定义预留存储单元指令(Define Space) 定义预留存储单元指令 操作码助记符:DS 格式:DS 保留单元数目 功能:该指令用于定义在存储器中留出一定数目的存储单元。 举例:ORG 30H DS 08H DB 23H,E8H 第1行指令的功能是指示它的下一条指令的起始地址为30H;第2行指令的功能是从 30H地址开始,留出30H~37H的8个存储单元;第3行指令的功能是让38H、39H单元中的 数据分别为23H、E8H。 4.4.5 等值指令(Equate) 等值指令 操作码助记符:EQU 格式:字符 EQU数值 功能:该指令用于将EQU左边的字符代表右边的数值,使程序更易读懂。 举例:SG EQU R5 DE EQU 36H MOV A,SG MOV A,DE 第1行指令的功能是用字符SG代表寄存器R5,第2行指令的功能是用字符DE代表数据 36H,第3行指令的功能是将寄存器R5(由字符SG代表)中的数据送给累加器A,第4行指 令的功能是将数据36H(由字符DE代表)送给累加器A。 4.4.6 数据地址赋值指令 数据地址赋值指令 操作码助记符:DATA tyw藏书 格式:字符 DATA数值 功能:该指令用于将DATA左边的字符代表右边的数值,它与EQU类似,但EQU必须 先定义后使用,而DATA没有这个限制,DATA常用作定义数据地址。 举例:MAIN DATA 2000H 该行指令是用字符MAIN代表地址2000H。 4.4.7 位地址符号赋值指令 位地址符号赋值指令 操作码助记符:BIT 格式:字符 BIT位 功能:该指令用于将BIT左边的字符代表右边的位地址。 举例:BUSY BIT P1.1 G5 BIT 02H 第1行指令的功能是用字符BUSY代表位址P1.1,第2行指令的功能是用字符G5代表位 地址02H。 4.4.8 汇编结束指令 汇编结束指令 操作码助记符:END 格式:END 功能:该指令用于结束汇编程序。在汇编时,该指令通知汇编程序结束汇编。一个源 程序只能有一个END指令,并写在整个程序的最后,如果END后面还有程序段,汇编程序 将不会对该程序汇编,即写在END后面的程序是无效的。 tyw藏书 第5章 中断技术 5.1 概述 5.1.1 什么是中断 在生活中,人们经常会遇到这样的情况:正在书房看书时,突然客厅的电话响了,人 们往往会停止看书,转而去接电话,接完电话后又接着看书。这种停止当前工作,转而去 做其他工作,做完后又返回来做先前工作的现象称为中断。 单片机也有类似的中断现象,当单片机正在执行某程序时,如果突然出现意外情况, 它就需要停止当前正在执行的程序,转而去处理意外情况,处理完后又接着执行原来的程 序。 5.1.2 中断的有关概念 1.中断源 要让 CPU 中断当前的程序去做其他事情,需要向它发出请求信号,CPU 接收到中断 请求信号后才能产生中断。让CPU产生中断的信号称为中断源(又称中断请求源)。 MCS-51系列单片机的中断源包括:两个外部中断源、两个定时器/计数器中断源和一 个串行通信口中断源,如果它们向 CPU 发出中断请求信号,CPU 就会产生中断,停止执 行当前的程序,转而去执行指定的程序(又称中断服务程序或中断子程序),执行完后又 返回来执行原来的程序。 2.中断的优先级别 单片机内的CPU在工作时,如果一个中断源向它发出中断请求信号,它就会产生中 断;如果同时有两个或两个以上的中断源发出中断请求信号,CPU会怎么办呢?CPU会先 接受优先级别高的中断源请求,然后再接受优先级别低的中断源请求。 MCS-51系列单片机5个中断源的优先级别顺序见表5-1。 表5-1 5个中断源的优先级别顺序及中断入口地址 tyw藏书 5.1.3 中断的处理过程 为了更容易理解中断的处理过程,先来分析前面的例子。正在看书时,电话铃响了, 这里的电话就是中断源,它发出的铃声就是中断请求信号。怎么来处理这个中断呢?一般 的做法是记住书中刚看完的页码,然后再去客厅接电话,接完电话后,又回到书房阅读已 看完页码的下一页的内容。 单片机处理中断的过程与上述情况类似,具体过程如下。 ① 响应中断请求。当 CPU 正在执行主程序时,如果接收到中断源发出的中断请求信 号,就会响应中断请求,停止主程序,开始执行中断。 ② 保护断点。为了在执行完中断后能返回主程序,在执行中断时,会将主程序的下 一条指令的地址(又称断点地址)保存到数据存储器(RAM)的堆栈中。 ③ 寻找中断入口地址。保护好断点后,CPU开始寻找中断入口地址(又称矢量地 址),中断入口地址存放着相应的中断子程序,不同的中断源对应着不同的中断入口地 址。MCS-51系列单片机5个中断源对应的中断入口地址见表5-1。 ④ 执行中断子程序。CPU寻找到中断入口地址后,就开始执行中断入口地址处的中 断子程序。由于几个中断入口地址之间只有8个单元空间(见表5-1,如0003H~000BH相 隔8个单元),较小的中断子程序(程序只有一两条指令)可以写在这里,较大的中断子 程序无法写入,通常的做法是将子程序写在其他位置,而在中断入口地址单元只写一条跳 转指令,由该指令跳转到中断子程序。 ⑤ 中断返回。执行完中断子程序后,就会返回到主程序,返回的方法是从RAM的堆 栈中取出之前保存的断点地址,然后执行该地址处的主程序,从而返回到主程序。 5.2 中断系统的结构 欲应用单片机的中断技术,首先要了解中断系统的结构。MCtSy-5w1 系藏列书单片机中断系 统的结构如图5-1所示。 图5-1 MCS-51系列单片机中断系统的结构 从图中可以看出,MCS-51系列单片机中断系统的主要组成部分如下。 ① 5个中断源,即外部中断源 、外部中断源 、定时器/计数器中断源T0、定 时器/计数器中断源T1和串行通信口中断源(TX和RX)。 ② 中断源寄存器,包括定时器/计数器控制寄存器TCON和串行通信口控制寄存器 SCON。 ③ 中断允许寄存器IE。 ④ 中断优先级控制寄存器IP。 中断系统的大致工作过程是(以 为例):当单片机的 端输入中断请求信号 时,该信号是一个低电平,它经方式选择开关的“1”(当IT0=0时)和非门后变为“1”,送 入寄存器TCON的IE0位,IE0=1送到寄存器IE的EX0位,如果EX0位为“1”,那么该EX0位 内的开关闭合,数据“1”会通过EX0位,再经过闭合的总开关(EA=1时总开关闭合)到达 寄存器IP的PX0位,若PX0=1,则PX0内的开关接“1”处,数据“1”通过开关选中 中断 源的矢量地址(中断入口地址),该地址送入PC,PC开始执行该地址单元的中断子程 序。 5.2.1 中断源寄存器 中断源寄存器包括定时器/计数器控制寄存器TCON和串行通信口控制寄存器SCON。 tyw藏书 1.定时器/计数器控制寄存器TCON 定时器/计数器控制寄存器 TCON 的功能主要是接收外部中断源( INT0、INT1 )和 定时器/计数器(T0、T1)送来的中断请求信号。其字节地址是88H,它有8位,每位均可 进行位寻址,各位的地址和名称如下: 下面是寄存器TCON各位功能的说明。 IE0和IE1:它们分别是外部中断0( )和外部中断1( )的中断请求标志 位。当外部有中断请求信号输入单片机的 引脚(即P3.2引脚)或 引脚(即P3.3 引脚)时,寄存器TCON的IE0和IE1位会被置“1”。 IT0和IT1:它们分别是外部中断0和外部中断1的输入方式控制位。以外部中断0( )为例,如图5-1所示,当IT0=0时,开关置“1”处, 端输入的低电平经非门后会 将定时器/计数器控制寄存器TCON的IE0位置“1”;当IT1=1时,开关置“2”处, 端只有 输入信号下降沿时才能将IE0位置“1”,才表示 有中断请求。 TF0和TF1:它们分别是定时器/计数器0和定时器/计数器1的中断请求标志。当定时 器/计数器工作产生溢出时,会将TF0或TF1位置“1”,表示定时器/计数器有中断请求。 TR0和TR1:它们分别是定时器/计数器0和定时器/计数器1的启动/停止位。在编写程 序时,若将TR0或TR1设置为“1”,那么相应的定时器/计数器开始工作;若设置为“0”,定 时器/计数器则会停止工作。 注意:如果将TF*位设为“1”,则把IE*设置为下降沿置“1”,中断子程序执行完后, IE*位自动变为“0”(硬件置“0”);如果将TF*位设为“0”,则把IE*设置为低电平置“1”,中 断子程序执行完后,IE*位将仍是“1”,所以在退出中断子程序前,要将 INT*端的低电平 信号撤掉,再用指令将IE*位置“0”(软件置“0”),若退出中断子程序后,IE*位仍为“1”, 将会产生错误的再次中断。 在单片机复位时,定时器/计数器控制寄存器TCON的各位均为“0”。 2.串行通信口控制寄存器SCON 串行通信口控制寄存器SCON的功能主要是接收串行通信口送到的中断请求信号。其 字节地址是98H,它有8位,每位均可进行位寻址,各位的地址和名称如下: 串行通信口控制寄存器SCON的TI位和RI位与中断有关,其他位用作串行通信控制, 将在后面说明。 TI:串行通信口发送中断标志位。在串行通信时,每发送完一帧数据,串行通信口会 将TI位置“1”,表明数据已发送完成,向单片机发送中断请求信号。 tyw藏书 RI:串行通信口接收中断标志位。在串行通信时,每接收完一帧数据,串行通信口会 将 RI 位置“1”,表明数据已接收完成,向单片机发送中断请求信号。 注意:单片机执行中断子程序后,TI位和RI位不能自动变为“0”,需要在退出中断子 程序时,用软件指令将它们清0。 5.2.2 中断允许寄存器IE 中断允许寄存器IE的功能是控制各个中断请求信号能否通过。其字节地址是A8H,它 有8位,每位均可进行位寻址,各位的地址和名称如下: 寄存器IE中有2位不可用,其他各位的功能说明如下。 EA:总中断允许位。当EA=1时,总中断开关闭合;当EA=0时,总中断开关断开,所 有的中断请求信号都不能通过。 ES:串行通信口中断允许位。当ES=1时,允许串行通信口的中断请求信号通过;当 ES=0时,禁止串行通信口的中断请求信号通过。 ET1:定时器/计数器1中断允许位。当ET1=1时,允许定时器/计数器1的中断请求信 号通过;当ET1=0时,禁止定时器/计数器1的中断请求信号通过。 EX1:外部中断1允许位。当EX1=1时,允许外部中断1的中断请求信号通过;当 EX1=0时,禁止外部中断1的中断请求信号通过。 ET0:定时器/计数器0中断允许位。当ET0=1时,允许定时器/计数器0的中断请求信 号通过;当ET0=0时,禁止定时器/计数器0的中断请求信号通过。 EX0:外部中断0允许位。当EX0=1时,允许外部中断0的中断请求信号通过;当 EX0=0时,禁止外部中断0的中断请求信号通过。 5.2.3 中断优先级控制寄存器IP 中断优先级控制寄存器IP的功能是设置每个中断的优先级。其字节地址是B8H,它有 8位,每位均可进行位寻址,各位的地址和名称如下: 寄存器IE中有3位不用,其他各位的功能说明如下。 PS:串行通信口优先级设定位。当PS=1时,串行通信口为高优先级;当PS=0时,串 行通信口为低优先级。 PT1:定时器/计数器1优先级设定位。当PT1=1时,定时器/计数器1为高优先级;当 PT1=0时,定时器/计数器1为低优先级。 tyw藏书 PX1:外部中断1优先级设定位。当PX1=1时,外部中断1为高优先级;当PX1=0时, 外部中断1为低优先级。 PT0:定时器/计数器0优先级设定位。当PT0=1时,定时器/计数器0为高优先级;当 PT0=0时,定时器/计数器0为低优先级。 PX0:外部中断0优先级设定位。当PX0=1时,外部中断0为高优先级;当PX0=0时, 外部中断0为低优先级。 通过设置中断优先级控制寄存器IP相应位的值,可以改变5个中断源的优先顺序。若 优先级一高一低的两个中断源同时发出请求,CPU会先执行优先级高的中断请求,再执行 优先级低的中断请求;若5个中断源有多个高优先级或多个低优先级中断源同时发出请 求,CPU会先按自然优先级顺序依次执行高优先级中断源,再按自然优先级顺序依次执行 低优先级中断源。 5.3 中断程序的编写 在应用中断技术时,先要根据中断需实现的功能设计好电路,ty然w后藏编写书中断程序。下 面首先分析一个中断程序,再总结出编写中断程序的一般规律。 5.3.1 从实例了解中断程序的编写 图5-2 一个单片机应用电路 图5-2所示是一个已设计好的单片机电路,在这个电路中需要实现这样的中断控制: 当按下按键S1时,单片机的外部中断 端(与P3.2引脚共用)输入中断请求信号,该 信号进入内部中断系统,让CPU产生中断来执行中断子程序,程序运行的结果是让单片机 的P1.2引脚输出低电平,发光二极管VD1发光。 实现上述控制功能的程序如下: ORG  0000H  ;指示下一条指令的起始地址为0000H AJMP START  ;跳转执行标号START处的指令 ORG  0003H  ;指示下一条指令的起始地址为0003H LJMP INT_0  ;跳转执行标号INT_0处的指令 ORG  30H   ;指示下一条指令的起始地址为30H START: MOV SP,#5FH  ;将数据5FH送到寄存器SP中(即将存储器的5FH单元 设作堆栈的栈底) SETB P1.2  ;将P1.2端口置“1”(即让VD1熄灭) SETB P3.2  ;将P3.2端口置“1”(即让外部中断INT0输入端为高电平) tyw藏书 SETB IT0   ;将定时器/计数器控制寄存器TCON的IT0位置“1”(即设置当INT0端 输入 ;信号下降沿时表示有中断请求) SETB EA   ;将中断允许寄存器IE的EA位置“1”(即开启总中断) SETB EX0   ;将中断允许寄存器IE的EX0位置“1”(即开启外部中断0) LJMP $   ;跳转到本行(即程序反复执行本行指令,不会执行后面的指令) INT_0:     ;中断子程序标号 PUSH ACC   ;将累加器A中的数据送到已设置好的堆栈中保存下来(即在执行 中 ;断子程序时,保护A中的数据,防止在执行中断子程序时破坏A中 ;的数值,该过程称作保护现场) PUSH PSW   ;将寄存器PSW中的数据送到堆栈中保存下来(即保护PSW中的数 据) CPL  P1.2  ;将P1.2端口取反(即将先前置的“1”变为“0”) POP  PSW   ;将堆栈中的数据送回到寄存器PSW中(该过程称为恢复现场) POP  ACC   ;将堆栈中的数据送还给累加器A RETI     ;中断返回(返回到中断执行前的指令“LJMP $”处) END     ;程序结束 程序执行过程说明如下。 ① 程序从第2 行指令开始执行(因为第1 行是伪指令,不执行),执行第2 行指令的 结果是跳到第6行。 ② 第6 行~第11 行指令用于进行中断前的设置。具体包括:在单片机内部存储器中 设置一个区域当作堆栈(堆栈的栈底地址设为5FH);将I/O接口设置到初始状态;设置 中断输入有效方式(下降沿有效),并开启总中断和外部中断0。 ③ 第 12 行指令“LJMP $”是一条死循环指令。这条指令执行的结果就是再执行它,程 序一直执行这条指令,无法执行下一条指令,就像是原地踏步。 ④一旦按下按键S1,单片机的 端(P3.2)马上由高电平变为低电平,相当于该 端输入一个下降沿信号,该信号使单片机内部的中断系统发生中断,由于外部中断 0 的中 断入口地址为0003H,程序马上由“LJMP $”指令处跳到第 4 行指令“LJMP INT_0”处,第 4 行指令执行的结果是跳到标号“INT_0”处。 ⑤ 从标号“INT_0”到指令“RETI”的这一段程序为中断子程序。为了避免执行中断子程 序时破坏累加器ACC和寄存器PSW中的数据,先用“PUSH”指令将ACC、PSW中的数据送 到先前设置好的堆栈中保存下来(保护现场),然后执行子程序中的关键部分“CPL P1.2”,执行完后,再用“POP”指令依次将堆栈中的数据送回到PSW、ACC中(恢复现 tyw藏书 场)。要注意的是,先保存到堆栈中的数据要后取出(先存后取),由于ACC中的数据先 存入堆栈,所以要后取出,如果不按“先存后取”的顺序,就会造成数据恢复错误(如会将 堆栈中ACC的数据送到PSW中)。 ⑥ “RETI”指令是一条中断子程序返回指令,该条指令执行的结果是返回到中断前的 指令,这里是返回到指令“LJMP$”处,让程序又“原地踏步”,直到 端再输入中断请求 信号。 5.3.2 中断程序的编写方法 中断程序的编写包括主程序的编写和中断子程序的编写。 1.编写主程序 主程序的一般编写过程如下。 ① 设置中断源和中断触发方式。根据需要确定中断的性质,通过设置定时器/计数器 控制寄存器 TCON 或串行通信口控制寄存器 SCON 相应位的值来选择是外部中断,还是 定时器/计数器中断等;设置中断触发方式是低电平触发,还是下降沿触发。 ② 设置中断优先顺序。根据中断紧急程度(当有多个中断源时)确定中断源的优先 顺序,以此来设置中断优先级控制寄存器IP中相应位的值。 ③ 打开中断。通过在中断允许寄存器IE中设置相应的值,打开各个中断。 2.编写中断子程序 中断子程序的编写过程如下。 ① 关中断。进入中断后,一般先要将中断关闭,再进行现场保护,如在前面的实例 中,可在“PUSH ACC”指令前加一条“CLR EA”指令,就能将总中断关闭。 ② 保护现场。为了防止执行中断子程序的过程中改变ACC和PSW中的数据,要 用“PUSH”指令将ACC和PSW中的数据送入堆栈中保护起来。 ③ 开启中断。现场保护好后,再开启中断,如在前面实例的“PUSH PSW”指令后加一 条“SETBEA”指令,就能将总中断打开。 ④ 执行中断服务。中断服务程序是中断子程序中的核心,前面实例中的“CPL P1.2”指 令就是中断服务程序。 ⑤ 关闭中断。中断服务程序执行后又要关闭中断,以恢复现场,如在前面的实例 中,可在“CPL P1.2”指令后加一条“CLR EA”指令,就能将总中断关闭。 ⑥ 恢复现场。恢复现场的方法是用“POP”指令将堆栈中的数据送还给ACC和PSW。 ⑦ 退出中断子程序,返回主程序。在中断子程序的最后用“RETI”指令可以退出中断 子程序,返回主程序。 tyw藏书 第6章 定时器/计数器 6.1 概述 MCS-51系列单片机内部有T0和T1两个定时器/计数器。它们既可用作定时器,也可用 作计数器,可以通过编程来设定使用方法。 6.1.1 定时器 1.定时器的用法 定时器的功能是用来确定时间。如果要求单片机在一定的时间后产生某种控制,可将 定时器/计数器设为定时器。下面以图6-1所示的示意图为例来说明单片机定时器的用法。 图6-1 单片机的定时器用法示意图 从图6-1中可以看出,将定时器/计数器T0设为定时器,实际上就是将定时器/计数器 与外部输入断开,而与内部信号接通,对内部信号进行计数。 单片机的时钟振荡器可产生12MHz的时钟脉冲信号,它经12分频后得到1MHz的脉冲 信号, 1MHz信号每个脉冲的持续时间为1μs,如果定时器T0对1MHz的信号进行计数,当 计到65536时,将需要65536μs,也即65.536ms。65.536ms后定时器计数达到最大值,会溢 出而输出一个中断请求信号去中断系统,中断系统接受中断请求后,执行中断子程序,子 程序的运行结果将P2.1端口置“0”,发光二极管发光。 2.任意定时的方法 在图6-1 中,定时器只有在 65.536ms 后计数达到最大值时才会溢出,如果不需要到 65.536ms定时器就产生溢出,如 1ms,可以对定时器预先进行置数。将定时器初始值置为 64536,这样定时器就会从64536开始计数,当计到65536时,定时器定时就为1ms而产生 一个溢出信号。 6.1.2 计数器 tyw藏书 1.计数器的用法 计数器的功能是用来计数。下面以图6-2所示的示意图为例来说明单片机计数器的用 法。 图6-2 单片机的计数器用法示意图 在图中,单片机内有一个定时器/计数器 T0,可以用编程的方法将它设为计数器。当 作计数器用时,它是一个16位计数器,它的最大计数值为216=65536。T0 端(与P3.4引脚 共用)用来输入脉冲信号。当脉冲信号输入时,计数器就会开始对脉冲进行计数,当计到 最大值65536时,计数器溢出,会输出一个中断请求信号到中断系统,中断系统接受中断 请求后,执行中断子程序,子程序的运行结果为将P2.1端口置“0”,发光二极管导通,有 电流流过而发光。 2.任意计数的方法 在图6-2中,只有在T0端输入65536个脉冲时,计数器计数达到最大值才会溢出,如果 希望输入100个脉冲时计数器就能溢出,可以在计数前对计数器预先进行置数。将计数器 初始值置为65436,这样计数器就会从65436开始计数,当输入100个脉冲时,计数器的计 数值就达到65536而产生一个溢出信号。 6.2 定时器/计数器的结构与工作原理 定时器/计数器是单片机的一个重要组成部分,了解它的结构与ty工w作藏原理书对于开发功 能强大的单片机应用系统有很大的帮助。 6.2.1 定时器/计数器的结构 MCS-51系列单片机内部定时器/计数器的结构如图6-3所示。 从图中可以看出,单片机内部与定时器/计数器有关的部件主要有以下几种。 ① 两个定时器/计数器(T0 和T1)。每个定时器/计数器都是由两个8 位计数器构成 的16 位计数器。 ② 寄存器TCON。TCON为控制寄存器,用来控制两个定时器/计数器的启动/停止。 ③ 寄存器TMOD。TMOD为工作方式控制寄存器,用来设置定时器/计数器的工作方 式。 两个定时器/计数器在内部还通过总线与CPU连接,CPU可以通过总线对它们进行控 制。 图6-3 MCS-51系列单片机内部定时器/计数器的结构 6.2.2 定时器/计数器的工作原理 由于定时器/计数器是在寄存器TCON和TMOD的控制下工作的,要让定时器/计数器 工作,必须先设置寄存器TCON和TMOD(可编写程序来设置)。单片机内部有两个定时 器/计数器,它们的工作原理是一样的,这里以定时器/计数器T0为例进行说明。 tyw藏书 1.定时器/计数器T0用作计数器 要将定时器/计数器T0当作计数器使用,须设置寄存器TCON和TMOD,让它们对定时 器/计数器T0进行相应的控制,然后定时器/计数器T0才开始以计数器的形式工作。 (1)寄存器TCON和TMOD的设置 寄存器TCON和TMOD的设置内容主要包括以下几项。 ① 将寄存器TMOD的C/ 位置“1”,如图6-3所示,该位发出控制信号让开关S0置“1”, 定时器/计数器T0与外部输入端T0(P3.4)接通。 ② 设置寄存器TMOD 的M0、M1 位,让它控制定时器/计数器T0 的工作方式,如让 M0=1、M1=0,可以将定时器/计数器T0设为16位计数器。 ③ 将寄存器TCON的TR0位置“1”,启动定时器/计数器T0开始工作。 (2)定时器/计数器T0的工作过程 定时器/计数器T0的工作过程有以下两步。 ① 计数。定时器/计数器T0启动后,开始对外部T0端(P3.4)输入的脉冲进行计数。 ② 计数溢出,发出中断请求信号。当定时器/计数器T0计数达到最大值65536时,会 溢出产生一个信号,该信号将寄存器TCON的TF0位置“1”,寄存器TCON立刻向CPU发出 中断请求信号, CPU便执行中断子程序。 2.定时器/计数器T0用作定时器 要将定时器/计数器T0当作定时器使用,同样也要设置寄存器TCON和TMOD,然后定 时器/计数器T0才开始以定时器形式工作。 (1)寄存器TCON和TMOD的设置 寄存器TCON和TMOD的设置内容主要包括以下几项。 ① 将寄存器TMOD的C/ 位置“0”,如图6-3所示,该位发出控制信号让开关S0置“2”, 定时器/计数器T0与内部振荡器接通。 ② 设置寄存器TMOD 的M0、M1 位,让它控制定时器/计数器T0 的工作方式,如让 M0=0、M1=0,可以将定时器/计数器T0设为13位计数器。 ③ 将寄存器TCON的TR0位置“1”,启动定时器/计数器T0开始工作。 (2)定时器/计数器T0的工作过程 定时器/计数器T0的工作过程有以下两步。 ① 计数。定时器/计数器 T0 启动后,开始对内部振荡器产生的信号(要经 12 分频) 输入的脉冲进行计数。 ② 计数溢出,发出中断请求信号。定时器/计数器 T0 对内部脉冲进行计数,由 0 计 到最大值8192(213)时需要8.192ms的时间,8.192ms后定时器/计数器T0会溢出而产生一 个信号,该信号将寄存器TCON的TF0位置“1”,寄存器TCON马上向CPU发出中断请求信 号,CPU便执行中断子程序。 tyw藏书 6.3 定时器/计数器的控制 tyw藏书 定时器/计数器是在寄存器TCON和TMOD的控制下工作的,设置这两个寄存器相应位 的值,可以对定时器/计数器进行各种控制。 6.3.1 定时器/计数器控制寄存器TCON 定时器/计数器控制寄存器 TCON 的功能主要是接收各种中断源送来的中断请求信 号,同时也对定时器/计数器进行启动/停止控制。寄存器TCON的字节地址是88H,它有8 位,每位均可进行位寻址,各位的地址和名称如下: 定时器/计数器控制寄存器TCON中各位的功能在前面已介绍过,这里只对寄存器 TCON中与定时器/计数器有关的位进行说明。 TF0和TF1:它们分别是定时器/计数器0和定时器/计数器1的中断请求标志位。当定时 器/计数器工作产生溢出时,会将TF0或TF1位置“1”,表示定时器/计数器有中断请求。 TR0和TR1:它们分别是定时器/计数器0和定时器/计数器1的启动/停止位。在编写程 序时,若将TR0或TR1设置为“1”,那么相应的定时器/计数器就开始工作;若设置为“0”, 相应的定时器/计数器则会停止工作。 6.3.2 工作方式控制寄存器TMOD 工作方式控制寄存器TMOD的功能是控制定时器/计数器T0、T1的工作方式和操作模 式。工作方式控制寄存器TMOD的字节地址是89H,不可以对它进行位操作。在上电(给 电路加电源)和复位时,工作方式控制寄存器TMOD中的数据为00H。工作方式控制寄存 器TMOD各位的名称如下: 在工作方式控制寄存器TMOD中,高4位用来控制定时器/计数器T1,低4位用来控制 定时器/计数器T0,它们对定时器/计数器T1、T0的控制功能一样,下面以高4位控制定时 器/计数器T1为例来说明各位的具体功能。 GATE:门控位,用来控制定时器/计数器的启动模式。 当GATE=0时,只要定时器/计数器控制寄存器TCON的TR1位置“1”,就可启动T1开始 工作;当GATE=1时,除了需要将定时器/计数器控制寄存器TCON的TR1位置“1”外,还要 使 引脚为高电平,才能启动T1工作。 C/ :定时、计数功能设置位。 当C/ =0时,将定时器/计数器设置为定时器工作方式;当C/ =1时,将定时器/计数器 tyw藏书 设置为计数器工作方式。 M1、M0 位:定时器/计数器工作方式设置位。M1、M0 位取不同值的组合,可以将 定时器/计数器设置为不同的工作方式。工作方式控制寄存器 TMOD 高 4 位中的 M1、M0 用来控制定时器/计数器T1的工作方式,而低4位中的M1、M0用来控制定时器/计数器T0的 工作方式。M1、M0位不同取值与定时器/计数器工作方式的关系见表6-1。 表6-1 TMOD的M1、M0位不同取值与定时器/计数器工作方式的关系 6.3.3 定时器/计数器的工作方式 在寄存器TMOD的M1、M0位的控制下,定时器/计数器可以工作在4种不同的方式 下,不同的工作方式适用于不同的场合。 1.方式0 当M1=0、M0=0时,定时器/计数器工作在方式0,它为13位计数器。 (1)定时器/计数器工作在方式0的原理 在方式0时,定时器/计数器由TH、TL两个8位计数器组成,用作13位计数器,使用 TH的8位和TL的低5位。下面以定时器/计数器T0为例来说明方式0的工作原理(要让定时 器/计数器T0工作在方式0,须将TMOD的低4位中的M1、M0位均置“0”),该方式的定时 器/计数器T0电路结构如图6-4所示。 从图6-4中可以看出,当工作在方式0时,定时器/计数器T0是一个13位计数器(TH0 的8位+TL0的低5位)。 C/ 位通过控制开关S1来选择计数器的计数脉冲来源。当C/ =0时,计数脉冲来自单 片机内部振荡器(经12分频);当C/ =1时,计数脉冲经单片机T0引脚输入。 tyw藏书 图6-4 定时器/计数器T0在方式0时的电路结构 GATE位控制定时器/计数器T0的启动方式。GATE位与 、TR0一起经逻辑电路后 形成CON电平,再由CON电平来控制开关S2的通断。当CON=1时,S2闭合,定时器/计数 器T0工作;当CON=0时,S2断开,定时器/计数器T0停止工作(因为S2断开后无信号送给 定时器/计数器T0)。GATE、 和TR0形成CON电平的表达式是: 从上式可知: 若GATE=0,则( + )=1,CON=TR0,即当GATE=0时,CON的值与TR0的 值一致,TR0可直接控制定时器/计数器T0的启动/停止。 若GATE=1,则CON=TR0·( ),即CON的值由TR0、 两个值决定,其中 TR0的值由编程来控制(软件控制),而 的值由外部 引脚的电平控制,只有当 它们的值都为“1”时,CON的值才为“1”,定时器/计数器T0才能启动。 (2)定时器/计数器初值的计算 若定时器/计数器工作在方式0,当其与外部输入端连接时,可以用作13位计数器;当 与内部振荡器连接时,可以用作定时器。 ① 计数初值的计算。当定时器/计数器用作13位计数器时,它的最大计数值为 8192(213),当外部引脚输入8192个脉冲时,计数器就会产生溢出而发出中断请求信 号。如果希望不需要输入8192个脉冲,计数器就能产生溢出,可以给计数器预先设置数 值,这个预先设置的数值称为计数初值。在方式0时,定时器/计数器的计数初值可用下式 计算: 例如希望输入 1000 个脉冲,计数器就能产生溢出,计数器的计数初值应设置为 7192 (8192−1000)。 ② 定时初值的计算。当定时器/计数器用作定时器时,它对内部振荡器产生的脉冲 (经12分频)进行计数,该脉冲的频率为fosc/12,脉冲周期为12/fosc,定时器的最大定时 时间为213·12/fosc,若振荡器的频率fosc为12MHz,定时器的最大定时时间为8192μs。如果 不希望定时这么长,定时器就能产生溢出,可以给定时器预先设置数值,这个预先设置的 数值称为定时初值。在方式0时,定时器/计数器的定时初值可用下t式yw计算藏:书 例如单片机时钟振荡器的频率为12MHz(即12×106Hz),现要求定时1000μs(即 1000×10−6s)定时器就能产生溢出,定时器的定时初值应为 2.方式1 当M1=0、M0=1时,定时器/计数器工作在方式1,它为16位计数器。除了计数位数不 同外,定时器/计数器在方式1的工作原理与方式0完全相同。定时器/计数器T0工作在方式 1时的电路结构如图6-5所示。 图6-5 定时器/计数器T0在方式1时的电路结构 定时器/计数器工作在方式1时的计数初值和定时初值的计算公式分别如下: 3.方式2 前面两种工作方式只能进行一次计数或定时,若要进行多次计数或定时,可让定时 器/计数器工作在方式2下。当M1=1、M0=0时,定时器/计数器工作在方式2,它为8位自动 重装计数器。定时器/计数器工作在方式2时的电路结构如图6-6所示(以定时器/计数器T0 为例)。 图6-6 定时器/计数器T0在方式2时的电路结构 tyw藏书 在方式2时,16位定时器/计数器T0分成TH0、TL0两个8位计数器,其中TL0用来对脉 冲计数,TH0用来存放计数器初值。在计数时,当TL0计数溢出时会将寄存器TCON的TF0 位置“1”,同时也控制TH0重装开始,将TH0中的初值重新装入TL0中,然后TL0又开始在 初值的基础上对输入脉冲进行计数。 定时器/计数器T0工作在方式2时的计数初值和定时初值的计算分别如下: 4.方式3 定时器/计数器T0有方式3,而T1没有(只有方式0~2)。当寄存器TMOD低4位中的 M1=1、M0=1时,定时器/计数器T0工作在方式3。在方式3时,定时器/计数器T0用作计数 器或定时器。 (1)在方式3时,定时器/计数器T0的工作原理 在方式3时,定时器/计数器T0用作计数器或定时器,在该方式下定时器/计数器T0的 电路结构如图6-7所示。 图6-7 定时器/计数器T0在方式3时的电路结构 从图中可以看出,在方式3时,定时器/计数器T0被分成TL0、TH0两个独立的8位计数 器,其中TL0受定时器/计数器T0的全部控制位控制(即原本控制整个定时器/计数器T0的 各个控制位,在该方式下全部用来控制定时器/计数器T0的TL0计数器),而TH0受定时 器/计数器T1的部分控制位(TR1位和TF1位)控制。 在方式3时,TL0既可用作8位计数器(对外部信号计数),也可用作8位定时器(对 内部信号计数);TH0只能用作8位定时器,它的启动受TR1的控制(TR1原本用来控制定 时器/计数器T1),当TR1=1时,TH0开始工作,当TR1=0时,TH0停止工作,当TH0计数 产生溢出时会向TF1置位。 (2)在方式3时,定时器/计数器T1的工作原理 tyw藏书 当定时器/计数器T0工作在方式3时,它占用了定时器/计数器T1的一些控制位,此时 定时器/计数器T1还可以工作在方式0~2(可通过设置寄存器TMOD高4位中的M1、M0的 值来选择),定时器/计数器T1在这种情况下一般用作波特率发生器。当定时器/计数器T0 工作在方式3时,定时器/计数器T1工作在方式1和方式2的电路结构分别如图6-8(a)和图 6-8(b)所示。 图6-8 定时器/计数器T0在方式3时定时器/计数器T1工作在方式1和方式2的电路结构 图6-8(a)所示是定时器/计数器T1工作在方式1时的电路结构。在该方式下,定时器/ 计数器T1是一个16位计数器,由于TR1控制位已被借用来控制T0的高8位计数器TH0,所 以定时器/计数器T1在该方式下无法停止,一直处于工作状态,另外由于TF1位也借给了 TH0,所以定时器/计数器T1溢出后也不能对TF1进行置位产生中断请求信号,定时器/计 数器T1溢出的信号只能输出到串行通信口,此方式下的定时器/计数器T1为波特率发生 器。 图6-8(b)所示是定时器/计数器T1工作在方式2时的电路结构。在该方式下,定时 器/计数器T1是一个8位自动重装计数器,除了具有自动重装载功能外,其他与方式1相 同。 6.4 定时器/计数器的应用 定时器/计数器具有定时和计数功能,这使得它有广泛的用途。ty下w面藏举几书个例子来说 明定时器/计数器的应用。 6.4.1 利用定时器/计数器控制发光二极管的发光时间 要用定时器/计数器控制发光二极管(LED)的发光时间,需首先设计好单片机硬件 电路,然后再编写程序。 1.设计单片机控制LED的硬件电路 设计好的单片机控制 LED 的硬件电路如图6-9所示。在该电路中,要实现的功能是: 让 VD1亮50ms的时间,然后熄灭。 图6-9 单片机控制LED的硬件电路 2.编写单片机程序 在图6-9中,只需让单片机的P1.2引脚先为高电平,再变为低电平,并且低电平持续 时间为50ms,然后让P1.2引脚恢复为高电平,也就是说,让P1.2引脚输出一个宽度为50ms 的低电平脉冲,这样就可以让VD1亮50ms的时间。 欲实现该功能可以应用定时器/计数器,为了让定时器/计数器定时为50ms就能溢出, 需要让定时器/计数器工作在方式1(为16位计数器),还要对定时器/计数器设置定时初 值。 实现该功能的程序如下: tyw藏书 SETB P1.2  ;将P1.2端口置“1”(即让P1.2引脚为高电平,VD1开始处于熄灭状态) MOV TMOD,#01H ;将数据01H(00000001)送到寄存器TMOD中,这样TMOD的 低4位中的 ;GATE=0、C/T=0,M1=0、M0=1,将T0工作方式设置为方式1 MOV TH0,#3CH ;将数据3CH送到T0的高8位计数器中 MOV TL0,#B0H ;将数据B0H送到T0的低8位计数器中,这样T0的定时初值就被设 为3CB0H ;(即15536) CLR P1.2  ;将P1.2端口清0(即让P1.2引脚为低电平,VD1开始亮) SETB TR0   ;将定时器/计数器控制寄存器TCON中的TR0位置“1”,启动T0开始工 作 JNB TF0,$  ;判断定时器/计数器控制寄存器TCON中T0的溢出位TF0是否 为“0”,若为“0”, ;则反复执行本条指令;若为“1”,则执行下一条指令。T0工作后,50ms才能溢出, ;将TF0置“1”,所以本条指令要反复执行50ms的时间,在此期间,P1.2引脚一 ;直为低电平,VD1会一直亮,50ms后开始执行下一条指令 CLR TF0   ;将TF0位清0 SETB P1.2  ;将P1.2端口置“1”,VD1由亮变灭 程序说明: 第1条指令是让P1.2引脚输出高电平,VD1熄灭;第2条指令是将T0的工作方式设置为 方式1;第3、4条指令是给计数器设置定时初值;第5条指令是让P1.2引脚输出低电平, VD1亮;第6条指令是启动T0开始工作;第7条指令是等待计数器溢出,等待时间为 50ms,这段时间内P1.2引脚始终为低电平,VD1亮;第8条指令是将溢出位TF0清0,以便 计数器下一次溢出置“1”;第9条指令让P1.2引脚又输出高电平,VD1熄灭。 6.4.2 利用定时器/计数器产生脉冲信号 1.设计单片机脉冲产生硬件电路 设计好的单片机脉冲产生硬件电路如图6-10所示。在该电路中,要实现的功能是:让 单片机的P1.2引脚输出一个10kHz的方波脉冲信号。 2.编写单片机程序 10kHz方波脉冲信号的周期为100μs,它的高电平和低电平持续时间都是50μs。也就是 说,只要让P1.2引脚输出的高、低电平交替持续50μs,该引脚就能输出10kHz的方波脉冲 tyw藏书 信号。 实现该功能可以应用定时器/计数器,由于高、低电平持续时间短,并且反复循环, 故可让定时器/计数器工作在方式2(8位自动重装计数器)。为了让定时器/计数器在50μs 就能溢出,需要对定时器/计数器设置定时初值。 图6-10 单片机脉冲产生硬件电路 实现该功能的程序如下: MOV TMOD,#02H  ;将T0工作方式设置为方式2 MOV TH0,#0CEH  ;设置自动重装计数器TH0的重装值为CEH(206) MOV TL0, #0CEH  ;设置8位计数器TL0的定时初值为CEH(206) SETB TR0    ;将TR0位置“1”,启动T0开始工作 LP: JNB TF0,$  ;判断溢出位TF0是否为“0”,若为“0”,则反复执行本条指令; ;若为“1”,则执行下一条指令。T0工作后,50μs才能溢出,将TF0置 ;“1”,所以本条指令要反复执行50μs,50μs后才执行下一条指令 CLR TF0    ;将溢出位TF0清0 CPL P1.2    ;将P1.2端口值取反 SJMP LP    ;跳转执行标号LP处的指令(即循环) 程序说明: 前面4条指令用来设置定时器/计数器(又称初始化定时器/计数器),第5条指令的功 tyw藏书 能是等待定时器/计数器产生溢出对TF0置位,等待时间为50μs,在这段时间里,P1.2端口 一直为某电平(高电平或是低电平),50μs后定时器/计数器溢出,对TF0置“1”,系统马 上开始执行第6条指令(将TF0清0),然后执行第7条指令,将P1.2端口的值取反,再执行 第8条指令,执行完第8条指令后又跳转执行第5条指令,第5条指令又等待50μs,此时P1.2 端口为取反后的值,该值会持续50μs。如此反复进行,在P1.2引脚就输出了高、低电平均 为50μs的10kHz方波脉冲信号。 tyw藏书 第7章 串行通信技术 7.1 概述 通信的概念比较广泛,在单片机技术中,单片机与单片机或单片机与其他设备之间的 数据传输称为通信。根据数据传输方式的不同可将通信分为两种:并行通信和串行通信。 同时传输多位数据的方式称为并行通信。如图7-1(a)所示,在并行通信方式下,单 片机中的8位数据10011101通过8条数据线同时送到外部设备中。 并行通信的特点是数据传输速度快,但由于需要的传输线多,故成本高,只适合近距 离的数据通信。 逐位依次传输数据的方式称为串行通信。如图7-1(b)所示,在串行通信方式下,单 片机中的8位数据10011101通过一条数据线逐位传送到外部设备中。 图7-1 通信方式 串行通信的特点是数据传输速度慢,但由于只需要一条传输线,故成本低,适合远距 离的数据通信。 7.1.1 串行通信方式 串行通信又可分为异步通信和同步通信两种。MCS-51系列单片机采用异步通信方 式。 1.异步通信 在异步通信中,数据是一帧一帧传送的。异步通信如图7-2所示,这种通信是以帧为 单位进行数据传输,一帧数据传送完成后,可以接着传送下一帧数据,也可以等待,等待 期间为空闲位(高电平)。 tyw藏书 图7-2 异步通信 (1)帧数据格式 串行通信时,数据是以帧为单位传送的,帧数据有一定的格式。帧数据的格式如图73所示。从图7-3中可以看出,一帧数据由起始位、数据位、奇偶校验位和停止位组成。 图7-3 帧数据的格式 起始位:表示一帧数据的开始,起始位一定为低电平。当单片机要发送数据时,先送 一个低电平(起始位)到外部设备,外部设备接收到起始信号后,马上开始接收数据。 数据位:它是要传送的数据,紧跟在起始位后面。数据位的数据可以是5~8位,传送 数据时是从低位到高位逐位进行的。 奇偶校验位:该位用于检验传送的数据有无错误。奇偶校验是检查数据传送过程中是 否发生错误的一种校验方式,分为奇校验和偶校验。奇校验是指数据和校验位中“1”的总 个数为奇数,偶校验是指数据和校验位中“1”的总个数为偶数。 以奇校验为例,若单片机传送的数据中有偶数个“1”,为保证数据和校验位中“1”的总 个数为奇数,奇偶校验位应为“1”。如果在传送过程中数据产生错误,其中一个“1”变 为“0”,那么传送到外部设备的数据和校验位中“1”的总个数为偶数,外部设备就知道传送 过来的数据发生错误,会要求重新传送数据。 数据传送采用奇校验或偶校验均可,但要求发送端和接收端的校验方式一致。在帧数 据中,奇偶校验位也可以不用。 停止位:它表示一帧数据的结束。停止位可以是1位、1.5位或2位,但一定为高电 平。 一帧数据传送结束后,可以接着传送第2帧数据,也可以等待,等待期间数据线为高 tyw藏书 电平(空闲位)。如果要传送下一帧,只要让数据线由高电平变为低电平(下一帧起始位 开始),接收器就开始接收下一帧数据。 (2)MCS-51系列单片机的几种帧数据方式 MCS-51 系列单片机在串行通信时,根据设置的不同,其传送的帧数据有以下4种方 式。 ① 方式0。称为同步移位寄存器输入/输出(I/O)方式,它是单片机通信中较特殊的 一种方式,通常用于并行I/O接口的扩展,这种方式中的一帧数据只有8位(无起始位、停 止位)。 ② 方式1。在这种方式中,一帧数据中有1位起始位、8位数据位和1位停止位,共10 位。 ③ 方式 2。在这种方式中,一帧数据中有 1 位起始位、8 位数据位、1 位可编程位和 1 位停止位,共11位。 ④ 方式3。这种方式与方式2相同,一帧数据中有1位起始位、8位数据位、1位可编程 位和1位停止位,它与方式2的区别仅在于波特率(数据传送速率)设置不同。 2.同步通信 在异步通信中,每一帧数据发送前要用起始位,结束时要用停止位,这样会占用一定 的时间,导致数据传输速度较慢。为了提高数据传输速度,在计算机与一些高速设备进行 数据通信时,常采用同步通信。同步通信的帧数据格式如图7-4所示。 图7-4 同步通信的帧数据格式 从图7-4 中可以看出,同步通信的数据后面取消了停止位,前面的起始位用同步信号 代替,在同步信号后面可以跟很多数据,所以同步通信传输速度快。但由于在通信时要求 发送端和接收端严格保持同步,这需要用复杂的电路来保证,所以单片机很少采用这种通 信方式。 7.1.2 串行通信的数据传送方向 串行通信根据数据的传送方向可分为3种方式:单工方式、半双工方式和全双工方 式。这3种传送方式如图7-5所示。 tyw藏书 图7-5 数据传送方式 ① 单工方式。在这种方式下,数据只能向一个方向传送。单工方式如图7-5(a)所 示,数据只能由发送端传输给接收端。 ② 半双工方式。在这种方式下,数据可以双向传送,但同一时间内,只能向一个方 向传送,只有一个方向的数据传送完成后,才能往另一个方向传送数据。半双工方式如图 7-5(b)所示,通信的双方都有发送器和接收器,一方发送时,另一方接收,由于只有一 条数据线,所以双方不能在发送的同时进行接收。 ③ 全双工方式。在这种方式下,数据可以双向传送,通信的双方都有发送器和接收 器,由于有两条数据线,所以双方在发送数据的同时可以接收数据。全双工方式如图75(c)所示。 7.2 串行通信口的结构与工作原理 单片机通过串行通信口可以与其他设备进行数据通信来控制外ty部w设藏备或书接受外部设备 的控制,从而实现更强大的功能。 7.2.1 串行通信口的结构 串行通信口的结构如图7-6所示。 图7-6 串行通信口的结构 从图7-6中可以看出,与串行通信口有关的部件主要有以下几种。 ① 两个数据缓冲器SBUF。SBUF是可以直接寻址的特殊功能寄存器(SFR),它包括 发送SBUF和接收SBUF,发送SBUF用来发送串行数据,接收SBUF用来接收数据,两者共 用一个地址99H。在发送数据时,该地址指向发送SBUF;而在接收数据时,该地址指向 接收SBUF。 ② 输入移位寄存器。在接收控制器的控制下,将输入的数据逐位移入接收SBUF。 ③ 串行控制寄存器SCON。SCON的功能是控制串行通信口的工作方式,并反映串行 通信口的工作状态。 ④ 定时器T1。T1用作波特率发生器,用来产生接收和发送数据所需的移位脉冲,移 位脉冲的频率越高,接收和传送数据的速率越快。 7.2.2 串行通信口的工作原理 串行通信口有接收数据和发送数据两个工作过程,下面以图7-6所示的串行通信口结 构为例来说明这两个工作过程。 1.接收数据过程 在接收数据时,若RXD端(与P3.2引脚共用)接收到一帧数据的起始信号(低电 tyw藏书 平),寄存器SCON 马上向接收控制器发出允许接收信号,接收控制器在定时器/计数器 T1产生的移位脉冲信号控制下,控制输入移位寄存器,将 RXD 端输入的数据由低到高逐 位移入输入移位寄存器中,数据全部移入输入移位寄存器后,寄存器再将全部数据送入接 收SBUF中,同时接收控制器通过或门向CPU发出中断请求,CPU马上响应中断,将接收 SBUF中的数据全部取走,从而完成一帧数据的接收。后面各帧的数据接收过程与上述相 同。 2.发送数据过程 相对于接收过程来说,串行通信口发送数据的过程较简单。当CPU要发送数据时,只 要将数据直接写入发送SBUF中,就启动了发送过程。在发送控制器的控制下,发送门打 开,先发送一位起始信号(低电平),然后依次由低到高逐位发送数据,数据发送完毕, 最后发送一位停止位(高电平),从而结束一帧数据的发送。一帧数据发送完成后,发送 控制器通过或门向CPU发出中断请求,CPU响应中断,将下一帧数据送入发送SBUF,开 始发送下一帧数据。 7.3 串行通信口的控制 串行通信口的工作受串行控制寄存器SCON和电源控制寄存器tPyCwON藏的控书制。 7.3.1 串行控制寄存器SCON SCON用来控制串行通信的工作方式及反映串行通信口的一些工作状态。SCON是一 个8位寄存器,它的地址为98H,其中每位都可以位寻址。SCON各位的名称和地址如下: SM0、SM1位:串行通信口工作方式设置位。通过设置这两位的值,可以让串行通信 口工作在4种不同的方式下,具体见表7-1。 表7-1 串行通信口工作方式设置位及其功能 这几种工作方式在后面将会详细介绍。 SM2、TB8和RB8位:用来设置主——从式多机通信。当一个单片机(主机)要与其 他几个单片机(从机)通信时,就要对这些位进行设置。当SM2=1时,允许多机通信;当 SM2=0时,不允许多机通信。 REN位:允许/禁止接收数据控制位。当REN=1时,允许串行通信口接收数据;当 REN=0时,禁止串行通信口接收数据。 TI位:发送中断标志位。当串行通信口工作在方式0时,发送完8位数据后,该位自动 置“1”(即硬件置“1”),向CPU发出中断请求,在CPU响应中断后,必须用软件清0;在其 他几种工作方式中,该位在停止位开始发送前自动置“1”,向CPU发出中断请求,在CPU 响应中断后,也必须用软件清0。 RI位:接收中断标志位。在工作方式0时,接收完8位数据后,该位自动置“1”,向 CPU发出接收中断请求,在CPU响应中断后,必须用软件清0;在其他几种工作方式中, 该位在接收到停止位期间自动置“1”,向CPU发出中断请求,在CPU响应中断取走数据 后,必须用软件对该位清0,以准备开始接收下一帧数据。 在上电复位时,SCON各位均为“0”。 7.3.2 电源控制寄存器PCON PCON是一个8位寄存器,它的字节地址为87H,不可位寻址,并且只有最高位SMOD 与串行通信口控制有关。PCON各位的名称和地址如下: tyw藏书 SMOD位:波特率设置位。在串行通信口工作在方式1~3时起作用。若SMOD=0,波 特率不变;当SMOD=1时,波特率加倍。在上电复位时,SMOD为“0”。 7.4 4种工作方式与波特率的设置 串行通信口有4种工作方式,具体工作在哪种方式受寄存器SCtOyNw的藏控制书。在串行通 信时,要改变数据传送速率(波特率),可对波特率进行设置。 7.4.1 方式0 当SCON中的SM0=0、SM1=0时,串行通信口工作在方式0。 方式 0 称为同步移位寄存器输入/输出(I/O)方式,常用于扩展 I/O 接口。在单片机 发送或接收串行数据时,通过RXD端发送数据或接收数据,而通过TXD端送出数据传输 所需的移位脉冲。 在方式0时,串行通信口又分两种工作情况:发送数据和接收数据。 1.方式 0——发送数据 当串行通信口工作在方式0时,若要发送数据,通常在外部接8位串/并转换移位寄存 器74LS164,具体连接电路如图7-7所示。其中,RXD 端用来输出串行数据,TXD 端用来 输出移位脉冲,P1.0端用来对74LS164进行清0。 图7-7 串行通信在方式0时的数据发送电路 在单片机发送数据前,先从P1.0引脚发出一个清0信号(低电平)到74LS164的CLR引 脚,对其进行清0,让D7~D0全部为“0”,然后单片机在内部执行写SBUF指令,开始从 RXD端(P3.0引脚)送出8位数据,与此同时,单片机的TXD端输出移位脉冲到74LS164的 CLK引脚,在移位脉冲的控制下,74LS164接收单片机RXD端送到的8位数据(先低位后 高位),数据发送完毕,在74LS164的D7~D0端输出8位数据。另外,在数据发送结束 后,寄存器SCON的发送中断标志位TI自动置“1”。 下面以图7-7所示的电路为例,编写一段程序,将单片机中的数据36H通过串行通信 口发送到74LS164中。 程序如下: MOV SCON,#00H ;将数据00H(00000000)送到寄存器SCON中,设置串行通信 为方式0 CLR P1.0  ;将P1.0端口清0,即让P1.0引脚输出低电平,对74LS164进行清0 tyw藏书 NOP    ;空操作指令,单片机不进行任何操作,用来消耗一个机器周期 NOP    ;再消耗一个机器周期(机器周期一般是时钟周期的12倍,若时钟频率 是12MHz, ;那么机器周期为1μs(12×1/12MHz),这两条空指令的功能是让P1.0端口的低 ;电平持续2μs,以便能使清0顺利完成 SETB P1.0  ;将P1.0端口置“1”,即让P1.0端口由低电平变为高电平,以结束对 74LS164 ;的清0操作 MOV SBUF,#36H ;将数据36H写入串行通信口的缓冲器SBUF中,同时数据36H由 低到高逐位 ;从RXD端送出,进入74LS164的1、2脚 JNB TI,$  ;判断SCON的TI位是否为“0”,若为“0”,则反复执行本条指令;若 为“1”, ;则执行下一条指令。只有RXD端8位数据发送完毕,TI位才会置“1”,所以 ;该指令是等待数据发送完成,若未完成(TI=0)继续等待,若完成(TI=1)则执 ;行下一条指令 CLR TI   ;将TI位清0。当一帧数据发送完成时,需要将TI位清0,以便开始发送 下一帧 ;数据 2.方式 0——接收数据 当串行通信口工作在方式0时,若要接收数据,一般在外部接8位并/串转换移位寄存 器74LS165,具体连接电路如图7-8所示。在这种方式时,RXD端用来接收输入的串行数 据,TXD端用来输出移位脉冲,P1.0端用来对74LS165的数据进行锁存。 图7-8 串行通信口在方式0时的数据接收电路 在单片机接收数据前,先从P1.0引脚发出一个低电平信号到74LS165的S/L引脚,让 74LS165锁存由D7~D0端输入的8位数据,然后单片机内部执行读SBUF指令,与此同时, 单片机的TXD端送移位脉冲到74LS165的CLK1引脚,在移位脉冲的控制下,74LS165中的 tyw藏书 数据逐位从RXD端送入单片机,单片机接收数据完毕,寄存器SCON的接收中断标志位RI 自动置“1”。 下面编写一段程序,让单片机接收74LS165送来的8位数据。 程序如下: CLR P1.0  ;让P1.0引脚输出低电平,将从D7~D0端输入的数据存入74LS165中 NOP    ;空操作指令 NOP    ;空操作指令,这两条空指令是让P1.0端口的低电平持续2μs,以便 74LS165能 ;顺利完成数据的存入 SETB P1.0  ;让P1.0端口由低电平变为高电平,以结束74LS165对数据的存入 MOV SCON,#10H ;将数据10H(00010000)送到寄存器SCON中,让REN位 为“1”,设置串行 ;通信为方式0,并启动数据接收 JNB RI,$  ;等待接收数据完成,若未完成继续等待,若完成则执行下一条指令 CLR RI   ;将RI位清0。当一帧数据接收完成时,需要将RI位清0,以便开始接收 下一帧 ;数据 MOV A,SBUF  ;将接收器内的数据送入累加器A中 在方式0中,串行通信口发送和接收数据的波特率都是fosc/12。 7.4.2 方式1 当寄存器SCON中的SM0=0、SM1=1时,串行通信口工作在方式1。 在方式1时,串行通信口可以发送和接收每帧10位的串行数据。其中,TXD端用来发 送数据, RXD端用来接收数据。在方式1中,一帧数据中有10位,包括1位起始位(低电 平)、8位数据位(低位在前)和1位停止位(高电平)。 在方式1时,串行通信口又分两种工作情况:发送数据和接收数据。 1.方式1——发送数据 在发送数据时,若执行写 SBUF 指令(如 MOV SBUF,#36H),发送控制器在移位 脉冲(由定时器/计数器T1产生的信号再经16或32分频而得到)的控制下,先从TXD端送 出一个起始位(低电平),然后再逐位将8位数据从TXD端送出,当最后一位数据发送完 成时,发送控制器马上将SCON的TI位置“1”,向CPU发出中断请求,同时从TXD端输出停 止位(高电平)。 2.方式1——接收数据 在方式1时,需要设置SCON中的REN=1,串行通信口才允许接收数据。由于不知道 tyw藏书 外部设备何时会发送数据,所以串行通信口会不断检测RXD端,当检测到RXD端有负跳 变(由“1”变为“0”)时,说明外部设备发来了数据的起始位,于是启动RXD端接收,将输 入的8位数据逐位移入内部的输入移位寄存器。 8位数据全部进入输入移位寄存器后,如果满足RI位为“0”、SM2位为“0”(若SM2不 为“0”,但接收到的数据停止位为“1”也可以)的条件,输入移位寄存器中的8位数据才可 以放入SBUF,停止位的“1”才能送入SCON的RB8位中,RI位就会被置“1”,向CPU发出中 断请求,让CPU取走SBUF中的数据;如果条件不满足,输入移位寄存器中的数据将无法 送入SBUF而丢弃,重新等待接收新的数据。 7.4.3 方式2 当SCON中的SM0=1、SM1=0时,串行通信口工作在方式2。 在方式2时,串行通信口可以发送和接收每帧11位的串行数据,其中1位起始位、8位 数据位、1位可编程位和1位停止位。TXD端用来发送数据,RXD端用来接收数据。 在方式2时,串行通信口又分两种工作情况:发送数据和接收数据。 1.方式2——发送数据 在方式2时,发送的一帧数据有11位,其中有9位数据,第9位数据取自SCON中的TB8 位。在发送数据前,先用软件设置TB8位的值,然后执行写SBUF指令(如MOV SBUF, A),发送控制器在内部移位脉冲的控制下,从TXD端送出一个起始位(低电平),然后 逐位送出8位数据,再从TB8位中取出第9位并送出,当最后一位数据发送完成,发送控制 器马上将SCON的TI位置“1”,向CPU发出中断请求,同时从TXD端输出停止位(高电 平)。 2.方式2——接收数据 在方式2时,同样需设置SCON的REN=1,串行通信口才允许接收数据,然后不断检 测RXD端是否有负跳变(由“1”变为“0”),若有,说明外部设备发来了数据的起始位,于 是启动 RXD端接收数据。 当8位数据全部进入输入移位寄存器后,如果RI位为“0”、SM2位为“0”(若SM2不 为“0”,但接收到的第9位数据为“1”也可以),输入移位寄存器中的8位数据才可以送入 SBUF,第9位会放进SCON的RB8位,同时RI位置“1”,向CPU发出中断请求,让CPU取走 SBUF中的数据,否则输入移位寄存器中的数据将无法送入SBUF而丢弃。 7.4.4 方式3 当SCON中的SM0=1、SM1=1时,串行通信口工作在方式3。 方式3与方式2一样,传送的一帧数据都为11位,工作原理也相同,两者的区别仅在于 tyw藏书 波特率不同,方式2的波特率固定为fosc/64或fosc/32,而方式3的波特率则可以设置。 7.4.5 波特率的设置 在串行通信中,为了保证数据的发送和接收成功,要求发送方发送数据的速率与接收 方接收数据的速率相同,而将双方的波特率设置相同就可以达到这个要求。 在串行通信的4种方式中,方式0的波特率是固定的,而方式1~方式3的波特率则是可 变的。波特率是数据传送的速率,它用每秒传送的二进制数的位数来表示,单位符号是 baud/s。 1.方式0的波特率 方式0的波特率固定为时钟振荡频率的1/12,即: 2.方式2的波特率 方式2的波特率由寄存器PCON中的SMOD位决定。当SMOD=0时,方式2的波特率为 时钟振荡频率的1/64;当SMOD=1时,方式2的波特率加倍,为时钟振荡频率的1/32,即: 3.方式1和方式3的波特率 方式1和方式3的波特率除了与SMOD位有关,还与定时器/计数器T1的溢出率有关。 方式1和方式3的波特率可用下式计算: T1的溢出率是指定时器/计数器T1在单位时间内计数产生的溢出次数,也即溢出脉冲 的频率。 在将定时器/计数器T0设作工作方式3时(设置方法见“定时器/计数器”一章内容), T1可以工作在方式0、方式1或方式2这3种方式下。当T1工作于方式0时,它对脉冲信号 (由时钟信号fosc经12分频得到)进行计数,计到213时会产生一个溢出脉冲到串行通信口 作为移位脉冲;当T1工作于方式1和方式2时,则分别要计到216和28−X(X为T1的初值, 可以设定)才产生溢出脉冲。 如果欲提高串行通信口的波特率,可让T1工作在方式2,因为该方式计数时间短,溢 出脉冲频率高,并且能通过设置 T1 的初值来调节计数时间,从而改变 T1 产生的溢出脉 冲的频率(又称 T1的溢出率)。 当T1工作在方式2时,T1两次溢出的时间间隔,也即T1的溢出周期为: T1的溢出率为溢出周期的倒数,即: 故当T1工作在方式2时,串行通信口工作方式1、3的波特率为: 由上式可推导出T1在方式2时,其初值X为: tyw藏书 例如:单片机的时钟频率fosc=11.0592 MHz,现要让串行通信的波特率为2400 baud/s,可将串行通信口的工作方式设为1、T1的方式设为2,并求出T1应设的初值。 求T1初值的过程如下。 先进行寄存器设置:为了让波特率不倍增,将寄存器PCON中的数据设为00H,这样 SMOD位就为“0”;设置寄存器TMOD中的数据为20H,这样T1就工作在方式2。 再计算并设置T1的初值: 十进制数244转换成十六进制数为F4H,将T1的初值设为F4H。 由于设置波特率和初值需要计算,比较麻烦,一般情况下可查表来进行设置。常见的 波特率设置见表7-2。 表7-2 常见的波特率设置 7.5 串行通信口的应用 单片机利用串行通信口可以和外部设备进行通信,通信形式有ty单w工藏通信书、双工通信和 多机通信3种。多机通信情况较为复杂,本节只介绍单工通信和双工通信。 7.5.1 单工通信 单工通信时,在同一时间内,单片机要么向外部设备发送数据,要么接收外部设备送 来的数据,两者不能同时进行。 1.发送数据 要让单片机发送数据,必须编写发送数据程序,再将程序写入单片机,在程序的控制 下,单片机就可以向外部设备发送数据。 举例:编写程序,将单片机内40H~48H单元的数据发送给外部设备,要求串行通信 口工作在方式2(一帧数据为11位),数据位的第9位作为奇偶校验位。 程序如下: MOV  SCON,#80H ;将串行通信口设为工作方式2(即让SM0=1、SM1=0) MOV  PCON,#80H ;将波特率设为加倍(即为fosc/32) MOV  R0,# 40H ;将数据40H送入寄存器R0 MOV  R2,#08H ;将数据08H送入寄存器R2 LOOP: MOV  A,@R0  ;将R0中的地址所指单元中的数据送入累加器A MOV  C,P  ;将寄存器PSW的奇偶校验位P中的值送入CY位(进位标志位) MOV  TB8,C  ;将CY位中的值送入寄存器SCON的TB8位(在发送数据时, TB8 ;位会作为第9位数据发送) MOV  SBUF,A  ;将A中的数据送入缓冲器SBUF,同时启动串行通信口开始发 送 ;SBUF中的数据 WAIT: JBC  TI,CONT ;判断TI位是否为“1”。若TI=1,则执行标号CONT处的 指令,同时 ;将TI位清0;若TI=0,则执行下一条指令 SJMP WAIT  ;跳转执行标号WAIT处的指令(本条指令和上一条指令的功能是等 待 ;数据发送完成,发送完成后便执行标号CONT处的指令,未完成则 ;反复执行上一条指令,直到数据发送完毕将TI位置“1”) CONT: INC  R0   ;将R0中的数据加1 DJNZ R2,LOOP ;将R2中的数据减1,若不为“0”,则跳转执行标号LOOP处的指 令; ;若为“0”,则结束程序 tyw藏书 程序说明: 标号LOOP至最后一条指令的程序段要反复执行多次,第1次执行程序段时发送40H单 元中的数据,当执行到最后一条指令时,R0中的数据为41H,R2中的数据由08H变为 07H,然后回跳到标号LOOP处,开始第2次执行程序段,第2次执行时发送41H单元中的程 序。如此反复执行多次,最后一次执行程序段时发送48H中的数据,由于执行到最后一条 指令时,R2中的数据已减为“0”,不会再产生跳转,而是结束程序。 2.接收数据 要让单片机通过串行通信口接收数据,需要编写数据接收程序。下面通过一个例子来 说明数据接收程序的编写方法。 举例:编写程序,让单片机能接收外部设备送来的数据,串行通信口设为工作方式 2,要求单片机能判断数据的奇偶校验位是否错误。 程序如下: MOV  SCON,# 90H ;将串行通信口设为工作方式2,并允许接收(即让SM0=1、 SM1=0、 ;REN=1),串行通信口开始等待外部设备向RXD端送入数据 LOOP: JBC  RI,READ ;判断RI位是否为“1”。若RI=1,则执行标号READ处 的指令,同 ;时将RI位清0;若RI=0,则执行下一条指令 SJMP LOOP  ;程序跳转执行标号LOOP处的指令 READ: MOV  A,SBUF  ;将SBUF中的数据送入累加器A中 JB  PSW.0,ONE ;判断PSW的第0位(即奇偶校验位P)是否为“1”。若为“1”,跳 ;转执行标号ONE处的指令;若不为“1”,则执行下一条指令 JB  RB8,ERR ;判断寄存器SCON的RB8位是否为“1”。若为“1”,跳转执行标号 ERR ;处的指令;若不为“1”,则执行下一条指令 SJMP RIGHT  ;跳转执行标号RIGHT处的指令 ONE: JNB  RB8,ERR ;判断RB8位是否为“0”。若为“0”,则执行标号ERR处 的指令,否 ;则执行下一条指令 RIGHT:…      ;奇偶校验正确应执行的指令,指令可根据要实现的功能编 写,这里 ;省略 ERR:…      ;奇偶校验错误应执行的指令 要读懂上面的程序,须了解下面几个要点。 tyw藏书 ① 串行通信口在接收数据时,会将第9位数据(这里为奇偶校验位)送入寄存器 SCON的RB8位中。 ② 特殊功能寄存器(PSW)的第0位(P 位)为奇偶校验位,MCS-51 系列单片机为 偶校验,当累加器A中“1”的个数为偶数时,P位为“0”,否则P位为“1”。 ③ 如果接收的8 位数据都没有发生错误,那么寄存器SCON 中RB8 位的值(来自帧数 据中的奇偶校验位)与寄存器PSW中奇偶校验位P位的值应一致。例如外部设备传送的数 据中有3个“1”,那么RB8位应为“1”,含3个“1”的数据送入累加器A中后,会使寄存器PSW 的P位也为“1”。也就是说,如果数据未发生错误,P位和RB8位的值应相同;如果数据传 送时发生错误,其中一位“1”变为“0”,那么传送到累加器A中的数据也只含有2个“1”,寄 存器PSW的P位就为“0”,而RB8位仍为“1”(该位与数据中的奇偶校验位一致,并不因数 据错误而改变),即数据发生错误, P位和RB8位的值会不同。 程序说明: 在前面的程序中,“JB PSW.0,ONE”用来判断P位是否为“1”。若为“1”,再执行“JNB RB8, ERR”来判断RB8位是否为“0”。若为“0”,说明P位和RB8位的值不同,则执行校验 错误标号ERR处的指令;若不为“0”(即为“1”),P位和RB8位的值相同,则执行校验正 确标号RIGHT处的指令。 在执行“JB PSW.0,ONE”来判断P位是否为“1”时,若P位为“0”,则执行“JB RB8, ERR”来判断RB8位是否为“1”。若为“1”,说明P位和RB8位的值不同,则执行校验错误标 号ERR处的指令;若RB8位为“0”,P位和RB8位的值相同,则执行“SJMP RIGHT”而跳转执 行校验正确标号RIGHT处的指令。 7.5.2 双工通信 当给单片机写入发送数据程序时,在发送程序的控制下单片机只能发送数据;当给单 片机写入接收数据程序时,单片机只能接收数据。如果希望单片机在发送数据时,一旦外 部设备有数据送来马上可以接收数据,则需要给单片机写入双工通信程序。下面通过一个 例子来说明双工通信程序的编写方法。 举例:编写双工通信程序,让单片机能向外部设备发送和接收数据,其中要发送的数 据放在首地址为 20H 的单元中,接收的数据放在首地址为 40H 的单元中,要求波特率为 2.4 kbaud/s。 在编写程序时,要确定定时器T1的工作方式并计算初值(也可查表7-2)。现让T1工 作在方式2,它的初值X计算公式如下: 十进制数244转换成十六进制数是F4H。 双工通信程序如下: tyw藏书 MAIN: MOV  TMOD,#20H ;将定时器T1设为工作方式2(即让TMOD的 M1=1、M0=0) MOV  TL1,#0F4H ;设置T1的初值为244 MOV  TH1,#0F4H ;设置T1的重装值为244 SETB TRl   ;将寄存器TCON的TR1位置“1”,启动T1开始计数 MOV  SCON,#50H ;将串行通信口设为工作方式1,并允许接收(即让SM0=0、 SM1=1、 ;REN=1) MOV  R0,#20H ;将数据20H送入寄存器R0 MOV  R1,#40H ;将数据40H送入寄存器R1 SETB ES   ;将寄存器IE的ES位置“1”,开启串行通信口中断 SETB EA   ;将IE的EA位置“1”,开启总中断 ACALL SOUT  ;跳转执行标号SOUT处的指令 LOOP: SJMP LOOP  ;反复执行本条指令 ;以下为中断子程序 ORG  0023H  ;指示下一条指令的地址为0023H AJMP SRR1  ;跳转执行标号SRR1处的指令 SRR1: JNB  RI,SEND ;判断RI位是否为“0”,为“0”则执行SEND处的指令,否 则执行 ;下一条指令 ACALL SIN   ;跳转执行SIN处的指令 SJMP NEXT  ;跳转执行NEXT处的指令 SEND: ACALL SOUT  ;跳转执行SOUT处的指令 NEXT: RETI     ;中断返回(返回至“LOOP: SJMP LOOP”指令) ;以下为发送子程序 SOUT: CLR  TI   ;将寄存器SCON的TI位清0 MOV A,@R0   ;将R0中的地址所指单元中的数据送到累加器A中 INC  R0   ;将R0中的值加1 MOV  SBUF,A  ;将A中的值送入缓冲器SBUF,同时开始发送SBUF中的数据 RET     ;子程序返回(返回至“LOOP: SJMP LOOP”指令) ;以下为接收子程序 SIN:  CLR  RI   ;将SCON的RI位清0 tyw藏书 MOV  A,SBUF  ;将接收SBUF中的数据送入A中 MOV  @R1,A  ;将A中的数据送入R1中的地址所指的单元中 INC  R1   ;将R1中的值加1 RET     ;子程序返回(返回至“SJMP NEXT”指令) tyw藏书 第8章 接口技术 单片机的功能主要是控制,但仅仅一块单片机是不够的,构建一个较完善的控制系 统,还需要给单片机增加接口电路。接口电路主要由输入接口和输出接口组成。 8.1 输入接口 输入接口的功能是将外部设备送来的信号转换成单片机能接收ty的w信藏号。书根据外部设备 的不同或输入信号的不同,输入接口可分为开关量输入接口、键盘输入接口和模拟量输入 接口等。 8.1.1 开关量输入接口 用开关给单片机输入的信号称为开关量。开关有断开和闭合两种状态,因此用开关给 单片机输入的开关量有“1”和“0”两种。 1.开关输入电路 图8-1所示是一种简单的开关输入电路。在理想状态下,当按下开关S时,给单片机输 入一个“0”(低电平);当S断开时,则给单片机输入一个“1”(高电平)。 实际上,当按下开关S时,由于手的抖动,S会断开、闭合几次,然后稳定闭合,所 以按下开关时,给单片机输入的低电平不稳定,而是高、低电平变化几次(持续 10~ 20ms),再保持为低电平,同样在S弹起时也有这种情况。开关给单片机输入的信号如图 8-2所示。开关抖动给单片机输入不正常的信号后,可能会使单片机产生误动作,应设法 消除开关的抖动。 图8-1 简单的开关输入电路 图8-2 开关输入信号 2.开关抖动的消除方法 开关抖动的消除方法通常有两种:硬件防抖和软件防抖。 (1)硬件防抖 硬件防抖的方法很多,图8-3所示是几种常见的硬件防抖电路。 tyw藏书 图8-3 常见的硬件防抖电路 图8-3(a)所示是RS触发器防抖电路。当开关S与上端接触时, 端(置“1”端) 为“0”,触发器被置“1”,输出端Q=1;当开关被拨向下端时, 端(置“0”端)为“0”,触 发器被置“0”,Q=0,这时即使手发生抖动,开关又脱离下端(由于上端距离下端较远, 开关抖动也不会接触到上端),使 端为“1”,Q端仍保持为“0”不变(因为当 、 均 为“0”时,RS触发器状态保持不变),从而消除了抖动。 用 RS 触发器可以消除开关抖动,但这种电路较复杂,成本也高,为此可采用图83(b)和图8-3(c)所示的RC防抖电路。 在图8-3(b)中,当开关S 断开时,+5V 电压经电阻R 对电容C 充电,在电容 C 上充 得+5 V电压,当按下开关时,S闭合,由于开关电阻小,电容C通过开关迅速将两端电荷 放掉,两端电压迅速降低(接近0 V),单片机输入为低电平,若手发生抖动导致开关短 时断开,+5V电压经电阻R对电容C充电,但由于电阻R阻值大,短时间电容C充电很少, 电容C两端电压基本不变,单片机输入仍为低电平,从而消除了开关抖动。 图8-3(c)所示防抖电路的工作原理读者可自己分析。 如果采用图8-3(b)和图8-3(c)所示的防抖电路,选择RC的值比较关键,RC元件 的值可以用下式计算: 因为抖动时间一般为10~20ms,如果R=10 kΩ,那么C可在2.8~5.6μF中选择,通常选 择3.3μF。 (2)软件防抖 虽然用硬件可以消除抖动,但会使输入电路变复杂且成本提高,对于擅长编程的人, tyw藏书 可以通过软件来消除抖动。 软件防抖的思想是在单片机第1次检测到开关按下时,马上执行延时子程序(需10~ 20ms),在执行延时子程序时,即使开关发生抖动,单片机也不采取措施,而是待延时 子程序执行完后,再检测开关的状态,由于这时开关状态已稳定,所以检测到的是正确的 开关输入信号。 下面以图8-1所示的开关输入电路为例编写一段程序,用于消除开关S按下时产生的抖 动。 程序如下: ORG 0100H   ;让下一条指令从0100H地址开始 START: SETB P2.3   ;将P2.3端口置“1” JB P2.3,$   ;检测P2.3端口是否为“1”,为“1”则仍执行本条指令,否则执行下 ;一条指令 ACALL DELAY   ;跳转执行标号DELAY处的指令 JB P2.3,$   ;再检测P2.3端口 ACALL CTRL   ;跳转执行标号CTRL处的指令 LJMP START   ;跳转执行标号START处的指令 ;以下为延时子程序 DELAY: MOV R7,#40   ;将数据40(该数为十进制数,在汇编时会自动转换 成相应的十六进 ;制数)送入寄存器R7中 D1:  MOV R6,#200   ;将数据200送入寄存器R6中 DJNZ R6,$   ;将R6中的值减1,若为“0”则执行下一条指令,否则再执行本条 ;指令,本指令需执行200次才能使R6中的值为“0” DJNZ R7,D1   ;将R7中的值减1,若为“0”则执行下一条指令,否则执行标号 D1 ;处的指令 RET     ;子程序返回(返回至“ACALL DELAY”指令的下一条指令) ;以下为开关闭合应执行的程序,可根据需要编写,这里省略 CTRL: … … RET     ;子程序返回(返回至“LJMP START”指令) END 程序说明: “JB P2.3,$”指令用于检测开关是否按下,如果开关按下,再执行“ACALL, tyw藏书 DELAY”指令调用标号DELAY处的延时子程序。 在延时子程序中,先给寄存器 R7、R6 置数,然后用“DJNZ R6,$”指令对 R6 中的数 据进行减1运算,因为只有R6中的数据为“0”,才会执行下一条指令,否则反复执行本条 指令,而R6中的数据为200,故本条指令要反复执行200次才能使R6中的数据为“0”。因为 本指令为双机器周期指令(也即24时钟周期指令),若单片机的时钟频率为12MHz,则每 执行一次需耗时2μs,执行完本条指令共耗时400μs。本条指令执行完后,再用“DJNZ R7,D1”指令将R7中的数据减1,不为“0”跳转执行标号 D1 处的指令,重新给 R6 置数 200,然后又用“DJNZ R6,$”指令减 1来延时400μs,如此重复40次,直到R7中的数据减 至“0”,这样一共延时16000μs。然后执行“RET”指令返回到“ACALL DELAY”的下一条“JB P2.3,$”指令,检测P2.3端口的状态,由于这时开关已闭合稳定,P2.3 端口稳定为“0”,于 是执行“ACALL CTRL”指令,跳转执行标号 CTRL处的子程序(即开关闭合后单片机应执 行的程序)。 标号CTRL处的子程序执行完成后,会执行最后的“RET”指令,跳转执行“LJMP START”指令,再跳转执行标号START处的指令,让程序又重新开始运行,检测下一次开 关闭合。 8.1.2 键盘输入接口 开关可以给单片机输入信号,但单个开关实现的输入功能少,而采用键盘可以实现多 功能输入。键盘是由多个按键组成的,在使用时,它需要与键盘输入电路组合在一起。单 片机常用的键盘输入电路有:独立式键盘输入电路和矩阵式键盘输入电路。矩阵式键盘输 入电路比较复杂,这里只介绍独立式键盘输入电路。 独立式键盘输入电路如图8-4所示。该键盘采用了4只按键S0~S3,它们分别接到单片 机的P3.0~P3.3 引脚。当按下某只按键时,相应的引脚为低电平;按键弹起时,引脚为高 电平。 tyw藏书 图8-4 独立式键盘输入电路 为了让单片机能识别按下了哪只按键,需要编写程序,再将程序汇编后写入单片机, 在程序的控制下,单片机就能识别按下了哪只按键,并执行相应的操作。编写程序时要注 意消除按键的抖动。 程序的编写思路是:依次检测P3.0~P3.3端口的电平,当检测到某端口为低电平时, 表明该端口所接的按键被按下,马上执行延时子程序,延时10~20ms进行防抖,延时子 程序执行完后检测端口是否仍为低电平,若为低电平,则去执行按下该键所对应的子程 序。 程序如下: ORG 0000H   ;让下一条指令从0000H地址开始 JMP START   ;跳转执行START标号处的指令 ORG 0100H   ;让下一条指令从0100H地址开始 START: MOV P3 #0FFH  ;将P3.0~P3.7端口均置“1” JNB P3.0,DELAY  ;检测P3.0端口是否为“0”,为“0”则执行标号DELAY处的延时 子 ;程序,否则执行下一条指令 JNB P3.0,CTRL0  ;再检测P3.0端口是否为“0”,为“0”则执行标号CTRL0处的子 程 ;序,否则执行下一条指令 JNB P3.1,DELAY  ;检测P3.1端口是否为“0”,为“0”则执行标号DELAY处的延时 子 ;程序,否则执行下一条指令 JNB P3.1,CTRL1  ;再检测P3.1端口是否为“0”,为“0”则执行标号CTRL1处的子 程 ;序,否则执行下一条指令 tyw藏书 JNB P3.2,DELAY  ;检测 P3.2 端口是否为“0”,为“0”则执行标号 DELAY 处的延 时子 ;程序,否则执行下一条指令 JNB P3.2,CTRL2  ;再检测 P3.2 端口是否为“0”,为“0”则执行标号 CTRL2 处的 子程 ;序,否则执行下一条指令 JNB P3.3,DELAY  ;检测 P3.3 端口是否为“0”,为“0”则执行标号 DELAY 处的延 时子 ;程序,否则执行下一条指令 JNB P3.3,CTRL3  ;再检测 P3.3 端口是否为“0”,为“0”则执行标号 CTRL3 处的 子程 ;序,否则执行下一条指令 AJMP START   ;跳转执行标号START处的指令 ;以下为延时子程序 DELAY: MOV R7,#40   ;将数据40送入寄存器R7中 D1: MOV R6,#200   ;将数据200送入寄存器R6中 DJNZ R6,$   ;将 R6 中的值减 1,若为“0”则执行下一条指令,否则再执行本 条 ;指令,本指令需执行200次才能使R6中的值为“0” DJNZ R7,D1   ;将 R7 中的值减 1,若为“0”则执行下一条指令,否则执行标号 D1 ;处的指令 RET     ;子程序返回 ;下面为按下按键时应执行的子程序 CTRL0: …     ;此处为按下S0时应执行的子程序,可根据需要编写 … RET     ;子程序返回(返回至“JNB P3.0,CTRL0”指令的下一条指令) CTRL1: …     ;此处为按下S1时应执行的子程序 … RET     ;子程序返回(返回至“JNB P3.1,CTRL1”指令的下一条指令) CTRL2: …     ;此处为按下S2时应执行的子程序 … RET     ;子程序返回(返回至“JNB P3.2,CTRL2”指令的下一条指令) CTRL3: …     ;此处为按下S3时应执行的子程序 tyw藏书 … RET     ;子程序返回(返回至“JNB P3.3,CTRL3”指令的下一条指令) END 8.1.3 模拟量输入接口 单片机的主要用途是控制和测量,但它在工作时,只能接收并处理二进制数字量,而 温度、湿度和压力等传感器产生的信号都是连续变化的模拟量。解决这个问题的方法就是 使用模拟量输入接口将模拟量转换成数字量,这里的模拟量输入接口实际上就是A/D转换 器。 1.A/D转换器 A/D转换器即模/数转换器,又称ADC电路,它的功能是将模拟信号转换成数字信 号。A/D转换由采样、保持、量化和编码4个步骤完成。A/D转换过程如图8-5所示,模拟 信号经采样、保持、量化和编码后就转换成数字信号。 图8-5 A/D转换过程 (1)采样和保持 采样就是每隔一定的时间对模拟信号进行取值,而保持则是将采样取得的信号电压保 存下来。采样和保持往往结合在一起应用,图8-6所示就是采样和保持电路。 图中的S为模拟开关,实际上一般为三极管或场效应管。S的通断受采样脉冲Us的控 制,当采样脉冲到来时,S闭合,输入信号可以通过;采样脉冲过后,S断开,输入信号 无法通过,S起采样作用。电容C为保持电容,它能保存采样过来的信号电压值。 给采样开关S输入图8-6(b)所示的模拟信号Ui,同时给开关S控制端加采样脉冲Us。 当第1个采样脉冲到来时,S闭合,此时正好模拟信号A点电压到来,A点电压通过开关S对 保持电容C充电,在电容C上充得与A点相同的电压,脉冲过后,S断开,电容C无法放 电,所以在电容C上保持了与A点一样的电压。 当第2个采样脉冲到来时,S闭合,此时正好模拟信号B点电压到来,B点电压通过开 关S对保持电容C充电,在电容上充得与B点相同的电压,脉冲过后,S断开,电容C无法 放电,所以在电容C上保持了与B点一样的电压。 当第3个采样脉冲到来时,在电容C上保持了与C点一样的电压。 当第4个采样脉冲到来时,S闭合,此时正好模拟信号D点电压到来,由于D点电压较 电容C上的电压(第3个脉冲到来时C点对电容C充得的电压)略低,电容C通过开关S向输 入端放电,放电使电容C上的电压下降到与模拟信号D点相同,脉冲过后,S断开,电容C 无法放电,所以在电容C上保持了与D点一样的电压。 tyw藏书 图8-6 采样和保持电路 当第5个采样脉冲到来时,S闭合,此时正好模拟信号E点电压到来,由于E点电压较 电容C上的电压低,电容C通过开关S向输入端放电,放电使电容C上的电压下降到与模拟 信号E点相同,脉冲过后,S断开,电容C无法放电,所以在电容C上保持了与E点一样的 电压。 如此工作后,在电容C上就得到图8-6(b)所示的Uo信号。 (2)量化与编码 量化是指根据编码位数的需要,将采样信号电压分割成整数个电压段的过程。编码是 指将每个电压段用相应的二进制数表示的过程。 以图8-6(b)所示信号为例,模拟信号Ui经采样、保持得到采样信号电压Uo,Uo的电 压变化范围是0~7.5V,现在需要用3位二进制数对它进行编码,由于3位二进制数只有 23=8个数值,所以将0~7.5V分成8份:0~0.5 V为第1份(又称第一等级),以0 V作为基 准,即在0~0.5V范围内的电压都当成是 0V,编码时用 000 表示;0.5~1.5 V 为第 2 份, 基准值为 1V,编码时用 001 表示;1.5~2.5V为第3份,基准值为2V,编码时用010表示; 依此类推,5.5~6.5V为第7份,基准值为6V,编码时用110表示;6.5~7.5V为第8份,基准 值为7V,编码时用111表示。 综上所述,图8-6(b)中的模拟信号Ui经采样、保持后得到采样电压Uo,采样电压Uo 再经量化、编码后就转换成数字信号(000 100 110 111 111 101 011 001 000 001 100),从 而完成了A/D转换过程。 2.A/D转换器ADC0809的介绍 tyw藏书 (1)内部结构 ADC0809是一个8位A/D转换器,其内部结构如图8-7所示。从图中可以看出, ADC0809内部有8路模拟量开关、地址锁存与译码器、8位A/D转换器和三态门输出锁存 器。 图8-7 ADC0809的内部结构 8路模拟量开关可外接8路模拟信号输入;地址锁存与译码器的功能是锁存A、B、C引 脚送入的地址选通信号,对其译码得到控制信号来选择8路模拟量开关中的某一路与A/D 转换器接通;8位A/D转换器的功能是将模拟信号转换成数字信号;三态门输出锁存器的 功能是将 A/D转换器送来的数字信号锁存起来,当 OE 端由低电平变为高电平时,锁存器 中的数据会将数字量从D0~D7端输出。 (2)各引脚功能说明 ADC0809的引脚排列及功能标注如图8-8所示。现将各引脚的功能说明如下。 图8-8 ADC0809引脚排列及功能标注 IN0~IN7:8路模拟量输入端口。 D0(2−8)~D7(2−1):8路数字量输出端口。 tyw藏书 START:A/D转换器启动控制端。当START加正脉冲后, A/D转换器开始工作。 ADDA、ADDB、ADDC:8路模拟量开关地址选通输入端。三端输入不同的值可以选 择8路中的1路输入,具体见表8-1。 表8-1 地址选通输入端状态与所选择的输入通道 ALE:地址锁存控制端。当该端为高电平时,将ADDA、ADDB、ADDC端的地址选 通信号送入地址锁存器,并译码得到地址输出到8路模拟量开关,选择相应通道的模拟量 输入。 EOC:转换结束信号输出端。在进行A/D转换时,EOC为低电平;转换结束时,EOC 变为高电平。根据这个信号可以知道A/D转换器的状态,该信号可以作为中断请求信号。 OE:输出允许控制端。当 OE 由低变高时,打开三态门输出锁存器,锁存的数字量 会从 D0~D7端送出。 CLK:时钟信号输入端。该端输入的时钟信号用于控制A/D转换器的转换速度,它的 频率范围为50~800 kHz,该信号通常由单片机的ALE端输出信号经分频而获得。 REF(+)、REF(−):参考电压输入端。REF(+)端通常与 VCC 端相连,而 REF(−)端与GND相连。 VCC:电源。 GND:接地。 3.ADC0809的应用 ADC0809可以用作MCS-51系列单片机的A/D转换器,它与MCS-51系列单片机的连接 如图8-9所示。 tyw藏书 图8-9 ADC0809与MCS-51系列单片机的连接电路 (1)ADC0809工作过程 ADC0809的工作分为以下几个过程。 ① 选择模拟量输入通道。单片机通过P0、P2端口发出16位地址,其中P0端口的低8位 地址送入8位锁存器74LS373,在ALE端脉冲的控制下,74LS373的③、④、⑦脚输入的值 从②、⑤、⑥脚输出,通过ADDA、ADDB、ADDC引脚进入ADC0809进行地址译码,选 择IN0~IN7中的某一路模拟量输入通道。 ② A/D转换。在单片机P0端口发出地址选中IN0~IN7中的某一输入通道时,从P2端 口发出的地址(实际只用到了P2.0一个端口)与 、 端输出的信号分别经两个或非门 形成控制信号,并分别送到ADC0809的START、ALE和OE引脚,启动内部电路对选择的 IN0~IN7中某一通道的信号进行A/D转换,得到的8位数据从D0(2−8)~D7(2−1)引脚 输出,送至单片机的P0.0~P0.7端口。 ③ 申请中断。当 ADC0809 中的A/D 转换器转换结束时,会从 EOC 引脚输出高电 平,它经非门后变为低电平,送到单片机的 端,向CPU发出中断请求信号。 ④响应中断,取走数据。当CPU从 端接收到中断请求信号后,马上将P0.0~P0.7 端口的数据取走,并保存到内部数据存储器中。 (2)ADC0809应用编程 为了让 ADC0809 工作,需要给单片机编写相应的程序,单片机在执行程序时会产生 各种控制信号来控制ADC0809的工作。 举例:编写程序,让ADC0809依次对8路模拟信号进行A/D转换,将转换得到的8组数 字量依次保存在片内数据存储器的78H~7FH单元中。 程序如下: ORG 0000H tyw藏书 JMP START ORG 0013H JMP ITS ORG 0100H START: MOV R0,#78H   ;将数据78H送入寄存器R0(即设定数据存储区的首 地址) MOV R7,#08H   ;将数据08H送入寄存器R7(即设定数据存储区的长度) LP1:  MOV A,#00H   ;将累加器A清0 MOV @R0,A   ;将A中的数据送入R0中的地址所指单元中 INC R0    ;将R0中的值加1 DJNZ R7,LP1   ;将 R7 中的值减 1,不为“0”则转移执行 LP1 处的指令, 为“0”则 ;执行下一条指令,LP1到本条的指令要执行8次,目的是将78H~7FH单 ;元都清0 SETB IT1   ;将寄存器TCON的IT1位设为“1”(即设置INT1为下降沿触发中断) SETB EA    ;将寄存器IE的EA位置“1”(即开总中断) SETB EX1   ;将IE的EX1位置“1”(即开外部中断INT1) LP3:  MOV R0,#78H   ;设置数据存储区的首地址 MOV R7,#08H   ;设置数据存储区的长度 MOV DPTR,#0FE00H ;将数据0FE00H送入数据指针寄存器(DPTR)(设置通道 的地址) LP2:  MOVX @DPTR,A  ;将A中的数据送入外部0FE00H单元中,启动A/D转 换器工作 CLR F0    ;将PSW的F0位清0(即将标志位清0) JNB F0,$   ;检测 F0 位是否为“0”,为“0”仍执行本条指令,为“1”则执行下 ;一条指令(该指令用来等待中断,一旦INT1端有中断请求信号输入, ;则跳转执行中断子程序) CLR F0    ;将F0位清0 MOVX A,@DPTR  ;将外部0FE00H单元中的数据送入A中 MOV @R0,A   ;将 A 中的数据送入 R0 中的地址所指的单元中(即将数据送入 设定的 ;数据存储区) tyw藏书 INC DPTR   ;将DPTR中的值加1(即选择下一个输入通道) INC R0    ;将R0中的值加1(即设定下一个通道的数据保存地址) DJNZ R7,LP2   ;将 R7 中的值减 1,不为“0”则执行 LP2 处的指令,为“0”执行 下 ;一条指令,LP2到本条的指令要执行8次,目的是将8个通道的数据 ;依次存入78H~7FH单元中 ;以下为中断子程序 ITS:  SETB F0    ;将PSW的F0位置“1” RETI     ;中断返回(返回到“CLR F0”指令) 8.2 输出接口 单片机接收输入接口送来的信号并处理完成后,往往会输出控ty制w信藏号,书或者将有关数 据显示出来。但大多数外部输出设备不能直接接收单片机输出的信号,而输出接口则可以 解决单片机和外部输出设备的连接问题。 输出接口的功能是将单片机输出的信号转换成外部输出设备能接收的信号。单片机的 输出接口种类很多,常见的有开关量输出接口、数字量输出接口和显示输出接口。 8.2.1 开关量输出接口 单片机输出的信号有“1”和“0”两种,称作开关量。常见的开关量输出接口有直连式输 出接口、三极管输出接口和晶闸管输出接口等。 1.直连式输出接口 对于一些功率小的器件,如发光二极管(LED),可以直接与单片机连接起来。LED 与单片机的连接有两种方式,如图8-10所示。 在图8-10(a)中,LED(VD1)的正极接+5 V的电源。当单片机的P2.3引脚输出低电 平时,LED导通而发光;P2.3引脚输出高电平时,LED熄灭。 在图8-10(b)中,LED(VD1)的正极接单片机的P2.3引脚。当P2.3引脚输出高电平 时,LED导通而发光;P2.3引脚输出低电平时,LED熄灭。 由于单片机自身的电流比较小,当 LED 采用图8-10(b)所示的接法时,因为P2.3引 脚流出的电流小,所以LED发出的光线较暗,一般情况下不建议使用这种接法。 图8-10 LED与单片机的两种连接方式 2.三极管输出电路 如果需要单片机控制大功率的器件(如继电器),直接将这些器件连接在单片机的输 出端是不行的,一般可以在输出端加上三极管驱动电路。图8-11所示是两种常见的三极管 输出电路。 tyw藏书 图8-11 两种常见的三极管输出电路 在图8-11(a)中,三极管VT与继电器连接,当单片机的P2.3引脚输出高电平时,VT 导通,有电流流过继电器线圈,继电器触点被吸合。二极管VD为阻尼二极管。在VT截止 时,继电器线圈会产生很高的上负下正的反峰电压,该电压容易击穿三极管,在线圈两端 接上 VD 后,VD 导通可消除线圈上的反峰电压。 在图8-11(b)中,采用了两只三极管构成复合管。由于复合管的放大倍数是两只三 极管放大倍数的乘积,故VT1基极只要有很小的电流Ib,就可以使继电器流过的电流很 大,从而达到良好的驱动效果。因为单片机P0端内部没有上拉电阻,所以该端口用作输 出时通常要加上拉电阻。 3.晶闸管输出电路 继电器采用机械方式控制触点的通断来接通或断开电路。由于在触点通断时容易出现 电火花,所以易使触点氧化而导致接触不良。采用晶闸管来替代继电器触点可以很好地解 决这个问题。图8-12所示是一种常见的晶闸管输出电路。 图8-12中用到了一只光电耦合器和一只晶闸管。光电耦合器以光的形式传递信号,可 以很好地实现强电和弱电的隔离;晶闸管相当于一个开关;三极管 VT 为驱动管,对光电 耦合器送来的电流进行放大,让晶闸管能充分导通。 图8-12 一种常见的晶闸管输出电路 tyw藏书 当单片机的P1.3引脚输出高电平时,有电流流过光电耦合器内的LED,LED发光,光 线使内部的光敏三极管导通,有电流经R2、光敏三极管到达三极管VT的基极,VT导通, +200V电压经R3、VT、R4降压后加到晶闸管VS的G极,晶闸管马上导通,+200 V电压产 生的电流经大功率晶闸管流过大功率灯泡,使灯泡发光。 8.2.2 数字量输出接口 单片机在执行内部程序后,往往要向执行部件输出控制信号,但它输出的信号是数字 信号,而大多数执行部件只能接收模拟信号,这就需要在单片机的输出端加上D/A转换 器,将单片机输出的数字量转换成模拟量。 1.D/A转换器 D/A转换器即数/模转换器,又称DAC电路,它的功能是将数字信号转换成模拟信 号。D/A转换器如图8-13所示。 在图中,当单片机 P0.7~P0.0 端输出00000000 时,该数字量经 D/A 转换器转换后得 到0V电压;当P0.7~P0.0端输出00000001时,经D/A转换器转换后得到0.1 V电压;以此类 推,当P0.7~P0.0端输出11111111时,经D/A转换器转换后会得到12.7V电压。也就是说, 单片机输出的数字量逐渐增大时,经D/A转换输出的电压也逐渐增大。 图8-13 D/A转换器 2.D/A转换器DAC0832的介绍 (1)内部结构 DAC0832 是一个 8 位分辨率的 D/A 转换器,其内部结构如图8-14所示。从图中可以 看出, DAC0832内部有8位输入锁存器、8位DAC寄存器、8位D/A转换器和一些控制门电 路。 tyw藏书 图8-14 DAC0832的内部结构 (2)各引脚功能说明 DAC0832的引脚排列及功能标注如图8-15所示。 图8-15 DAC0832引脚排列及功能标注 各引脚的功能说明如下。 DI0~DI7:8位数据输入端,TTL电平,有效时间大于90 ns。 ILE:数据锁存允许信号输入端,高电平有效。 :片选信号输入端,低电平有效。 :输入锁存器写选通信号输入端。如图8-14所示,输入锁存器能否锁存输入数 据,由ILE、 、 共同决定,当ILE为高电平、 为低电平、 输入负脉冲(宽度 应大于500ns)时,在锁存器的 端会得到一个高电平。在 为高电平时,锁存器的数 据会随数据输入线的状态变化(即不能锁存数据);当 由高电平转为低电平(下降 沿)时,输入线上的数据被锁存下来(即输入线的数据再发生变化,锁存器中的数据也不 会随之变化)。 :数据传送控制信号输入端,低电平有效。 :DAC寄存器写选通信号输入端。DAC寄存器能否保存输入数据,由 、 tyw藏书 共同决定,当 为低电平、 输入负脉冲时,在寄存器的 端会得到一个高 电平。在 为高电平时,寄存器不能保存锁存器送来的数据;当 由高电平转为低电 平时,寄存器将锁存器送来的数据保存下来。 IOUT1:模拟量电流输出端1。当DI0~DI7端都为“1”时,IOUT1的值最大。 IOUT2:模拟量电流输出端2。该端的电流值与IOUT1之和为一常数,即IOUT1的值大时 它的值小。 RFB:反馈信号输入端。在芯片该引脚内部有反馈电阻。 VCC:电源输入端。该端可接+5~+15V电压。 UREF:基准电压输入端。该端可接−10~+10V电压,此端电压决定D/A转换器输出电 压的范围。 AGND:模拟电路地。它为模拟信号和基准电源的参考地。 DGND:数字电路地。它为工作电源地和数字电路地。 DAC0832为模拟量电流输出,在使用时一般外接运算放大器,将电流转换成电压。 3.DAC0832的应用 DAC0832可以用作MCS-51系列单片机的D/A转换器,它与MCS-51系列单片机的连接 如图8-16所示。 图8-16 DAC0832与MCS-51系列单片机的连接 (1)DAC0832工作过程 DAC0832的工作有以下几个过程。 ① 选中DAC0832。单片机通过P2.7端口送出一个低电平到DAC0832的 和 端,由 端送出低电平到 、 端,DAC0832被选中,就能接收单片机P0.0~P0.7 端送来的数据。 tyw藏书 ② 向DAC0832送入数据。单片机通过P0.0~P0.7端向DAC0832送入8位数据。 ③ DAC0832对送来的数据进行D/A转换,并从IOUT1端输出模拟信号电流。 ④ 运算放大器μA741将IOUT1端输出的电流转换成模拟信号电压,然后从⑥脚输出。 (2)DAC0832应用编程 对于 DAC0832 来说,只要改变输入的数字量,它输出的电压就会变化,利用这一 点,可以让DAC0832产生各种信号电压。 例1:产生锯齿波信号 编写程序,让单片机从P0.0~P0.7端输出一系列8位数据,并控制DAC0832对这些数 据进行D/A转换,得到锯齿波信号。 要使DAC0832输出电压逐渐上升的锯齿波,只要让单片机从P0.0~P0.7端输出不断增 大的数据即可。编写的程序如下: START: MOV DPTR,#7FFFH  ;将数据7FFFH送入DPTR中作为DAC0832的地址 STEP1: MOV A,#00H   ;将数据00H送入累加器A STEP2: MOVX @DPTR,A  ;将A中的数据送入7FFFH单元(即DAC0832)中 (开始D/A转换) INC A    ;将A中的数据加1(目的是让送给DAC0832的数据不断增大) CJNE A,#data,STEP2 ;比较A中的数据与数据data是否相等,不等跳转执行 STEP2处的 ;指令,相等则执行下一条指令。数据data用来设定锯齿波电压最大值, ;例如要使DAC0832输出的最大电压为10V,那么设data=7FH ;(01111111B)可以让形成的锯齿波电压最大可达5V AJMP STEP1  ;跳转执行STEP1处的指令,当锯齿波达到设定的值时,该指令才 会被执行 ;而跳转到STEP1,开始形成下一个锯齿波 例2:产生矩形波信号 产生矩形波信号的程序如下: START: MOV DPTR,#7FFFH ;选中DAC0832 STEP1: MOV A,#data  ;设置矩形波的高电平大小 MOVX @DPTR,A  ;开始D/A转换 ACALL DELAYH  ;执行高电平延时程序 MOV A,#data  ;设置矩形波的低电平大小 MOVX @DPTR,A  ;开始D/A转换 ACALL DELAYL  ;执行低电平延时程序 SJMP STEP1   ;重复跳转执行STEP1处的指令来形成连续不断的矩形波 tyw藏书 ;以下为延时子程序 DELAYH:…      ;高电平延时程序,可参照前面的防抖延时程序编写,这里 省略 DELAYL:…      ;低电平延时程序,这里省略 例3:产生三角波信号 产生三角波信号的程序如下: START: MOV DPTR,#7FFFH   ;选中DAC0832 STEP1: MOV A,#00H    ;将数据00H送入累加器A STEP2: MOVX @DPTR,A   ;开始D/A转换 INC A     ;将A中的数据加1 CJNE A,#data,STEP2  ;若A中的数据不等于设置值,转移执行STEP2处的指令 STEP3: DEC A     ;将A中的数据减1 MOVX @DPTR,A   ;D/A转换 INC A     ;将A中的数据加1 CJNE A,#00H,STEP3  ;若A中的数据不等于00H,转移执行STEP3处的指令 AJMP STEP1    ;跳转执行STEP1处的指令 例4:产生阶梯形波信号 产生阶梯形波信号的程序如下: START: MOV DPTR,#7FFFH   ;选中DAC0832 STEP1: MOV R6,#20H    ;设置阶跃值 MOV R4,#05H    ;设置阶跃次数 MOV A, #00H LOOP: MOVX @DPTR,A   ;D/A转换 ACALL DELAY    ;转移执行每阶梯延时程序 ADD A,R6     ;加阶跃值 DJNZ R4,LOOP   ;将寄存器R4中的值减1,不为“0”则跳转执行标号LOOP处 ;的指令 AJMP STEP1    ;跳转执行STEP1处的指令 ;以下为延时子程序 DELAY: …      ;每阶梯延时程序,这里省略 8.2.3 显示输出接口 为了能让人们了解单片机的有关信息,可给单片机外接显示器。单片机常用的显示器 有LED显示器(由LED构成)和LCD(液晶显示器),其中LED显示器应用更广泛。 tyw藏书 LED 显示器由 LED 构成,其种类较多,如七段数码显示器和点阵式显示器等。七段 数码显示器常用来显示数字和字母;点阵式显示器由很多LED构成,每只LED相当于一个 点,这种显示器不但可以显示数字、字母,还可以显示文字和任意图形,公交车上的滚动 显示器就是点阵式显示器。 1.七段数码显示器的结构与工作原理 (1)结构 七段数码显示器的结构如图8-17(a)所示。 从图中可以看出,七段数码显示器由8只LED组成,其中,7只LED当作七段排列 成“8”字形,分别用a~g表示,1只LED用作小数点“dp”,COM为公共端。 在显示器内部,这8只LED一端接在一起与公共端COM相连。LED的负极连在一起构 成的显示器称为共阴极显示器,如图8-17(b)所示;LED 的正极连在一起构成的显示器 称为共阳极显示器,如图8-17(c)所示。 (2)工作原理 下面以图8-18所示电路为例来说明七段数码显示器的工作原理。 图8-17 七段数码显示器 图8-18 七段数码显示器工作原理说明图 图中的七段数码显示器采用共阴极形式,其公共端COM接地,当单片机从P0.7~P0.0 tyw藏书 端送数据01011011(5BH)到七段数码显示器的a~g、dp引脚时,显示器内部的a、b、 d、e、g段LED发光,显示出数字“2”。如果单片机送出数据00000111,a、b、c段的LED发 光,显示器会显示数字“7”。 也就是说,单片机送出不同的数据(称为字形码),可以让七段数码显示器显示不同 的字符。共阴极七段数码显示器常见的字形码见表8-2。 表8-2 共阴极七段数码显示器常见字形码 续表 2.多位七段数码显示器接口 单片机与一位七段数码显示器连接时需要用8个端口,如果与多位七段数码显示器连 接,单片机自身的端口就不够用了,采用静态显示方式可以解决这个问题。 (1)静态显示原理 下面以图8-19所示电路为例来说明静态显示原理。 tyw藏书 图8-19 多位静态七段数码显示器 在图中,单片机的RXD端用来输出串行显示数据,TXD端输出数据移位脉冲,两片 74LS164为串/并转换移位寄存器,它可以将前级电路送入A、B端的串行数据转换成并行 数据,从Q7~Q0端并行输出,两片74LS164的Q7~Q0端分别与两个七段数码显示器的 dp、a~g引脚相连。图中的两个显示器为共阳极显示器,某引脚加低电平,相应段的LED 才能发光。 在工作时,单片机从RXD端送出16位数据,与此同时,TXD端送出移位脉冲到 74LS164的CLK端,在移位脉冲的控制下,RXD端输出的数据先逐位由A、B端进入第1个 74LS164,然后再从第1个74LS164的Q0端逐位输出,进入第2个74LS164,16位数据传送完 毕,高8位数据保存在第 1 个 74LS164 中,低 8 位保存在第 2 个 74LS164 中。如单片机 RXD 端输出的 16 位数据是1111100110110000(F9B0H),两位显示器会分别显示出数 字“1”和“3”。如果要显示器显示新数字,只需单片机再向74LS164中传送新数据,将原来 的数据更新即可。 (2)静态显示程序的编写 要让单片机实现静态显示,除了硬件上要正确连接外,还需给单片机编写相应的静态 显示程序。 静态显示程序编写举例:以图8-19所示的电路为例编写程序,将单片机30H单元中的 两位BCD码送给74LS164,让它驱动数码显示器显示出来。 说明:BCD码又称二-十进制数,它用4位二进制数表示十进制数,如十进制数“36”的 BCD码是 00110110。要让显示器能显示出两位数字,一般的做法是在程序存储器中设置 10 个存储单元当作表格(TAB),将0~9的字形码依次存储在这些单元中,当要显示某 数字时,可调出相应单元中该数字的字形码,再送出显示,这种方法称为查表法。由于静 tyw藏书 态显示采用了串行通信方式,并且是方式0,所以编程时要设置串行通信为方式0。 静态显示程序编写如下: MOV  SCON,#0   ;设置串行通信为方式0 MOV  A,20H   ;将20H中的BCD码(如00110110,也即36H)送入累加器A中 ANL  A,#0FH   ;将A中的BCD码与数据0F(00001111)各位相与,结果A中 ;的BCD码变为06H MOV  DPTR,#TAB  ;将表格(TAB)的首地址送入DPTR MOVC A,@A+DPTR  ;将DPTR和A中的值相加得到新地址,将该地址中的数据 (字 ;形码)送入A中(如TAB的首地址为0200H,则DPTR中的值 ;也为0200H,它与A中的06相加后得到新地址为0206,该地 ;址正好存储着6的字形码) MOV  SBUF,A   ;将A中的字形码送入串行通信口的SBUF,同时启动串行通 信口 ;向74LS164发送数据 JNB  TI,$   ;判断SCON的TI位是否为“0”,若为“0”,则反复执行本条指令; ;若为“1”,则执行下一条指令(本指令用来等待发送数据结束) CLR  TI    ;将TI位清0 MOV  A,20H   ;将20H单元中的BCD码(如36H)送入A中 CPL  A    ;将A中的高、低4位BCD码对调(变为63H) ANL  A,#0FH   ;将A中高4位BCD码全变为“0”(A中的BCD码现为03H) MOVC A,@A+DPTR  ;将DPTR和A中的值相加得到新地址,将该地址中的数据 (3 ;的字形码)送入A中 MOV  SBUF,A   ;将A中的字形码送入串行通信口的SBUF,同时启动串行通 信口 ;向74LS164发送数据 JNB  TI,$   ;等待发送结束标志 CLR  TI    ;清除该标志 ;以下为延时程序,用于设定显示器显示两位数字的时间 DELAY: MOV R7,#40   ;将数据40(该数为十进制数,在汇编时会自动转换 成相应的十六进制数) ;送入寄存器R7中 D1:  MOV R6,#200   ;将数据200送入寄存器R6中 tyw藏书 DJNZ R6,$   ;将R6中的值减1,若为“0”则执行下一条指令,否则反复执行本 条指令, ;本指令需执行200次才能使R6中的值为“0” DJNZ R7,D1   ;将R7中的值减1,若为“0”则执行下一条指令,否则执行标号 D1处的 ;指令 ORG 0200H   ;指示下一条指令的地址为0200H TAB: DB 0C0H,0F9H,0A4H,0B0H,99H  ;设置字形表,将0、1、2、3、4的 字形码依次放在0200H~ ;0204H单元中 DB 92H, 82H,0F8H,80H,90H  ;将5、6、7、8、9的字形码依次放在0205H ~0209H ;单元中 tyw藏书 第9章 Protel软件入门 9.1 概述 在近二三十年来,电子技术得到飞速的发展,已经渗透到社会的许多领域,根据应用 领域的不同,电子技术可分为家庭消费电子技术、汽车电子技术、医疗电子技术、IT数码 电子技术、机械电子技术和通信电子技术等。不管哪个领域的电子技术,它们需要的人才 一般都有研发设计型人才、生产制造型人才和维护、维修型人才等,在这些人才中,研发 设计型人才属于高端人才,生产制造型人才处于其次地位,他们在工作时经常要绘制电路 图。 在电子电路设计软件出现前,人们绘制电路图基本上是靠手工进行,这种方式不仅效 率低,而且容易出错,并且修改也很不方便。20世纪80年代,Protel电子绘图软件开始传 入我国,并逐渐得到广泛的应用,电子设计也就由传统的手工转为计算机辅助设计。 Protel 电路设计软件是由澳大利亚 Protel Technology 公司开发出来的,它是众多电子 电路设计软件中应用最广泛的一种,用户用它可以设计各个领域的电路应用系统。随着电 子技术的发展,Protel软件的版本不断升级,从原来的DOS版本到Windows版本(DOS版 本已经很少有人应用了),功能也不断完善,现在的电子电路设计主要是Windows版本的 Protel软件。Protel软件 Windows 版本很多,主要有 Protel 98、Protel 99、Protel 99 SE、 Protel DXP 和 Protel 2004。 在众多的Protel软件版本中,应用最广泛的是Protel 99 SE,这主要是由下面一些原因 决定的。 ① Protel 99 SE功能已很完善,完全能满足绝大多数电路设计的需要。大多数企业的 工程师在进行电路设计时都采用Protel 99 SE,这样级别的人都使用Protel 99 SE,初学者 更不用说。 ② 多数省市的电路设计绘图员考试以Protel 99 SE作为考查对象。 ③ Protel 99 SE软件在软件市场比较容易获得,得到Protel DXP和Protel 2004软件相对 比较困难,特别是Protel 2004软件在软件市场更难找到。 ④ Protel 99 SE运行时对计算机软、硬件要求低。Protel DXP和Protel 2004要在 Windows 2000以上的操作系统上运行,对计算机软、硬件要求高。另外,与Protel 99 SE 相比,Protel DXP和Protel2004更多是软件界面上的变化,功能改进并不是很多。 ⑤ 大多数学校的电子、电工专业的电子绘图设计课程都选用Protel 99 SE软件。 ⑥ 学习了Protel 99 SE后,再学习高级版本或其他类型的电子绘图软件会比较容易。 tyw藏书 正因为Protel 99 SE软件容易获得,运行时对计算机的软、硬件要求低,并且功能完 全能满足大多数电子电路设计的要求,所以其应用十分广泛,因此本书主要介绍如何应用 Protel 99 SE软件进行电子电路设计。 9.2 Protel 99 SE基础知识 9.2.1 Protel 99 SE的运行环境 tyw藏书 1.软件环境 要在计算机中运行 Protel 99 SE 软件,要求计算机中必须安装 Windows 9x、Windows NT、Windows 2000、Windows XP中的某一个操作系统。 2.硬件环境 要正常运行Protel 99 SE软件,建议计算机有以下配置。 ① CPU:Pentium II或以上。 ② 内存:64MB。 ③ 硬盘:要求安装Protel 99 SE软件后,硬盘上至少应有300MB以上空间。 ④ 显示卡:在16位颜色下分辨率至少要达到800×600像素。 ⑤ 最好是配备打印机或绘图仪。 在进行大规模的电路设计时,为了让Protel 99 SE运行更流畅,可以适当增大内存容 量。 9.2.2 Protel 99 SE的组成 Protel 99 SE是由几个模块组成的,不同的模块具有不同的功能。Protel 99 SE的主要 模块有以下几种。 (1)电路原理图(Schematic)设计模块 电路原理图设计模块主要包括设计电路原理图的原理图编辑器,用于建立、修改元件 符号的元件库编辑器和各种报表生成器。 (2)印制电路板(PCB)设计模块 印制电路板设计模块主要包括设计印制电路板的印制电路板编辑器,用于进行印制电 路板自动布线的Route模块,用于建立、修改元件封装的元件封装编辑器和各种报表生成 器。 (3)可编程逻辑器件(PLD)设计模块 可编程逻辑器件设计模块主要包括具有语法意识的文本编辑器、用于编译和仿真设计 结果的PLD模块。 (4)电路仿真(Simulate)模块 电路仿真模块主要包括一个功能强大的数/模混合信号的电路仿真器,它能进行连续 的模拟信号和数字信号的仿真。 9.2.3 Protel 99 SE设计电路的流程 Protel 99 SE设计电路的一般流程如图9-1所示。 tyw藏书 图9-1 Protel 99 SE设计电路的一般流程 9.3 Protel 99 SE使用入门 9.3.1 设计数据库文件的建立、关闭与打ty开w藏书 1.设计数据库文件的建立 在Protel 99 SE中,要进行电路设计,需要先建立一个设计数据库文件,然后再在该 数据库文件中建立原理图设计文件和印制电路板文件。设计数据库文件的建立过程如下。 第1步:启动Protel 99 SE软件。安装好Protel 99 SE软件后,双击桌面上的Protel 99 SE 图标,或者单击桌面左下角的“开始”按钮,在弹出的菜单中选择“程序”→“Protel 99 SE”→“Protel 99 SE”命令,就可以启动Protel 99 SE软件,进入图9-2所示的Protel 99 SE设计 窗口。 图9-2 Protel 99 SE设计窗口 第2步:新建设计数据库文件。选择“File”→“New”菜单命令,会弹出图9-3所示 的“New Design Database”对话框,在对话框中要求:①选择设计文件的保存类型;②输入 要建立的数据库文件名;③选择数据库文件的保存路径。在对话框中按标注提示进行操 作。 注:“Design Storage Type”(设计保存类型)下拉列表框中有两个选项,具体如下。 当选择“MS Access Database”选项时,设计过程中的全部文件保存在单一的数据库文 件中,也就是说,电路原理图文件、印制电路板文件等全都保存在一个数据库文件中。 当选择“Windows File System”选项时,设计过程中的全部文件保存在单一的文件夹 (不是数据库文件)中。 tyw藏书 图9-3 “New Design Database”对话框(建立新设计数据库) 第 3 步:设置数据库文件密码。如果想给建立的数据库文件设置密码,可切换 到“Password”选项卡,对话框会出现图9-4所示的设置密码信息,在对话框中按标注提示 进行操作。 图9-4 设置密码信息 在上述操作完成后,单击“OK”按钮,就会在E:\DZ目录下建立一个文件名为D1.ddb的 数据库文件,而在Protel 99 SE的文件管理器中同时会出现一个D1.ddb数据库文件,如图95所示。 tyw藏书 图9-5 建立一个D1.ddb数据库文件 2.设计数据库文件的关闭 在前面已经在Protel 99 SE中建立了一个名为D1.ddb的数据库文件,现在要将它关闭。 关闭数据库文件有下面两种方法。 ① 在工作窗口的设计数据库文件标签(D1.ddb)上右击,在弹出的快捷菜单中选 择“Close”命令,就可以关闭D1.ddb数据库文件,该过程如图9-6所示。 ② 通过选择“File”→“Close Design”菜单命令也可以关闭当前的数据库文件。 图9-6 关闭数据库文件 3.设计数据库文件的打开 如果要打开某个数据库文件,可采用以下两种方法。 ① 单击主工具栏上的打开按钮 ,会出现“Open Design Database”对话框,如图9-7 所示,从中选择需要打开的数据库文件D1.ddb,再单击“打开”按钮,数据库文件就被打开 了。如果D1.ddb被设置了密码,单击“打开”按钮就会出现图9-8所示的对话框,要求输入 文件打开密码,在“Name”文本框中输入“admin”(管理员),在“Password”文本框中输入 密码,单击“OK”按钮就可以打开数据库文件D1.ddb。 tyw藏书 图9-7 “Open Design Database”对话框(打开数据库文件) 图9-8 打开设有密码的数据库文件 ② 通过选择“File”→“Open”菜单命令也可以打开数据库文件,操作步骤与第1种方法 相同。 9.3.2 Protel 99 SE设计界面的介绍 Protel 99 SE设计界面如图9-9所示。从图9-9中可以看出,Protel 99 SE设计界面主要由 标题栏、菜单栏、工具栏、文件管理器、工作窗口、文件标签和状态栏等组成。 tyw藏书 图9-9 Protel 99 SE设计界面 9.3.3 文件管理 在前面已经学习了如何建立数据库文件,但这样建立出来的数据库文件还是空的,如 果要绘制电路原理图和印制电路板,必须要在该数据库文件中再建立电路原理图文件和印 制电路板文件。另外,建立好各个文件后,还可能需要对这些文件进行更名、保存和删除 等操作,这些都属于文件管理的内容。 1.新建文件 下面以在D1.ddb数据库文件中建立一个电路原理图文件为例来说明新建文件的方法, 新建文件的操作步骤如下。 第1步:单击文件管理器中D1.ddb数据库文件下的“Documents”文件夹,在右边的工作 窗口中就可以看见“Documents”文件夹标签,该文件夹被打开,里面无任何文件。 第2步:将鼠标移到工作窗口的空白处,如图9-10所示,右击,在弹出的快捷菜单中 选择“New”命令,马上会出现“New Document”对话框,如图9-11所示。 tyw藏书 图9-10 执行新建文件命令 图9-11 “New Document”对话框(新建文件) 第3步:在图9-11所示的对话框中选择“Schematic Document”选项,再单击“OK”按钮, 就在D1.ddb数据库文件中建立了一个默认文件名为“Sheet1.Sch”的电路原理图文件,如图 9-12所示。 tyw藏书 图9-12 新建一个文件名为“Sheet1.Sch”的电路原理图文件 2.文件的更名 在新建文件时,新建的文件名是默认的,比如新建的第 1 个原理图文件名为 Sheet1.Sch,第 2个就为Sheet2.Sch。如果想更改默认的文件名,可以对文件进行更名。 文件更名的常用方法有下面两种。 ① 在工作窗口中需更名的文件上右击,在弹出的快捷菜单(见图9-13)中选 择“Rename”(重命名)命令,该文件名马上变成可编辑状态,如图9-14所示,将文件名更 改为“YL1.Sch”,同时文件管理器中的文件名也变为“YL1.Sch”。 图9-13 文件更名操作 tyw藏书 图9-14 文件更名成功 ② 选中工作窗口中需更名的文件,再按键盘上的F2键,被选中的文件名马上也会变 成如图9-14所示的可编辑状态,此时即可将文件名更改为“YL1.Sch”。 3.文件的打开、保存与关闭 (1)文件的打开 如果要在原理图文件YL1.Sch中绘制电路原理图,就需要打开该文件,打开文件的常 用方法有下面两种。 ① 在工作窗口中双击需打开的“YL1.Sch”文件,如图9-15所示,该文件即被打开,如 图9-16所示,工作窗口上方的文件标签“YL1.Sch”处于凸出状态,工作窗口也转变为原理 图编辑窗口。 图9-15 文件打开操作 tyw藏书 图9-16 文件被打开 ② 在文件管理器中单击“YL1.Sch”文件,该文件也可以打开,文件打开的结果与图916所示一致。 (2)文件的保存 在YL1.Sch文件中绘制好电路原理图后,如果想保存下来,可进行文件保存操作。文 件保存的常用方法有下面两种。 ① 单击主工具栏上的保存按钮 ,如图9-17所示,当前处于编辑状态的YL1.Sch文件 就被保存下来了。 图9-17 保存文件操作 ② 通过选择“File”→“Save”菜单命令也可以将当前处于编辑状态的YL1.Sch文件保存 下来。 如果想将YL1.Sch文件保存成另一个新文件“aYL1.Sch”,可选择“File”→“Save As”(另 存为)菜单命令,弹出“Save As”对话框,如图9-18所示,在该对话框中将默认名改成新 文件名“aYL1.Sch”,再单击“OK”按钮,在文件管理器中就会出现一个aYL1.Sch新文件,如 图9-19所示。 tyw藏书 图9-18 “Save As”对话框 图9-19 文件保存成功 如果想将当前打开的所有文件都保存下来,可选择“File”→“Save All”菜单命令。 (3)文件的关闭 如果要将当前打开的YL1.Sch文件关闭,可执行文件关闭操作。关闭文件的方法有下 面3种。 ① 在工作窗口的“YL1.Sch”文件标签上右击,在弹出的快捷菜单中选择“Close”命令, 如图9-20所示,YL1.Sch文件即可被关闭。 tyw藏书 图9-20 关闭文件操作 ② 在文件管理器中的“YL1.Sch”文件上右击,在弹出的快捷菜单中选择“Close”命令也 可关闭YL1.Sch文件。 ③ 选择“File”→“Close”菜单命令也能关闭YL1.Sch文件。 4.文件的删除 如果想删除数据库文件中的某个文件,可执行文件删除操作。文件的删除方法有下面 几种。 ① 在工作窗口中选中要删除的“YL1.Sch”文件,如图9-21所示,再选 择“Edit”→“Delete”命令,YL1.Sch文件即可被删除。 图9-21 删除文件操作 ② 在工作窗口中的“YL1.Sch”文件上右击,在弹出的快捷菜单中选择“Delete”命令, YL1.Sch文件就能被删除。 ③ 在文件管理器中的“YL1.Sch”文件上右击,在弹出的快捷菜单中选择“Delete”命令 也可删除YL1.Sch文件。 tyw藏书 ④ 在工作窗口中选中要删除的“YL1.Sch”文件,再按键盘上的 Del 键,YL1.Sch 文件 也能被删除。 在用上述方法删除文件后,文件还保留在数据库文件D1.ddb的回收站(Recycle Bin) 中,在文件管理器中单击“Recycle Bin”,在右边的工作窗口中“Recycle Bin”打开,如图922所示,被删除的YL1.Sch就在其中。 图9-22 回收站内仍保留着被删除的文件 如果要将该文件彻底删除,可在工作窗口中的“YL1.Sch”文件上右击,在弹出的快捷 菜单中选择“Delete”命令,YL1.Sch文件就能被彻底删除;如果在弹出的快捷菜单中选 择“Restore”命令(还原),YL1.Sch 文件又恢复到先前的位置。对回收站中文件的操作也 可以选择“File”菜单中相关的命令,效果与执行右键快捷菜单中的命令是一样的。 5.文件的导出与导入 Protel 99 SE通常是将原理图文件、印制电路板文件等各种文件放在一个数据库文件 中,原理图文件YL1.Sch和印制电路板文件YS1.PCB都在数据库文件D1.ddb的Documents文 件夹中,关闭Protel 99 SE 软件后,只能在计算机硬盘上看见一个数据库文件 D1.ddb,因 为 YL1.Sch 和 YS1.PCB 放在D1.ddb中,所以无法看见。 (1)文件的导出 文件的导出是指将数据库中的文件导出,使之成为独立的文件保存在计算机磁盘中。 文件的导出方法有下面两种。 ① 在工作窗口中选中要导出的文件“YL1.Sch”,右击,在弹出的快捷菜单(见图923)中选择“Export”(导出)命令,马上出现“Export Document”对话框,如图9-24所示, 从中选择导出文件保存的位置,图中选择的保存位置为E:/DZ2目录下,再单击“保存”按 钮,YL1.Sch就成为一个独立的文件保存在E:/DZ2目录下。打开E:/DZ2目录,就可以看见 导出的YL1.Sch文件,如图9-25所示。 tyw藏书 图9-23 文件的导出操作 图9-24 “Export Document”对话框(选择导出文件的保存位置) 图9-25 导出的文件 ② 在工作窗口中选中要导出的文件“YL1.Sch”,然后选择“Flie”→“Export”(导出)菜 tyw藏书 单命令,就会出现与图9-24相同的对话框,选择保存位置后再单击“保存”按钮,就可以将 YL1.Sch导出到选择的目录中。 (2)文件的导入 文件的导入是指将计算机某个目录中的文件导入到数据库文件中。文件导入的常用方 法有下面两种。 ① 在工作窗口的空白处右击,在弹出的快捷菜单(见图9-26)中选择“Import”(导 入)命令,马上出现“Import File”对话框,如图9-27所示,从中选择要导入的文件,图中 选择导入E:/DZ2目录下的“YL3.Sch”文件,再单击“打开”按钮,YL3.Sch就被导入到D1.ddb 数据库文件中,如图9-28所示,从中可以看见导入的YL3.Sch文件。 图9-26 文件的导入操作 图9-27 “Import File”对话框(选择要导入的文件) tyw藏书 图9-28 文件导入成功 ② 选择“Flie”→“Import”菜单命令,就会出现图9-27所示的对话框,选择要导入的文 件后,再单击“打开”按钮,就可以将YL3.Sch导入到数据库文件中。 9.3.4 系统参数的设置 系统参数设置的内容较多,这里主要介绍较重要的界面字体设置和自动保存文件设 置。 1.界面字体设置 在未进行界面字体设置时,Protel 99 SE界面使用默认字体,如图9-29所示,有些文字 无法显示出来。为了解决这个问题,可进行系统字体设置。 图9-29 使用默认字体的Protel 99 SE界面 tyw藏书 界面字体设置方法是:单击Protel 99 SE菜单栏左方的按钮 ,会弹出如图9-30所示 的菜单,选择“Preferences”命令,马上出现“Preferences”对话框,如图9-31所示,取消选 中“Use Client System Font …”复选框,也可以单击“Change System Font”按钮进行具体的字 体设置,再单击“OK”按钮即可。这样设置后,图9-29所示对话框中的字体就变为图9-32所 示的字体。 图9-30 执行设置命令 图9-31 “Preferences”对话框 tyw藏书 图9-32 字体设置完成后的对话框 2.自动保存文件设置 在进行电路设计过程中,有时会发生断电或计算机死机的情况,为了将损失降到最 低,可在Protel 99 SE中设置自动保存文件。 设置自动保存文件的方法是:单击Protel 99 SE菜单栏左方的按钮 ,在弹出的菜 单中选择“Preferences”命令,出现“Preferences”对话框,如图9-33所示,单击“Auto Save Settings”(自动保存设置)按钮,会弹出“Auto Save”对话框,如图9-34所示,选 中“Enable”(允许)复选框,再在“Number”微调框中设置备份的文件个数,在“Time Interval”微调框中设置备份文件的间隔时间,然后选中“Use backup folder”(使用备份文件 夹)复选框,再单击“Browse”(浏览)按钮来选择备份文件保存的位置,最后单 击“OK”按钮即完成自动保存文件设置。 图9-33 “Preferences”对话框 tyw藏书 图9-34 “Auto Save”对话框 tyw藏书 第10章 设计电路原理图 电路原理图的设计是整个电路设计的基础,它决定着后面印制电路板的设计。电路原 理图设计的一般过程如图10-1所示。 图10-1 电路原理图设计的一般过程 10.1 电路原理图编辑器 在进行电路原理图设计前,首先要启动Protel 99 SE软件,新建ty一w个藏数据书库文 件“.ddb”,然后在数据库文件中建立一个原理图文件“.Sch”,这些内容在第 9 章已讲过, 接下来就是打开电路原理图编辑器,再进行设计前的各种设置。 10.1.1 电路原理图编辑器界面介绍 首先打开电路原理图编辑器。如图10-2所示,在设计管理器中单击原理图文 件“YL1.Sch”,该文件被打开,就打开了电路原理图编辑器,在工作窗口中出现一个矩形 框,这就是设计图纸,原理图就在该矩形框中设计。 从图10-2中可以看出,原理图编辑器界面主要包括菜单栏、主工具栏、设计管理器、 工作窗口、状态栏、命令栏和悬浮在工作窗口上的活动工具栏。 1.菜单栏 菜单栏上有以下菜单。 ① File:文件菜单。它的功能是执行文件管理方面的操作,如新建、打开、关闭、保 存和打印等。 图10-2 电路原理图编辑器界面 ② Edit:编辑菜单。它的功能是执行编辑方面的操作,如复制、剪切、粘贴、删除和 查找等。 ③ View:视图菜单。它的功能是执行显示方面的操作,如图纸的放大与缩小、工具 栏/设计管理器/状态栏/命令栏的显示与关闭等。 ④ Place:放置菜单。它的功能是执行对象的放置操作,如放置元件和绘制导线等。 ⑤ Design:设计菜单。它的功能是进行电路图的设置、元件库的管理、层次原理图的 设计和网络表的生成等。 tyw藏书 ⑥ Tools:工具菜单。它的功能是进行原理图编辑器的环境设置、元件编号和ERC检 查等。 ⑦ Simulate:仿真菜单。它的功能是进行仿真方面的操作。 ⑧ PLD:PLD菜单。它的功能是进行PLD方面的操作。 ⑨ Reports:信息菜单。它的功能是进行生成原理图各种报表的操作,如元件的清 单、网络比较报表和项目层次表等。 ⑩ Window:窗口菜单。它的功能是执行窗口管理方面的操作。 Help:帮助菜单。 2.主工具栏 主工具栏可通过选择“View”→“Toolbars”→“Main Tools”菜单命令来打开或者关闭。主 工具栏的各按钮如图10-3所示。各按钮的功能说明如图10-4所示。 图10-3 主工具栏 3.活动工具栏 在原理图编辑器中有6个活动工具栏,分别是:“Drawing Tools”(绘图工具 栏)、“Wiring Tools”(布线工具栏)、“Power Objects”(电源与接地工具栏)、“Digital Objects”(常用器件工具栏)、“Pld Tools”(PLD工具栏)和“Simulation Sources”(信号仿 真源工具栏)。在进行电路原理图设计时,如果直接使用工具栏操作,可以使设计方便快 捷。 各工具栏打开与关闭的方法如下。 ① 选择“View”→“Toolbars”→“Drawing Tools”菜单命令时,可打开或关闭“Drawing Tools”。当执行一次时打开工具栏,下一次执行时则会关闭该工具栏。 tyw藏书 图10-4 主工具栏的工具功能及对应的菜单命令 tyw藏书 ② 选择“View”→“Toolbars”→“Wiring Tools”菜单命令时,可打开或关闭“Wiring Tools”。 ③ 选择“View”→“Toolbars”→“Power Objects”菜单命令时,可打开或关闭“Power Objects”。 ④ 选择“View”→“Toolbars”→“Digital Objects”菜单命令时,可打开或关闭“Digital Objects”。 ⑤ 选择“View”→“Toolbars”→“Pld Tools”菜单命令时,可打开或关闭“Pld Tools”。 ⑥ 选择“View”→“Toolbars”→“Simulation Sources”菜单命令时,可打开或关 闭“Simulation Sources”。 这些工具栏浮在工作窗口上对绘图造成不便,可将它们移到工作窗口的四周,方法 是:将鼠标移到工具栏上方的标题栏上,再按下左键不放,移动鼠标将工具栏拖到工作窗 口边沿某处,如图10-5所示,同样也可以将工作窗口四周的工具栏拖回到窗口中。 图10-5 将活动工具栏移到工作窗口的周围 4.设计管理器 设计管理器包括文件管理器和元件库管理器。设计管理器可通过选 择“View”→“Design Manager”菜单命令来打开或者关闭。设计管理器上方 有“Explorer”和“Browse Sch”两个选项卡,当单击“Explorer”选项卡时,打开文件管理器, 如图10-6(a)所示;当单击“Browse Sch”选项卡时,打开元件库管理器,如图10-6(b) 所示。有关设计管理器的文件管理器在第 9 章已讲过,有关元件库管理器将会在后面讲 到。 tyw藏书 图10-6 设计管理器 5.状态栏和命令栏 状态栏和命令栏如图10-7所示。 图10-7 状态栏和命令栏 状态栏的作用是显示光标在工作窗口中的坐标位置。状态栏可通过选 择“View”→“Status Bar”菜单命令来打开或者关闭。 命令栏的作用是显示当前正在执行的命令。命令栏可通过选择“View”→“Command Status”菜单命令来打开或者关闭。 6.工作窗口 工作窗口上方为文件标签,中间网格状的矩形区域为图纸,原理图就在此图纸上绘 制。下面主要介绍图纸的显示管理,图纸显示管理有以下规律。 ① 放大图纸。放大图纸的操作方法很多,常用的有:第一,按PgUp键;第二,单击 主工具栏上的按钮 ;第三,选择“View”→“ZoomIn”菜单命令;第四,在图纸上右击, 在弹出的快捷菜单中选择“View”→“ZoomIn”命令(该操作方式下面简称“执行右键快捷菜 单命令”)。 ② 缩小图纸。常用的操作方法有:第一,按PgDn键;第二,单击主工具栏上的按钮 ;第三,选择“View”→“ZoomOut”菜单命令;第四,执行右键快捷菜单命 令“View”→“ZoomOut”。 ③ 显示整个电路图及边框。常用的操作方法有:第一,单击主工具栏上的按钮 ; 第二,选择“View”→“Fit Document”菜单命令;第三,执行右键快捷菜单命令“View”→“Fit Document”。 tyw藏书 ④ 显示整个电路图,不含边框。常用的操作方法有:第一,选择“View”→“Fit All Objects”命令;第二,执行右键快捷菜单命令“View”→“Fit All Objects”。 ⑤ 放大指定区域。操作方法是:选择“View”→“Area”菜单命令,光标变成十字状, 按下鼠标左键,在需要放大的区域拉出一个矩形选框,松开左键再单击,选中区域的内容 就被放大到整个工作窗口。 ⑥ 按比例放大图纸。可以按 50%、100%、200%和 400%的比例放大图纸,操作方法 是:选择“View”→“50%/100%/200%/400%”菜单命令。 ⑦ 刷新图纸。选择“View”→“Refresh”菜单命令或按 End 键,就可以对图纸进行刷 新,消除图纸上的显示残迹。 10.1.2 图纸大小的设置 设置合适的图纸大小有利于提高显示的清晰度和电路图打印质量,另外还能节省磁盘 的存储空间。进入图纸大小设置有下面两种方法。 方法一:选择“Design”→“Options”菜单命令,会弹出一个对话框,如图10-8所示。 图10-8 “Document Options”对话框 方法二:在工作窗口的图纸上右击,在弹出的快捷菜单中选择“Document Options”命 令,也会弹出图10-8所示的对话框。 1.设置标准尺寸的图纸 在图10-8所示的对话框中,可以在“Standard Styles”下拉列表框中选择多种标准尺寸的 图纸。当前图纸的尺寸为“A4”。在“Standard Styles”下拉列表框中提供了10多种广泛使用 的米制和英制规格图纸,这些规格尺寸大小见表10-1。 表10-1 “Standard Styles”下拉列表框中提供的多种图纸规格 tyw藏书 续表 2.自定义图纸尺寸 如果要自己设置图纸的大小,可选中“Use Custom style”(使用自定义尺寸)复选框, 如图10-9所示,再在下面几项中输入各项数值,然后单击“OK”按钮,图纸大小设置完 毕。自定义设置好的图纸如图10-10所示。 tyw藏书 图10-9 设置图纸大小 图10-10 自定义尺寸的图纸 10.1.3 图纸的方向、标题栏、边框和颜色的设置 1.图纸方向的设置 在图10-8所示的对话框中,“Orientation”(方位)下拉列表框是用来选择图纸方向 tyw藏书 的,具体如图10-11所示。它有两个选项:“Landscape”(横向)和“Portrait”(纵向),一 般将图纸方向设为“Landscape”。 图10-11 设置图纸的方向 2.图纸标题栏的设置 在图10-8所示的对话框中,“Title Block”(标题块)下拉列表框是用来设置图纸标题 的,具体如图10-12所示。它有两个选项:“Standard”(标准型模式)和“ANSI”(美国国家 标准协会模式)。选择两种不同模式的图纸标题栏显示效果如图10-13所示。 图10-12 设置图纸的标题栏 tyw藏书 图10-13 图纸标题栏的两种显示模式 3.图纸边框的设置 在图10-8所示的对话框中,图纸的边框设置有3项,具体如图10-14所示。这3项分别 如下所述。 图10-14 设置图纸的边框 “Show Reference Zones”复选框用于设置是否显示图纸参考边框,即图纸的内边框,选 中则显示。 “Show Border”复选框用于设置是否显示图纸的边框,即图纸的内边框,选中则显 示。 “Show Template Graphics”复选框用于设置是否显示画在样板内的图形、文字或专用字 符。通常为了显示自定义的标题区块或公司的标志才选中该复选框,一般不选。 4.图纸颜色的设置 在图10-8所示的对话框中,图纸的颜色设置有两项,具体如图10-15所示。这两项分 别如下所述。 tyw藏书 图10-15 设置图纸的颜色 “Border Color”列表框用来设置图纸边框的颜色。当在该项的颜色条上单击时,如图 10-15所示,会弹出“Choose Color”(选择颜色)对话框,有239种颜色供选择。如果其中 没有所需的颜色,可单击“Define Custom Colors”按钮,会出现自定义颜色对话框,可以自 定义颜色。 “Sheet Color”列表框用来设置图纸的颜色。它可以与“Border Color”一样进行颜色设置 或自定义颜色。 10.1.4 图纸网格的设置 在图10-8所示的对话框中,图纸网格(即图纸上的网格)设置有多项,具体如图1016所示。这几项分别说明如下。 图10-16 设置图纸的网格 “SnapOn”文本框设置光标移动的步长。选中后可在右边的文本框内输入步长值,单位 是像素。这里设为“5”,设置的结果是光标在图纸上移动的距离为5像素(最短)或5的整 数倍。 “Visible”文本框设置是否显示网格(正方形)。选中则显示,并可在右边的文本框内 输入网格边长数值,单位为像素。 “Enable”复选框设置是否自动电气连接。如果选中它,并在“Girds Range”文本框内输 tyw藏书 入数值,则在原理图设计连接导线时,会以光标为中心,以“Girds Range”文本框内输入的 值为半径,自动向四周搜索电气节点,当找到最近的节点时,就会自动将光标移到该节点 上,并在该节点上显示一个圆点。 10.1.5 图纸文件信息的设置 在图10-8所示的对话框中,“Organization”选项卡是用来设置图纸文件信息的,单击该 选项卡后,会出现文件设置信息,如图10-17所示。在该选项卡中有以下选项。 “Organization”文本框用来填写公司或单位的名称。 “Address”选项组用来填写公司或单位的地址和联系信息。 图10-17 设置图纸的文件信息 “Sheet”选项组用来填写电路图的编号。其中,“No.”文本框用来填写本张电路图的编 号,“Total”文本框用来填写本设计文档的电路图总数量。 “Document”选项组用来填写文件的其他信息。其中,“Title”文本框用来填写本张电路 图的标题,“No.”文本框用来填写本张电路图的编号,“Revision”文本框用来填写电路图的 版本号。 10.1.6 光标与网格形状和颜色的设置 1.光标的设置 光标设置可以改变光标的显示形式。进入光标设置的方法是:在工作窗口的图纸上右 击,在弹出的快捷菜单中选择“Preference”命令,也可以选择“Tools”→“Preference”菜单命 令,马上出现“Preferences”对话框,如图10-18所示,单击“Graphical Editing”选项卡,出现 各种设置信息。其中,“Cursor Type”下拉列表框用来设置光标的类型,它有 3 种光标类型 可供选择,如图10-19所示。这3种光标分别如下所述。 tyw藏书 图10-18 “Preferences”对话框 图10-19 3种光标类型选项 “Large Cursor 90”:大十字形光标。 “Small Cursor 90”:小十字形光标。 “Small Cursor 45”:小45°十字形光标。 这3种光标的形状如图10-20所示。 图10-20 3种光标的形状 2.网格形状和颜色的设置 在图10-18所示的对话框中,“Visible Grid”下拉列表框用来设置网格的形状,它有两 个形状供选择,如图10-21所示,分别是“Dot Grid”(点状网格)和“Line Grid”(线状网 格)。这两种形状的网格如图10-22所示。 图10-21 两种网格类型选项 tyw藏书 图10-22 两种网格的形状 设置网格线颜色的方法是:在图10-18所示的对话框中单击“Grid Color”文本框,在弹 出的对话框中可以选择或自定义网格线的颜色。 10.1.7 系统字体的设置 在设计时,经常要在图纸上插入文字,如果不对这些文字的字体进行单独设置,则文 字保持为默认字体。设置系统字体可以改变默认字体。 系统字体的设置方法是:选择“Design”→“Options”命令,会出现“Document Options”对 话框,如图10-23所示,单击“Change System Font”按钮,弹出“字体”对话框,在这里可以 设置字体、字形、大小、效果和颜色等。 tyw藏书 图10-23 设置系统字体 10.2 电路原理图的设计 tyw藏书 电路原理图设计是Protel 99 SE一个非常重要的功能,也是设计印制电路板的基础, 电路原理图的详细设计流程如图10-24所示。 图10-24 电路原理图的详细设计流程 10.2.1 装载元件库 Protel 99 SE软件本身所带的元件是很少的,大量的元件放置在元件库文件中,这些 库文件放在C:\Program Files\Design Explorer 99 SE\Library\Sch 文件夹下(这里是指 Protel 99 SE 安装目录为C:\Program Files\),在该文件夹中,Protel DOS Schematic Libraries.ddb 文件中含有早期采用的元件符号,Miscellaneous Devices.ddb文件中含有常用的元件符号, 各种元件库文件如图10-25所示。 tyw藏书 图10-25 软件自带的元件库文件 另外,读者也可以登录易天教学网(网址:www.eTV100.com)下载国家标准元件库 文件gb4728.ddb,里面含有几乎所有的最新电子、电工类国家标准元件符号。下载 gb4728.ddb 文件后将它复制到C:\Program Files\Design Explorer 99 SE\Library\Sch文件夹 下,就可以像其他元件库一样使用。 1.装载元件库 装载元件库是指将需要的元件库文件装载到电路原理图编辑器的元件库管理器中。装 载元件库的方法有以下3种。 方法一:打开原理图文件“YL1.Sch”,单击设计管理器上方的“Browse Sch”选项卡, 打开元件库管理器,然后单击“Add/Remove”按钮,如图10-26所示,弹出“Change Library File List”(改变库文件列表)对话框,从中选择需要加载的元件库文件,再单击“Add”按 钮,选中的文件就被加入到下面的列表中。重复这样的操作可以将多个元件库文件加入到 下面的列表中。最后单击“OK”按钮,就可以将列表中的所有库文件装载到元件库管理器 中。 tyw藏书 图10-26 装载元件库 方法二:选择“Design”→“Add/Remove Library”命令,会弹出图10-26所示的“Change Library File List”(改变库文件列表)对话框,以后的操作过程同方法一。 方法三:单击主工具栏上的按钮 ,也会弹出图10-26所示的对话框,后续操作过程 同方法一。 2.移除元件库 移除元件库是指将不需要的元件库文件从元件库管理器中移出。与装载元件库相同, 移除元件库的方法也有3种,这里只介绍其中的一种,如下所述。 移除元件库的方法是:单击元件库管理器中的“Add/Remove”按钮,弹出“Change Library File List”对话框,如图10-27所示,从下面的列表中选择需要移除的元件库文件, 再单击“Remove”按钮,选中的文件就会从列表中消失,然后单击“OK”按钮,就可以将选 中的库文件从元件库管理器中移除。 tyw藏书 图10-27 移除元件库 10.2.2 查找元件 在设计电路原理图时,必须先要找到需要的元件。查找元件一般在元件库管理器中进 行,具体操作过程如下。 ① 在元件库管理器的元件库文件列表区选择要查找的元件库文件,如图10-28所示。 ② 在“Filter”文本框中输入查找条件,比如要查找 C 打头的元件名,可在“Filter”文本 框中输入“C*”,再按Enter键,马上就在元件列表区内出现以C打头的所有元件。 tyw藏书 图10-28 元件库管理器 tyw藏书 ③ 用鼠标或“↓”、“↑”键在元件列表区内选择元件,同时在元件显示区显示出选中元件 的符号。 如果不知道元件名,可在“Filter”文本框中输入“*”,再按 Enter 键,在元件列表区会 显示出文件列表区内选中的库文件中所有的元件,这时可以用鼠标或“↓”、“↑”键在元件列 表区内选择需要的元件。 10.2.3 放置元件 放置元件是指将元件放置在原理图设计图纸上。放置元件的方法有下面几种。 1.利用工具栏放置元件 利用工具栏可以放置一些常用的元件。先选择“View”→“Toolbars”→“Digital Objects”菜单命令,打开“Digital Objects”工具栏。利用工具栏放置元件的步骤如下。 ① 单击工具栏上需放置的元件,如图10-29(a)所示。 ② 被单击的元件马上跟随鼠标,移动鼠标到合适的位置,如图10-29(b)所示。 ③ 在放置处单击,元件就被放置下来,如图10-29(c)所示。此时跟随鼠标的元件 并不消失,鼠标移到别处单击又可以放置第2个同样的元件,如果要取消元件放置,右击 即可。 图10-29 利用工具栏放置元件 2.利用元件库管理器放置元件 利用设计管理器的元件库管理器可以放置元件。首先按前面讲述的方法找到需要放置 的元件,然后单击元件列表区下方的“Place”按钮,如图10-30所示,鼠标就会自动跳到图 纸上,并且跟随着需放置的元件,移动鼠标,该元件也会随之移动,在图纸某处单击就可 以将元件放置下来。 tyw藏书 图10-30 利用元件库管理器放置元件 3.利用右键快捷菜单命令放置元件 利用右键快捷菜单命令可以放置元件,具体操作过程是:在工作窗口的图纸上右击, 在弹出的快捷菜单(见图10-31)中选择“Place Part”命令,会出现图10-32所示的“Place Part”对话框,可以在“Lib Ref”文本框中直接输入元件名,单击“OK”按钮即可在图纸上放 置元件。如果不知道元件名,可单击“Browse”按钮,会出现图10-33所示的“Browse Libraries”(浏览元件库)对话框,从中选择需要放置的元件,再单击“Close”按钮,回到 图10-32所示的“Place Part”对话框,单击“OK”按钮就可以将选择的元件放置在图纸上。 图10-31 在右键菜单中选择放置元件命令 tyw藏书 图10-32 “Place Part”对话框(放置元件) 图10-33 “Browse Libraries”对话框 4.利用菜单命令放置元件 利用菜单命令也可以放置元件,放置时选择“Place”→“Part”菜单命令,如图10-34所 示,马上出现图10-32所示的“Place Part”对话框,后面的操作同上。 执行上述菜单命令除了可以用单击的方式操作外,还可以用快捷键操作,方法是:连 续按两次P键,出现图10-32所示的“Place Part”对话框,第1次按P键相当于打开“Place”菜 单,第2次按P键时相当于选择该菜单下的“Part”命令。图10-34所示的“Place”菜单 和“Part”命令中的“P”都加了下画线就是表示该含义,比如先后按P、B键,其效果与先选 择“Place”菜单,再选择该菜单下面的“Bus”命令是相同的。掌握快捷键的操作方法有利于 加快绘制电路的速度,从而提高工作效率。 5.复式元件的放置 有一些集成电路内部有很多相同的单元电路,例如运算放大器集成电路MC4558,它 有8 个引脚,内部有两个相同的运算放大器,这两个运算放大器的引脚不同,如图10-35 所示,其中1脚、2脚、3脚、4脚(接地)、8脚(电源)为第1个运算放大器,5、6、7脚 tyw藏书 为第2个运算放大器,而元件库中的MC4558只是一个运算放大器,如果采用放置元件的普 通方法,只能是在图纸上放置两个引脚和标号都相同的运算放大器。对于这种情况可采用 复式方式放置元件。 图10-34 放置元件的菜单命令 图10-35 复式元件(MC4558) 复式方式放置元件的操作过程如下。 ① 在元件库管理器中找到 MC4558 元件,选中后再单击列表下方的“Place”按钮,鼠 标马上变成十字状光标,要放置的元件处于悬浮状,并且跟随着光标,这时按 Tab 键,马 上弹出“Part”对话框,如图10-36所示,将其中的“Designator”(元件标号)设为“U1”,因 为现在放置的是第1个运算放大器,故将“Part”项设为“1”,再单击“OK”按钮,设置完毕。 将光标移到图纸合适的位置单击,MC4558的第1个运算放大器就放置完毕,该运算放大器 的标号自动为U1A。 tyw藏书 图10-36 设置复式元件属性 ② 再将光标移到图纸另一处单击,就放置了MC4558的第2个运算放大器,该运算放 大器引脚自动变化,而标号也变为U1B。如果连续放置,运算放大器的标号会自动增加, 引脚也会作相应的变化,如图10-37所示。 tyw藏书 图10-37 连续放置的复式元件标号会自动变化 10.2.4 元件的编辑 1.元件位置的调整 (1)元件的选取 要对元件进行各种操作,首先就是要选中它。选取元件的方法很多,常用的方法有以 下几种。 ① 直接选取元件。 直接选取元件就是在图纸上按下鼠标左键不放拉出一个矩形选框,将选取对象包含在 内部,如图10-38所示,再松开鼠标,选框内的对象就处于选中状态,此时被选中的元件 周围的标注被隐藏起来,无法看见。 tyw藏书 图10-38 直接选取元件 ② 利用主工具栏的选取工具来选取元件。 在主工具栏中有两个与元件选取有关的工具:区域选取工具和取消选取工具,如图 10-39所示。 图10-39 两个与选取有关的工具 利用区域选取工具选取元件的过程是:单击主工具栏中的区域选取工具按钮,鼠标马 上变为十字状,然后在图纸上合适的位置(即矩形框的起点)单击,此时不用按下鼠标左 键就可以拉出一个矩形框,如图10-40所示,再在合适的位置(即矩形框的终点)单击, 矩形框内的元件处于选中状态。 图10-40 用区域选取工具选取元件 取消选取工具的作用是取消图纸上所有元件的选取状态。当单击主工具栏上的取消选 取工具按钮后,图纸上所有被选取的元件选取状态被取消,这些元件周围被隐藏的标注又 会显示出来。 ③ 利用菜单命令选取元件。 利用“Edit”菜单下几个与选取有关的命令也可以对元件进行选取,这些命令如图10-41 所示。例如执行“Net”命令,鼠标变成十字状光标,将光标移到某网络标号或导线上单 tyw藏书 击,则属于该网络的所有网络标号和导线都会被选中;例如选择“Connection”命令,将光 标在某导线上单击,与导线相连的所有导线均会被选中。 图10-41 选取与取消选取命令 (2)元件的移动 ① 单个元件的移动。 单个元件的移动方法有以下两种。 方法一:将鼠标移到元件上再按下左键不放,鼠标变成十字状,同时在元件周围出现 虚线框,表示元件已被选中,如图10-42所示,仍保持按下左键不放,移动鼠标就可以移 动元件,移到合适的位置松开左键即可。 图10-42 单个元件的移动 方法二:用鼠标在图纸上拉出一个矩形选框,将需移动的元件选中,然后将鼠标移到 选中的元件上,按下左键不放就可以移动元件,移到合适的位置松开左键即可。 ② 多个元件的移动。 tyw藏书 多个元件的移动与单个元件的移动基本相同,其过程是:用鼠标在图纸上拉出一个矩 形选框,将需移动的多个元件选中,然后将鼠标移到其中一个元件上,按下左键不放移动 该元件,其他的元件也跟着移动,如图10-43所示。 图10-43 多个元件的移动 ③ 特殊的移动。 用前面的方法可以移动单个或多个元件,但如果元件已经连接上了导线,再用前面的 方法进行移动就会造成元件与导线脱开,如图10-44所示。为了解决这个问题,可以采用 特殊的移动,用特殊方法移动元件时,导线也会随着元件移动,如图10-45所示。 图10-44 普通的移动(移动元件时导线不会移动) tyw藏书 图10-45 特殊的移动(移动元件时导线随之移动) 要进行这种特殊的移动可采用以下两种方法。 方法一:选择“Edit”→“Move”→“Drag”菜单命令,如图10-46所示,鼠标变成十字状光 标,将光标移到要移动的元件上单击,元件周围出现虚线框,此时移动光标(不需按左 键),元件及与它相连的导线也随之移动,移到合适的位置单击,元件就不再移动,右击 取消移动操作。 图10-46 执行特殊移动的菜单命令 方法二:按下Ctrl键不放,将鼠标移到要移动的元件上单击,元件周围出现虚线框, 此时再松开Ctrl键并移动光标,元件及与它相连的导线也随之移动,移到合适的位置单 击,元件与导线就不再移动。 (3)元件的旋转 如果想改变图纸上元件放置的方向,就要对元件进行旋转操作。常用的元件旋转操作 方法有以下两种。 方法一:将鼠标移到需要旋转的元件上,再按下左键不放,鼠标旁马上出现一个十字 形,十字形中心出现一个焦点并自动移到元件的一个引脚上,同时在元件周围有小虚线框 出现,如图10-47 (a)所示,这时按Space键,元件会以十字形中心为轴旋转90°,如图 10-47(b)所示,每按一次Space键,元件就会在前面的基础上旋转90°。 方法二:用鼠标拉出一个矩形框,将需要旋转的元件选中,然后在元件上双击鼠标右 键,弹出快捷菜单,如图10-48(a)所示,选择“Properties”命令,马上出现“Part”对话 tyw藏书 框,如图10-48(b)所示,切换到“Graphical Attrs”选项卡,然后在“Orientation”下拉列表 框中选择“90 Degrees”命令,再单击“OK”按钮,被选中的元件就以元件中心为轴旋转 90°。 (4)元件的排列 为了让绘制出来的电路图中的元件排列整齐美观,掌握元件排列规律是必要的。元件 的对齐方式有:左对齐、右对齐、按水平中心线对齐、水平平铺对齐、顶部对齐、底部对 齐、按垂直中心线对齐和垂直均分对齐。 图10-47 通过鼠标操作来旋转元件 图10-48 通过设置属性来旋转元件 ① 元件的左对齐排列。 tyw藏书 图10-49所示的元件是没有进行对齐排列的情况,如果要对它们进行左对齐排列,可 这样操作:首先用鼠标拉出矩形选框,将需要对齐排列的元件选中,再选 择“Edit”→“Align”→“Align Left”菜单命令,如图10-50所示,选中的元件就进行了左对齐排 列。 图10-49 未对齐排列的元件 tyw藏书 图10-50 元件左对齐操作 ② 其他方式的排列。 如果要对元件进行右对齐、按水平中心线对齐、水平平铺对齐、顶部对齐、底部对 齐、按垂直中心线对齐和垂直均分对齐排列,可先选中需排列的元件,再选 择“Edit”→“Align”菜单下的相应命令即可,进行各种方式排列的元件如图10-51所示。 tyw藏书 图10-51 元件的各种排列方式 ③ 综合方式排列。 前面的操作一次只能进行一次排列,如果要同时进行水平和垂直对齐排列,可使 用“Align”命令。 综合方式排列的操作过程是:首先用鼠标拉出矩形选框,将需要对齐排列的元件选 中,再选择“Edit”→“Align”→“Align”菜单命令,马上弹出“Align objects”对话框,如图1052所示。“Horizontal Alignment”选项组为水平排列项,它下面有4个选项;“Vertical Alignment”选项组为垂直排列项,它也有4个选项。在该对话框中将水平和垂直排列都选择 为“Distribute equally”(平均分布),再单击“OK”按钮,被选中的各个元件在水平和垂直 方向就会以平均分布的方式在图纸上排列出来,即排列后的各元件水平间隔和垂直间隔都 相同。 tyw藏书 图10-52 “Align objects”对话框 2.元件的删除、复制、剪切与粘贴 (1)元件的删除 如果想删除图纸上的元件,可进行元件删除操作。元件删除常用的方法有以下几种。 方法一:用鼠标在要删除的元件上单击,让元件周围出现虚线框,此元件被选中,如 图10-53所示,再按Delete键,选中的元件就会被删除。 图10-53 选中元件后按Delete键删除元件 方法二:用鼠标在图纸上拉出一个矩形选框,将要删除的元件选中,然后选 择“Edit”→“Clear”菜单命令,选中的元件就会被删除,也可以按Ctrl+Delete键,选中的元 件同样能被删除。 方法三:选择“Edit”→“Delete”菜单命令,鼠标变成十字形状,将鼠标移到要删除的 元件上单击,元件即可被删除,这种方法删除元件、导线和节点等对象非常方便。 (2)元件的复制、剪切与粘贴 元件的复制操作过程是:首先用鼠标在图纸上拉出一个矩形选框,将要复制的元件选 tyw藏书 中,然后选择“Edit”→“Copy”菜单命令,如图10-54所示,选中的元件就会被复制到剪贴 板。剪贴板是在计算机内存中分出的一个存储空间,它是看不见的,复制的各种对象被临 时存放在该空间中,可以通过粘贴操作将剪贴板中的对象取出来。 图10-54 选中元件后选择复制命令 元件的粘贴操作过程是:在进行复制操作后,再选择“Edit”→“Paste”菜单命令,鼠标 旁马上出现刚复制的元件,并且跟随鼠标移动,将鼠标移到合适的位置单击,元件就被放 置下来。如果不断执行粘贴操作,就可以在图纸上放置很多相同的元件。 与复制类似的还有一个剪切操作,元件的剪切操作过程是:首先用鼠标在图纸上拉出 一个矩形选框,将要剪切的元件选中,然后选择“Edit”→“Cut”菜单命令,选中的元件就会 被剪切到剪贴板,当在图纸上单击时该元件消失(复制操作时元件不会消失,这就是两者 的区别)。进行剪切操作后,再进行粘贴操作就可以在图纸上放置刚剪切的元件。 通过执行菜单命令的方式进行复制、剪切和粘贴操作速度比较慢,为了提高效率,可 使用快捷键操作。 复制的快捷键操作方法是:先选中要复制的元件,再按Ctrl+C键(也可以先按Ctrl键 不放,再按C键),选中的元件就被复制到剪贴板上。 粘贴的快捷键操作方法是:在进行复制操作后,按Ctrl+V键,被复制的元件就出现在 图纸上。 剪切的快捷键操作方法是:先选中要剪切的元件,再按Ctrl+X键,选中的元件就被剪 切到剪贴板上。 (3)阵列式粘贴元件 阵列式粘贴是一种特殊的粘贴方式,它可以一次性粘贴多个相同的元件。 tyw藏书 阵列式粘贴元件的操作方法是:首先用鼠标在图纸上拉出一个矩形选框,将要复制的 元件选中,如复制图10-55(a)中的电阻R1,在选中R1后选择“Edit”→“Copy”菜单命令, 再选择“Edit”→“PasteArray”菜单命令,马上弹出一个对话框,如图10-56所示,在对话框 中进行各项设置后单击“OK”按钮,元件就按设置的方式粘贴到图纸上,如图10-55(b) 所示,同时粘贴了3个元件,元件标注自动增加。 3.元件及标注属性的设置 (1)元件属性的设置 前面讲的主要是对元件的一些操作方法,而元件本身也有一些属性需要设置。进入元 件属性设置的方法有以下几种。 方法一:在放置元件时按Tab键,就会弹出“Part”对话框,如图10-57所示。 tyw藏书 图10-55 阵列式粘贴元件 图10-56 “Setup Paste Array”对话框 tyw藏书 图10-57 “Part”对话框设置元件属性 方法二:如果元件已经放置在图纸上,可在元件上双击,也会弹出图10-57所示的对 话框。 方法三:在元件上双击鼠标右键,在弹出的快捷菜单中选择“Properties”命令,也会弹 出图10-57所示的对话框。 方法四:选择“Edit”→“Change”菜单命令,鼠标旁出现十字形光标,将光标移到元件 上单击,同样会弹出图10-57所示的对话框。 在图10-57所示的对话框中可以对元件的各种属性进行设置,如果想进行更详细的设 置,可单击“Global”按钮,出现更详细的设置对话框,如图10-58所示。 “Part”对话框有4个选项卡:“Attributes”、“Graphical Attrs”、“Part Fields”和“Read-Only Fields”。选择不同的选项卡时,对话框中的设置内容也会发生变化,4个选项卡的设置内 容分别如图10-58~图10-61所示。在这4个选项卡中,“Attributes”选项卡的内容设置较为常 用,其他选项卡一般较少设置。在修改设置元件属性时,有3种修改作用范围供选择,如 图10-59所示,单击对话框右下角的下拉按钮能得到3个选项,可根据需要选择其中的一 项。 tyw藏书 图10-58 对元件属性进行更详细的设置(“Attributes”选项卡) 图10-59 “Graphical Attrs”选项卡 tyw藏书 图10-60 “Part Fields”选项卡 图10-61 “Read-Only Fields”选项卡 (2)元件标注属性的设置 在元件旁边往往有一些标注,用户也可以对这些标注进行单独的设置。 标注的设置方法是:在元件标注上双击,如在三极管的“NPN”标注上双击,会出现图 10-62所示的“Part Type”对话框,在该对话框中可以对标注进行各种设置。 tyw藏书 图10-62 “Part Type”对话框(设置元件标注属性) 10.2.5 绘制导线和节点 图纸上的元件调整和编辑完成后,接下来就是用导线将各个元件连接起来,如果两根 导线十字交叉并且相通,还需要在交叉处放置节点来表示两者相通。在Protel 99 SE中, 连接元件的导线和节点都具有电气性能,不能用普通画图工具栏中的直线和圆点代替。 1.导线的绘制 在图10-63中,各个元件之间没有导线连接,现在要在元件之间绘制导线,将元件连 接起来。绘制导线的方法主要有两种,一种是利用布线工具栏中的导线绘制工具来绘制, 另一种是执行菜单命令来绘制。 tyw藏书 图10-63 无导线连接的元件 (1)利用布线工具栏中的导线绘制工具来绘制导线 利用导线绘制工具来绘制导线的具体操作过程如下。 ① 选择“View”→“Toolbars”→“Wiring Tools”菜单命令,打开图10-64所示的布线工具 栏。 ② 单击布线工具栏中的按钮 ,鼠标旁出现一个十字状的光标。 ③ 将鼠标移到要连接导线的起点处,此时光标中心出现一个黑圆点,如图1065(a)所示,单击导线起点被固定下来,再将鼠标移到下一个连接处,光标中心又会出 现一个黑圆点,单击,导线在该处又被固定下来,如图10-65(b)所示,此时再移动鼠标 可以继续绘制导线。如果需要重新绘制另一条导线,可右击或按Esc键,再将鼠标移到新 的起点,以后的绘制过程相同。 ④ 要结束绘制导线,只要双击鼠标右键即可。 tyw藏书 图10-63中的各个元件之间连接导线后的结果如图10-66所示。 图10-64 布线工具栏 图10-65 绘制导线 tyw藏书 图10-66 连接了导线的元件 如果需要改变导线的拐弯方式,可在绘制导线时按Space键切换不同的拐弯方式,图 10-67所示就是导线的几种拐弯方式。 图10-67 导线的几种拐弯方式 如果要调整已经画好的导线长度,可以在导线上单击,导线上就会出现方形控制点, tyw藏书 如图10-68所示,将鼠标移到控制点上,再按下左键不放移动鼠标(即拖动)就可以调整 导线的长度或方向。另外,在导线出现控制点时,按 Delete 键可以将导线删除。 图10-68 导线的选取与调整 (2)利用菜单命令绘制导线 利用菜单命令绘制导线与用导线绘制工具来绘制导线的操作过程大部分是相同的,不 同之处在于:用菜单命令绘制导线时要先选择“Place”→“Wire”菜单命令,以后的操作过程 与用导线绘制工具绘制导线完全相同。 (3)导线属性的设置 如果要设置导线的宽度、颜色等,可进行导线属性设置。 进入导线属性设置界面的方法有两种:一种方法是在绘制导线时按Tab键,会弹出图 10-69所示的“Wire”对话框;另一种方法是在需要设置的导线上双击,也会出现图10-69所 示的对话框。 在图10-69所示的对话框中,“Wire Width”下拉列表框用来设置导线的宽度,它 有“Smallest”(最细)、“Small”(细)、“Medium”(中)和“Large”(粗)4种选项,如图 10-70所示。“Color”列表框用来设置导线的颜色,在列表框上单击会出现颜色设置对话 框,可以设置导线的颜色;“Selection”复选框用来选择设置完导线属性后,该导线是否处 于被选中状态,选中此复选框,导线就会处于选中状态。设置完成后,单击“OK”按钮, 设置就会生效。如果想进行更详细的设置,可单击“Global”按钮,会出现更详细的属性设 置对话框。 tyw藏书 图10-69 “Wire”对话框(设置导线属性) 图10-70 4种导线宽度选项 2.节点的放置 在图10-66 中,虽然各个元件用导线连接起来,但无法看出导线十字交叉处是否相 通,为了表示在交叉处导线相通,可在该处放置节点。 (1)节点的放置 放置节点的操作过程如下。 ① 单击布线工具栏中的按钮 ,也可以选择“Place”→“Junction”菜单命令,鼠标旁 出现十字状的光标,光标中心有一个节点。 ② 将光标节点移到导线交叉处,如图10-71所示,单击,节点就被放置下来,节点放 置完成后,光标仍处于节点放置状态,可以继续放置节点,右击退出节点放置状态。 (2)节点属性的设置 节点属性设置的方法有以下两种。 方法一:如果节点已经放置,可在节点上单击,出现一个多项选单,如图10-72(a) 所示,选择其中的“Junction”项(如果选择另外两个选项则会分别选中横、竖导线),节 点被选中,周围出现虚线框,如图10-72(b)所示,同时鼠标自动移到节点上,在节点上 双击,会弹出图10-73所示的Junction对话框。 tyw藏书 图10-71 在导线交叉处放置节点 图10-72 选取节点 方法二:如果节点还没有放置,那么在放置节点时按Tab键,就会出现图10-73所示的 对话框。 在“Junction”对话框中可以设置节点在图纸上的坐标位置、大小、颜色等内容,如果 想进行更详细的设置,可单击“Global”按钮,就会出现更详细的设置对话框。 图10-73 “Junction”对话框(设置节点属性) 3.总线的绘制 tyw藏书 在绘制一些数字电路系统时,经常需要在两个集成电路(IC)之间连接大量的导线, 这样绘制电路很不方便,采用总线的形式绘制导线可以解决这个问题。 图10-74所示就是采用总线形式绘制出来的电路图,在图中粗线称为总线,总线上许 多小分支称为总线分支线,分支线旁边的标注(A0、A1、…)称为网络标号。利用总线 绘制电路非常方便,又能清楚地表示出各电路之间的连接关系,如图10-74中U3的10脚标 有网络标号A0,而U4的10脚也标有网络标号A0,这表示U3的10脚和U4的10脚是相连的。 图10-74 采用总线形式绘制出来的电路原理图 (1)总线的绘制 ① 绘制总线。 绘制总线可以单击布线工具栏中的按钮 ,或者选择“Place”→“Bus”菜单命令,鼠标 旁边出现十字形状的光标,将光标移到画总线的起点处,如图10-75所示,单击就固定了 总线的起点,然后就用与画导线相同的方法画出总线。 画总线时经常要拐弯,在拐弯处单击就能固定总线的拐弯点,按Space 键可转换拐弯 样式;要结束本条总线的绘制可右击或按Esc键,然后就可以画另一条总线;如果双击鼠 标右键,则结束总线的绘制。绘制好的总线如图10-76所示。 tyw藏书 图10-75 单击确定总线的起点 图10-76 绘制好的总线 ② 总线属性的设置。 进入总线属性设置界面有两种方法:一种是在绘制总线时按 Tab 键,就会弹出图1077所示的“Bus”对话框;另一种方法是在已经画好的总线上双击,也会弹出图10-77所示的 对话框。在图10-77所示的对话框中可以设置总线的粗细、颜色等内容。 tyw藏书 图10-77 “Bus”对话框(设置总线属性) (2)总线分支线的绘制 ① 绘制总线分支线。 绘制总线分支线可以单击布线工具栏中的按钮 ,或者选择“Place”→“Bus Entry”菜 单命令,鼠标旁边出现带分支线的十字形光标,将光标移到画分支线的位置,如图10-78 所示,按Space键可以让分支线在4个方向上变化。在放置分支线处单击,分支线就固定在 总线上,然后用相同的方法画出其他的分支线,如图10-79所示,双击鼠标右键结束分支 线的绘制。 图10-78 绘制第1条总线分支线 tyw藏书 图10-79 绘制最后一条总线分支线 分支线绘制完成后,再用导线将分支线与元件(集成电路)的引脚连接起来。 ② 总线分支线属性的设置。 进入总线分支线属性设置界面有两种方法:一种方法是在绘制总线分支线时按 Tab 键,就会弹出图10-80所示的“Bus Entry”对话框;另一种方法是在已经画好的总线分支线 上双击,也会弹出图10-80所示的对话框。在图10-80所示的对话框中可以设置总线分支线 的起点和终点位置、粗细和颜色等内容。 tyw藏书 图10-80 “Bus Entry”对话框(设置总线分支线属性) (3)网络标号的放置 网络标号的作用是标识电路的连接关系,相同网络标号的导线是相连的。在前面图 10-74所示的电路中,与U3的8脚相连导线的网络标号为A2,与U4的8脚相连导线的网络标 号也为A2,这表示两根导线实际上是连通的。 ① 放置网络标号。 放置网络标号的操作过程如下。 第1步:单击布线工具栏中的按钮 ,也可以选择“Place”→“Net Label”菜单命令,鼠 标旁边出现带网络标号的十字形光标。 第2步:将光标移到需要放置网络标号处,如图10-81所示,单击,网络标号就被放置 下来,此时光标仍处于网络标号放置状态,可以继续放置网络标号,右击退出放置状态。 tyw藏书 图10-81 放置网络标号 ② 网络标号属性的设置。 进入网络标号属性设置界面有两种方法:一种方法是在放置网络标号时按 Ta b 键, 会弹出图10-82所示的“Net Label”对话框;另一种方法是在已经放置的网络标号上双击, 也会弹出图10-82所示的对话框。在图10-82所示的对话框中可以设置网络标号的名称、位 置、颜色和字体等内容,设置完成后单击“OK”按钮即可。设置结果如图10-83所示。 tyw藏书 图10-82 “Net Label”对话框(设置网络标号属性) 图10-83 第1条网络标号设置完成 10.2.6 电源和接地符号的放置 只有元件和导线的电路是无法工作的,必须要给电路加上电源。电源符号和接地符号 主要是通过符号旁标注的名称来区分。 (1)放置电源和接地符号 tyw藏书 放置电源符号的操作过程如下。 ① 选择“View”→“Toolbars”→“Power Objects”菜单命令,打开图10-84所示的电源与接 地工具栏。如果该工具栏已在工作窗口中,该过程可省略。 图10-84 电源与接地工具栏 ② 单击电源工具栏中的一种电源符号,或者选择“Place”→“Power Port”菜单命令,鼠 标旁出现带电源符号的十字形光标。 ③ 将光标移到需放置电源符号处,此时光标中心出现一个黑圆点,如图10-85所示, 单击,电源符号就被放置下来,右击或按Esc键可取消电源符号的放置。 ④ 用同样的方法在电路中放置接地符号,如图10-86所示。 tyw藏书 图10-85 放置电源符号 tyw藏书 图10-86 放置接地符号 (2)电源和接地符号属性的设置 进入电源和接地符号属性设置界面有两种方法:一种方法是在放置电源和接地符号时 按Ta b键,就会弹出图10-87所示的“Power Port”对话框;另一种方法是在已经放置的电源 和接地符号上双击,也会弹出图10-87所示的对话框。 在图10-87所示的对话框中可以设置电源和接地符号的名称、样式、位置、颜色和旋 转角度等内容,设置好单击“OK”按钮即可。在“Style”(样式)下拉列表框中有7种样式供 选择,它们和电源与接地工具栏中的7种样式相对应,如图10-88所t示yw。 藏书 图10-87 “Power Port”对话框(设置电源和接地符号属性) tyw藏书 图10-88 7种样式的电源和接地符号 10.2.7 输入/输出端口的放置 在设计电路时,一个电路与另一个电路的连接既可以用导线直接连接,也可以以总线 的形式连接,还可以用输入/输出端口的形式表示连接。在图10-89中,3种连接形式的电 气效果是相同的。 tyw藏书 图10-89 3种形式的电路连接 在电路设计时,灵活使用这 3 种连接方式可以使设计出来的电路图整齐美观。一般来 说,当电路之间的连接点少并在一张图纸上时,采用导线直接连接;当电路之间的连接点 很多并在一张图纸上时,采用总线连接;当要连接的电路分别处于不同的图纸上时,采用 输入/输出端口的形式连接更方便。 (1)放置输入/输出端口 放置输入/输出端口的操作过程如下。 ① 单击布线工具栏中的按钮 ,或选择“Place”→“Power Port”菜单命令,鼠标旁出 现带输入/输出端口的十字形光标。 ② 将光标移到要放置端口的位置,此时光标中心出现一个黑圆点,如图10-90所示, 单击,端口的起点就被放置下来。 ③ 再将光标移到另一处,如图10-91所示,单击,端口的终点就被确定下来,右击或 按Esc键可取消端口的放置。 tyw藏书 图10-90 单击确定端口的起点 图10-91 单击确定端口的终点 (2)输入/输出端口属性的设置 进入输入/输出端口属性设置界面有两种方法:一种方法是在放置输入/输出端口时按 Tab键,就会弹出图10-92所示的“Port”对话框;另一种方法是在已经放置的输入输出端口 上双击,也会弹出图10-92所示的对话框。 tyw藏书 图10-92 “Port”对话框(设置输入/输出端口属性) 在图10-92所示的对话框中,“Name”下拉列表框中可以输入端口的名称;“Style”(样 式)下拉列表框中可以选择端口的样式,共有8种样式供选择,各种样式如图10-93所示; 在“I/O Type”(输入/输出类型)下拉列表框中有4种类型供选择,如图10-94所示; 在“Alignment”(端口名在端口中显示位置)下拉列表框中有3种显示位置,如图10-95所 示。另外,在该对话框中还可以设置端口长度、端口位置和颜色等内容,设置好单 击“OK”按钮即可。 tyw藏书 图10-93 8种样式的端口 tyw藏书 图10-94 4种输入/输出端口的电气特性 图10-95 端口名的3种显示位置 10.2.8 元件标号的查找、替换与重排 1.元件标号的查找 在设计电路时,如果电路中的元件数量少,则查找某一标号的元件比较容易;如果设 计的电路中元件数量很多,则查找元件就很困难,这时可采用元件标号查找功能来查找元 件。 查找元件标号的操作过程如下。 ① 选择“Edit”→“Find Text”菜单命令,马上弹出“Find Text”对话框,如图10-96所示。 ② 在“Text to Find”文本框中输入要查找的元件,比如输入查找元件为“C2”,然后对其 他的项进行设置,再单击“OK”按钮,要查找的元件电容C2马上出现在屏幕中央,并且周 围有虚线框,如图10-97所示。 tyw藏书 图10-96 “Find Text”对话框(查找元件标号) 图10-97 查找到的元件周围出现虚线框 2.元件标号的替换 在设计电路时,如果需要对电路中的某些元件的标号进行更改,虽然可以逐个更改, tyw藏书 但比较麻烦,这时可采用元件标号替换的方法来更改大量元件的标号。 元件标号替换的操作过程如下。 ① 选择“Edit”→“Replace Find Text”菜单命令,马上弹出“Find And Replace Text”对话 框,如图10-98所示。 图10-98 “Find And Replace Text”对话框(查找和替换元件标号) ② 在“Text to Find”文本框中输入要查找的元件,比如查找所有以C打头的元件,就在 该文本框内输入“C*”,再在“Replace With”文本框中输入要替换的标号,比如要将所有以C 打头的标号替换成以CAP打头的标号,就在该文本框内输入“{C=CAP}”,然后单 击“OK”按钮,电路中所有以C打头的标号都会替换成以CAP打头的标号,如图10-99所 示。 tyw藏书 图10-99 元件标号替换前后 3.元件标号的重排 在一个电路图中,元件的标号是不能相同的,为了保证整个电路图的元件标号不产生 重复,可对电路中的元件标号进行重新排列标号。 元件重新排列标号的操作过程如下。 ① 选择“Tools”→“Annotate”菜单命令,马上弹出“Annotate”对话框,对话框中有两个 选项卡:“Options”(选项)和“Advanced Options”(高级选项),分别如图10-100和图10101所示。 ② 在“Options”(选项)选项卡中进行图示的设置后单击,元件标号重排前后的变化 如图10-102所示。 tyw藏书 图10-100 “Options”(选项)选项卡 图10-101 “Advanced Options”(高级选项)选项卡 tyw藏书 图10-102 元件标号重排前后 10.3 图形的绘制和文本、图片的编辑 在设计电路图时,经常需要在图纸上增加一些图形和文本,这ty些w图藏形和书文本对电路图 的电气特性没有任何影响,它们主要起着对电路图进行辅助说明的作用。 图形绘制与文本编辑常使用“Drawing Tools”(绘图工具)工具栏,选 择“View”→“Toolbars”→“Drawing Tools”菜单命令,就可以打开图10-103所示的绘图工具 栏。 图10-103 绘图工具栏 10.3.1 直线的绘制 (1)绘制直线 绘制直线的操作过程如下。 ① 单击绘图工具栏中的按钮 ,或者选择“Place”→“Drawing Tools”→“Line”菜单命 令,鼠标变成十字状光标。 ② 将光标移到图纸上某处单击,确定直线的起点。 ③ 再将光标移到适当的位置单击,确定直线的终点。 ④ 在绘制直线的过程中,按Space键可以改变直线的拐弯样式,右击可以结束当前直 线的绘制而开始绘制下一条直线,双击鼠标右键则结束直线的绘制。 (2)直线属性的设置 进入直线属性设置界面有以下两种方法。 方法一:在绘制直线的过程中按 Tab 键,会弹出图10-104所示的“PolyLine”对话框。 方法二:在已经画好的直线上双击,也会弹出图10-104所示的对话框。 图10-104 “PolyLine”对话框设置直线属性 在“PolyLine”对话框中可以设置直线的宽度、样式和颜色等。在“Line Width”(直线宽 tyw藏书 度)下拉列表框中有4个选项,如图10-105所示;在“LineStyle”(直线样式)下拉列表框中 有3个选项,如图10-106所示。设置好各项后单击“OK”按钮即可。 图10-105 4种直线宽度 图10-106 3种直线样式 (3)直线的编辑 如果要改变直线的长度,可在直线上单击,直线上会出现控制点,拖动控制点就能调 整直线的长度和方向,拖动整个直线移动就可以改变直线的位置。 10.3.2 矩形的绘制 矩形有普通矩形和圆角矩形,两者绘制的基本方法相同。这里只介绍普通矩形的绘制 方法,绘制圆角矩形可以以它作为参考。 (1)绘制矩形 绘制矩形的操作过程如下。 ① 单击绘图工具栏中的按钮 ,或者选择“Place”→“Drawing Tools”→“Rectangle”菜 单命令,鼠标变成十字状光标。 ② 将光标移到图纸上某处单击,确定矩形的一个角的顶点。 tyw藏书 ③ 移动光标到适当的位置单击,确定矩形的另一个对角顶点。 ④ 右击可以结束当前矩形的绘制而开始绘制下一个矩形,双击鼠标右键则结束矩形 的绘制。 (2)矩形属性的设置 进入矩形属性设置界面有以下两种方法。 方法一:在绘制矩形的过程中按Tab键,会弹出图10-107所示的“Rectangle”对话框。 方法二:在已经画好的矩形上双击,也会弹出图10-107所示的对话框。 tyw藏书 图10-107 “Rectangle”对话框(设置矩形属性) 在“Rectangle”对话框中可以设置矩形两个对角的位置、边框线宽度、边框线颜色和填 充颜色等。设置好各项后单击“OK”按钮即可。 (3)矩形的编辑 如果要改变矩形的大小,可在矩形上单击,矩形周围会出现控制点,拖动控制点就可 以调整矩形的大小,拖动整个矩形移动就可以改变矩形的位置。 10.3.3 多边形的绘制 (1)绘制多边形 绘制多边形的操作过程如下。 ① 单击绘图工具栏中的按钮 ,或者选择“Place”→“Drawing Tools”→“Polygons”菜单 命令,鼠标变成十字状光标。 ② 将光标移到图纸上某处单击,确定多边形的一个角的顶点。 ③ 移动光标到适当的位置单击,确定多边形另一个对角顶点。用这样的方法可以确 tyw藏书 定多边形的其他角的顶点。多边形的绘制如图10-108所示。 ④ 右击可以结束当前多边形的绘制而开始绘制下一个多边形,双击鼠标右键则结束 多边形的绘制。 (2)多边形属性的设置 进入多边形属性设置界面有以下两种方法。 方法一:在绘制多边形的过程中按Tab键,会弹出图10-109所示的“Polygon”对话框。 图10-108 绘制多边形 图10-109 “Polygon”对话框(设置多边形属性) 方法二:在已经画好的多边形上双击,也会弹出图10-109所示的对话框。 在“Polygon”对话框中可以设置多边形边框线宽度、边框线颜色和填充颜色等。设置 好各项后单击“OK”按钮即可。 (3)多边形的编辑 如果要改变多边形的大小和方向,可在多边形上单击,多边形周围会出现控制点,拖 动控制点就可以调整多边形的大小和方向,拖动整个多边形移动就可以改变多边形的位 置。 10.3.4 椭圆弧线的绘制 (1)绘制椭圆弧线 tyw藏书 绘制椭圆弧线需要确定椭圆的圆心、横向半径、纵向半径和椭圆弧线的起点、终点位 置。绘制椭圆弧线的操作过程如下。 ① 单击绘图工具栏中的按钮 ,或者选择“Place”→“Drawing Tools”→“Elliptical Arcs”菜单命令,鼠标变成十字状光标,并且光标旁跟随着一个圆弧。 ② 确定圆弧的圆心。将光标移到图纸上某处单击,确定椭圆弧线的圆心,如图10- 110(a)所示。 ③ 确定圆弧横向半径。确定圆心后,光标自动跳到圆弧横向顶点位置,移动光标可 改变圆弧的横向半径,单击将横向半径确定,如图10-110(b)所示。 ④ 确定圆弧纵向半径。确定横向半径后,光标自动跳到圆弧纵向顶点位置,移动光 标可改变圆弧的纵向半径,单击将纵向半径确定,如图10-110(c)所示。 ⑤ 确定圆弧起点位置。确定纵向半径后,光标自动跳到圆弧起点位置,移动光标可 改变圆弧的起点位置,单击将起点位置确定,如图10-110(d)所示。 ⑥ 确定圆弧终点位置。确定圆弧起点位置后,光标自动跳到圆弧终点位置,移动光 标可改变圆弧的终点位置,单击将终点位置确定,如图10-110(e)所示。 ⑦ 右击可以结束当前椭圆弧线的绘制而开始绘制下一个椭圆弧线,双击鼠标右键则 结束椭圆弧线的绘制。绘制好的椭圆弧线如图10-110(f)所示。 图10-110 绘制椭圆弧线 (2)椭圆弧线属性的设置 进入椭圆弧线属性设置界面有以下两种方法。 方法一:在绘制椭圆弧线的过程中按Tab 键,会弹出图10-111所示的“Elliptical Arc”对 话框。 tyw藏书 tyw藏书 图10-111 “Elliptical Arc”对话框(设置椭圆弧线属性) 方法二:在已经画好的椭圆弧线上双击,也会弹出图10-111所示的对话框。 在“Elliptical Arc”对话框中可以设置椭圆弧线的中心位置、横向半径、纵向半径、线 宽和弧线起始角度/终止角度、弧线颜色等。设置好各项后单击“OK”按钮即可。 (3)椭圆弧线的编辑 如果要调整椭圆弧线,可在椭圆弧线上单击,椭圆弧线周围会出现控制点,拖动控制 点可以对椭圆弧线进行调整,拖动整个椭圆弧线移动就可以改变椭圆弧线的位置。 10.3.5 椭圆的绘制 (1)绘制椭圆 下。绘制椭圆需要确定椭圆的圆心位置、横向半径和纵向半径。绘ty制w椭藏圆的书操作过程如 ① 单击绘图工具栏中的按钮 ,或者选择“Place”→“Drawing Tools”→“Ellipses”菜单 命令,鼠标变成十字状光标,并且光标旁跟随着一个椭圆。 ② 确定椭圆的圆心。将光标移到图纸上某处单击,确定椭圆的圆心,如图10112(a)所示。 ③ 确定椭圆横向半径。确定圆心后,光标自动跳到椭圆横向顶点位置,移动光标可 改变椭圆的横向半径,单击将横向半径确定,如图10-112(b)所示。 ④ 确定椭圆纵向半径。确定横向半径后,光标自动跳到椭圆纵向顶点位置,移动光 标可改变椭圆的纵向半径,单击将纵向半径确定,如图10-112(c)所示。 ⑤ 右击可以结束当前椭圆的绘制而开始绘制下一个椭圆,双击鼠标右键则结束椭圆 的绘制。绘制好的椭圆如图10-112(d)所示。 在绘制椭圆时,如果横向半径和纵向半径相等,就可以绘制出圆形,如图10112(e)所示。 图10-112 绘制椭圆和圆形 (2)椭圆属性的设置 进入椭圆属性设置界面有以下两种方法。 方法一:在绘制椭圆的过程中按 Tab 键,会弹出图10-113所示的“Ellipse”对话框。 方法二:在已经画好的椭圆上双击,也会弹出图10-113所示的对话框。 在“Ellipse”对话框中可以设置椭圆中心位置、横向半径、纵向半径和边框线宽度、颜 色及填充颜色等。设置好各项后单击“OK”按钮即可。 tyw藏书 图10-113 “Ellipse”对话框(设置椭圆属性) (3)椭圆的编辑 如果要调整椭圆,可在椭圆上单击,椭圆周围会出现控制点,拖动控制点可以对椭圆 进行调整,拖动整个椭圆移动就可以改变椭圆的位置。 10.3.6 扇形的绘制 (1)绘制扇形 绘制扇形需要确定扇形的圆心、半径和扇形的起点、终点位置。绘制扇形的操作过程 如下。 ① 单击绘图工具栏中的按钮 ,或者选择“Place”→“Drawing Tools”→“Pie Chars”菜 单命令,鼠标变成十字状光标,并且光标旁跟随着一个扇形。 ② 确定扇形的圆心。将光标移到图纸上某处单击,确定扇形的圆心,如图10114(a)所示。 ③ 确定扇形半径。确定圆心后,光标自动跳到扇形圆周线上,移动光标可改变扇形 的半径,单击确定半径,如图10-114(b)所示。 ④ 确定扇形起点位置。确定半径后,光标自动跳到扇形起点位置,移动光标可改变 扇形的起点位置,单击将起点位置确定,如图10-114(c)所示。 ⑤ 确定扇形终点位置。确定扇形起点位置后,光标自动跳到扇形终点位置,移动光 标可改变扇形的终点位置,单击将终点位置确定,如图10-114(d)所示。 ⑥ 右击可以结束当前扇形的绘制而开始绘制下一个扇形,双击鼠标右键则结束扇形 的绘制。绘制好的扇形如图10-114(e)所示。 tyw藏书 图10-114 绘制扇形 (2)扇形属性的设置 进入扇形属性设置界面有以下两种方法。 方法一:在绘制扇形的过程中按Tab键,会弹出图10-115所示的“Pie Chart”对话框。 图10-115 “Pie Chart”对话框(设置扇形属性) 方法二:在已经画好的扇形上双击,也会弹出图10-115所示的对话框。 在“Pie Chart”对话框中可以设置扇形中心位置、半径、边框线宽、起始角度、终止角 度、边框线颜色及填充颜色等。设置好各项后单击“OK”按钮即可。 (3)扇形的编辑 如果要调整扇形,可在扇形上单击,扇形周围会出现控制点,拖动控制点可以对扇形 进行调整,拖动整个扇形移动就可以改变扇形的位置。 10.3.7 曲线的绘制 (1)绘制曲线 利用Protel 99 SE的Beziers(贝塞尔曲线)工具可以绘制任何形状的曲线图形,但该 tyw藏书 工具应用较灵活,下面以绘制一条正弦曲线为例来说明该曲线工具的使用。 绘制曲线的操作过程如下。 ① 单击绘图工具栏中的按钮 ,或者选择“Place”→“Drawing Tools”→“Beziers”菜单 命令,鼠标变成十字状光标。 ② 确定曲线的起点。将光标移到图纸上某处单击,确定曲线的起点,如图10116(a)所示。 ③ 确定与曲线相切的两条切线的交点。确定曲线起点后,将光标移到合适的位置单 击,确定与曲线相切的两条切线交点位置,如图10-116(b)所示。 ④ 固定曲线。确定切线交点后,再移动光标,此时可看见一条随光标移动而改变形 状的曲线,移动光标到合适的位置双击,可以将当前绘制的一段曲线固定下来,该位置同 时也是下一条曲线的起点,这样就绘制完成正弦曲线的一个半周,如图10-116(c)所 示。 tyw藏书 图10-116 绘制正弦曲线 ⑤ 用同样的方法绘制正弦曲线的另一个半周,绘制过程如图10-116(d)和图10116(e)所示。 ⑥ 右击可以结束当前曲线的绘制而开始绘制下一条曲线,双击鼠标右键则结束曲线 的绘制。绘制好的正弦曲线如图10-116(f)所示。 (2)曲线属性的设置 进入曲线属性设置界面有以下两种方法。 方法一:在绘制曲线的过程中按Tab键,会弹出图10-117所示的“Bezier”对话框。 方法二:在已经画好的曲线上双击,也会弹出图10-117所示的对话框。 在“Bezier”对话框中可以设置曲线的线宽和颜色等。设置好各项后单击“OK”按钮即 可。 tyw藏书 图10-117 “Bezier”对话框(设置曲线属性) (3)曲线的编辑 如果要调整曲线,可在曲线上单击,曲线周围会出现控制点,如图10-118(a)所 示;拖动控制点可以对曲线进行调整,如图10-118(b)所示;拖动整个曲线移动就可以 改变曲线的位置。 图10-118 编辑曲线 10.3.8 文本的插入与设置 这里的文本类型有两种:注释文本和文本框。注释文本只能输入一行文字,而文本框 可以输入多行文字。 1.注释文本 (1)注释文本的插入 tyw藏书 插入注释文本的操作过程如下。 ① 单击绘图工具栏中的按钮 ,或者选择“Place”→“Annotation”菜单命令,鼠标变成 十字状光标,并且光标跟随着一个小的虚线框。 ② 将光标移到图纸上某处单击,就可将注释文本放置下来。 (2)注释文本属性的设置 进入注释文本属性设置界面有以下两种方法。 方法一:在放置注释文本时按Tab键,会弹出图10-119所示的“Annotation”对话框。 方法二:在已经放置好的注释文本上双击,也会弹出图10-119所示的对话框。 在“Annotation”对话框中可以设置注释文本的内容、位置、放置方向、颜色和字体 等。设置好各项后单击“OK”按钮即可。 图10-119 “Annotation”对话框(设置注释文本) 2.文本框 (1)文本框的插入 插入文本框的操作过程如下。 ① 单击绘图工具栏中的按钮 ,或者选择“Place”→“Text Frame”菜单命令,鼠标变成 十字状光标,并且光标跟随着一个虚线文本框。 ② 将光标移到图纸上某处单击,可确定文本框的左上角,如图10-120(a)所示。 ③ 再将光标移到合适的位置,此时文本框大小也随光标移动而变化,如图10120(b)所示,单击,确定文本框的右下角,文本框放置完成。放置好的文本框如图10120(c)所示。 tyw藏书 图10-120 放置文本框 (2)文本框属性的设置 进入文本框属性设置界面有以下两种方法。 方法一:在放置文本框时按Tab键,会弹出图10-121(a)所示的“Text Frame”对话 框。 图10-121 文本框属性设置及输入文字 tyw藏书 图10-121 文本框属性设置及输入文字(续) 方法二:在已经放置好的文本框上双击,也会弹出图10-121(a)所示的对话框。 在“Text Frame”对话框中可以进行有关的设置。要给文本框输入文字时,只要单 击“Text”项中的“Change”按钮,马上出现一个文本框,如图10-121(b)所示,在文本框中 输入文本后单击“OK”按钮,回到图10-121 (a)所示的对话框,设置好有关项后单 击“OK”按钮即可。如果要手动调整文本框大小,可在文本框上单击,此时在文本框四周 出现控制点,如图10-122所示,拖动控制点就可以调节文本框的大小。拖动整个文本框移 动就可以改变文本框的位置。 tyw藏书 图10-122 单击可选中文本框 10.3.9 图片的插入与设置 在电路设计图纸上不但可以插入说明文字,还可以插入图片。 (1)图片的插入 插入图片的操作过程如下。 ① 单击绘图工具栏中的按钮 ,或者选择“Place”→“Drawing Tools”→“Graphic”菜单 命令,马上弹出“Image File”对话框,如图10-123所示,在对话框中选择要插入的图片文 件,再单击“打开”按钮。 图10-123 “Image File”对话框(插入图片文件) ② 将光标移到图纸上某处单击,可确定图片框的左上角,如图10-124(a)所示。 ③ 再将光标移到合适的位置,此时图片框大小也随光标移动而变化,单击,确定图 片框的右下角,图片放置完成,此时会自动弹出“Image File”对话框,可以继续插入图 片,如果不想继续插入图片,关闭对话框即可。放置好的图片如图10-124(b)所示。 tyw藏书 图10-124 插入图片 (2)图片属性的设置 进入图片属性设置界面有以下两种方法。 方法一:在放置图片时按“Tab”键,会弹出图10-125所示的“Graphic”对话框。 tyw藏书 图10-125 “Graphic”对话框(设置图片属性) 方法二:在已经放置好的图片上双击,也会弹出图10-125所示的对话框。 在“Graphic”对话框中可以进行有关的设置,如果单击“File Name”(文件名)项右边 的“Browse”按钮,就会弹出图10-123所示的“Image File”对话框,可以选择要插入的图片文 件。设置好有关项后单击“OK”按钮即完成图片属性设置。 如果要手动调整图片大小,可在图片上单击,此时在图片四周出现控制点,拖动控制 点就可以调节图片的大小,拖动整个图片移动就可以改变图片的位置。 10.4 层次原理图的设计 在进行电路设计时,一些简单的电路可以设计在一张图纸上,ty但w对藏于一书些复杂的电路 图,一张图纸往往无法完成。解决这个问题的方法就是将复杂的电路分成多个电路,再分 别绘制在不同的图纸上,这种方法称为层次原理图的设计。 10.4.1 主电路与子电路 层次原理图的设计思路是:首先把一个复杂的电路切分成几个功能模块,然后将这几 个功能模块电路分别绘制在不同的图纸上,再以方块电路的形式将各功能模块电路的连接 关系绘制在一张图纸上。这里的功能模块电路称为子电路,表示各功能模块电路连接关系 的方块电路称为主电路。下面以 Protel 99 SE 自带的范例文件 Z80 Microprocessor.ddb 来说 明主电路和子电路,该文件的存放地址是C:\Program Files\Design Explorer 99SE\Examples。 打开“Z80 Microprocessor.ddb”数据库文件后,在设计管理器的文件管理器中可以看到 一个文件“Z80 Processor.prj”,如图10-126所示。该文件即为主电路文件,又称项目文件, 它的扩展名为.prj。单击该文件前的“+”号后展开该文件,可以看见它包含有6个子电路文 件,子电路文件的扩展名是.sch。 图10-126 “Z80 Microprocessor.ddb”数据库文件的结构 单击文件管理器中的主电路文件“Z80 Processor.prj”,可以在右边的窗口中看见该电 路,如图10-127所示。从主电路中可以看出,它由6个方块构成,每个方块表示一个子电 路,另外,主电路还通过端口和导线将子电路之间的连接关系表示出来。 tyw藏书 图10-127 主电路“Z80 Processor.prj” 在文件管理器中单击主电路文件“Z80 Processor.prj”下的子电路文件“Memory.sch”,可 以看见该电路,如图10-128所示。从图10-128 中可以看出,子电路实际上就是电路原理 图,它是通过 7个端口与其他子电路进行连接的,在主电路的该子电路方块上也有这7个 端口。 tyw藏书 图10-128 子电路“Memory.sch” 设计管理器中的子电路文件“Serial Interface.sch”前有“+”,表示它下面还有文件,展开 后可以看见它下面还有一个子电路“Serial Baud Clock.sch”。先打开“Serial Interface.sch”文 件,如图10-129所示。从图10-129中可以看出,该电路中除了有元件外,还有一个方块, 此方块就表示该电路下面还有子电路,此子电路就是Serial Baud Clock.sch,打开“Serial Baud Clock.sch”子电路文件,如图10-130所示。 tyw藏书 图10-129 子电路“Serial Interface.sch” 图10-130 子电路“Serial Baud Clock.sch” 综上所述,主电路以方块和端口的形式表示复杂电路的整体组成结构和各子电路的连 接关系,子电路下面还可以有子电路,各个子电路由下到上连接起来就可以组成整个复杂 电路。 10.4.2 由上向下设计层次原理图 由上向下的层次原理图设计思路是:先设计主电路,然后根据ty主w电藏路图书设计子电路。 设计时要求主电路文件和子电路文件都放在一个文件夹中。 1.设计主电路 设计主电路的步骤如下。 第1步:建立项目文件夹。 首先按照第9章介绍的方法建立一个数据库文件DZ3.ddb,然后在该数据库文件中建立 一个项目文件夹。 建立项目文件夹的过程是:打开“DZ3.ddb”数据库文件,再选择“File”→“New”菜单命 令,弹出“New Document”对话框,如图10-131所示,选择“Document Folder”(文件夹)图 标,再单击“OK”按钮,就建立一个默认文件名为“Folder1”的文件夹,将该文件夹名改 为“Z80”。 图10-131 “New Document”对话框 第2步:建立主电路文件。 建立主电路文件的过程是:打开“Z80”文件夹,再选择“File”→“New”菜单命令,弹 出“New Document”对话框,选择 “Schematic Document Folder”图标,再单击“OK”按钮,就 建立一个默认文件名为“Sheet1.sch”的文件,将该文件名改为“Z80.prj”。 第3步:绘制方块电路图。 绘制方块电路图的过程如下。 ① 打开“Z80.prj”文件,再单击绘图工具栏中的按钮 ,或者选择“Place”→“Sheet Symbol”菜单命令,鼠标变成十字形状,并且旁边跟随着一个方块。 ② 设置方块的属性。按Tab键,弹出“Sheet Symbol”对话框,如图10-132所示。在该对 话框中将“Filename”项设为“CPU Clock.sch”,将“Name”项设为“CPU Clock”,其他项保持默 认值,再单击“OK”按钮。 ③ 将光标移到图纸上适当的位置单击,确定方块的左上角,然后将光标移到合适的 tyw藏书 位置单击,确定方块的右下角,图纸上就绘制了一个方块,如图10-133所示,在方块旁边 出现刚才设置的文件名“CPU Clock.sch”和方块名“CPU Clock”。 tyw藏书 图10-132 “Sheet Symbol”对话框(设置方块属性) tyw藏书 图10-133 绘制完成的一个方块 ④ 再用同样的方法绘制其他方块,各方块绘制完成后如图10-134所示。 tyw藏书 图10-134 绘制完成的各个方块 第4步:放置方块电路端口。 放置方块电路端口的过程如下。 ① 单击绘图工具栏中的按钮 ,或者选择“Place”→“Add Sheet Entry”菜单命令,鼠标 变成十字形状。 ② 将光标移到方块上单击,出现一个浮动的方块电路端口随光标移动,如图10-135 所示。 图10-135 随光标移动的方块电路端口 ③ 设置方块电路端口的属性:按Tab键,弹出“SheetEntry”对话框,如图10-136所示。 在该对话框中将“Name”项设为“CPUCLK”,“I/O Type”(输入/输出类型)项设 为“Output”,“Side”(端口放置处)项设为“Right”,“Style”(端口的样式)项设 为“Right”,其他项保持默认值,再单击“OK”按钮。 ④ 将光标移到方块上合适位置单击,就在方块上放置好一个端口,如图10-137所 示。再用同样的方法放置其他的端口,各方块上的端口放置完成后如图10-138所示。 tyw藏书 图10-136 “Sheet Entry”对话框(设置方块电路端口属性) 图10-137 放置完成一个端口 图10-138 放置完成的所有端口 第5步:连接方块电路。 将所有的方块电路和方块端口放置好后,再用导线和总线将各方块电路的端口连接起 来,如图10-139所示。将主电路中各个端口连接好后就完成了主电路的设计,设计完成的 主电路如图10-140所示。 图10-139 用导线连接方块电路端口 tyw藏书 图10-140 设计完成的主电路 2.设计子电路 主电路设计完成后,可以利用主电路的方块自动生成相应的子电路文件,不需要重新 建立。子电路具体的设计过程如下。 ① 在主电路中选择“Design”→“Create Sheet From Symbol”菜单命令,鼠标变成光标 状。 ② 将光标移到需要生成子电路的方块“CPU Section”上单击,如图10-141(a)所示, 马上弹出图10-141(b)所示的对话框,询问是否改变生成子电路中端口的方向。如果单 击“Yes”按钮,生成的子电路中的端口方向与主电路方块中的端口方向相反,即主电路的 方块中端口为输出,子电路相应的端口将变为输入;如果单击“No”按钮,两者方向相 同。这里单击“No”按钮。 tyw藏书 图10-141 由主电路生成子电路的操作 ③ 单击“No”按钮后,马上在文件管理器的主电路文件下自动生成“CPU Section.sch”子 电路文件,同时在右边的工作窗口中可以看见图纸上有主电路的CPU Section方块上所有 的端口,如图10-142所示。 图10-142 自动生成的子电路文件 ④ 用绘制电路原理图的方法在子电路的端口基础上绘制出具体的子电路。 重复上述过程,设计出其他的子电路,这样就完成了复杂电路的层次原理图设计。 10.4.3 由下向上设计层次原理图 由下向上的层次原理图设计思路是:先设计好各个子电路,然后根据子电路图生成主 电路。设计时同样要求主电路文件和子电路文件都放在一个文件夹中。 1.设计子电路 设计子电路的步骤如下。 ① 建立子电路文件。首先建立一个数据库文件“DZ4.ddb”,然后在该数据库文件中建 立一个项目文件夹“Z80”,再在Z80文件夹中建立一个默认文件名为“Sheet1.sch”的文件, 将该文件名改为“CPU Clock.sch”。具体操作过程如前所述。 ② 用设计电路原理图的方法绘制出CPU Clock.sch文件的原理图。 再用同样的方法设计出其他子电路原理图。 2.设计主电路 tyw藏书 设计主电路的过程如下。 ① 建立主电路文件。在数据库文件 DZ4.ddb 的 Z80 文件夹中建立一个文件名 为“Z80.prj”的文件。 ② 打开“Z80.prj”文件,再选择“Design”→“Create Symbol From Sheet”菜单命令,出现 一个对话框,如图10-143所示,从中选择需要在主电路中转换成方块的电路;再单 击“OK”按钮,又弹出一个对话框,如图10-144所示,询问是否改变生成主电路中方块端 口的方向。这里单击“Yes”按钮,鼠标旁出现十字光标,并且旁边跟随着一个方块。 图10-143 选择生成方块的子电路 图10-144 询问是否改变生成主电路中方块端口的方向 ③ 在图纸上合适的位置单击,方块就放置在图纸上,方块上同时带有端口,如图10145所示。 tyw藏书 图10-145 主电路生成的一个子电路方块 ④ 用同样的方法在主电路上放置其他子电路的方块图,所有的方块放置好,再用导 线和总线将各方块连接好。这样,一个由下向上的层次原理图就设计完成了。 10.5 原理图报表的生成 tyw藏书 为了实现印制电路板的自动布线和满足生产工艺的需要,Protel 99 SE提供了根据原 理图生成各种报表的功能。 10.5.1 ERC报表的生成 ERC意为电气规则检查。在电路设计中可能会出现一些设计疏漏和错误,例如电源 VCC与接地GND短路、电源VCC没有与电路连接等,利用Protel 99 SE提供的ERC功能来检 测设计的电路,然后生成ERC报表,可以找出一些设计问题。 1.电气规则检查(ERC) 电气规则检查(ERC)的操作过程如下。 打开需检查的原理图文件(如YL1.Sch),再选择“Tools”→“ERC”菜单命令,或者在 图纸上双击鼠标右键,在弹出的快捷菜单中选择“ERC”命令,马上会出现图10-146所示 的“Setup Electrical Rule Check”对话框。在该对话框中有两个选项卡,“Setup”选项卡的内 容如图10-146所示,各项说明见图标注;如果切换到“Rule Matrix”选项卡,对话框呈现的 内容如图10-147所示。 图10-146 “Setup Electrical Rule Check”对话框(“Setup”选项卡) tyw藏书 图10-147 “Rule Matrix”选项卡 在图10-147所示的“Rule Matrix”选项卡中可以定义各种引脚、输入/输出端口以及电路 图的出入口之间的连接状态是否有Error(错误)、Warning(警告)等级的电气冲突。 在图10-147中有一个正方形的区域,称之为电气规则矩阵。矩阵中以彩色方块表示检 查结果,绿色方块表示这种连接方式不会产生错误或警告信息(例如某一个输入引脚与另 一个输出引脚相连接),黄色方块表示这种连接会产生警告信息(例如输入引脚未连 接),红色方块表示这种连接方式会产生错误信息(例如两个输出引脚相连接)。 这里的错误是指电路中有严重的违反电路原理的连线情况,例如电源VCC与接地 GND相连;而警告是指某些轻微违反电路原理的连线情况,但因为系统无法确定它们是 否真正有错误,所以用警告表示。 彩色方块矩阵是以交叉接触的形式读入的,例如要查看输入引脚与输出引脚的检查条 件,观察矩阵左边的“Input Pin”这一行和矩阵上方的“Output Pin”这一列之间的交叉点即 可。交叉点的彩色方块表示检查结果。 交叉点的检查条件可以修改,在矩阵中的方块上单击可在绿、黄、红3种颜色中切 换。 2.ERC报表的生成 将“Setup Electrical Rule Check”对话框中有关项设置好后(一般情况下可不用设置, 保持默认值),再单击“OK”按钮,系统就开始对电路图进行电气检查,检查后会自动生 成ERC报表文件,如图10-148所示,因为检查的原理图文件名为“YL1.Sch”,生成的 ERC 报表文件名自动为“YL1.ERC”。 tyw藏书 图10-148 ERC报表文件 由于YL1.Sch电路中的电源符号未与电路连接,ERC后,电路中的电源符号处出现红 色带叉圆圈,以示该处有错误,如图10-149所示,而在ERC报表文件中也可以找到相应的 错误报告信息。 图10-149 电路原理图中出现错误标志 10.5.2 网络表的生成 在根据原理图生成的各种报表中,网络表是最重要的一个报表。 1.网络表的作用 网络表是根据原理图生成的,它将原理图中各个元件及元件之间的连接关系以文字的 形式说明出来。网络表的作用主要有以下几种。 tyw藏书 ① 根据网络表,系统可形成相应的印制板电路,并自动布局和布线。 ② 将原理图生成的网络表与印制板电路形成的网络表进行比较,可以检查原理图和 印制板电路是否一致。 ③ 根据网络表,电路仿真程序可对电路进行仿真。 2.网络表的生成 这里以生成原理图文件YL1.Sch的网络表为例来说明生成网络表的操作过程。 网络表的生成操作过程如下。 ① 打开原理图文件YL1.Sch。 ② 选择“Design”→“Create Netlist”菜单命令,会弹出“Netlist Creation”对话框,如图10150所示。该对话框包括“Preferences”和“Trace Options”两个选项卡,两个选项卡的内容分 别如图10-150和图10-151所示。 图10-150 “Netlist Creation”对话框(“Preferences”选项卡) tyw藏书 图10-151 “Trace Options”选项卡 ③ 设置好后,单击“OK”按钮,系统就会生成网络表YL1.NET并自动打开,如图10152所示。 图10-152 生成的网络表 3.网络表的格式说明 从图10-152所示的网络表中可以看出,网络表的文件内容主要有两种形式:一种是元 件描述,另一种是网络连接描述。 (1)元件描述 网络表中的元件描述一般采用下面的格式: tyw藏书 [  开始声明元件 R3  元件标号 AXIAL0.3 元件封装形式 1.5k  元件注释 ]  元件声明结束 上面元件描述的内容是:电阻R3采用AXIAL0.3封装形式,标注为1.5k(这里指阻值 为1.5kΩ)。原理图中所有的元件都必须有声明。由于在YL1.Sch原理图中没有对元件封装 (元件的外形符号称为封装)设置,故图10-152所示的网络表中没有元件封装这一项。 (2)网络连接描述 网络表中的网络连接描述采用下面的格式: (  开始声明网络连接 NetC1_2 网络名称(C1的 2脚) C1-2  与网络连接的第 1个元件标号及引脚号(C1的 2脚) Q1-1  与网络连接的第 2个元件标号及引脚号(Q1的 1脚) R1-2  与网络连接的第 3个元件标号及引脚号(R1的 2脚) R2-1  与网络连接的第 4个元件标号及引脚号(R2的 1脚) )  网络连接声明结束 上面的网络连接描述的内容是:电容C1的2脚与Q1的1脚、R1的2脚、R2的1脚同时连 接。 10.5.3 元件清单表的生成 元件清单表主要用来整理一个电路或一个项目文件中所有的元件。元件清单表中的主 要内容有元件名称、元件标号、元件标注、元件封装形式等。 这里以生成原理图YL1.Sch的清单表为例来说明如何生成元件清单表。 元件清单表的生成操作过程如下。 ① 打开原理图文件YL1.Sch。 ② 选择“Reports”→“Bill of Material”菜单命令,会弹出“BOM Wizard”的第 1 个对话 框,如图10-153所示。选中“Sheet”单选按钮,单击“Next”按钮,会弹出下一个对话框,如 图10-154所示。 tyw藏书 图10-153 设置产生元件列表的范围 图10-154 设置元件列表包含的元件信息 ③ 由于在原理图中没有设置元件封装形式,故在图10-154所示的对话框中只选 中“Description”(元件描述)复选框,单击“Next”按钮,会弹出下一个对话框,如图10155所示。 tyw藏书 图10-155 设置元件列表栏目的标题 ④ 在图10-155所示的对话框中不设置,保持默认值,单击“Next”按钮,会弹出下一个 对话框,如图10-156所示。 图10-156 设置元件的清单格式 ⑤ 在图10-156所示的对话框中选中“Client Spreadsheet”复选框,单击“Next”按钮,会 弹出下一个对话框,如图10-157所示。 tyw藏书 图10-157 单击“Finish”按钮完成设置 ⑥ 在图10-157所示的对话框中单击“Finish”按钮,系统会生成元件清单表并自动打 开,如图10-158所示,清单表文件的扩展名为.XLS。 图10-158 生成的元件清单表 10.5.4 交叉参考元件表的生成 交叉参考元件表可以为原理图中的每个元件列出标号、标注和元件所在的原理图文件 名。交叉参考元件表的扩展中为.xrf。下面以生成Z80 Processor层次原理图的交叉参考元 件表为例来说明。 交叉参考元件表的生成操作过程如下。 ① 打开Z80 Processor层次原理图中任一个原理图文件。 ② 选择“Reports”→“Cross Reference”菜单命令,系统开始自动生成交叉参考元件表。 生成的交叉参考元件表如图10-159所示。从图10-159中可以看出,该表列出了层次原理图 所有元件的标号、标注和所在的原理图文件,例如C1(标号)的标注是0.1μF,它在原理 图文件Power Supply.sch中。 tyw藏书 图10-159 生成的交叉参考元件表 10.5.5 层次项目组织表的生成 层次项目组织表主要用于说明指定项目文件中所包括的各种文件名及它们相互间的层 次关系。层次项目组织表的扩展名是.rep。下面以生成Z80 Processor项目文件的层次项目 组织表为例来说明。 层次项目组织表的生成操作过程如下。 ① 打开Z80 Processor项目文件夹中任一个原理图文件,如打开“Z80 Processor.prj”文 件。 ② 选择“Reports”→“Design Hierarchy”菜单命令,系统开始自动生成层次项目组织 表。生成的层次项目组织表如图10-160所示。从图10-160中可以看出,该表列出了项目文 件存放的路径、项目中的各个文件名及互相间的层次关系。 tyw藏书 图10-160 生成的层次项目组织表 10.5.6 原理图的打印输出 设计原理图不仅是在计算机上显示,往往需要打印机输出,在打印时要对打印机进行 各种设置。原理图打印输出操作过程如下。 ① 打开要打印的原理图文件,然后选择“File”→“Setup Printer”菜单命令,会弹 出“Schematic Printer Setup”(原理图打印设置)对话框,如图10-161所示。在该对话框中 进行有关设置后,单击“OK”按钮完成设置;单击“Print”按钮就开始打印原理图。如果要 进一步设置打印机,可单击“Properties”按钮,马上弹出图10-162所示的“打印设置”对话 框。 图10-161 “Schematic Printer Setup”对话框 tyw藏书 图10-162 “打印设置”对话框 ② 在图10-162所示的“打印设置”对话框中进行有关设置后,单击“确定”按钮,返回到 图10-161所示的“Schematic Printer Setup”对话框,单击“OK”按钮完成设置。若单击对话框 中的“Print”按钮,就会按设置的要求开始打印原理图。 ③ 如果先前已经进行了打印设置,可直接选择“File”→“Print”菜单命令,打印机就会 按先前的设置打印原理图。 tyw藏书 第11章 制作新元件 Protel 99 SE自身带有很多元件库,在这些元件库中可以找到常用的元件,但由于电 子技术的飞速发展,一些新的元件不断出现,这些新元件在Protel 99 SE自带的元件库中 是无法找到的,解决这个问题的方法就是利用Protel 99 SE的元件库编辑器制作新的元 件。 11.1 元件库编辑器 11.1.1 元件库编辑器的启动 tyw藏书 要制作新的元件先要启动元件库编辑器,启动元件库编辑器的操作过程如下。 ① 打开一个数据库文件,如打开D2.ddb。 ② 在文件管理器中单击D2.ddb数据库文件内的“Documents”文件夹,该文件夹被打 开。 ③ 执行“File”→“New”菜单命令,马上弹出“New Document”(新建文档)对话框,如 图11-1所示,选择“Schematic Library Document”(原理图元件库文档)选项,再单 击“OK”按钮,在Documents文件夹中就建立了一个默认文件名为“Schlib1.Lib”的元件库文 件,将它的文件名改为“YJ1.Lib”。 图11-1 “New Document”对话框 ④ 在文件管理器中单击“YJ1.Lib”文件,元件库编辑器就被启动,出现元件库编辑器 界面,如图11-2所示。 这样就在D2.ddb数据库文件的Documents文件夹中建立了一个文件名为“YJ1.Lib”的元 件库文件,同时启动了元件库编辑器。 tyw藏书 图11-2 元件库编辑器界面 11.1.2 元件库编辑器介绍 在图11-2所示的元件库编辑器中,单击设计管理器的“Browse SchLib”选项卡,打开元 件库管理器,如图11-3所示。从图11-3中可以看出,元件库编辑器与原理图编辑器界面相 似,主要由菜单栏、主工具栏、常用工具栏、元件库管理器、工作区和命令栏等组成。下 面主要介绍常用工具栏。 tyw藏书 图11-3 元件库管理器被打开 元件库编辑器中的工具栏主要有两个:元件绘制工具栏(SchLib Drawing Tools)和 IEEE工具栏。 1.元件绘制工具栏 元件绘制工具栏默认处于打开状态,如果窗口中没有该工具栏,可单击主工具栏上的 按钮 ,或者选择“View”→“Toolbars”→“Drawing Toolbar”菜单命令,可将该工具栏打 开,悬浮在工作窗口中。元件绘制工具栏如图11-4所示,该工具栏中各个按钮的功能说明 如图11-5所示。 2.IEEE工具栏 IEEE 工具栏主要用来放置一些工程符号,打开或关闭 IEEE 工具栏可单击主工具栏中 的按钮 ,或选择“View”→“Toolbars”→“IEEE Toolbar”菜单命令。IEEE工具栏如图11-6 所示,该工具栏中各个按钮的功能说明如图11-7所示。 图11-4 元件绘制工具栏 tyw藏书 图11-5 元件绘制工具栏中各按钮的功能说明 图11-6 IEEE工具栏 tyw藏书 图11-7 IEEE工具栏中各按钮的功能说明 11.2 新元件的制作与使用 11.2.1 绘制新元件 tyw藏书 如果在元件库中找不到某个元件,可以使用元件库编辑器进行绘制,下面以在元件库 文件YJ1.Lib中绘制图11-8所示的七段数码管为例来说明新元件的绘制。 图11-8 七段数码管符号 七段数码管的绘制过程如下。 (1)打开元件库编辑器 打开元件库文件 YJ1.Lib,进入元件库编辑器界面,如图11-2所示,再单击设计管理 器中的“Browse SchLib”选项卡,切换到元件库管理器,如图11-3所示。 (2)新建元件名称 单击元件绘制工具栏中的按钮 ,或者选择“Tools”→“New Component”菜单命令,马 上弹出“New Component Name”对话框,如图11-9所示,将对话框中的默认元件 名“COMPONENT_2”改为“LED_8”,再单击“OK”按钮,就新建了一个名称为“LED_8”的新 元件。 (3)设置工作区环境 选择“Options”→“Document Option”菜单命令,弹出“Library Editor Workspace”对话框, 如图11-10所示,在该对话框中可以设置工作区的样式、方向和颜色等内容,通常保持默 认值,单击“OK”按钮结束设置。 图11-9 “New Component Name”对话框(新建元件名称) tyw藏书 图11-10 “Library Editor Workspace”对话框(设置工作区环境) (4)绘制元件形状 绘制元件形状具体又包括以下几个步骤。 ① 单击元件绘制工具栏中的按钮 ,在工作区的十字坐标的第四象限中绘制一个8格 ×10格的矩形,如图11-11(a)所示。 ② 单击元件绘制工具栏中的按钮 ,在刚绘制好的矩形上绘制一个“日”字,如图1111(b)所示。 ③ 单击元件绘制工具栏中的按钮 ,在工作区空白处绘制一个圆,再在圆上双击, 弹出设置对话框,将圆的“X-Radius”和“Y-Radius”项都设为“3”,然后将该圆移到矩形 的“日”字右下角,如图11-11(c)所示。 图11-11 绘制七段数码管的外形 (5)放置元件引脚 放置元件引脚具体包括下面几个过程。 ① 引脚属性设置:单击元件绘制工具栏中的按钮 ,鼠标变成光标状,并且旁边跟 随着一个引脚,按键盘上的Tab键,弹出元件“Pin”对话框,如图11-12所示,该对话框中的 tyw藏书 各项功能见图中标注,将对话框中的“Name”项设为“A”,“Number”项设为“1”,其他保持 默认值,再单击“OK”按钮,设置属性完毕。 tyw藏书 图11-12 “Pin”对话框(设置元件引脚属性) ② 放置元件引脚:元件引脚属性设置完成后,将光标移到数码管矩形旁,单击就放 置了一条引脚,如图11-13(a)所示。如果需要改变引脚方向,可在放置引脚的同时按 Space键,引脚方向会依次改变90°。 再用同样的方法放置好其他引脚,并对各引脚属性作相应的设置,放置好引脚的数码 管如图11-13 (b)所示。 ③ 元件引脚特殊的设置:从图11-13(b)可以看出,数码管的8脚名称COM与小数点 产生重叠。为了解决这个问题,可在8脚的属性对话框中取消选中“Show Name”(显示名 称)复选框,即让COM字符不显示出来。为了让8脚在别处显示COM字符,可单击元件绘 制工具栏中的按钮 ,利用该工具在8脚下方放置COM字符,如图11-14所示。 tyw藏书 图11-13 放置数码管的引脚 图11-14 放置COM字符 (6)设置元件的标号 元件绘制好后,需要设置它的标号,方法是:选择“Tools”→“Description”菜单命令, 弹出图11-15所示的对话框,在“Default Designator”文本框中输入“LED?”,再单击“OK”按 钮即可。 tyw藏书 图11-15 “Component Text Fields”对话框(设置元件的标号) (7)保存元件 选择“File”→“Save”菜单命令,或单击主工具栏上的保存按钮 ,就可将新绘制的元 件保存在YJ1.Lib元件库文件中。 11.2.2 修改已有的元件 修改已有的元件,使它成为新元件,这样做有时可以大大提高制作新元件的效率。这 种方法的思路是将一个已有的元件库中的某元件复制到新建的元件库中,再进行修改而让 它成为新元件。 下面将介绍如何将Protel DOS Schematic Libraries.ddb中的555元件修改成为新样式的 555元件,修改前后的555元件分别如图11-16(a)和图11-16(b)所示。 图11-16 修改前后的555元件 修改已有元件使之成为新元件的操作过程如下。 (1)打开或新建一个元件库文件 tyw藏书 例如打开YJ1.Lib文件。 (2)新建元件名称 单击元件绘制工具栏中的按钮 ,或者选择“Tools”→“New Component”菜单命令,马 上弹出“New Component Name”对话框,如图11-17所示,将对话框中的默认元件 名“COMPONENT_3”改为“555_1”,再单击“OK”按钮,就新建了一个名称为“555_1”的新 元件。 (3)查找元件 单击设计管理器的“Browse SchLib”选项卡,切换到元件库管理器,再单击“Find”按 钮,如图11-18所示,马上弹出图11-19所示的“Find Schematic Component”(查找原理图元 件)对话框。在“By Library Reference”文本框中输入要查找的元件名称“555”, 在“Scope”下拉列表框中选择查找范围为“Specified Path”(按指定路径查找),在“Path”文 本框中输入元件查找位置为“C:\Program Files\Design Explorer 99 SE\Library\Sch”,也可以单 击 按钮选择查找位置,再单击“Find Now”按钮,系统马上开始在指定的位置查找名称 为“555”的元件,查到后会在“Components”区域显示出元件名称“555”。 图11-17 “New Component Name”对话框 图11-18 单击元件库管理器中的“Find”按钮 (4)复制已有元件到新元件库中 复制已有元件到新元件库中包括如下两个步骤。 ① 复制元件。在图11-19所示的对话框中单击“Edit”按钮,就打开了555元件所在的元 tyw藏书 件库,并且555元件也显示在工作区,如图11-20所示。用鼠标拖出一个矩形框将555元件 全部选中,然后选择“Edit”→“Copy”菜单命令,对555元件进行复制。 ② 粘贴元件。打开 YJ1.Lib 元件库文件,并在元件库管理器中选择新建的“555_1”元 件,然后选择“Edit”→“Paste”菜单命令,将555元件粘贴到新建的555元件工作区中,如图 11-21所示。移动光标将元件放置在工作区的第四象限,再单击主工具栏上的按钮 ,取 消元件的选取状态。 图11-19 “Find Schematic Component”对话框(查找电路原理图元件) tyw藏书 图11-20 打开的555元件 图11-21 粘贴555元件到新建的555元件工作区中 (5)修改元件 修改元件主要包括两个步骤,如下所述。 ① 修改元件的形状。在元件的矩形块上双击,弹出图11-22所示的“Rectangle”对话 框,在“Y1-Location”文本框中输入“−110”(原值为−80),再单击“OK”按钮,555元件的 矩形块就会发生变化,如图11-23所示。 tyw藏书 图11-22 “Rectangle”对话框(设置矩形属性) 图11-23 555元件矩形块发生变化 ② 修改元件的引脚排列。用鼠标将555元件的每个引脚都拖离矩形方块,如图1124(a)所示,然后重新排列引脚,排列好引脚的555元件如图11-24(b)所示。在排列时 如果引脚方向不对,可在拖动引脚时按Space键切换引脚的方向。 tyw藏书 图11-24 修改元件引脚的排列 (6)设置元件的标号 元件修改好后,需要设置它的标号,方法是选择“Tools”→“Description”菜单命令,弹 出图11-25所示的对话框,将“Default Designator”项设为“IC?”,再单击“OK”按钮即可。 图11-25 “Component Text Fields”对话框(设置元件引脚的标号) (7)保存修改的元件 选择“File”→“Save”菜单命令,或单击主工具栏上的保存按钮 ,就将新绘制的元件 保存在YJ1.Lib元件库文件中。 11.2.3 绘制复合元件 复合元件有两个或两个以上的相同单元,这些单元的图形相同,只是引脚不同,它们 是用在标号中的附加A、B、C、D……来表示不同的单元。集成电路7426是一个由4个相 同与非门构成的与非门集成电路,它的4个单元如图11-26所示。这里以绘制7426的4个与 非门单元为例来说明复合元件的绘制。 tyw藏书 tyw藏书 图11-26 集成电路7426的4个与非门单元 绘制复合元件的操作过程如下。 (1)打开或新建一个元件库文件 例如打开YJ1.Lib文件。 (2)新建元件名称。 单击元件绘制工具栏中的按钮 ,或者选择“Tools”→“New Component”菜单命令,马 上弹出“New Component Name”对话框,在该对话框中将默认元件名改为“7426”,再单 击“OK”按钮,就新建了一个名称为7426的新元件。 (3)绘制第一单元 在工作区的第四象限绘制一个与非门,绘制时用元件绘制工具栏中的按钮 绘制与 非门的半矩形部分,用 绘制半圆形部分,再用 放置3个引脚,如图11-27所示。 图11-27 绘制7426的第一单元 (4)设置第一单元的引脚属性 在第1个脚上双击,弹出“Pin”对话框,如图11-28所示,将其中的“Name”项设为 空,“Number”项设为“1”,“Electrical Type”项选择“Input”,再单击“OK”按钮,第 1 个脚的 tyw藏书 属性设置完毕。然后对第 2 个引脚作相同的设置(但要将“Number”项设为“2”)。在设置 第3个脚时,将“Name”项设为空,“Number”项设为“3”,将“Electrical Type”项选 择“Output”,并且选中“Dot Symbol”复选框。设置好引脚属性的第一单元与非门如图11-29 所示。同时在元件库管理器的“Part”区域显示“1/1”,表示当前为7426的第一单元。 图11-28 “Pin”对话框(设置元件引脚属性) 图11-29 绘制完成的第一单元 (5)绘制第二、三、四单元 单击元件绘制工具栏中的按钮 ,或者选择“Tools”→“New Part”菜单命令,工作区 马上更新为空白,同时在元件库管理器的“Part”区域显示“2/2”,表示当前处于第二单元编 辑状态。用前面的方法绘制第二单元,也可将第一单元复制过来,再更改引脚号即可,绘 制完成的第二单元如图11-30所示。再用同样的方法绘制第三、四单元。 tyw藏书 图11-30 绘制完成的第二单元 (6)给第一单元放置电源和接地引脚 单击元件库管理器“Part”区域的 按钮,切换到7426的第一单元,再给它放置两个 引脚,对其中一个引脚属性进行这样的设置:“Name”项设为“GND”,“Number”项设 为“7”,“Electrical Type”项选择“Power”,选中“Show Name”和“Show Number”复选框;对 另一个引脚属性这样设置:“Name”项设为“VCC”,“Number”项设为“14”,“Electrical Type”项选择“Power”,选中“Show Name”和“Show Number”复选框。放置好电源和接地引 脚的第一单元如图11-31(a)所示。然后选中两个引脚的属性中的“Hidden”复选框,将 7、14脚隐藏起来,如图11-31(b)所示。 图11-31 在第一单元放置电源和接地引脚 (7)设置元件的标号 选择“Tools”→“Description”菜单命令,弹出图11-32所示的对话框,将“Default Designator”项设为“IC?”,将“Footprint1”(封装)设为“DIP14”,将“Footprint2”设为“SO14”,再单击“OK”按钮。 tyw藏书 图11-32 设置元件的标号和封装形式 (8)保存复合元件 选择“File”→“Save”菜单命令,或单击主工具栏上的保存按钮 件保存在YJ1.Lib元件库文件中。 ,就将绘制的复合元 11.2.4 新元件的使用 新元件绘制好后就可以使用,使用新元件的操作方法有多种,如下所述。 方法一: ① 在文件管理器中单击原理图文件“YL.Sch”和新建的元件库文件“YJ1.Lib”,将两个 文件都打开,在工作区上方出现“YL.Sch”和“YJ1.Lib”文件标签,如图11-33所示。 图11-33 打开YL.Sch和YJ1.Lib文件 tyw藏书 ② 单击工作区上方的“YJ1.Lib”文件标签,切换到“YJ1.Lib”选项卡,再单击文件管理 器上方的“Browse SchLib”选项卡,打开元件库管理器,如图11-34所示。 ③ 在元件库管理器中找到并选择要放置的新建元件,单击“Place”按钮,系统会自动 切换到YL.Sch的原理图编辑状态,鼠标旁跟随着的元件出现在YL.Sch的工作区中。 ④ 将鼠标移到YL.Sch工作区的合适位置单击“Place”就可以在工作区(图纸)上放置 元件。 图11-34 利用元件库管理器放置新元件 方法二: ① 在文件管理器中单击原理图文件“YL.Sch”,将该文件打开。 ② 单击文件管理器上方的“Browse SchLib”选项卡,切换到元件库管理器。 ③ 在元件库管理器中找到新建的元件库YJ1.Lib,如果没有该文件,可单 击“Add/Remove”按钮,将该元件库文件加载到元件库管理器中,再在 YJ1.Lib 元件库中找 到要放置的新元件,单击“Place”按钮,然后将鼠标移到工作区,就可以在YL.Sch文件的 工作区上放置新元件。 方法三: ① 在文件管理器中单击新建的元件库文件“YJ1.Lib”,将该文件打开,在工作区上方 出现“YJ1.Lib”文件标签。 ② 单击文件管理器上方的“Browse SchLib”选项卡,切换到元件库管理器。 ③ 在元件库管理器中找到要放置的新元件,单击“Place”按钮,系统会自动新建一个 默认文件名为“Sheet1.Sch”的原理图文件,并进入该文件原理图编辑状态。 ④ 将鼠标移到Sheet1.Sch文件的图纸上,就可以放置新元件。 在放置新元件时采用哪种方法可根据实际情况和个人习惯进行选择。 tyw藏书 11.3 元件报表的生成与元件库的管理 11.3.1 元件报表的生成 tyw藏书 在元件编辑器中可以产生3种报表:Component Report(元件报表)、Library Report(元件库报表)和Component Rule Check Report(元件规则检查报表)。利用元件报 表可以了解元件各方面的信息,为绘制新元件带来很多方便。 1.元件报表的生成 元件报表的生成操作过程如下。 ① 打开元件库文件并选择要生成报表的元件。如打开元件库文件 YJ1.Lib,并选择其 中的“555_1”元件,如图11-35所示。 ② 选择“Reports”→“Component”菜单命令,系统马上生成元件报表,生成的报表如图 11-36所示。 图11-35 选择要生成报表的元件 tyw藏书 图11-36 生成的元件报表文件 元件报表文件的扩展名为.cmp,在报表中列出了555_1元件的所有相关信息,如引脚 数目、标注名称及有关属性。 2.元件库报表的生成 元件库报表的生成操作过程如下。 ① 打开元件库文件并选择要生成报表的元件库。如打开元件库文件YJ1.Lib。 ② 选择“Report”→“Library”菜单命令,系统马上生成元件库报表,生成的报表如图1137所示。 图11-37 生成的元件库报表文件 元件库报表文件的扩展名为.rep,在报表中列出了YJ1.Lib元件库中所有元件的有关信 息。 3.元件规则检查报表的生成 元件规则检查报表主要用于帮助设计者进行元件的检验工作,包括检查元件库中的元 件有无错误,并能将错误列出来,指明错误原因。 元件规则检查报表的生成操作过程如下。 tyw藏书 ① 打开元件库文件。如打开元件库文件YJ1.Lib。 ② 选择“Report”→“Component Rule Check”菜单命令,会弹出“Library Component Rule Check”对话框,如图11-38所示,进行有关设置后,单击“OK”按钮,系统马上生成元件规 则检查报表,生成的报表如图11-39所示。 图11-38 “Library Component Rule Check”对话框(设置元件规则检查) 图11-39 生成的元件规则检查报表 元件规则检查报表文件的扩展名为.ERR,在报表中列出了YJ1.Lib元件库中的出错元 件的出错信息,表中信息显示出555_1的6、7脚标号重复(即两引脚标号都为“6”),而 LED_8的4、5脚也出现同样的问题。 11.3.2 元件库的管理 元件库的管理可以通过两种方式进行:一种是用元件库管理器来管理元件库,另一种 是用Tools菜单下的各种命令来管理元件库。 1.用元件库管理器来管理元件库 利用元件库管理器可以管理元件库,单击设计管理器上方的“Browse SchLib”选项 卡,将设计管理器切换到图11-40所示的元件库管理器。从图11-40中可以看出,元件库管 tyw藏书 理器有4个选项组:“Components”(元件)选项组、“Group”(组)选项组、“Pins”(引 脚)选项组和“Mode”(模式)选项组。 ① “Components”(元件)选项组:它的主要功能是查找、显示、选择和放置元件。当 设计人员打开一个元件库时,该元件库中的元件名称会在元件列表区显示出来。 当在列表区选择某个元件并单击“Place”按钮时,就可以放置选择的元件。其他项的 功能说明如图11-40中的该选项组标注所示。 当单击“Find”按钮时,就会弹出前述的图11-19所示的“Find Schematic Component”对话 框,可以在该对话框中设置查找条件,并进行元件的查找。 ② “Group”(组)选项组:它的主要功能是查找、显示、选择和放置元件集。元件集 是指共用元件符号的元件,例如74××的元件集有74LS××、74F××等,它们都是非门,引脚 名称与编号都相同,可以共用元件符号。 当单击“Add”按钮时,会出现图11-41所示的“New Component Name”对话框,输入要加 入元件组的元件名称,单击“OK”按钮就可以将该元件加入到元件组中。 tyw藏书 图11-40 元件库管理器 图11-41 “New Component Name”对话框(添加元件组名称) 当单击“Description”按钮时,会弹出图11-42所示的对话框,该对话框有3个选项 卡:“Designator”、“Library Fields”和“Part Field Names”,其中“Designator”选项卡的内容设 置较为常用,该选项卡中各项功能的说明如图11-42中标注所示。 tyw藏书 图11-42 “Component Text Fields”对话框 ③ “Pin”(引脚)选项组:它的功能是将当前工作中的元件引脚号和名称显示在引脚 列表区中。 ④ “Mode”(模式)选项组:它的功能是指定元件的模式,共有“Normal”、“DeMorgan”和“IEEE”3种模式。 2.用Tools菜单下的各种命令来管理元件库 管理元件库除了可以使用元件库管理器外,还可以采用Tools菜单下的各种命令来管 理,Tools菜单下有些命令与元件库管理器中的按钮功能相同。Tools菜单下的各种命令如 图11-43所示,各命令的功能说明见图标注。 tyw藏书 图11-43 Tools菜单下的各种命令 tyw藏书 第12章 手工设计PCB 设计印制电路板(PCB)有两种方式:手工设计和自动设计。手工设计方式比较适合 设计简单的PCB,并且设计PCB前无须绘制电路原理图。本章主要介绍如何在Protel 99 SE 的PCB编辑器中用手工的方式设计PCB。 12.1 PCB设计基础 12.1.1 PCB的基础知识 tyw藏书 许多元件按一定的规律连接起来就组成了电子设备,大多数电子设备组成元件很多, 如果用大量的导线将这些元件连接起来,不但连接元件麻烦,而且出了问题难于检查,而 PCB可以有效地解决这个问题。图12-1所示是一个PCB示意图。PCB是在塑料板上印制导 电铜箔,用铜箔取代导线,只要将各种元件安装在PCB上,铜箔就可以将它们连接起来而 组成一个电路或电子设备。 图12-1 一个PCB示意图 1.PCB的种类 根据层数分类,PCB可分为单面板、双面板和多层板。 (1)单面板 单面板如图12-2所示,它只有一面有导电铜箔,另一面没有。单面板在使用时,通常 在没有导电铜箔的一面安装元件,将元件引脚通过插孔穿透到有导电铜箔的一面,导电铜 箔将元件引脚连接起来就可以构成电路或电子设备。单面板成本低,但因为只有一面有导 电铜箔,所以不适用于复杂的电子设备。 tyw藏书 图12-2 单面板 (2)双面板 双面板包括两层:顶层(Top Layer)和底层(Bottom Layer)。与单面板的不同之处 在于,双面板两层都有导电铜箔,双面板如图12-3所示,每层都可以直接焊接元件,两层 之间可以通过穿过的元件引脚连接,也可以通过过孔来实现连接。过孔是一种穿透PCB并 将两层的铜箔连接起来的金属化导电圆孔。 图12-3 双面PCB (3)多层板 多层板是具有多个导电层的电路板,多层板印制电路如图12-4所示,它除了具有双面 板一样的顶层和底层外,在内部还有导电层,内部一般为电源或接地层,顶层和底层通过 过孔与内部的导电层相连接。多层板一般将多个双面板采用压合工艺制作而成,适用于复 杂的电路系统。 tyw藏书 图12-4 多层PCB 2.元件的封装 PCB是用来安装元件的,而同类型的元件,比如电阻,即使阻值一样,也有体积大小 之分,那么在设计PCB时,就要求电路板上大体积元件的焊接孔的孔径要大、距离要远。 为了让PCB生产厂生产出来的电路板可以安装大小和形状符合要求的各种元件,要求在设 计PCB时,用铜箔表示导线,而用与实际元件形状和大小相关的符号表示元件,当然这里 的形状与大小是指实际元件在PCB上的投影。这种与实际元件形状和大小相同的投影符号 称为元件封装。例如,电解电容的投影是一个圆形,那么它的元件封装就是一个圆形符 号。 (1)元件封装的分类 元件的封装形式主要有两种:针脚式元件封装和表面粘贴式元件封装(STM)。常见 的元件封装如图12-5所示。 tyw藏书 图12-5 常见的元件封装 ① 针脚式元件封装:一些常见的元件,如电阻、电容、三极管和一些集成电路就是 这种封装形式。针脚式元件在安装时,一般是从PCB的顶层将引脚经通孔插到底层,然后 在底层进行焊接。 ② 表面粘贴式元件封装:随着电子制造技术的发展,越来越多的元件被制成片状元 件,如片状电阻、片状电容、片状三极管和片状集成电路等,这些元件通常是通过机器粘 贴在PCB上,所以称之为表面粘贴式元件。 (2)元件封装的编号 元件封装的编号规律是:元件类型+焊盘+元件外形尺寸。根据元件封装编号可知道 元件封装的规格,例如:AXIAL0.4表示该元件为轴形封装,两引脚焊盘的距离为 400mil(mil即毫英寸,1英寸=1000 毫英寸=25.4mm);RB.2/.4 表示极性电容类元件封 装,引脚距离为 200mil,元件的直径为400mil;DIP24表示双排引脚元件封装,两排共有 24个引脚。 3.铜箔导线 PCB以铜箔作为导线将安装在上面的元件连接起来,所以铜箔导线简称为导线 (Track)。PCB的设计主要是布置铜箔导线。 与铜箔导线类似的有一种线,称为飞线,又称预拉线,主要是表示各个焊盘的连接关 系,指引铜箔导线的布置,不是实际的导线。 4.焊盘 tyw藏书 焊盘的作用是在焊接元件时放置焊锡,将元件引脚与铜箔导线连接起来。焊盘的形式 有圆形、方形和八角形,常见的焊盘如图12-6所示。焊盘有针脚式和表面粘贴式两种,表 面粘贴式焊盘无须钻孔,而针脚式焊盘要求钻孔,它有通孔直径和焊盘直径两个参数,如 图12-7所示。 图12-6 常见焊盘形式 图12-7 针脚式焊盘的两个参数 在设计焊盘时,要求考虑到元件的形状、引脚的大小、安装形式、受力情况和受力、 振动大小等情况。例如,如果某个焊盘通过的电流大、受力大且易发热,可设计成泪滴状 (后面会介绍)。 5.助焊膜和阻焊膜 为了让PCB的焊盘上更容易沾上焊锡,通常在焊盘上涂上一层助焊膜(TOP or Bottom Solder)。另外,为了防止PCB不能沾上焊锡的铜箔不小心沾上焊锡,在这些铜箔上一般 会涂上一层绝缘层(通常是绿色透明的膜),这层膜称为阻焊膜(TOP or Paste Mask)。 6.过孔 双面板和多层板有两个以上的导电层,每个导电层是相互绝缘的,如果需要将某一层 和另一层进行电气连接,可以通过过孔来实现。过孔一般是这样制作的:在多层需要连接 处钻一个孔,然后在孔的孔壁上沉积导电金属(又称电镀),这样就可以将不同的导电层 连接起来。过孔主要有穿透式和盲过式两种形式,如图12-8(a)所示。穿透式过孔从顶 层一直通到底层;而盲过式过孔可以从顶层通到内层,也可以从底层通到内层。 tyw藏书 过孔有内径和外径两个参数,如图12-8(b)所示。过孔的内径和外径一般要比焊盘 的内径和外径小。 图12-8 过孔的参数与形式 7.丝印层 PCB 除了有导电层外,还有丝印层,丝印层主要是用丝印印刷方法在 PCB 的顶层和 底层上印制元件的标号、外形和一些厂家的信息。 12.1.2 PCB的设计过程 PCB 的设计过程简单来说,就是在 PCB 图纸上放置元件封装,再用铜箔导线将放置 的元件连接起来。PCB的设计过程如下。 1.绘制电路原理图 要设计出电子产品的PCB,首先要设计出该产品的电路原理图,在确保原理图无误 后,再由原理图生成网络表。对于简单的电子产品,可不用设计电路原理图,而直接进行 PCB的设计。 2.规划PCB 规划PCB电路主要包括确定PCB的大小、电气边界、PCB的层数和各种元件的封装形 式等。 3.设置设计参数 在Protel 99 SE的PCB编辑器中设置PCB的层数、布局和布线等有关参数。这是PCB设 计重要的步骤,有些参数可采用默认值,有些参数设置一次后,在以后设计时几乎不用改 变。 4.装入原理图的网络表和元件封装 原理图的网络表是设计 PCB 时自动布线的依据,PCB 是按照网络表的内容要求进行 自动布线的。元件封装就是元件的外形,设计原理图是在图纸上放置元件符号,而设计 PCB电路就是在图纸上放置元件的封装,这样设计生产出来的PCB才能安装实际的元件。 5.元件的布局 元件的布局就是将元件封装放置在图纸合适的位置,它有自动布局和手动布局两种方 式。装载原理图生成网络表后,可以让Protel 99 SE自动装载元件封装,并可让Protel 99 SE对元件进行自动布局。如果觉得自动布局出来的元件不合适,可进行手动布局来调整 元件的位置。 tyw藏书 6.自动布线 元件布局完成后,可让Protel 99 SE进行自动布线,将元件封装按网络表的要求自动 用导线连接起来。如果有关参数设置正确、元件布局合理,则自动布线成功率非常高,几 乎可达到100%。 7.手动调整 自动布线完成后,如果觉得不满意,可以进行手动调整。 8.文件保存输出 布线完成后,PCB设计基本完成,这时就要将设计好的PCB文件保存下来,还可以利 用打印机等输出设备输出PCB的设计图,如果需要,还可以生成各种报表。 12.1.3 PCB编辑器 PCB编辑器是Protel 99 SE中的一个模块。设计PCB需要在PCB编辑器中进行。 1.PCB编辑器的启动与关闭 打开或新建一个PCB文件就可以启动PCB编辑器,这里以新建一个YS1.PCB文件为例 来说明如何启动PCB编辑器。 启动PCB编辑器的操作过程如下。 ① 打开一个数据库文件,再打开其中的“Documents”文件夹,如打开先前D2.ddb数据 库文件中的“Documents”文件夹。 ② 选择“File”→“New”菜单命令,马上弹出“New Document”对话框,如图12-9所示, 在该对话框中选择“PCB Document”,再单击“OK”按钮,就在D2.ddb 数据库文件的 Documents 文件夹中新建了一个默认文件名为“PCB1.PCB”的文件,将文件名改 为“YS1.PCB”。 图12-9 “New Document”对话框 ③ 在文件管理器中单击“YS1.PCB”文件,就启动了 PCB 编辑器,如图12-10所示,然 后就可以在工作窗口的图纸上设计PCB。 tyw藏书 图12-10 PCB编辑器界面 ④ 如果要关闭 PCB 编辑器,可在工作窗口上方的“YS1.PCB”文件标签上右击,在弹 出的快捷菜单中选择“Close”命令,就可以将PCB编辑器关闭。另外,选 择“File”→“Close”命令同样也可以关闭编辑器。 2.PCB编辑器界面介绍 从图12-10中可以看出,PCB编辑器主要由菜单栏、主工具栏、设计管理器、工作窗 口、PCB设计工具栏和状态栏、命令栏组成,在工作窗口上方是文件标签、下方是工作层 标签。 (1)PCB编辑器界面的管理 ① 单击主工具栏上的按钮 或选择“View”→“Design Manager”菜单命令,可以打开和 关闭设计管理器。 ② 单击设计管理器上方的“Browse PCB”选项卡,可切换到元件封装库管理器;单击 设计管理器上方的“Explorer”选项卡,可切换到文件管理器。 ③ 单击工作窗口上方的文件标签,可以打开该文件;在文件标签上右击,在弹出的 快捷菜单中选择“Close”命令,就可以将该文件关闭。 ④ 单击工作窗口下方的工作层标签,可以打开该工作层。 ⑤ 选择“View”→“status Bar”菜单命令,可打开和关闭状态栏。 ⑥ 选择“View”→“Command status”菜单命令,可打开和关闭命令栏。 (2)工具栏的管理 PCB编辑器主要有4个工具栏,分别是Main Toolbar(主工具栏)、Placement Tools(放置工具栏)、Component Placement(元件位置调整工具栏)和Find tyw藏书 Selections(查找被选元件工具栏),各种工具栏如图12-11所示。 选择“View”→“Toolbars”→“Main Toolbars”菜单命令,可以打开和关闭主工具栏。 选择“View”→“Toolbars”→“Placement Tools”菜单命令,可以打开和关闭放置工具栏。 选择“View”→“Toolbars”→“Component Placement”菜单命令,可以打开和关闭元件位 置调整工具栏。 选择“View”→“Toolbars”→“Find Selections”菜单命令,可以打开和关闭查找被选元件 工具栏。 图12-11 PCB编辑器的各种工具栏 12.1.4 PCB设计前的设置 在设计PCB前,先要对PCB的工作层和PCB编辑器的工作环境进行一定的设置。 (1)工作层的种类 PCB具有多层次结构,根据各层的功能不同,工作层可分为信号层、内部电源/接地 层、机械层、阻焊层、锡膏防护层、丝印层和其他层等。在设计PCB时,可以根据需要增 减不同的层。如果想知道当前设计环境中这些层的情况,可选择“Design”→“Options”菜单 命令,马上出现图12-12所示的“Document Options”对话框,在对话框中显示了各层的有关 情况。 tyw藏书 图12-12 “Document Options”对话框 ① Signal layers(信号层)。 Signal layers(信号层)包括TopLayer(顶层)、MidLayer(中间层)和 BottomLayer(底层)。在该对话框中,如果选中“Signal layers”选项组中的复选框,那么 在当前PCB编辑器中,该层处于打开状态,否则被关闭。 Protel 99 SE中提供了32个信号层,包括1个顶层、1个底层和30个中间层。顶层用来 放置元件或布线;底层用来布线和焊接元件;中间层夹在两者之间,是无法放置元件的, 该层一般是铜箔导线。中间层的作用与横过公路的地下通道相似,当在地面上无法横过公 路时,可以通过地下通道到达公路的对面。 ② Internal planes(内部电源/接地层)。 Internal planes(内部电源/接地层)位于PCB内部,主要为各信号层提供电源和接地, 在Protel 99 SE 中提供了16 个内部电源/接地层。内部电源/接地层的作用与城市中埋设在 地下的电缆相似,首先由地面上的供电站将电源传送给地下电缆,地下电缆在别处可以接 出地面,为该处地面上的用户供电,这样可以避免地面上到处乱拉电缆的情况。 ③ Mechanical layers(机械层)。 Mechanical layers(机械层)一般用于设置PCB的外形、大小、数据标记、对齐标 记、装配说明等有关信息。在Protel 99 SE中提供了16个机械层。 ④ Masks(防护层)。 Masks(防护层)包括Top Solder(顶层阻焊)、Bottom Solder(底层阻焊)、Top Paste(顶层助焊)和Bottom Paste(底层助焊)。阻焊层通常是在焊盘外的地方涂上绝缘 漆,主要是避免铜箔导线上沾上焊锡,还可以防止一些可能发生的短路;助焊层一般是在 焊盘上涂助焊材料,使焊锡与焊盘容易粘贴。 tyw藏书 ⑤ Silkscreen(丝印层)。 Silkscreen(丝印层)包括Top Overlay(顶层丝印层)和Bottom Overlay(底部丝印 层)。丝印层的作用是印刷一些元件符号、标注等信息。 ⑥ Other(其他层)。 Other(其他层)包括下面几个层。 Keepout(禁止布线层):该层主要是规划放置元件和布线有效区,在有效区外的地 方不能自动布线。 Multi layer(多层):该层主要用来放置焊盘和穿透孔,将此层关闭,绘制的焊盘和 过孔将看不见。 Drill guide(钻孔层):该层主要提供PCB生产时的钻孔信息。Protel 99 SE提供了 Drill guide (钻孔指示图)和Drill drawing(钻孔图)两个层。 另外,在图12-12所示的对话框中,“System”选项组还有以下几个复选框。 “Connections”复选框:飞线显示设置,选中该复选框在布线时会显示飞线,绝大多数 情况下都要显示飞线。 “DRC Errors”复选框:DRC 错误显示设置,选中该复选框时将显示PCB上违反DRC 规则的标记。 “Pad Holes”复选框:焊盘通孔显示设置,选中该复选框时将显示焊盘通孔。 “Via Holes”复选框:过孔显示设置,选中该复选框时将显示过孔的通孔。 “Visible Grid1”复选框:设置第1组可视栅格的间距大小及是否显示。 “Visible Grid2”复选框:设置第2组可视栅格的间距大小及是否显示。一般在工作窗口 看到的栅格为第2组栅格,放大后的画面出现的栅格为第1栅格。 (2)工作层的设置 在设计PCB时,如果需要改变某些层的个数或不需要某些层,则进行工作层的设置就 可以解决这个问题。在Protel 99 SE中,用户可以设置信号层、电源/接地层和机械层的数 目。 ① 信号层和电源/接地层的设置。 选择“Design”→“Layer Stack Manager”菜单命令,会弹出图12-13所示的“Layer Stack Manager”(工作层管理器)对话框,在该对话框中可以对工作层进行有关设置。 tyw藏书 图12-13 “Layer Stack Manager”对话框 第一,层的添加、删除和移动。 要添加层,先要选中某层,再单击“Add Layer”按钮,就会在该层下方添加一个层。 例如要在PCB接地层Ground Plane 1[GND]的下方添加一个信号层,可先在对话框的左方选 中该层,然后单击右方的“Add Layer”按钮就可以在该层下方添加一个信号层;如果单 击“Add Plane”按钮,就会在该层下方添加一个电源/接地层。 要删除层,只要选中要删除的层,再单击“Delete”按钮,就可以删除选择的层。 要移动层,只要选中要移动的层,再单击“Move Up”按钮,该层就会向上移动,每单 击一次可往上移动一层;如果单击“Move Down”按钮,就可以下移该层。 第二,层的编辑。 如果想改变层的名称和铜箔厚度,可单击“Properties”(属性)按钮,会弹出图12-14 所示的“EditLayer”对话框,在对话框中的“Name”文本框中可以输入层的名称,在“Copper thickness”(铜箔厚度)文本框中可输入该层的铜箔厚度数值,再单击“OK”按钮即可。 tyw藏书 图12-14 “Edit Layer”对话框(编辑层) ② 钻孔层的设置。 PCB 并不都是从底层到顶层钻穿透孔,有的可能是底层与内部某层钻通。钻孔层的 设置就是设置钻孔起始和终止层。在“Layer Stack Manager”对话框(见图12-13)中单 击“Drill Pairs”按钮,马上会弹出图12-15所示的“Drill-Pair Manager”对话框,其中列出了 两种钻孔方式:一种方式是从元件层(顶层)钻到焊接层(底层),另一种方式是从焊接 层钻到Ground Plane 1[GND],从中选择一种方式再单击“OK”按钮即可。 图12-15 “Drill-Pair Manager”对话框(设置钻孔层) 如果单击“Add”、“Delete”或“Edit”按钮就可以增加、删除和编辑钻孔方式。 ③ 机械层的设置。 选择“Design”→“Mechanical Layer”菜单命令,会弹出图12-16所示的“Setup Mechanical Layers”对话框,其中共列出了16个机械层,如果选中某个机械层的复选框,该层就会被 打开,并可以设置该层的名称,设置该层是否可见和设置是否在单层显示时同其他层一起 显示。 tyw藏书 图12-16 “Setup Mechanical Layers”对话框(设置机械层) 将各层设置完成后,如果再打开图12-12所示的“Document Options”对话框,就会发现 该对话框有一些变化。 ④ 工作层的打开与关闭。 在设计 PCB 电路时,如果要关闭或打开某个层,可选择“Design”→“Options”菜单命 令,会出现图12-12所示的“Document Options”对话框,该对话框显示出当前设计的PCB的 工作层情况。如果要关闭编辑器中的某个层,可取消选中该层的复选框,选中某层的复选 框则是打开工作层;如果单击“All On”按钮,则会打开所有的层;如果单击“All Off ”按 钮,则会关闭所有的层;如果单击“Used On”按钮,则会打开常用的工作层。 (3)工作层栅格和计量单位的设置 在设计 PCB 时,为了绘图方便、定位准确,与原理图编辑器一样,PCB 编辑器也可 以设置工作层的栅格(网格)和计量单位。选择“Design”→“Options”菜单命令,打开图1212所示的“DocumentOptions”对话框,单击“Options”选项卡,切换到图12-17所示的内容。 tyw藏书 图12-17 “Options”选项卡 ① 捕获栅格的设置。捕获栅格的设置实际上就是设置光标移动的间距。在“Snap X”下拉列表框中可以选择或输入光标水平方向移动的间距,在“Snap Y”下拉列表框中可以 选择或输入光标垂直方向移动的间距。 ② 元件栅格的设置。元件栅格的设置是设置元件移动的间距。在“Component X”下拉 列表框中可以选择或输入元件水平方向移动的间距,在“Component Y”下拉列表框中可以 选择或输入元件垂直方向移动的间距。 ③ 电气栅格范围的设置。电气栅格主要是为方便 PCB 布线而设置的特殊栅格。在移 动导电对象(如导线、元件和过孔等)时,如果该导电对象进入另一个导电对象的电气栅 格范围内,那么两者将会自动连接在一起。要设置电气栅格范围,先要选中“Electrical Grid”复选框,然后在“Range”(范围)下拉列表框中选择或输入电气栅格范围,一般设置 的数值应小于捕获栅格间距。 ④ 可视栅格类型的设置。可视栅格是在屏幕上可以看见的栅格。可视栅格的类型有 线状(Lines)和点状(Dots)两种,在“Visible Kind”下拉列表框中可以选择电气栅格的类 型。 ⑤ 计量单位的设置。Protel 99 SE用到的计量单位有两种:英制(Imperal)和米制 (Metric),默认的为英制单位。元件封装的大多采用英制单位,例如贴片式集成电路相 邻两个引脚的距离一般为0.05inch(英寸),所以在设计时尽量使用英制单位。英制单位 有inch(英寸)和mil(毫英寸),米制单位有cm(厘米)和mm(毫米), 1mil=0.0254mm。计量单位可在“Measurement Unit”下拉列表框中进行设置。 12.1.5 PCB编辑器参数设置 PCB编辑器参数设置内容较难理解,如果已有一定PCB设计基t础y,w可藏阅书读下面的内 容;对于初学者简单浏览一下即可,或者直接跳过这些内容,这并不影响后面章节的学 习。 在进行PCB设计时,如果想让PCB设计环境更个性化,可根据自己的习惯和爱好对 PCB编辑器的有关参数进行设置。由于PCB编辑器参数设置的很多内容比较难理解,如果 刚接触PCB设计,可不用设置,让系统保持默认设置,而直接进行PCB的设计。 PCB编辑器参数设置的内容主要包括显示状态、工作层颜色、默认参数、信号完整性 和一些特殊功能等。这些参数设置好后一般不用经常更改。 进入PCB编辑器参数设置界面的方法是:选择“Tools”→“Preference”菜单命令,会弹 出图12-18所示的“Preferences”对话框,在对话框中有6个选项卡,分别 为“Options”、“Display”、“Colors”、“Show/Hide”、“Defaults”、“Signal Integrity”,参数设 置就在这6个选项卡中进行。如果对其中某些项的设置不是很明白,可以保持默认值,在 以后理解这些设置后再按自己的爱好进行设置。 图12-18 “Preferences”对话框(默认打开“Options”选项卡) 1.“Options”选项卡的设置 在“Preferences”对话框中,“Options”选项卡默认处于打开状态,如果没有打开,可单 击“Options”选项卡。在该选项卡中有6个选项组,主要是设置一些特殊的功能。 (1)“Editing options”选项组 ① “Online DRC”复选框:选择是否在线进行DRC检查。 ② “Snap To Center”复选框:选中该复选框时,若用光标选取元件,光标会自动移到 tyw藏书 元件的第1脚处;若用光标移动字符,光标会移到字符的左下角。取消选中该复选框时, 会以光标所在的坐标位置选中对象。 ③ “Extend Selection”复选框:如果选中该复选框,那么在执行选取操作时可以连续选 取多个对象,否则选取最后一个对象。 ④ “Remove Duplicates”复选框:如果选中该复选框,可自动删除重复的对象。 ⑤ “Confirm Global Edit”复选框:选中该复选框时,进行整体编辑操作后会出现要求 确认的对话框。 ⑥ “Protect Locked Objects”复选框:选中该复选框时,可以保护锁定的对象,使它不 能执行移动、删除操作。 (2)“Autopan options”选项组 ① “Style”下拉列表框:用于设置自动移过功能模式,共有下面7种模式供选择。 “Disable”:关闭自动移过模式。 “Re-Center”:以光标处为新的编辑区中心。 “Fixed Size Jump”:选择该项时,当光标移到编辑区边缘,系统会以“Step”文本框设 定值移过,当按下Shift键后,系统会以“Shift Step”文本框设定值移过。 “Shift Accelerate”:选择该项时,按住Shift键会提高移过速度。 “Shift Decelerate”:选择该项时,当自动移过时,按Shift键会减慢移过速度。 “Ballistic”:选择该项时,光标越往编辑区边缘移动,移动速度越快。 “Adaptive”:自动适应模式,以“Speed”文本框的设定值来控制移过操作的速度,该项 为系统默认值。 ② “Speed”文本框:用于设置移动速率值,默认为1200。 ③ “Mils/Sec”单选按钮:移动速率单位(毫英寸/秒)。 ④ “Pixels/Sec”单选按钮:另一种移动速率单位(像素/秒),在设置时可选择其中一 种单位。 (3)“Polygon Repour”选项组 该选项组主要进行多边形填充绕过设置。 ① “Repour”下拉列表框:共有如下3个选项供选择。 “Never”:如果选择该项,当移动多边形填充区域后,一定会出现确认对话框,询问 是否重建多边形填充。 “Threshold”:如果选择该项,当移动多边形填充区域偏离距离比“Threshold”设定值小 时,会出现确认对话框,否则不出现确认对话框。 “Always”:如果选择该项,无论如何移动多边形填充区域,都不会出现确认对话框, 系统会直接重建多边形填充区域。 ② “Threshold”:在此可输入绕过的临界值。 (4)“Other”选项组 该选项组有以下几项。 tyw藏书 “Rotation Step”文本框:用来设置元件的旋转角度,默认值为90°。 “Undo/Redo”文本框:用来设置操作撤销和重复的次数,默认为30次。 “Cursor Type”下拉列表框:设置光标的形状。它有3种形状供选择:“Large 90”(大十 字形光标)、“Small 90”(小十字形光标)和“Small 45”(叉形光标)。 (5)“Interactive routing”选项组 该选项组用于设置交互式布线的参数。 ① “Mode”下拉列表框:设置交互式布线的模式。它有“Ignore Obstacle”(忽略障碍, 直接覆盖)、“Avoid Obstacle”(绕开障碍)和“Push Obstacle”(推开障碍)3种模式供选 择。 ② “Plow Through Polygons”复选框:如果选中该复选框,则多边形填充会绕过导线。 ③ “Automatically Remove Loops”复选框:如果选中该复选框,则自动删除形成回路的 走线。 (6)“Component drag”选项组 该选项组用于设置元件拖动模式。它只有一个“Mode”下拉列表框,如果从中选 择“None”,在拖动元件时,只拖动元件本身;如果选择“Connected Track”,在拖动元件 时,该元件的连线也会随之移动。 2.“Display”选项卡的设置 在“Preferences”对话框中,单击“Display”选项卡,可切换到该选项卡,如图12-19所 示。该选项卡中有3个选项组。 tyw藏书 图12-19 “Display”选项卡 (1)“Display options”选项组 该选项组有如下6个复选框。 ① “Convert Special Strings”复选框:用来确定是否将特殊字符串转化为它所代表的文 字。 ② “Highlight in Full”复选框:用来确定是否高亮状态显示。选中该复选框时,选中的 对象将被填满白色,否则选中的对象只加上白色的外框。 ③ “Use Net Color For Highlight”复选框:选中该复选框时,选中的网络将以该网络所 设置的颜色来显示。设置网络颜色的方法是在PCB管理器中切换到“Browse PCB”选项卡, 在“Browse”下拉列表中选择“Nets”选项,然后在网络列表框内选取工作网络的名称,再单 击“Edit”按钮打开“Net”对话框,在“Color”框内选取相应的颜色即可。 ④ “Redraw Layers”复选框:当选中该复选框时,每次切换板层系统都要重绘各工作 层的内容,而工作层将绘在最上层,否则切换工作层时就不进行重绘操作。 ⑤ “Single Layer Mode”复选框:用来确定是否单层显示。当选中该复选框时,工作窗 口上将只显示当前工作层的内容,否则工作窗口上将显示所有使用层的内容。 ⑥ “Transparent Layers”复选框:用来确定是否透明显示。当选中该复选框时,所有层 的内容和被覆盖的对象都会显示出来。 (2)“Show”选项组 在工作窗口处于合适的缩放比例时,下面所选中的复选框属性值将会显示出来。 ① “Pad Nets”复选框:连接焊盘的网络名称。 ② “Pad Numbers”复选框:焊盘序号。 ③ “Via Nets”复选框:连接过孔的网络名称。 ④ “Test Point”复选框:测试点。 ⑤ “Origin Marker”复选框:原点。 tyw藏书 ⑥ “Status Info”复选框:状态信息。 (3)“Draft thresholds”选项组 在该选项组可设置在草图模式中的走线宽度和字符串长度的临界值。 ① “Tracks”文本框:在此可输入走线宽度临界值,默认值为“2mil”,大于该值的走线 将以空心线来表示,否则以细直线来表示。 ② “Strings”文本框:在此可输入字符串长度临界值,默认值为“11pixels”,大于该值 的字符串将以细线表示,否则将以空心方块表示。 (4)工作层绘制顺序的设置 如果要设置工作层的绘制顺序,可单击“Layer Drawing Order”按钮(见图12-19),会 出现图12-20所示的“Layer Drawing Order”对话框。在该对话框中,先选中某个工作层,然 后单击“Promote”或“Demote”按钮,就可以向上或向下移动工作层的位置,在上面的工作 层先绘制;如果单击“Default”按钮,可将工作层的绘制顺序恢复到默认值。 图12-20 “Layer Drawing Order”对话框 3.“Colors”选项卡的设置 在“Preferences”对话框中,单击“Colors”选项卡,可切换到该选项卡,如图12-21所 示。“Colors”选项卡主要用来设置各工作层和系统对象的显示颜色。 要设置某一工作层的颜色,只要单击该层名称右边的颜色块,就会弹出图12-22所示 的“Choose Color”(选择颜色)对话框,可以在该对话框中选择颜色或自定义颜色。 tyw藏书 图12-21 “Colors”选项卡 图12-22 “Choose Color”对话框(选择颜色) 在“Colors”选项卡中,可调整颜色的系统对象有:DRC标记(DRC Errors)、选取对 象(Selection)、背景(Background)、焊盘通孔(Pad Holes)、过孔通孔(Via Holes)、飞线(Connections)、可视栅格1(Visible Grid1)和可视栅格2(Visible Grid 2)。一般情况下,最好不要改动颜色设置,否则容易出现颜色混乱的情况,带来不必要 的麻烦,万一出现这种情况,可单击“Default Colors”(系统默认颜色)或“Classic Colors”(传统颜色)按钮,所有对象颜色会恢复到系统的默认值。 4.“Show/Hide”选项卡 在“Preferences”对话框中,单击“Show/Hide”选项卡,可切换到该选项卡,如图12-23 所示。“Show/Hide”选项卡主要用来设置系统对象的显示模式。 tyw藏书 图12-23 “Show/Hide”选项卡 在该选项卡中,可以对10个对象进行显示模式设置,这10个对象分别是:“Arcs”(弧 线)、“Fills”(矩形填充)、“Pads”(焊盘)、“Polygons”(多边形填 充)、“Dimensions”(尺寸标注)、“Strings”(字符串)、“Tracks”(导线)、“Vias”(过 孔)、“Coordinates”(坐标标注)和“Rooms”(布置空间)。每个对象都有 3 种模式供选 择:“Final”(最终图稿)、“Draft”(草图)和“Hidden”(隐藏)。设置为“Final”时对象显 示效果最好,而设置为“Draft”时显示效果最差,设置为“Hidden”时对象不会在工作窗口显 示出来。 如果分别单击“All Final”、“All Draft”和“All Hidden”3个按钮,则会分别将所有的对象 同时设定为最终图稿、草图和隐藏模式。 5.“Defaults”选项卡 在“Preferences”对话框中,单击“Defaults”选项卡,可切换到该选项卡,如图12-24所 示。“Defaults”选项卡主要是设置电路板对象的默认属性值。 tyw藏书 图12-24 “Defaults”选项卡 在该选项卡中,如果要编辑某个对象的默认属性,先在“Primitive type”(基本类型) 列表框中选择要编辑的对象,再单击“Edit Values”按钮,会弹出对象属性设置对话框,可 以在该对话框中设置对象的属性;单击“Reset”按钮可以将所选对象的属性设置值恢复到 原始状态;单击“Reset All”按钮可以将所有对象的属性设置值恢复到原始状态;单 击“Save As”按钮可将当前各对象属性值保存到一个扩展名为.dft的文件中;如果单 击“Load”按钮,就可以将该文件加载到系统中。 在“Defaults”选项卡中有个“Permanent”复选框,如果取消选中该复选框,在放置对象 时,按Tab键可以打开属性对话框进行属性设置,而且设置后的属性值会应用到后续的相 同对象上;如果选中该复选框,就会将所选对象属性值锁定,在放置对象时,按Tab键, 仍可以设置对象属性值,但不会应用到后面相同的对象上。 6.“Signal Integrity”选项卡 在“Preferences”对话框中,单击“Signal Integrity”选项卡,可切换到该选项卡,如图1225所示。“Signal Integrity”选项卡主要是设置元件的标号和元件类型之间的对应关系,为信 号的完整性分析提供依据。 tyw藏书 图12-25 “Signal Integrity”选项卡 在图12-25 中,单击“Add”按钮,系统将弹出如图12-26所示的“Component Type”对话 框,用来定义一个新的元件类型。在“Designator Prefix”(序号标头)文本框中输入元件的 序号标头,一般电阻类元件用R表示,电容类元件用C表示等;在“Component Type”(元件 类型)下拉列表框中选取元件的类型,可选取的元件类型有 BJT(双结型晶体管)、 Capacitor(电容)、Connector(连接器)、Diode(二极管)、IC(集成电路)、 Inductor(电感)和 Resistor(电阻),单击“OK”按钮,设置好的元件类型就会添加到图 12-25中的“Designator mapping”列表框中。 图12-26 “Component Type”对话框(设置元件类型) 如果要编辑元件的属性,只要在“Designator mapping”列表框中选择元件类型,再单 击“Remove”按钮即可,单击“Edit”按钮可以修改所选类型元件的属性值。这里要说明一 点,没有归类的元件会被视为IC类型。 12.2 手工设计PCB的具体方法 tyw藏书 设计PCB简单来说,就是先规划PCB(如设置PCB的工作层和大小),再在上面放置 各种对象,并将它们的位置调整好,这些称为布局;然后用连线将各元件连接起来,这称 作布线。布局和布线完成后,PCB基本上就设计完成了。 12.2.1 放置对象 由于设计PCB需要在PCB上放置各种对象,而放置对象主要是依靠PCB绘图工具来完 成,要设计PCB,必须要先掌握各种对象的放置及其属性的设置方法。 1.放置元件封装 (1)放置元件封装过程 放置元件封装的操作过程如下。 ① 单击“Placement Tools”工具栏(放置工具栏)中的按钮 ,或者选 择“Place”→“Component”菜单命令,会弹出图12-27所示的“Place Component”对话框。 ② 在该对话框的“Footprint”文本框中输入要放置的元件封装名称(如 AXIAL0.3), 在“Designator”文本框中输入元件的标号(如 R1),在“Comment”文本框中输入元件型号 或标称值(如56k),然后单击“OK”按钮,光标旁就跟随着放置元件,如图12-28所示, 单击,就在PCB工作窗口放置了一个AXIAL0.3元件封装。 图12-27 “Place Component”对话框(设置元件) 图12-28 放置元件封装 在放置时,如果按Space键可以旋转元件封装。一个元件封装放置完毕,又会自动弹 tyw藏书 出下一个元件的“Place Component”对话框,可以在该对话框中按上述方法选择和设置一个 元件封装,单击该对话框中的“Cancel”(取消)按钮,可取消元件封装的放置。 在放置元件封装时,如果不知道元件封装的名称,可在图12-27所示的“Place Component”对话框中单击“Browse”按钮,弹出图12-29所示的“Browse Libraries”对话框, 在“Libraries”选项组的下拉列表框中可选择要查找元件封装库,如果当前元件封装库没有 需要的元件封装,可单击“Add/Remove”(添加/移除)按钮,能将其他的元件封装库加载 进来;在“Components”选项组的“Mask”文本框中可输入查找条件,如输入“A*”,再按Enter 键,马上在下面的列表框中出现所有以A打头的元件封装,选择其中一种,在该对话框右 方会显示当前选中元件封装的形状。显示区下方的3个按钮是用来缩放显示区图形的,其 中,“Zoom All”意为放大到整个显示区大小,“Zoom In”意为放大,“Zoom Out”意为缩小, 单击“Close”按钮就选择了选中的元件封装,同时关闭该对话框,返回到图12-27所示的对 话框。 图12-29 “Browse Libraries”对话框(浏览元件库查找元件) (2)元件封装属性的设置 如果元件封装已经放置下来,要设置元件封装的属性只需在元件封装上双击,就会弹 出图12-30所示的“Component”对话框;如果正处于元件封装放置状态,可按 Tab 键,同样 会弹出图12-30所示的对话框。在该对话框中可以对元件封装属性进行设 置,“Properties”选项卡的各设置项功能见图标注说明,对话框中 的“Designator”和“Comment”选项卡设置与“Properties”选项卡的设置类似,这里不再赘述。 设置好后单击“OK”按钮完成设置。 tyw藏书 tyw藏书 图12-30 “Component”对话框(设置元件封装属性) 2.放置焊盘 在放置元件封装时,元件封装本身带有焊盘,但电路板有些地方需要有独立的焊盘, 以便在这些焊盘上焊接导线方便与别的独立元件(如扬声器)连接。 (1)焊盘的放置 放置焊盘的操作过程如下。 ① 单击“Placement Tools”工具栏(放置工具栏)中的按钮 ,或者选 择“Place”→“Pad”菜单命令,光标中央会跟随焊盘,如图12-31所示,将焊盘移到合适处单 击,就将焊盘放置下来。 图12-31 放置焊盘 ② 焊盘放置完成后,光标仍处于放置焊盘状态,此时可以移动光标继续放置焊盘, 右击可取消焊盘的放置。 (2)焊盘属性的设置 tyw藏书 如果焊盘已经放置下来,要设置焊盘的属性只需在焊盘上双击,就会弹出图12-32所 示的“Pad”对话框;如果正处于焊盘放置状态,可按Tab键,同样会弹出图12-32所示的对 话框。在该对话框中有如下3个选项卡。 图12-32 “Pad”对话框(默认打开“Properties”选项卡) ① “Properties”选项卡。该选项卡的各项功能说明如图12-32中的标注所示。 ② “Pad Stack”选项卡。该选项卡主要是设置焊盘栈(多层焊盘),只有选 中“Properties”选项卡中的“Use Pad Stack”复选框时,该选项卡才有效。“Pad Stack”选项卡 的功能说明如图12-33中的标注所示。 ③ “Advanced”选项卡。该选项卡用来设置焊盘的一些高级属性,各设置项功能说明 如图12-34中的标注所示。 tyw藏书 图12-33 “Pad Stack”选项卡 tyw藏书 图12-34 “Advanced”选项卡 3.放置过孔 过孔的作用是连接电路板不在同一层的导电层。 (1)过孔的放置 放置过孔的操作过程如下。 ① 单击“Placement Tools”工具栏(放置工具栏)中的按钮 ,或者选 择“Place”→“Via”菜单命令,光标中央会跟随过孔,如图12-35所示,将过孔移到合适处单 击,过孔就放置下来。 图12-35 放置过孔 ② 过孔放置完成后,光标仍处于放置状态,此时可以移动光标继续放置过孔,右击 可取消过孔的放置。 (2)过孔属性的设置 tyw藏书 如果过孔已经放置下来,要设置过孔的属性只需在过孔上双击,就会弹出图12-36所 示的对话框;如果正处于过孔放置状态,可按Tab键,同样会弹出图12-36所示的“Via”对 话框。在该对话框中可以设置过孔的属性,各项属性说明如图12-36中的标注所示。 tyw藏书 图12-36 “Via”对话框(设置过孔属性) 4.放置导线 导线的作用是将PCB上的元件进行电气连接。 (1)导线的放置 放置导线的操作过程如下。 ① 单击“Placement Tools”工具栏(放置工具栏)中的按钮 ,或者选 择“Place”→“Interactive Routing”(交叉式布线)菜单命令,鼠标会变成光标状。 ② 绘制直线导线。将光标移到合适的位置单击,确定导线的起点,再将光标移到导 线的终点单击,就确定了导线的终点,如图12-37所示,右击结束一根导线的绘制。 ③ 绘制折线。用按钮 不但可以绘制直线导线,还可以绘制折线导线,在单击确定 导线起点后,斜着移动光标,会出现图12-38所示的折线,折线一段为实线,另一段为虚 线,如果单击可以固定实线部分,如果双击,虚线部分也会变成实线,从而绘制成一条折 线导线。 图12-37 绘制直线导线 tyw藏书 图12-38 绘制折线导线 在绘制导线时,右击结束一条导线的绘制,可以接着绘制另一条导线。要取消导线的 绘制,可双击鼠标右键。 (2)导线属性的设置 导线属性的设置与前面一些对象不同,它要进行两方面的设置,具体如下。 ① 在绘制导线过程中(已确定了导线起点,还未确定终点时),按 Tab 键,会弹出 图12-39所示的“Interactive Routing”对话框,在该对话框中可以设置导线所在的工作层、导 线的宽度和过孔的内外径大小。 图12-39 “Interactive Routing”对话框 ② 在导线已绘制好后,在导线上双击,弹出图12-40所示的“Track”对话框,对话框中 各项的功能见图标注说明,设置好后单击“OK”按钮完成设置。 (3)导线的编辑 导线放置好后,还可以对它进行编辑,方法是:在导线上单击,导线上会出现3个控 tyw藏书 制块,如图12-41(a)所示。在左边的一个控制块上单击,鼠标旁出现十字形光标,移动 光标可以改变导线的方向,如图12-41(b)所示;在中间的控制块上单击,鼠标旁出现十 字形光标,移动光标可以改变导线的形状,如图12-41(c)所示;如果是折线,单击其中 的一段,该段会出现控制块,在这段导线上按下鼠标左键不放移动,就可以将它移离另一 段导线,从而一分为二。 tyw藏书 图12-40 “Track”对话框 tyw藏书 图12-41 编辑导线 5.放置连线 连线与导线是不同的,它没有电气特性,通常是用来绘制电路板的边界、元件的边界 和禁止布线边界等。 (1)连线的放置 放置连线的操作过程如下。 ① 单击“Placement Tools”工具栏(放置工具栏)中的按钮 ,或者选 择“Place”→“Line”菜单命令,鼠标会变成光标状。 ② 绘制连线的具体方法与导线相同,这里不再说明。 (2)连线属性的设置 在放置连线过程中,按Tab键会弹出图12-42所示的“Line Constraints”对话框,在该对 话框中可设置线的宽度和所在的工作层。 tyw藏书 图12-42 “Line Constraints”对话框(设置连线属性) 如果要对连线属性进行更详细的设置,可在已绘制好的连线上双击,会弹出与图1240所示相同的“Track”对话框,在该对话框中可以对连线进行进一步设置。 6.放置字符串 在设计PCB时,常常需要在一些地方放置一些说明文字,这些文字称为字符串,如电 路板的各种标注文字。这些字符串一般放置在丝印层或机械层。 (1)字符串的放置 放置字符串的操作过程如下。 ① 单击“Placement Tools”工具栏(放置工具栏)中的按钮 ,或者选 择“Place”→“String”菜单命令,鼠标会变成光标状,并且光标旁跟随着字符串,如图12-43 所示。 ② 按 Tab 键会弹出图12-44所示的“String”对话框,各项功能见图标注说明,设置完成 后单击“OK”按钮关闭对话框,然后将光标移到合适的位置单击,就放置了一个字符串。 图12-43 放置字符串 tyw藏书 图12-44 “String”对话框(设置字符串属性) (2)字符串属性的设置 在已经放置好的字符串上双击也会弹出图12-44所示的对话框,这里着重说明“Text”下 拉列表框的设置。 在“Text”下拉列表框可以直接输入文字,也可以在下拉列表框中选择系统提供的特殊 字符串。如果输入文字,在电路板上会显示出输入的文字,打印出来也是输入的文字;如 果选择是下拉列表框中的特殊字符串,例如在下拉列表框中选择特殊字符 串“.Print_Data”,设置完后,在编辑区中看见的字符仍是“.Print_Data”,但打印出来的是设 计PCB的时间:19-Aug-2006。 tyw藏书 在选择特殊的字符串后,默认屏幕显示仍为特殊字符串文字,如果想知道解释后字符 串的内容,可选择“Tools”→“Preferences”菜单命令,打开“Preferences”对话框,选 中“Display”选项卡中的“Convert Special Strings”复选框,那么在屏幕上将会显示解释的字 符。 (3)字符串的编辑 ① 字符串的选取。在字符串上单击,字符串左下角会出现一个小十字形,右下角出 现一个小圆,此时字符串处于选取状态,如图12-45(a)所示。 ② 字符串的移动。将鼠标移到字符串上,再按下左键不放进行移动,就可以移动字 符串。 ③ 字符串的旋转。如果仅需按90°角旋转字符串,可先选中字符串,然后将鼠标放在 字符串上按左键不放,再按 Space 键,字符串就会以 90°角进行旋转;如果想以任意角旋 转字符串,可先选中字符串,然后将鼠标移到字符串的右下角的圆上单击,鼠标旁出现光 标,如图12-45(b)所示,此时移动光标就能以字符串左下角的小十字为轴任意旋转字符 串。 图12-45 字符串的编辑 7.放置填充 在PCB布线完成后,一般要在电路板上没有导线、过孔和焊盘的空白区放置大面积的 铜箔进行填充,来作为电源或接地点,这样做有利于散热和提高电路的抗干扰性。填充有 两种方式:一种是矩形填充,另一种是多边形填充。 (1)放置矩形填充 ① 放置矩形填充的操作过程:单击“Placement Tools”工具栏(放置工具栏)中的按钮 ,或者选择“Place”→“Fill”菜单命令,鼠标会变成光标状,在编辑区合适位置单击,确 定矩形的一个顶点,移动光标拉出一个矩形,然后单击就放置了一个矩形填充,如图1246所示。 ② 矩形填充的属性设置:在放置矩形填充过程中,按 Tab 键会弹出图12-47所示 的“Fill”对话框,各项功能见图标注说明,设置完成后单击“OK”按钮关闭对话框。 tyw藏书 图12-46 绘制矩形填充 tyw藏书 图12-47 “Fill”对话框(设置矩形填充属性) ③ 矩形填充的编辑:在矩形填充上单击,周围出现控制块,此时矩形填充处于选中 状态;矩形填充处于选中状态时,按Del键可以将它删除;拖动矩形填充周围的控制块可 以缩放大小;将鼠标移到矩形填充的中间小圆上单击,鼠标旁出现十字光标,移动光标可 以旋转光标。 (2)放置多边形填充 ① 放置多边形填充的操作过程:单击“Placement Tools”工具栏(放置工具栏)中的按 钮 ,或者选择“Place”→“Polygon Plane”菜单命令,马上会弹出图12-48所示的“Polygon Plane”对话框,可以在该对话框中设置多边形填充的属性,也可以保持默认值,单 击“OK”按钮完成设置。这时鼠标旁出现光标,单击确定多边形填充的起点,然后在每个 拐弯处单击确定各个顶点,如图12-49(a)所示。最后,在终点处右击,起点和终点自动 连接起来,并且多边形被填充,如图12-49(b)所示。 tyw藏书 图12-48 “Polygon Plane”对话框(设置多边形填充) 图12-49 绘制多边形填充 ② 多边形填充属性的设置:如果对多边形填充默认属性不满意,可在图12-48所示 的“PolygonPlane”对话框中进行设置。该对话框各项功能说明如下。 第一,“Net Options”选项组:设置多边形填充与电路网络间的关系,它有以下几项。 “Connect to Net”下拉列表框:可以通过该下拉列表框选择所属的网络名称。 “Pour Over Same Net”复选框:如果选中该复选框,在填充时遇到连接网络就直接覆 盖。 “Remove Dead Copper”复选框:如果选中该复选框,在遇到死铜(已经设置与某个网 络连接,但实际并没有与该网络连接的多边形填充称为死铜)时,就会将它删除。 第二,“Plane Settings”选项组:它有以下几项。 “Grid Size”:设置多边形填充的栅格间距。 “Track Width”文本框:设置多边形填充的线宽。 tyw藏书 “Layer”下拉列表框:设置多边形填充所在的工作层。 第三,“Hatching Style”选项组:设置多边形填充的样式。它有“90-Degree Hatch”(90° 格子)、“45-Degree Hatch”(45°格子)、“Vertical Hatch”(垂直格子)、“Horizontal Hatch”(水平格子)和“NoHatching”(没有格子)5种填充样式,分别如图12-50所示。 图12-50 5种填充样式 第四,“Surround Pads With”选项组:用来设置多边形填充环绕焊盘的形式。 “Octagons”单选按钮:八角形环绕。 “Arcs”单选按钮:圆弧形环绕。 上述两种环绕形式如图12-51所示。 图12-51 两种多边形填充环绕焊盘形式 第五,“Minimum Primitive Size”选项组:用来设置多边形填充内最短的走线长度。 矩形填充与多边形填充是不同的:矩形填充将所有矩形区域用覆铜填充,该区域内所 有的导线、焊盘、过孔都会被覆铜覆盖;多边形填充则是以覆铜填充多边形区域,但不会 覆盖具有电气特性的对象。两种填充效果如图12-52所示。 tyw藏书 图12-52 矩形与多边形填充效果的区别 8.放置切分多边形 切分多边形与多边形类似,不过它是用来切分 PCB 内部电源或接地层(Internal Plane)的。在放置切分多边形时一般要求当前设计的PCB中有内部电源层或接地层,否 则将无法放置。 放置切分多边形的操作过程如下。 单击“Placement Tools”工具栏(放置工具栏)中的按钮 ,或者选择“Place”→“Split Plane”菜单命令,会弹出图12-53所示的“Split Plane”对话框,在对话框中设置多边形的线 宽、所在的工作层和所属的网络,单击“OK”按钮完成设置。这时鼠标旁出现十字光标, 在合适位置单击,确定多边形的起点,然后在每个拐弯处单击确定多边形的其他顶点,最 后在终点右击,如图12-54所示,起点和终点自动连接起来,就绘制好了一个切分多边 形。 图12-53 “Split Plane”对话框(设置切分多边形属性) 图12-54 绘制切分多边形 tyw藏书 要说明的是,切分多边形只能在电源/接地层上绘制,如果当前层不是这类层,系统 会自动切换到电源/接地层上。 9.放置坐标 放置坐标就是将当前光标所在位置的坐标值放置在工作层上。坐标通常放在非电气层 上。 (1)坐标的放置 放置坐标的操作过程如下。 单击“Placement Tools”工具栏(放置工具栏)中的按钮 ,或者选 择“Place”→“Coordinate”菜单命令,鼠标会变成光标状,并且光标旁跟随着坐标值,如图 12-55所示,光标移动,坐标值也会变化,单击就放置了一个坐标值。 图12-55 放置坐标 (2)坐标属性的设置 在已放置的坐标上双击,或在放置坐标时按Tab键,会弹出图12-56所示 的“Coordinate”对话框,各项功能见图标注说明,设置完成后单击“OK”按钮结束坐标属性 的设置。 tyw藏书 图12-56 “Coordinate”对话框(设置坐标属性) 10.放置尺寸标注 放置尺寸标注就是将某些对象的尺寸标注(如电路板尺寸等)放置在电路板上。尺寸 标注通常放在机械层上。 (1)尺寸标注的放置 放置尺寸标注的操作过程如下。 单击“Placement Tools”工具栏(放置工具栏)中的按钮 ,或者选 择“Place”→“Dimension”菜单命令,鼠标会变成光标状,移动光标到尺寸的起点,单击确 定起点,再向任意方向移动光标,光标旁显示尺寸的数值不断变化,如图12-57所示,移 到合适的位置单击,确定尺寸的终点,这样就放置了一个尺寸标注。 tyw藏书 图12-57 放置尺寸标注 (2)尺寸标注属性的设置 在已放置的尺寸标注上双击,或在放置尺寸标注时按Tab键,会弹出图12-58所示 的“Dimension”对话框,设置完成后单击“OK”按钮结束尺寸标注属性设置。 图12-58 “Dimension”对话框(设置尺寸标注属性) 11.放置圆弧 PCB绘图工具提供了3种绘制圆弧的工具和1种绘制圆的工具。 (1)圆弧的绘制 ① 利用边缘法绘制圆弧:它是利用确定圆弧的起点和终点的方法来绘制圆弧。 该方法的绘制操作过程是:单击“Placement Tools”工具栏(放置工具栏)中的按钮 ,或者选择“Place”→“Arc(Edge)”菜单命令,鼠标会变成光标状,在合适的位置单击确 定圆弧的起点,再将光标移到终点处单击确定圆弧的终点,如图12-59所示。绘制好粗线 条的圆弧如图12-60所示。 tyw藏书 图12-59 绘制圆弧 图12-60 圆弧绘制完成 ② 利用中心法绘制圆弧:它是利用确定圆弧的中心、半径、起点和终点的方法来绘 制圆弧。 该方法的绘制操作过程是:单击“Placement Tools”工具栏(放置工具栏)中的按钮 ,或者选择“Place”→“Arc(Center)”菜单命令,鼠标会变成光标状,在合适的位置单击 确定圆弧的中心,再移动光标拉出一个圆,单击确定圆的半径,这时光标会自动跳到圆的 右侧水平位置,移动光标到某位置并单击,确定圆弧的起点,再移动光标到另一处,单击 确定圆弧的终点,就绘制好了圆弧。 ③ 利用角度旋转法绘制圆弧:它是利用确定圆弧的起点、圆心和终点的方法来绘制 圆弧。 tyw藏书 该方法的绘制操作过程是:单击“Placement Tools”工具栏(放置工具栏)中的按钮 ,或者选择“Place”→“Arc(Any Angle)”菜单命令,鼠标会变成光标状,在合适的位置单 击确定圆弧的起点,再移动光标拉出一个圆,在某处单击确定圆弧的圆心,这时光标会自 动跳到圆的右侧水平位置,移动光标到某位置并单击,确定圆弧的终点,圆弧就绘制好 了。 (2)圆的绘制 圆是通过确定圆心和半径来绘制的。圆的绘制过程如下。 单击“Placement Tools”工具栏(放置工具栏)中的按钮 ,或者选择“Place”→“Full Circle”菜单命令,鼠标会变成光标状,在合适的位置单击确定圆的圆心,再移动光标拉出 一个圆,在某处单击确定圆的半径,这样就绘制好了一个圆。 (3)圆弧属性的设置 在已放置的圆弧上双击,或在放置圆弧时按Tab键,会弹出图12-61所示的“Arc”对话 框,各项功能见图标注说明,设置完成后单击“OK”按钮结束圆弧属性的设置。 tyw藏书 图12-61 “Arc”对话框(设置圆弧属性) 12.放置房间 这里的房间(Room)是指一个矩形区域,这个功能一般很少使用,阅读时如果觉得 困难可跳过,并不影响后面内容的学习。 在设计PCB时,为了操作方便,可以在顶层或底层上绘制一个矩形区域(房间),然 后通过设置将元件、元件类或封装分配给该区域,当移动该区域时,区域内的这些元件也 会随之移动。房间可以设为“无效”,也可设定为“锁定”。 (1)房间的放置 放置房间的操作过程是:单击“Placement Tools”工具栏(放置工具栏)中的按钮 , tyw藏书 或者选择“Place”→“Room”菜单命令,鼠标会变成光标状,在编辑区的合适位置单击,确 定矩形的一个顶点,移动光标拉出一个矩形,再单击确定一个对角点,这样就放置了一个 房间,如图12-62所示。 图12-62 放置房间 (2)房间属性的设置 在放置房间的过程中按Tab键,或者在已放置好的房间上双击,会弹出图12-63所示 的“RoomDefinition”对话框,各项功能说明如下。 图12-63 “Room Definition”对话框 “Rule Name”文本框:用于设置房间的名称。 “Room Locked”复选框:当选中时,房间被锁定,无法移动。 “x1”、“y1”、“x2”和“y2”文本框:用来设置房间的两个对角顶点的坐标。 下面的两个下拉列表框分别是:第1个下拉列表框设置房间所在的层,有“Top Layer”(顶层)和“Bottom Layer”(底层)两种选择;第2个下拉列表框设置房间适用条 件,有“Keep Objects Inside”(将对象限制在房间内部)和“Keep Objects Outside”(将对象 限制在房间外部)两种。 tyw藏书 “Rule scope”:通过下面几个下拉列表框来选择属于该房间的对象。图12-63中将元件 R1设为属于该房间,当移动该房间时,R1也会随之移动。 12.2.2 手工布局 在设计PCB时,布局主要包括规划PCB(如设置PCB的工作层和大小等),然后在上 面放置各种对象,再设置属性并将它们的位置调整好。 Protel 99 SE具有自动布局功能,但需要首先设计出电路原理图。对于一些简单的电 路可以不用设计原理图,而是用手工法直接进行 PCB 设计。这里以设计图12-64(a)所 示的放大电路的 PCB为例来说明手工布局的方法。最终完成布局的放大电路的PCB如图 12-64(b)所示。 1.布局PCB 布局PCB主要是设置原点、工作层以及电路板的形状和大小等内容。 (1)设置原点 设计PCB是在PCB编辑器的工作窗口中进行的。在工作窗口中采用坐标来精确定位对 象的位置,工作窗口的左下角为坐标原点(0,0),这个坐标原点称为绝对原点 (Absolute Origin)。为了更方便布局电路板,可以根据需要将工作窗口中的某点设作原 点,这个原点称为相对原点(RelativeOrigin),该相对原点坐标为(0,0),后面放置对 象的坐标就以该原点作为基准。比如在工作窗口中央绘制一个矩形电路板范围,可将该矩 形的左下角定为相对原点。 图12-64 放大电路原理图与元件的布局 设置相对原点的方法如下。 ① 单击“Placement Tools”工具栏(放置工具栏)中的按钮 ,或者选 择“Edit”→“Origin”→“Set”菜单命令,鼠标会变成光标状,将光标移到要设作相对原点的 位置单击,该处就被定为相对原点,工作窗口将以该原点作为基准点(0,0)。 tyw藏书 ② 如果要取消相对原点,选择“Edit”→“Origin”→“Reset”菜单命令即可。 (2)设置电路板的工作层数量 由于设计的放大电路很简单,可以采用单面板来设计。单面板主要需要以下几层。 顶层(TopLayer):用来放置元件。 底层(BottomLayer):用来布线和焊接元件。 禁止布线层(KeepOutLayer):用来绘制电路板的边框(即物理边界)。 顶层丝印层(TopOverlay):用来放置一些标注字符。 多层(MultiLayer):用来放置焊盘。 当新建一个PCB文件时,该文件会自动建立上面5个工作层,在工作窗口下方可以看 见这些层的标签,如图12-65所示。如果要打开或关闭某些工作层,具体操作方法见本章 12.1节PCB的工作层的设置内容,这里不再说明。 图12-65 工作层标签 如果要切换工作层,可以采用下面几种方法。 ① 单击工作窗口下方的工作层标签,就会切换到该层。 ② 按小键盘上的“+”或“−”键,可以从左到右或从右到左依次打开图12-65所示的工作 层。 ③ 按小键盘上的“*”键,可以在顶层和底层进行切换。 (3)设置电路板的形状和大小 在设计电路板时要设置电路板的形状和大小,这可以通过在禁止布线层上绘线来确 定。设置电路板的形状和大小的操作方法如下。 ① 选择禁止布线层:单击工作窗口下方的“KeepOutLayer”标签,切换到禁止布线层。 ② 设置相对原点:单击“Placement Tools”工具栏中的按钮 ,将工作窗口某处设为相 对原点。 ③ 绘制矩形边界:单击“Placement Tools”工具栏中的按钮 ,鼠标会变成光标状, 以相对原点为起点,绘制一条长为4000mil的水平直线(在直线的终点,状态栏显示的坐 标为X:4000mil, Y:0mil),然后用同样的方法以原点为起点绘制一条长为3000mil的 竖线(该直线终点坐标为X:0mil,Y:3000mil),再绘制两条直线与这两条直线连接起 来构成一个长为 4000mil、高为 3000mil的矩形框边界,如图12-66所示,后面设计PCB电 路就在这个矩形框中进行。 tyw藏书 图12-66 绘制完成的矩形框边界 如果对绘制的矩形不满意,可双击边框线,在弹出的对话框中设置边框线的粗细和长 度等属性。 2.装载、查找与放置元件封装 PCB工作层和大小设置好后,接下来就是往电路板上放置元件封装。Protel 99 SE默认 安装的元件封装库中的元件封装数量并不多,可能没有要放置的元件封装,解决方法就是 将外部的元件封装库装载进PCB编辑器中。 (1)装载元件封装库 Protel 99 SE 在外部提供了常见的元件封装库,这些元件封装库的位置是\Design Explorer 99SE\Library\Pcb,在 Pcb 文件夹中有 3 个文件夹:Connectors 文件夹(内含多个 连接元件封装库);Generic Footprints文件夹(内含多个普通元件封装库)和IPC Footprints文件夹(内含多个IPC元件封装库),在这3个文件夹中比较常用的元件库有 Advpcb.ddb、Dc to Dc.ddb和General IC.ddb,它们都在Generic Footprints文件夹中。 在图12-64(a)所示的放大电路中,各个元件及元件封装所在的元件库文件见表121。 表12-1 放大电路各个元件及元件封装所在的元件库文件 装载元件库封装的方法与装载元件基本相同,具体操作过程如下。 ① 单击主工具栏上的按钮 ,也可以选择“Design”→“Add/Remove Library”菜单命 令,还可以单击元件封装库管理器中的“Add/Remove”,都会弹出图12-67所示的“PCB Libraries”对话框。 tyw藏书 图12-67 “PCB Libraries”对话框(添加/删除元件封装库) ② 在图12-67所示的对话框中,先选中要加载的元件封装库文件,然后单击“Add”按 钮,选中的元件封装库文件就被加入到对话框下面的列表框中;如果想删除列表框中的某 个元件封装库文件,只要在列表框中选中该文件,再单击“Remove”按钮,选中的文件就 会被删除;如果单击“OK”按钮,那么列表框中的所有元件封装库文件都会加载到PCB编 辑器中。 (2)查找与放置元件封装 查找与放置元件封装有两种方法:一种是利用元件封装库管理器,另一种方法是利 用“BrowseLibraries”对话框。 利用元件封装库管理器来查找和放置元件封装的操作过程如下。 ① 单击设计管理器上方的“Browse PCB”,将设计管理器切换到图12-68所示的元件封 装库管理器。 tyw藏书 图12-68 元件封装库管理器 tyw藏书 ② 在元件封装库管理器中可以这样查找元件:单击A处的下拉按钮,在下拉列表框中 选择“Libraries”,在 B 区会显示元件封装库文件(如果没有需要的元件封装库文件,可单 击“Add/Remove”按钮加载需要的元件封装库文件);在B区选中需查找的库文件,在C区 会显示出该库文件中所有的元件封装;在C区选中某元件封装,在D区会显示出该元件封 装的外形。 ③ 在 C 区查找到需要的元件封装后,选中该元件封装,再单击“Place”按钮,就可以 将该元件封装放置到电路板上。 利用“Browse Libraries”对话框来查找和放置元件封装的操作过程如下。 ① 单击主工具栏上的按钮 ,或选择“Design”→“Browse Components”菜单命令,会 弹出“Browse Libraries”对话框,如图12-69所示。 图12-69 “Browse Libraries”对话框 ② 从“Libraries”选项组的下拉列表框中选择要查找的元件封装库文件(如果没有需要 的元件封装库文件,可单击“Add/Remove”按钮加载需要的库文件),选择要查找的库文 件后,在“Components”选项组中会显示该库文件中所有的元件封装,当选中某个元件封装 时,会在对话框右边的区域显示该元件封装的外形。 ③ 在“Components”选项组中找到需要的元件封装后,选中该元件封装,再单 击“Place”按钮,该对话框会自动关闭,选中的元件封装就会出现在电路板上,如图12-70 所示,移动元件封装到合适的地方单击,就将该元件封装放置下来。 按表12-1放置好各种元件封装的PCB如图12-71所示。 图12-70 放置元件封装 tyw藏书 图12-71 各元件封装放置完成 3.元件的布局 按原理图将元件封装(后面简称元件)放置到电路板后,元件位置可能不合要求,这 时就需要调整,重新进行布局。元件的布局操作主要包括选取、移动、旋转、排列和调整 标注等。 (1)元件的选取 元件的选取方法较多,常用的方法主要有以下几种。 方法一:按住鼠标左键不放拖出一个矩形框,将要选取的元件包含在内部,松开左 键,元件高亮显示,处于选取状态。单击主工具栏上的按钮 ,可取消所有对象的选 择。 方法二:单击主工具栏上的按钮 ,鼠标变成光标状,拖动光标拉出一个矩形框, 将要选取的元件包含在内部,松开左键,再单击,元件高亮显示,处于选取状态。 方法三:利用菜单命令选取元件。在“Edit”菜单下的“Select”为选取命 tyw藏书 令,“Deselect”为取消选取命令,其中“Select”命令菜单中又有很多子命令,如图12-72所 示,各命令的功能说明见图标注。 图12-72 “Select”命令菜单中的各种选取命令 (2)元件的移动 元件的移动方法也比较多,较常用的方法有以下几种。 方法一:将鼠标移到要移动的元件上,按下左键不放移动鼠标,元件也会随之移动, 移到合适位置松开左键即可。 方法二:首先选取要移动的元件,然后单击主工具栏上的按钮 ,鼠标变成光标 状,将光标移到要移动的元件上单击,再移动光标,该元件也会随之移动。 方法三:利用菜单命令移动元件。在“Edit”菜单下的“Move”为移动命令,它又有很多 子命令,如图12-73所示,各命令的功能说明见图标注。 tyw藏书 图12-73 “Move”命令菜单中的各种移动命令 (3)元件的旋转 旋转元件的常用方法有以下几种。 方法一:将鼠标移到要旋转的元件上按下左键不放,再按Space键或X、Y键,元件就 会旋转。按这3个键元件的旋转方式是不一样的,每按一次Space键元件会顺时针旋转 90°,按X键元件会在水平方向旋转180°,而按Y键元件会在垂直方向旋转180°。 方法二:利用菜单命令旋转元件,具体操作过程如下。 ① 选取要旋转的元件。 ② 选择“Edit”→“Move”→“Rotate Selection”菜单命令,马上会弹出图12-74(a)所示 的“RotationAngle(Degrees)”对话框,在该对话框中的文本框中输入要旋转的角度,再单 击“OK”按钮。 ③ 将光标移到要旋转元件的旋转基点上单击元件就会旋转设定的角度,如图1274(b)所示。 (4)元件的排列 元件的排列可以利用“Component Placement”工具栏(元件位置调整工具栏),也可以 选择“Tools”→“Interactive Placement”菜单下的子命令,两种方式功能是一一对应 的。“ComponentPlacement”工具栏如图12-75所示,该工具栏中各按钮的功能及与之对应的 菜单命令见图12-76的标注说明。 tyw藏书 图12-74 旋转元件 图12-75 Component Placement工具栏 tyw藏书 图12-76 “Component Placement”工具栏中的各按钮说明 元件排列的操作过程如下。 ① 选中要排列的元件。 ② 单击“Component Placement”工具栏中的某个按钮,或选择“Tools”→“Interactive Placement”菜单下相应的子命令,如单击工具栏中的按钮 (左对齐,对应于菜单子命 令“Align Left”),选取的元件马上左对齐排好,如图12-77所示。 tyw藏书 图12-77 左对齐排列 工具栏中的大多数按钮一次只能对元件进行一种方式的排列,如果想同时进行两种方 式的排列,可按下面的方法操作。 先选中要排列的元件,再单击“Component Placement”工具栏中的按钮 (对应于菜单 子命令“Align”),会弹出图12-78所示的“Align Components”对话框,在对话框中 的“Horizontal”选项组中选择水平排列方式,在“Vertical”选项组中选择垂直排列方式,设 置好后单击“OK”按钮,选取的元件会同时按这两种方式进行排列。 图12-78 “Align Components”对话框(设置综合排列) (5)元件标注的调整 元件标注会在放置元件的同时被放在电路板上,有时可能会出现方向和大小不符合要 求的情况,虽然不会影响电路的正确性,但会使设计出来的电路不美观,对元件标注的调 整可以解决这个问题。元件标注调整的原则是:标注的方向尽量一致;标注要尽量靠近元 件,以便指示准确;标注不要放在焊盘和过孔上。 ① 元件标注位置和方向的调整:将鼠标移到需要调整的标注上,按下左键不放,就 可以移动和旋转标注,操作方法与移动元件和旋转元件一样。 tyw藏书 ② 元件属性的调整:将鼠标移到需要调整的标注上双击,会弹出属性设置对话框, 在对话框中可以设置标注的内容、大小和字体等,设置好后单击“OK”按钮即可。 手工布局完成的放大电路的PCB电路如图12-64(b)所示。 12.2.3 手工布线 布局完成后,接下来就是用导线将布局好的元件连接起来,这就是手工布线。 1.布线的注意事项 在布线时,不仅是要用导线将元件连接起来,布线时通常要注意以下事项。 ① 绘制信号线时在拐弯处不能绘成直角。 ② 绘制两条相邻导线时要有一定的绝缘距离。 ③ 绘制电源线和地线时布线要短、粗,这样才能减少干扰和有利于导线的散热。 2.导线模式的选择 在设计PCB时,Protel 99 SE提供了6种导线模式:45°转角、45°圆弧转角、90°转角、 90°圆弧转角、任意角转角和平滑圆弧。这6种模式的导线如图12-79所示。 图12-79 6种模式的导线 在绘制导线时,按Shift+Space键,可以切换这6种导线模式。 3.电源线和地线的加宽 与其他的导线相比,电源线和地线流过的电流比较大,容易发热,加宽电源线和地线 有利于散热,并能提高电路的抗干扰性。 加宽电源线和地线的操作方法如下。 ① 在绘制好的电源线或地线上双击,会弹出图12-80所示的“Track”对话框,在对话框 中将“Width”文本框的“10mil”改成“20mil”甚至更大即可。 ② 如果正在绘制电源线或地线,可按 Tab 键,也会弹出图12-80所示的“Track”对话 框,在对话框中将线宽设大就能绘制出更粗的电源线或地线。 tyw藏书 图12-80 在“Track”对话框中设置加宽电源线和地线 4.元件标注的调整 如果布线后发现元件标注不合适,或者布局时没有调整元件标注,在布线后仍可以对 标注进行调整。调整方法与布局时的标注调整一样,主要是调整标注的位置、方向、大小 和字体等,这里不再叙述。 5.补泪滴 在导线与焊盘连接时,导线与焊盘之间连接面不多,这样会导致两者连接不牢固。增 大导线与焊盘的连接面,使它们连接更牢固,这种操作称为补泪滴。补泪滴操作前后的焊 盘与导线的连接效果如图12-81所示。 补泪滴的操作过程如下。 ① 首先用鼠标拉出一个矩形选框,选中要补泪滴的焊盘。 ② 选择“Tools”→“Teardrops”菜单命令,弹出“Teardrop Options”对话框,如图12-82所 示,对话框各项功能说明见图标注。如果只对当前选中的焊盘进行补泪滴操作,可按图示 进行设置,然后单击“OK”按钮,选中的焊盘与连接导线的连接面就会加宽。 tyw藏书 图12-81 补泪滴前后的效果 图12-82 “Teardrop Options”(设置补泪滴) 手工布线完成的放大电路的PCB如图12-83所示。 tyw藏书 图12-83 手工布线完成的放大电路的PCB tyw藏书 第13章 自动设计PCB 与手工设计PCB比较,自动设计的方式更适合设计复杂的PCB,但如果采用自动的方 式设计,必须要先设计出电路原理图,再开始自动设计PCB。 13.1 基础知识 13.1.1 PCB的自动设计流程 tyw藏书 在手工设计PCB时,每个设计步骤都要手工来完成,这样比较麻烦,但由于手工设计 可以不用设计原理图而直接进行PCB的设计,所以在设计简单电路的PCB时,常采用手工 设计。对于复杂电路,一般采用自动设计的方法来设计PCB。 自动设计PCB并不是说一切设计工作都由系统来完成,而是指系统可以完成设计中的 一些重要工作,有些设计工作还需人工参与。另外,对于自动设计不满意的地方还可以人 工进行修改。自动设计PCB的设计流程如图13-1所示。 图13-1 自动设计PCB的设计流程 13.1.2 利用原理图生成网络表 如果采用自动设计的方法设计电子产品的PCB,那么首先要用原理图编辑器绘制出该 电子产品的电路原理图,然后根据原理图生成网络表,并将原理图的网络表装载进PCB编 辑器中,再让系统自动进行PCB的设计。本章以设计图13-2所示的放大电路的PCB为例来 说明PCB的自动设计方法。 tyw藏书 图13-2 放大电路原理图 在设计图13-2所示电路的PCB前,先要生成该电路的网络表。生成网络表的操作过程 如下。 ① 打开图13-2所示的放大电路原理图。 ② 选择“Design”→“Create Netlist”菜单命令,弹出图13-3所示的“Netlist Creation”对话 框,有关对话框的各项功能说明详见第10章相关内容,这里保持默认值,再单击“OK”按 钮,系统开始自动生成原理图的网络表,生成的网络表的一部分内容如图13-4所示。 tyw藏书 图13-3 “Netlist Creation”对话框(设置网络表) 图13-4 生成的网络表的一部分内容 13.2 自动设计PCB的具体方法 13.2.1 自动规划PCB tyw藏书 规划PCB主要是指设置电路板的工作层和边界。手工规划PCB在前面已经讲过,这里 介绍利用系统自带的电路板生成向导来规划电路板。 利用电路板生成向导规划电路板的操作过程如下。 ① 选择“File”→“New”菜单命令,弹出“New Document”(新建文档)对话框,切换 到“Wizards”选项卡,如图13-5所示。在该选项卡中选择“Printed Circuit Board Wizard”(PCB向导)图标,单击“OK”按钮,会弹出图13-6所示的向导对话框。 图13-5 “New Document”对话框 图13-6 向导对话框一 ② 在图13-6所示的对话框中单击“Next”按钮,弹出图13-7所示的对话框,要求选择 PCB的模板。如果要自定义PCB规格,可选择“Custom Made Board”项(默认选项),再单 击“Next”按钮,弹出图13-8所示的对话框。 tyw藏书 图13-7 向导对话框二(选择PCB模板) ③ 在图13-8所示的对话框中可按要求对PCB进行有关参数的设置,也可保持默认值, 各项功能如图标注所示。设置完成后,单击“Next”按钮,弹出图13-9所示的对话框。 ④ 在图13-9所示的对话框中可对PCB的边框长、宽进行设置。将鼠标移到长或宽数值 上,该数值马上变成文本框,可在文本框中改变边框的长、宽数值,设置完成后单 击“Next”按钮,弹出图13-10所示的对话框。 图13-8 向导对话框三(设置PCB有关参数) tyw藏书 图13-9 向导对话框四(设置PCB边框参数) tyw藏书 图13-10 向导对话框五(设置PCB 4个边角开口大小) ⑤ 在图13-10所示的对话框中可设置PCB的4 个边角的大小。将鼠标移到边角数值 时,该数值马上变成文本框,可在文本框中设置4个边角的大小,设置完成后单 击“Next”按钮,弹出图13-11所示的对话框。 ⑥ 在图13-11所示的对话框中可设置 PCB 的电气边界和物理边界(外边框)的距离, 设置完成后单击“Next”按钮,弹出图13-12所示的对话框。 tyw藏书 图13-11 向导对话框六(设置PCB电气边界与物理边界的距离) 图13-12 向导对话框七(设置标题块中的信息) ⑦ 在图13-12所示的对话框中可输入电路板的有关信息,设置完成后单击“Next”按 钮,弹出图13-13所示的对话框。 tyw藏书 图13-13 向导对话框八(设置信号层的层数等参数) ⑧ 在图13-13所示的对话框中可设置PCB中信号层的数量、类型和电源/接地层数量。 该向导不能生成单层板,最少是双层板,设置完成后单击“Next”按钮,弹出图13-14所示 的对话框。 ⑨ 在图13-14所示的对话框中可设置 PCB 的过孔类型(穿透式过孔、盲过式过孔和隐 藏式过孔)。双层板只能使用穿透式过孔,设置完成后单击“Next”按钮,弹出图13-15所 示的对话框。 tyw藏书 图13-14 向导对话框九(设置过孔类型) 图13-15 向导对话框十(设置布线技术) ⑩ 在图13-15所示的对话框中要求选择 PCB 布线技术,具体要选择的内容有:PCB 采用的表面粘贴式元件和针脚式元件哪种更多,允许PCB两焊盘之间有几根线穿过。设置 完成后单击“Next”按钮,弹出图13-16所示的对话框。 tyw藏书 图13-16 向导对话框十一(设置最小的尺寸限制) 在图13-16所示的对话框中可设置导线的尺寸、过孔内外径宽度和导线最小间距, 设置完成后单击“Next”按钮,弹出图13-17所示的对话框。 tyw藏书 图13-17 向导对话框十二(保存为模板文件) 在图13-17所示的对话框中询问是否保存当前模板,如果选中该对话框中的复选 框,则对话框中会出现两个文本框,要求输入模板的名称及该模板的说明,设置完成后单 击“Next”按钮,弹出图13-18所示的对话框。 图13-18 向导结束对话框 在图13-18所示的对话框中单击“Finish”按钮完成PCB的生成,生成并规划好的PCB 如图13-19所示。利用向导生成的电路板文件名为默认的,将文件名改成YS8.PCB。 tyw藏书 图13-19 利用向导生成并规划好的PCB 13.2.2 装载元件封装和网络表 电路板规划完成后,接下来就是在PCB编辑器中装载原理图的网络表及相关元件封 装。 1.网络表与元件封装 网络表是用来描述电路原理图的文件,是PCB设计的依据。如何来理解网络表的功能 呢?读者可以从以下几个方面来理解。 ① 网络表以文字的形式描述电路原理图,包括电路原理图所有元件和元件之间的连 接关系。图13-20所示为放大电路网络表中的一部分内容,网络表前一部分是描述元件, 表中说明的是 R3采用AXIAL0.4封装形式、标注为6k;后一部分是描述元件的连接关系, 表中说明的是R3的1脚与C2的1脚、R3的1脚和T的2脚相连。当然,这里只列出了网络表 中描述元件R3及它与其他元件的关系内容,完整的网络表会描述出原理图中所有的元件 及它们之间的连接关系。 ② 网络表是PCB自动设计的依据。在自动设计时,PCB编辑器根据网络表中各个元件 的描述,先从元件封装库中调出它们相应的元件封装,然后再根据网络表中各个元件的连 tyw藏书 接关系描述,将各个元件封装连接起来。 打个比方,一位厨师要做一道新菜,除了把菜谱(网络表)给他外,还要给他提供菜 谱中要用到的所有原料(元件封装),他才能按菜谱的说明将原料从仓库中取出来并做成 新菜。这就相当于PCB编辑器要设计新电路板,除了要网络表外,还要提供网络表中要求 的元件封装,这样PCB编辑器才能按网络表的描述,将要用到的元件封装从元件封装库中 取出来,并按网络表的说明将各元件封装连接起来,从而设计出PCB。 从上面的分析可以看出,PCB编辑器要设计某个原理图的PCB时,除了要求在PCB编 辑器装载该原理图的网络表,还要装载网络表要求的元件封装。 这里要着重说明一点:如果先设计原理图,然后生成网络表,再根据网络表来自动设 计PCB,一定要在设计原理图时设置每个元件的元件封装,否则网络表中就没有元件封装 描述内容,PCB编辑器也就无法知道调用哪个元件封装来设计电路板。 在原理图中设置元件的元件封装方法很简单,以设置图13-2所示放大电路中的电阻R3 元件封装为例,在R3上双击,弹出图13-21所示的对话框,在“Footprint”下拉列表框中输 入元件封装形式,如输入元件封装为AXIAL0.4,单击“OK”按钮就完成了元件封装形式的 设置。如果没有设置元件封装形式,则生成的网络表的元件描述就没有封装说明,也就是 说,网络表描述内容与原理图是一致的。 图13-20 网络表中的一部分内容 tyw藏书 图13-21 设置电阻R3的封装形式 2.装载元件封装库 在装载电路原理图生成的网络表前,先要在PCB编辑器中装载元件封装库,装载的元 件封装库要求包含有原理图中所有元件的元件封装。如果不知道哪个元件封装库包含原理 图所有元件的元件封装,可装载常用元件封装库,万一还不行的话,可将所有的元件封装 库装载进PCB编辑器中,编辑器会自动从装载进来的元件封装库中查找要用的元件封装, 当装入的元件封装库较多时,查找时间会长一些。 Protel 99 SE自带的常用元件封装库的位置在\Design Explorer 99 SE\Library\Pcb\中,在 Pcb文件夹中有3个文件夹:Connectors文件夹(内含多个连接元件封装库)、Generic Footprints文件夹(内含多个普通元件封装库)和IPC Footprints文件夹(内含多个IPC元件 封装库)。在这些元件封装库文件中,最常用的有Advpcb.ddb、Dc to Dc.ddb和General IC.ddb,它们都在Generic Footprints文件夹中。 图13-2所示的放大电路中所有元件的元件封装都在库文件Advpcb.ddb中,下面将它装 载进PCB编辑器中。装载元件封装库操作过程如下。 ① 打开要设计的PCB文件,如打开先前利用向导生成的YS8.PCB文件。 ② 单击主工具栏上的按钮 ,也可以选择“Design”→“Add/Remove Library”菜单命 令,还可以单击元件封装库管理器中的“Add/Remove”,都会弹出图13-22所示的“PCB Libraries”对话框。 tyw藏书 图13-22 “PCB Libraries”对话框 ③ 在图13-22所示的对话框中,先选中要加载的元件封装库文件“Advpcb.ddb”,然后 单击“Add”按钮,“Advpcb.ddb”库文件就被加入到对话框下面的列表中,单击“OK”按钮, 列表中的“Advpcb.ddb”库文件都会装载进PCB编辑器中。 3.装载网络表 下面以将网络表YS8.NET文件(由原理图文件YS8.Sch生成)装载进YS8.PCB的编辑 器中为例来说明装载网络表的方法。装载网络表的操作过程如下。 ① 打开要设计的PCB文件YS8.PCB。 ② 选择“Design”→“Load Nets”菜单命令,弹出图13-23所示的“Load/Forward Annotate Netlist”对话框,单击“Browse”按钮,弹出图13-24所示的“Select”对话框,在该对话框中可 以在当前的数据库文件中选择要装载的网络表文件。如果当前数据库中没有要装载的网络 表文件,可单击“Add”按钮去查找其他的数据库文件,选择要装载的网络表文件后单 击“OK”按钮,系统就会开始装载网络表。 tyw藏书 图13-23 “Load/Forward Annotate Netlist”对话框(装载网络表) 图13-24 “Select”对话框(选择要装载的网络表文件) 系统装载选择的网络表文件后,会回到图13-25所示的“Load/Forward Annotate Netlist”对话框,在该对话框的列表中显示有关信息,图中显示出一条出错信息“Add new component R1;Error:Footprint not found in Library”,该信息的含义是说在加载新元件R1 tyw藏书 时,元件封装库中找不到该元件封装。图13-25中的出错是因为在原理图文件YS8.Sch中没 有设置R1的元件封装,解决方法是在原理图文件YS8.Sch中设置R1 的元件封装,再重新生 成网络表,然后重新装载新的网络表,出错信息就不会出现。 图13-25 “Load/Forward Annotate Netlist”对话框(已装载网络表) 在装载网络表文件时,常会出现的出错信息有以下几种。 Net not found:找不到对应的网络。 Component not found:找不到对应的元件。 New footprint not matching old footprint:新的元件封装与旧的元件封装不一致。 Footprint not found in Library:在元件封装库中找不到对应的元件封装。 在设计过程中,如果对原理图进行了修改,那么相应地要对它的PCB电路进行修改, 一般的处理方法是将修改后的原理图重新生成网络表,再在先前设计的PCB编辑器中重新 导入新生成的网络表。在图13-25所示的对话框中的“Netlist File”文本框下面有“Delete components not in netlist”和“Update footprints”两个复选框,它们在这种情况下就会起作用。 当选中“Delete components not in netlist”复选框时,系统在装载网络表文件时,会将网络表 中的元件封装与当前 PCB 中存在的元件封装进行比较,如果 PCB 中存在的元件封装在网 络表中没有,则PCB上这些多余的元件将会被删除;如果选中“Update footprints”复选框, 在装载网络表时,系统会自动将网络表中存在的元件替换当前电路板上相同的元件的封 装。 ③ 在图13-25所示的对话框中单击“Execute”按钮,网络表就被装入当前的PCB编辑器 中,在编辑器的工作窗口的电路板上就出现了放大电路的各个元件的元件封装,不过全部 重叠在一起,如图13-26所示。 tyw藏书 图13-26 元件封装重叠在一起 4.用同步法将原理图直接生成PCB 利用同步法不用原理图生成网络表,也不用装载网络表,就可以方便、快捷地将原理 图直接生成PCB。另外,当更改原理图时,通过同步法可以让PCB也作相应的改动;反之 改动了PCB,也可以通过同步法让原理图作相应的改动。 (1)利用同步法直接由原理图生成PCB 利用同步法生成PCB的具体操作过程如下。 ① 新建一个PCB文件YS8A.PCB,或者打开一个空白PCB文件。 ② 打开原理图文件YL8.Sch,然后选择“Design”→“Updata PCB”(更新PCB)菜单命 令,弹出图13-27所示的“Synchronizer”对话框,在对话框中选择生成的PCB放置在目标文 件YS8A.PCB中,单击“Apply”按钮,会弹出图13-28所示的“Update Design”对话框。 tyw藏书 图13-27 “Synchronizer”对话框(选择目标文件) 图13-28 “UpdateDesign”对话框(设置同步参数) ③ 在图13-28所示的对话框中有以下参数设置项。 “Connectivity”选项组:用来设置原理图与PCB图之间的连接类型。 “Components”选项组:用来设置对原理图中的元件进行哪些改动。 另外,在图13-28所示对话框的左下角有个“Preview Changes”按钮,单击该按钮会弹 出列表框,可以在列表框中查看原理图进行了哪些改动。 设置完成后,通常可保持默认值,单击“Execute”按钮,系统开始根据原理图生成 PCB,生成的PCB如图13-29所示,图中的矩形方块为Room,一般不需要它,可以选中再 删掉。图13-29中的元件与元件之间有线连接,这种线并不是铜箔导线,它只是表示各个 元件之间的连接关系,称之为飞线,在设计电路板时,可以根据飞线的指示来绘制铜箔导 线。 tyw藏书 图13-29 由电路原理图直接生成的PCB (2)原理图和PCB之间的互相更新 在设计时,若对原理图进行了改动,如更改了某元件的封装形式,这时也希望PCB上 的该元件换成改动后的封装,利用同步法可以解决这个问题。操作方法是:在改动的原理 图文件中选择“Design”→“Update PCB”菜单命令,会弹出图13-27所示的“Synchronizer”对话 框,从中选择要更新的PCB文件,再按前述方法进行操作,结果就会发现PCB的相应元件 发生变化,与改动后的原理图一致。 另外,若更改了 PCB,这时希望原理图也作相应的变化,可在改动的 PCB 文件中选 择“Design”→“Update Schematic”菜单命令,会弹出与图13-27 相似的选择目标文件对话 框,从中选择要更新的原理图文件,这样原理图会随PCB发生改变,两者保持一致。 13.2.3 自动布局元件 利用网络表的方法将元件装载进 PCB 编辑器后,在电路板上会看见所有的元件全部 重叠在一起,这时可用自动布局的方法将元件分开,并自动对元件的位置进行调整,如果 仍不满意,再用手工的方法调整元件布局。 1.手工定位关键元件 自动布局是利用一定的规则对元件位置进行调整,但布局结果往往与设计者的要求差 距很大,解决这个问题的方法是:在自动布局前,先用手工的方法将一些关键元件固定在 合适的位置不动,在自动布局时,其他的元件围绕着这些元件进行布局,这样元件的布局 就比较符合设计者的要求。 手工定位关键元件的方法如下。 ① 移动元件。将鼠标移到重叠的元件上单击,弹出元件列表菜单,如图13-30(a) tyw藏书 所示,从中选择要移动的元件,鼠标马上变成光标状,这时移动光标,选中的元件也会跟 着移动,如图13-30(b)所示。在移动过程中,按Space键可以旋转元件,移到合适的位 置单击,元件就被放置下来。 图13-30 选择并移动元件 ② 定位元件。在要定位的元件上双击鼠标右键,弹出“Component”对话框,如图13-31 所示。选中“Locked”复选框,该元件就被锁定,在自动布局时就不会移动;如果想移动 它,只要取消选中“Locked”复选框即可,手工定位的元件布局如图13-32所示。 图13-31 “Component”对话框(设置元件属性) tyw藏书 图13-32 手工定位的元件布局 2.自动布局 在用手工的方法将一些关键元件定位后,接下来就是在手工定位的基础上再对元件进 行自动布局。 自动布局的操作方法如下。 ① 选择“Tools”→“Auto Placement”→“Auto Placer”菜单命令,弹出“Auto Place”对话 框,如图13-33所示,在该对话框中有两种自动布局的方式,具体如下。 图13-33 “Auto Place”对话框(集群式布局方式) “Cluster Placer”:集群式布局方式。这种方式是根据元件的连通性将元件分组,然后 让它们按照一定的几何位置进行布局。这种方式为默认布局方式,适合布局比较少的元件 (元件数少于 100个)。在该对话框下面有一个“Quick Component Placement”复选框,选中 tyw藏书 该复选框可以使布局速度快,但布局效果不是很理想。 ② 如果选择对话框中的“Statistical Placer”布局方式,对话框的内容就会变化,如图 13-34所示。这种方式称为统计式布局方式,它采用统计算法,按照连线最短的原则进行 布线,最适合元件数量较多的布局。 图13-34 “Auto Place”对话框(统计式布局方式) 在该对话框中有以下几项。 “Group Components”复选框:若选中该复选框,则布局时将当前网络中连接密切的元 件合为一组整体考虑。如果电路板面积小,一般不要选中该复选框。 “Rotate Components”复选框:若选中该复选框,则布局时会根据需要旋转元件。 “Power Nets”文本框:在该文本框中输入的网络名称不会被布局,这样可以缩短自动 布局的时间。电源网络一般属于这种网络。 “Ground Nets”文本框:该文本框的含义同上,可以在文本框中输入接地网络名称。 “Grid Size”文本框:用来设置布局时的栅格间距,默认为“20mil”。 ③ 由于当前布局的元件少,故选择“Cluster Placer”(集群式布局方式),然后单 击“OK”按钮,系统就开始对元件进行自动布局。布局需要一定的时间,如果想停止正在 进行的自动布局,可选择“Tools”→“Auto Placement”→“Stop Auto Placer”菜单命令。自动布 局的结果如图13-35所示。 tyw藏书 图13-35 自动布局的结果 13.2.4 手工调整布局 自动布局元件后,可能有些地方并不完全符合设计要求,特别是元件的标注排列很 乱,这时可以通过手工的方法来调整某些元件的布局。手工调整元件布局主要是对元件及 其标注进行选取、移动、旋转和排列等操作。手工调整后的元件布局如图13-36所示。 tyw藏书 图13-36 手工调整后的元件布局 13.2.5 自动布线 元件布局完成后,接下来就是按飞线指示的连接关系用铜箔导线将元件连接起来,这 个过程称为布线。在自动布线前,先要设置自动布线的规则,在布线时系统会根据设置的 规则来进行自动布线。 1.设置自动布线规则 设置自动布线规则的操作方法如下。 第1步:打开自动布线规则对话框。 在已布局好元件的PCB编辑器中选择“Design”→“Rules”菜单命令,会弹出图13-37所示 的“Design Rules”(设计规则)对话框,在该对话框中有6个选项卡,可以进行六大类规则 的设置。布线规则设置主要在“Routing”选项卡中进行。 tyw藏书 图13-37 “Design Rules”对话框 第2步:进行布线规则设置。 设置内容在“Rule Classes”选项组中,在该选项组内可进行以下各项设置。 (1)“Clearance Constraint”(安全间距)的设置 安全间距是指同一个工作层上的导线、焊盘、过孔等之间的最小间距。单击“Design Rules”对话框右下角的“Properties”按钮,会弹出“Clearance Rule”对话框,如图13-38所 示,该对话框的设置内容有以下两项。 tyw藏书 图13-38 “Clearance Rule”对话框(设置安全间距) “Rule scope”(规则适用范围)选项组:一般情况下可设置规则适用于Whole Board(整个电路板)。 “Rule Attributes”(规则属性)选项组:用来设置最小间距的数值及所适用的网络,这 里输入数值为“10mil”,适用范围有“Different Nets Only”(不同网络)、“Same Net Only”(同一网络)和“Any Net”(任何网络),这里保持默认选择“Different Nets Only”。 设置完成后单击“OK”按钮,返回到图13-37所示的“Design Rules”对话框。 (2)“Routing Corners”(布线的拐角模式)的设置 “Routing Corners”项主要是设置布线时拐角的形状、拐角垂直距离最小值及最大值。 在“Design Rules”对话框中选择“Routing Corners”选项,然后单击对话框右下角 的“Properties”按钮,会弹出图13-39所示的“Routing Corners Rule”对话框,该对话框的设置 内容有以下两项。 tyw藏书 图13-39 “Routing Corners Rule”对话框(设置布线拐角模式) “Rule scope”选项组:一般情况下可设置规则适用于Whole Board。 “Rule Attributes”选项组:用来设置拐角的类型。在“Style”下拉列表框中有3种类型的 拐角:“45 Degrees”(45°拐角)、“90 Degrees”(90°拐角)和圆角,默认为“45 Degrees”, 拐角垂直距离最小和最大值均为“100mil”。 (3)“Routing Layers”(布线工作层)的设置 “Routing Layers”项用来设置布线的工作层和在该层上的布线方向。在“Design Rules”对 话框中选择“Routing Layers”选项,然后单击对话框右下角的“Properties”按钮,会弹出图 13-40所示的“Routing Layers Rule”对话框,该对话框的设置内容有以下两项。 tyw藏书 图13-40 “Routing Layers Rule”对话框(设置布线工作层) “Rule Scope”选项组:一般情况下可设置规则适用于Whole Board。 “Rule Attributes”选项组:用来设置工作层和布线的方向。由于在当前的电路板中只设 置顶层和底层为布线层,所以在对话框中的32个工作层只有顶层和底层有效,在顶层和底 层下拉列表框中可以选择布线的方向,布线方向主要有“Horizontal”(水平方 向)、“Vertical”(垂直方向)、“Any”(任何方向)等共10种。为了尽量减小布线形成的 分布电容,一般要求顶层和底层布线方向相互垂直。另外,如果是单面板,可将顶层布线 设为“Not Used”,底层布线设为“Any”。 (4)“Routing Priority”(布线优先级)的设置 “Routing Priority”项用来设置各布线网络的先后顺序。系统提供了0~100共101个级 别,数字大的优先级别高。在“Design Rules”对话框中选择“Routing Priority”选项,然后单 击对话框右下角的“Properties”按钮,会弹出图13-41所示的“Routing Priority Rule”对话框, 可在“Rule Attributes”选项组中的“Routing Priority”微调框中设置优先级别。 (5)“Routing Topology”(布线拓扑结构)的设置 “Routing Topology”项用来设置布线的拓扑结构。这里的拓扑结构是指以焊盘为点,以 连接各焊盘的导线为线构成的几何图形。在“Design Rules”对话框中选择“Routing Topology”选项,然后单击对话框右下角的“Properties”按钮,会弹出图13-42所示的“Routing Topology Rule”对话框,在“Rule Attributes”选项组的下拉列表框中可以选择布线的拓扑结 构。供选择的拓扑结构有“Shortest”(连线最短)、“Horizontal”(水平连 线)、“Vertical”(垂直连线)等7种。默认拓扑结构为“Shortest”。 tyw藏书 图13-41 “Routing Priority Rule”对话框(设置布线优先级) 图13-42 “Routing Topology Rule”对话框(设置布线拓扑结构) (6)“Routing Via Style”(过孔类型)的设置 “Routing Via Style”项用来设置过孔的类型。在“Design Rules”对话框中选择“Routing Via Style”选项,然后单击对话框右下角的“Properties”按钮,会弹出图13-43所示的“Routing Via-Style Rule”对话框,在“Rule Attributes”选项组中的“Via Diameter”项 的“Min”、“Max”和“Preferred”文本框中分别输入过孔外径的最小值、最大值和首选 值;“Via Hole Size”项用于设置过孔内径的各项值。 tyw藏书 图13-43 “Routing Via-Style Rule”对话框(设置过孔类型) (7)“Width Constraint”(布线宽度)的设置 “Width Constraint”项用来设置布线的导线宽度。在“Design Rules”对话框中选择“Width Constraint”选项,然后单击对话框右下角的“Properties”按钮,会弹出图13-44所示的“MaxMin Width Rule”对话框,在“Rule Attributes”选项组中可分别设置导线的“Minimum Width”(最小宽度值)、“Maximum Width”(最大宽度值)和“Preferred Width”(首选宽度 值)。 tyw藏书 图13-44 “Max-Min Width Rule”对话框(设置布线宽度) 另外在“Design Rules”对话框中还有以下选项。 “SMD Neck-Down Constraint”:该项用来设置SMD焊盘宽度与引出导线的宽度的百分 比。 “SMD To Corner Constraint”:该项用来设置SMD焊盘走线拐弯处的约束距离。 “SMD To Plane Constraint”:该项用来设置SMD到电源/接地层的限制距离。 2.进行自动布线 布线规则设置完成后,就可以开始进行自动布线了。进行自动布线的操作方法是:选 择“AutoRoute”菜单命令,会出现图13-45所示的菜单,菜单中列出了各种与布线有关的命 令,各命令的功能见图标注说明。 tyw藏书 图13-45 “Auto Route”菜单下的各种布线命令 (1)全局布线(All) 全局布线是对整个电路板进行布线。全局布线的操作过程如下。 ① 选择“Auto Route”→“All”菜单命令,弹出“Autorouter Setup”对话框,如图13-46所 示。 ② 在图13-46所示的对话框中一般保持默认值。默认只有3个复选框没被选中,这3个 复选框的含义说明如下。 “Evenly Space Tracks”:如果选中该复选框,当集成电路的焊盘 只有一条走线通过时,会让走线从焊盘间距的中间通过。 tyw藏书 图13-46 “Autorouter Setup”对话框(设置自动布线) “Add Testpoints”:如果选中该复选框,将为电路板的每条网络线都加一个测试点。 “Lock All Pre-routes”:如果选中该复选框,在自动布线时,可以保留所有的预布线。 ③ 在对话框中设置完毕后单击“Route All”按钮,系统开始对整个电路板进行布线,布 线结束后会弹出“Design Explorer Information”对话框,如图13-47所示,在该对话框中显示 布线的有关信息,如布通率、完成布线的条数、没有完成的布线条数和布线所花的时间。 电路板进行全局布线的结果如图13-48所示。 图13-47 “Design Explorer Information”对话框(布线信息) tyw藏书 图13-48 全局布线完成的PCB (2)对选中的网络进行布线(Net) 自动布线不但可以对整个电路板进行布线,也可对选中的网络进行布线。对选中的网 络进行布线的操作过程如下。 选择“Auto Route”→“Net”菜单命令,鼠标变成光标状,将光标移到某条飞线上单击, 就会对飞线所在的网络进行布线,布线结果如图13-49所示。 tyw藏书 图13-49 对选中的网络进行布线 (3)对选中的飞线进行布线(Connection) 对选中的飞线进行布线的操作过程如下。 选择“Auto Route”→“Connection”菜单命令,鼠标变成光标状,将光标移到某条飞线上 单击,就会对这条飞线进行布线,布线结果如图13-50所示。 (4)对选中的元件进行布线(Component) 对选中的元件进行布线的操作过程如下。 选择“Auto Route”→“Component”菜单命令,鼠标变成光标状,将光标移到某个元件 上,如移到三极管T上,单击,就会对与这个元件相连的所有飞线进行布线,布线结果如 图13-51所示。 tyw藏书 图13-50 对选中的飞线进行布线 图13-51 对选中的元件进行布线 (5)对选中的区域进行布线(Area) tyw藏书 对选中的区域进行布线的操作过程如下。 选择“Auto Route”→“Area”菜单命令,鼠标变成光标状,用光标拉出一个矩形选区, 将要布线的部分包括在内部,如将 R1、R3 包括在选区内,再单击,系统就会对选中区域 内的对象进行布线,布线结果如图13-52所示。 图13-52 对选中的区域进行布线 自动布线时,如果是比较简单的电路,布线的布通率一般可以达到100%,如果没有 达到100%,要找出原因,再单击主工具栏上的按钮 ,或者按Alt+Backspace键,撤销先 前的布线,也可以按后面讲的方法拆除布线,然后重新布线,如果只有少数几条线没布 通,也可采用手工布通的方法。 13.2.6 手工调整布线 对电路板进行自动布线后,有些地方不是很令人满意,这时就需要进行手工调整布 线。 1.拆除布线 如果觉得自动布线过程中某些地方不理想,可先将自动布线拆除,再用手工的方法进 行布线。拆除布线有4个命令,它们都在“Tools”→“Un-Route”菜单下,这4个命令功能的说 明如下。 tyw藏书 ① “All”:用来拆除电路板上所有的导线。当执行该命令时,系统会弹出图13-53所示 的“Confirm”对话框,询问是否将被锁定的导线一起拆除,如果单击“Yes”按钮,将会拆除 电路板上所有的导线;如果单击“No”按钮,将保留被锁定的导线而拆除其他的导线。注 意:要将某条导线设为锁定,只要在该导线上双击,在弹出的属性设置对话框中选 中“Locked”复选框即可。 图13-53 “Confirm”对话框 ② “Net”:用来拆除指定网络的导线。当选择该命令时,鼠标会变成光标状,将光标 移到某网络的导线上单击,该网络所有的导线就会被拆除。 ③ “Connection”:用来拆除指定的导线。 ④ “Component”:用来拆除与指定元件相连的所有导线。 拆除导线后,单击“Placement Tools”工具栏(放置工具栏)中的按钮 ,或者选 择“Place”→“Interactive Routing”菜单命令,就可以用手工的方法绘制导线。 2.添加电源/接地和信号输入/输出端 一个电路板要想工作需要通过电源/接地端提供电源,有的电路板还需要通过输入/输 出端接收输入信号和输出信号,这些自动布线是无法完成的,通常用手工的方法添加这些 端子。添加端子有两种常用的方法:添加焊盘端子和添加接插件端子。 (1)添加焊盘端子 添加焊盘端子的操作过程如下。 ① 放置焊盘。在电路板合适的位置放置4个焊盘,如图13-54所示。 ② 设置焊盘所属的网络。在某个焊盘上双击,如双击 R1 旁边的焊盘,弹出“Pad”对 话框,如图13-55所示。切换到“Advanced”选项卡,再从“Net”下拉列表框中选择焊盘所属 的网络,这里选择所属网络为“+12V”,即设焊盘属于电源网络,然后单击“OK”按钮,焊 盘上马上出现一条飞线与电路板上的电源网络相连(与R1、R3相连)。用同样的方法将 其他3个焊盘所属的网络分别设为“GND”、“IN”、“OUT”,设置好后,这3个焊盘都会出现 飞线与所属网络相连。 tyw藏书 图13-54 在PCB上放置4个焊盘 图13-55 “Pad”对话框(设置焊盘属性) tyw藏书 ③ 自动布线。选择“Auto Route”→“Connection”菜单命令,鼠标变成光标状,将光标分 别移到与4个焊盘相连的飞线上单击,焊盘和所属网络就连上导线。如果觉得这样比较麻 烦,可选择“Auto Route”→“All”菜单命令,对整个电路板进行重新自动布线,4个焊盘同 时也被布线连接起来,如图13-56所示。 图13-56 4个焊盘被布线 (2)添加接插件端子 在实际生产中,焊盘端子需要先焊接导线,再与其他电路板或设备相连,如果焊盘端 子比较多,这样就很不方便。给电路板添加接插件端子可以很好地解决这个问题。下面以 给电路板添加4个引脚的接插件为例来说明,添加接插件端子的操作过程如下。 ① 放置接插件。在电路板合适的位置放置4个引脚的接插件,并将其标注设置为JP, 如图13-57所示。 ② 设置接插件每个引脚所属的网络。在接插件的某个引脚上双击,如双击最上面的 一个引脚,弹出如图13-55所示的对话框,切换到“Advanced”选项卡,再从“Net”下拉列表 框中选择焊盘所属的网络,这里选择所属网络为“+12V”,即设引脚属于电源网络,然后 单击“OK”按钮,引脚上马上出现一条飞线与电路板上的电源网络相连。用同样的方法将 其他3个引脚所属的网络分别设为“GND”、“IN”、“OUT”,设置好后,这3个引脚都出现飞 线与所属网络相连。 ③ 自动布线。选择“Auto Route”→“All”菜单命令,对整个电路板进行重新自动布线, 接插件的4个引脚同时也被布线连接起来,如图13-58所示。 tyw藏书 图13-57 在PCB上放置4个引脚的接插件 tyw藏书 图13-58 接插件的4个引脚被布线 添加接插件端子除了可以用上面的方法外,还可以用网络表管理器来完成。用网络表 管理器添加接插件端子的操作过程如下。 ① 放置接插件。在电路板上放置图13-57所示的4个引脚的接插件,将标注改为JP、 4Pin。 ② 设置网络表管理器。选择“Design”→“Netlist Manager”菜单命令,弹出“Netlist Manager”对话框,如图13-59所示,左边是网络类列表框,中间是网络列表框,右边列表 框中列出了网络中包含的元件名称,图中显示的意思是说“R1-2”、“R3-2”属于“+12V”网 络,也可以说与“+12V”网络相连的有R1的2脚、R3的2脚。 如果要将接插件JP的1脚与“+12V”网络相连,可选择中间列表框中的“+12V”网络,然 后单击下面的“Edit”按钮,弹出图13-60所示的“Edit Net”对话框。在对话框左边的列表中 选择“4Pin-1”(接插件的 1 脚),单击图示的右移按钮,“4Pin-1”就会被加到右边的列表 框中,再单击“OK”按钮就将“4Pin-1”加到“+12V”网络中,并且关闭当前的对话框,返回到 图13-59所示的对话框。 tyw藏书 图13-59 “Netlist Manager”对话框(网络表管理器) 图13-60 “Edit Net”对话框(编辑网络) 在图13-59所示的对话框中用同样的方法将4Pin-2、4Pin-3、4Pin-4分别加 到“GND”、“IN”、“OUT”网络中,设置完成后,单击“Close”按钮关闭“Netlist Manager”对 话框,结果会发现电路板上接插件的4个引脚分别有飞线与相应的网络相连。 ③ 自动布线。选择“Auto Route”→“All”菜单命令,对整个电路板进行重新自动布线, 接插件的4个引脚同时也被导线连接起来,布局结果与图13-58所示的一样。 3.加宽电源/接地线 在工作时,电路板上的电源线和接地线流过的电流比较大,为了更好地散热和防止大 电流烧坏电源线和接地线,通常要对电源线和接地线进行加宽,但一般的自动布线方法不 tyw藏书 会自动加宽电源线和接地线。加宽电源线和接地线可以采用两种方法:一是通过设置自动 布线规则来加宽导线,二是通过设置导线的属性来加宽导线。 (1)设置自动布线规则来加宽导线 通过设置自动布线规则加宽导线的操作过程如下。 ① 选择“Design”→“Rules”菜单命令,弹出“Design Rules”对话框,如图13-61所示。 在“Routing”选项卡的“Rule Classes”选项组中选择“Width Constraint”(布线宽度)项,再单 击“Add”按钮,马上弹出图13-62所示的“Max-Min Width Rule”(最大-最小宽度规则)对话 框。 图13-61 “Design Rules”对话框(设置布线规则) tyw藏书 图13-62 “Max-Min Width Rule”对话框(设置最大-最小宽度规则) ② 在“Filter kind”下拉列表框中选择“Net”选项,在“Net”下拉列表框中选择“+12V”选 项,再在“Rule Attributes”选项组中将“Minimum Width”、“Maximum Width”、“Preferred Width”3项都设为“30mil”,然后单击“OK”按钮,关闭当前的对话框,返回到图13-61所示 的对话框,在对话框下面的列表中增加了图13-63所示的线宽设置项。再单击对话框中 的“Add”按钮,用同样的方法设置接地线的线宽。 图13-63 增加的线宽设置项 ③ 选择“Auto Route”→“All”菜单命令,对电路板进行重新自动布线,电路板上的电源 线和接地线都被加宽,布局结果如图13-64所示。 (2)设置导线的属性来加宽导线 通过设置导线的属性来加宽导线的操作过程如下。 ① 在要加宽的+12V电源导线上双击,弹出“Track”对话框,如图13-65所示,单 击“Global”按钮,展开更详细的设置内容,同时“Global”按钮也变成了“Local”按钮。 ② 在图13-65所示的对话框中将“Width”项设置为“30mil”,将“Attributes To Match By”选项组中的“Net”项设置为“Same”,选中“Copy Attributes”选项组中的“Width”复选框, 再单击“OK”按钮,弹出图13-66所示“Confirm”对话框。如果单击“Yes”按钮,将加宽所有 与+12V电源相连的导线;如果单击“No”按钮,则只加宽当前选中的导线,这里单 击“Yes”按钮,电路板上的电源线被加宽,如图13-67所示。 tyw藏书 图13-64 加宽电源线和接地线的PCB 图13-65 “Track”对话框(设置导线属性) 图13-66 询问对话框 tyw藏书 图13-67 加宽了电源线的PCB ③ 在电路板的接地线上双击,弹出与图13-65相同的导线属性设置对话框,再用同样 的方法对接地线进行加宽设置。 4.调整和添加文字标注 如果在手工调整元件布局时,没有对电路板上的文字标注进行调整,可现在进行调 整。调整文字标注主要是对标注文字进行移动、旋转、删除和更改标注内容等,这些调整 方法在前面已经介绍过,这里不再叙述。下面通过给接插件加标注来说明如何在电路板上 添加标注内容,添加标注内容的操作过程如下。 ① 单击工作窗口下方的“TopOverlay”(顶层丝印层)标签,切换到该层。 ② 单击“Placement Tools”工具栏上的按钮 ,可以开始放置文字标注。在放置过程 中,按Tab键,弹出属性设置对话框,在“Text”文本框中输入“+12V”,其他项可保持默认 值,也可自行设置,设置好后在接插件第1个引脚旁单击,就在该脚放置“+12V”文字标 注。再用同样的方法在接插件的2、3、4脚分别放置“GND”、“IN”、“OUT”文字标注。放 置好的文字标注如图13-68所示。 tyw藏书 图13-68 放置好的文字标注 5.放置固定螺孔 为了固定电路板,一般要在电路板上钻出螺孔,螺孔与过孔、焊盘是不同的,它一般 不用涂导电层。放置固定螺孔通常采用放置焊盘的方式,放置螺孔的操作过程如下。 ① 单击“Placement Tools”工具栏上的按钮 ,开始放置焊盘,在放置时按Tab键,弹 出图13-69所示的“Pad”对话框。 ② 在图13-69所示的对话框中将“X-Size”、“Y-Size”和“Hole Size”项都设为一样大,这 样设置的目的是让焊盘呈圆形,并且取消焊盘口铜箔。另外,切换到对话框中 的“Advanced”选项卡,取消该选项卡中对复选框“Plated”的选取,即去掉焊盘通孔壁上的 电镀层,再单击“OK”按钮,退出设置。 ③ 将鼠标(跟随着焊盘)移到要放置螺孔的位置单击,就放置了一个螺孔,用同样 的方法在其他位置放置螺孔。放置好螺孔的PCB如图13-70所示。 tyw藏书 图13-69 “Pad”对话框(设置焊盘属性) 图13-70 放置好螺孔的PCB 13.3 PCB的显示 在设计电路板时,各个工作层同时显示出来,系统以不同的颜ty色w来藏区分书不同的层,如 果电路板上的元件很多,各工作层的对象同时显示出来,查看很不方便。因此,系统提供 了一些特殊的显示模式,常用的有单层显示模式和三维显示模式。 13.3.1 单层显示模式 单层显示模式可以单独显示电路板的各个工作层。让 PCB 工作层单独显示的操作过 程如下。 ① 选择“Tools”→“Preferences”菜单命令,将弹出的对话框切换到“Display option”选项 卡,然后选中“Single Layer Mode”(单层显示模式)项,再单击“OK”按钮关闭对话框。 ② 单击PCB编辑器工作窗口下方的工作层标签“TopLayer”(顶 层)、“BottomLayer”(底层)、“TopOverlay”(顶层丝印层)和“MultiLayer”(多层),就 可以查看各工作层单独显示的内容,图13-71所示就是几个层单独显示的内容。 tyw藏书 图13-71 几个层单独显示的内容 13.3.2 三维显示模式 三维显示模式简称 3D 显示模式,它能将设计的电路板以三维的形式显示出来,让设 计者能看到接近实际效果的电路板。让PCB进行三维显示的操作过程如下。 ① 选择“View”→“Board 3D”菜单命令,或者单击主工具栏上的按钮 ,在工作窗口 就会生成电路板的三维图,如图13-72所示。 tyw藏书 图13-72 三维显示的电路板 ② 按PgUp键或主工具栏上的放大按钮,可放大三维图;按PgDn键或主工具栏上的缩 小按钮,可缩小三维图;按下鼠标右键,鼠标变成手状,移动鼠标可移动三维图;按End 键可刷新三维图。 ③ 另外,将PCB编辑器右边的设计管理器切换到“Browse PCB 3D”选项卡,也可以对 三维图进行操作。 在“Brower Nets”列表框中选择“+12V”选项,再单击“HighLight”(高亮)按钮,三维图 中的“+12V”网络线就会高亮显示,如图13-73所示,要去除高亮显示,只要单击“Clear”按 钮即可。 在“Display”选项组中取消选中“Components”(元件)复选框,三维图中的元件将不会 显示出来,如图13-74所示。“Silkscreen”意为丝印,“Copper”意为铜箔导线,“Text”意为文 字,取消选中这3个复选框后,三维图中相应的部分将不会显示。 tyw藏书 图13-73 高亮显示网络线的三维图 图13-74 去掉元件显示的三维图 tyw藏书 如果取消选中“Wire Frame”复选框,三维图将以空心线显示,如图13-75所示。 将鼠标移到设计管理器的底部小窗口中,鼠标会变成有箭头的十字形,按下左键移动 鼠标,工作窗口中的三维图将会旋转,如图13-76所示。 图13-75 空心显示的三维图 tyw藏书 图13-76 旋转三维图 13.4 PCB报表的生成及PCB的打印 电路板设计完成后,如果想知道电路板的有关信息,可让PCBt编yw辑器藏生书成各种报表, 在这些报表中会显示出电路板的各种信息。选择“Reports”菜单下的有关命令,可生成相应 的报表。 13.4.1 引脚报表的生成 引脚报表的功能是将电路板选中对象的引脚信息列举出来。生成引脚报表的操作过程 如下。 ① 打开要生成引脚报表的PCB文件,如打开YS8.PCB文件,在电路板上选中要生成引 脚信息的对象R1和R3,然后选择“Reports”→“Selected Pins”菜单命令,弹出图13-77所示 的“Selected Pins”对话框。 ② 在图13-77所示的对话框中列出了选中对象的引脚信息。单击“OK”按钮,系统开始 生成扩展名为.DMP的引脚报表文件,并自动打开,打开的引脚报表文件如图13-78所示。 从图13-78中可以看出,R1、R3的引脚信息也在报表中列了出来。 图13-77 “Selected Pins”对话框(选择引脚) 图13-78 生成的引脚报表 13.4.2 电路板信息报表的生成 电路板信息报表能将电路板完整的信息列举出来,如列举电路板的尺寸、焊点过孔的 数量及元件的标号等信息。生成电路板信息报表的操作过程如下。 tyw藏书 ① 打开要生成电路板信息报表的PCB文件,然后选择“Reports”→“Board Information”菜单命令,弹出图13-79所示的“PCB Information”对话框。对话框中有如下3个 选项卡。 “General”选项卡:主要是显示电路板的一般信息,如电路板的大小、电路板各种对 象的数量和违反设计规则的数量等。 “Components”选项卡:主要显示当前电路板上元件的序号及元件所在的层等信息。 “Nets”选项卡:主要显示当前电路板的网络信息。 ② 在图13-79所示的对话框中单击“Report”按钮,会弹出图13-80所示的“Board Report”对话框,在该对话框中可以选择要生成报表的项目。如果要选中所有的项,可单 击“All On”按钮;如果不选任何项,可单击“All Off”按钮;如果选中“Selected objects only”复选框,则只生成所选对象的电路板信息报表。 图13-79 “PCB Information”对话框(PCB信息) tyw藏书 图13-80 “Board Report”对话框(PCB信息报表) ③ 单击图13-80所示对话框中的“Report”按钮,系统开始生成扩展名为.REP的电路板 信息报表,如图13-81所示,报表内容很多,图中只显示了其中的一部分。 图13-81 生成的PCB信息报表 13.4.3 网络状态报表的生成 网络状态报表的功能是列出电路板中每一条网络的长度。生成ty网w络藏状态书报表的操作过 程如下。 打开要生成网络状态报表的PCB文件,然后选择“Reports”→“Netlist Status”菜单命令, 系统马上开始生成网络状态报表并自动打开,如图13-82所示,网络状态报表扩展名也 为.REP。 13.4.4 设计层次报表的生成 设计层次报表的功能是显示当前数据库文件的组成结构。生成设计层次报表的操作过 程如下。 打开某个数据库文件中的一个PCB文件,然后选择“Reports”→“Design Hierarchy”菜单 命令,系统马上开始生成设计层次报表并自动打开,如图13-83所示,设计层次报表扩展 名为.REP。 图13-82 生成的网络状态报表 图13-83 生成的设计层次报表 13.4.5 NC钻孔报表的生成 NC 钻孔报表的功能是列出电路板的钻孔资料,该资料可直接t用y于w数藏控书钻孔机。生成 NC 钻孔报表的操作过程如下。 ① 打开要生成NC钻孔报表的PCB文件,然后选择“File”→“New”菜单命令,弹出图 13-84所示的“New Document”对话框,选择“CAM output Configure”(辅助制造输出文 件),然后单击“OK”按钮,弹出图13-85所示的对话框。 图13-84 “New Document”对话框(新建辅助制造输出文件) 图13-85 “Choose PCB”对话框 ② 在图13-85所示的对话框中选择要生成NC钻孔报表的PCB文件,单击“OK”按钮, 弹出图13-86所示的报表生成向导对话框,单击“Next”按钮,弹出生成文件类型对话框, 如图13-87所示。 tyw藏书 图13-86 报表生成向导对话框一 图13-87 报表生成向导对话框二(选择生成的文件类型) ③ 在图13-87所示对话框中选择“NC Drill”类型,单击“Next”按钮,弹出图13-88所示 的对话框,要求输入生成报表的文件名,在此输入文件名“NC Drill YS8”,再单 击“Next”按钮,会弹出下一个对话框,如图13-89所示。 tyw藏书 图13-88 报表生成向导对话框三(设置报表的文件名) 图13-89 报表生成向导对话框四(选择单位和单位格式) ④ 在图13-89所示的对话框中可以选择单位“Inches”或“Millimeters”,还可以选择单位 的格式“2∶3”(分辨率为1mil)、“2∶4”(分辨率为0.1mil)和“2∶5”(分辨率为 0.01mil)。选择好后再单击“Next”按钮,弹出结束向导对话框,如图13-90所示。单 击“Finish”按钮,系统自动生成辅助制造管理文件“CAMManager1.cam”,如图13-91所示, 该文件下只有一个“NC Drill YS8”报表,此时还不能查看报表的内容。 tyw藏书 图13-90 结束向导对话框 图13-91 生成的辅助制造管理文件 ⑤ 打开“CAMManager1.cam”文件,然后选择“Tools”→“Generate CAM File”菜单命令, 系统会自动新建一个“CAM for YS8”文件夹,该文件夹下通常有3个文件,如图13-92所 示。其中, YS8.DRR和YS8.TXT文件可以打开,打开的YS8.TXT文件如图13-93所示,打 开的YS8.DRR文件如图13-94所示。YS8.TXT文件内的文本为NC钻孔程序。 图13-92 CAM for YS8文件夹下的3个文件 tyw藏书 图13-93 YS8.TXT文件中的内容 图13-94 YS8.DRR文件中的内容 13.4.6 元件报表的生成 元件报表的功能是列出一个电路板或一个项目所有元件的清单。对于简单的电路板可 以不用生成元件报表,但对于复杂的电路板,通过查看元件报表可以很方便地了解整个电 tyw藏书 路板的元件信息。生成元件报表与生成NC钻孔报表的一些操作步骤相同,具体操作过程 如下。 ① 打开要生成元件报表的PCB文件,然后选择“File”→“New”菜单命令,弹出图13-84 所示的对话框,选择“CAM output configure”(辅助制造输出文件),然后单击“OK”按钮, 弹出图13-85所示的对话框。 ② 在图13-85所示的对话框中选择要生成元件报表的PCB文件,单击“OK”按钮,弹出 图13-86所示的对话框,单击“Next”按钮,弹出选择生成文件类型对话框,如图13-95所 示。 图13-95 选择生成文件类型 ③ 在图13-95所示对话框中选择“Bom”类型,单击“Next”按钮,弹出图13-96所示的对 话框,要求输入生成报表的文件名,这里输入文件名“BomYS8”,再单击“Next”按钮,会 弹出下一个对话框,如图13-97所示。 tyw藏书 图13-96 设置生成的报表文件名 图13-97 选择生成报表的格式 ④ 在图13-97所示的对话框中有3个复选框:“Spreadsheet”(电子表格格 式)、“Text”(文本格式)和“CSV”(字符串格式),默认为“Spreadsheet”格式,单 击“Next”按钮,弹出图13-98所示的对话框,该对话框中有以下两项。 “List”单选按钮:当选中该单选按钮时,将电路板上所有元件进行列表,并且每个元 件占一行,所有元件按顺序由上向下排列。 “Group”单选按钮:当选中该单选按钮时,将电路板上具有相同元件封装和名称的元 件作为一组进行列表,第1组占一行。 系统默认选中“List”单选按钮,单击“Next”按钮,弹出图13-99所示的对话框。 tyw藏书 图13-98 选择报表的列表形式 图13-99 设置元件排序的依据及要显示的内容并结束 ⑤ 在图13-99所示对话框的下拉列表框中选择元件排序的依据,默认为“Comment”, 这样会根据元件的名称来对元件进行排序。下面3个复选框用于选择元件报表要显示的内 容,选择后单击“Finish”按钮,系统会自动生成系统辅助制造管理文 件“CAMManager2.cam”,如图13-100所示,该文件下只有一个“Bom YS8”报表,此时还不 能查看报表的内容。 图13-100 生成辅助制造管理文件 ⑥ 打开“CAMManager2.cam”文件,然后选择“Tools”→“Generate CAM File”菜单命令, 系统会自动新建一个“CAM for YS8”文件夹,该文件夹下有两个文件,如图13-101所 tyw藏书 示,“BOM forYS8.bom”就是元件报表文件,双击该文件打开,打开的元件报表文件如图 13-102所示。 图13-101 CAM for YS8文件夹中的文件 图13-102 打开的元件报表文件 13.4.7 电路特性报表的生成 电路特性报表的功能是显示电路板上一些有关元件电气特性方面的信息。生成电路特 性报表的操作过程如下。 打开要生成电路特性报表的 PCB 文件,然后选择“Reports”→“Signal Integrity”菜单命 令,系统马上开始生成电路特性报表并自动打开,如图13-103所示,电路特性报表扩展名 为.SIG。 tyw藏书 图13-103 生成的电路特性报表 13.4.8 元件位置报表的生成 元件位置报表的功能是显示元件之间的距离、元件的位置布置是否合理等信息。生成 元件位置报表与生成钻孔报表的一些操作步骤相同,具体操作过程如下。 ① 打开要生成元件位置报表的PCB文件,然后选择“File”→“New”菜单命令,弹出图 13-84所示的对话框,选择“CAM output configure”(辅助制造输出文件),然后单 击“OK”按钮,弹出图13-85所示的对话框。 ② 在图13-85所示的对话框中选择要生成元件位置报表的PCB文件,单击“OK”按钮, 弹出图13-86所示的对话框,单击“Next”按钮,又弹出选择生成文件类型对话框,如图13104所示。 tyw藏书 图13-104 选择生成文件类型 ③ 在图13-104所示的对话框中选择“Pick Place”类型,单击“Next”按钮,弹出图13-105 所示的对话框,要求输入生成报表的文件名,这里输入文件名“Pick Place YS8”,再单 击“Next”按钮,会弹出下一个对话框,如图13-106所示。 图13-105 设置生成报表的文件名 tyw藏书 图13-106 选择生成报表的形式 ④ 在图13-106所示的对话框中有3个复选框:“Spreadsheet”(电子表格格 式)、“CSV”(字符串格式)和“Text”(文本格式),默认为“Text”格式。单击“Next”按 钮,弹出图13-107所示的对话框,在该对话框中可以选择单位“Imperial”或“Metric”,再单 击“Finish”按钮,系统会自动生成系统辅助制造管理文件“CAMManager3.cam”,如图13108所示,该文件下有一个“Pick PlaceYS8”报表,此时还不能查看报表的内容。 图13-107 选择单位并结束 图13-108 生成的辅助制造管理文件 ⑤ 打开“CAMManager3.cam”文件,然后选择“Tools”→“Generate CAM File”菜单命令, 系统会自动新建一个“CAM for YS8”文件夹,该文件夹下有两个文件,如图13-109所示。 tyw藏书 其中,“Pick Place for YS8.txt”就是元件位置报表文件,双击该文件打开,打开的元件位置 报表文件如图13-110所示。 图13-109 CAM for YS8文件夹中的文件 图13-110 打开的元件位置报表文件 13.4.9 PCB的打印 PCB 设计完成后,有时需要将它打印出来。在打印 PCB 时要对打印机进行有关设 置,如打印机类型、纸张的大小和方向等,然后再进行打印。PCB的打印操作过程如下。 (1)预览打印效果 打开要打印的PCB文件,如打开“YS8.PCB”文件,然后选择“File”→“Print/Preview”菜 单命令,系统马上生成一个打印预览文件“Preview YS8.PPC”,并且该文件自动打开,在 工作窗口可以看见打印效果。 (2)打印设置 如果对预览打印效果不满意,可进行打印设置,方法是:选择“File”→“Setup Printer”菜单命令,弹出“PCB Print Options”对话框,如图13-111所示,可以在该对话框中 进行各种打印设置。“PCB Print Options”对话框中有关项的功能说明如下。 tyw藏书 图13-111 “PCB Print Options”对话框(设置打印) 在“Name”下拉列表框中可选择打印机(当计算机连接了多台打印机时);在“PCB Filename”文本框中显示要打印的电路板文件;在“Orientation”选项组中有“Portrait”(纵 向)和“Landscape”(横向)两种打印方向供选择;在“Print What”选项组的下拉列表框中 可选择打印的对象,列表框中有“Standard Print”(标准形式)、“Whole Board On Page”(整个PCB打印在一页上)和“PCB Screen Region”(PCB区域)3种选择。 其他的项主要是设置边界和打印比例。设置完成后,单击“OK”按钮结束打印设置。 (3)打印 打印设置完成后,选择“File”菜单下相关的打印命令,打印机就开始打印 PCB,“File”菜单主要有下面一些打印命令。 “Print All”:打印所有的图形。 “Print Job”:打印操作对象。 “Print Page”:打印指定的页面,当执行该命令后,会弹出图13-112所示的“Print Single Page”对话框,在该对话框中可以输入需打印的页面。 “Print Current”:打印当前页。 (4)特殊的打印模式 由于PCB有多个工作层,如果只想打印某个工作层,特殊的打印模式可以解决这个问 题。在打印预览文件“Preview YS8.PPC”处于打开的情况下,选择“Tools”命令,可以看到 图13-113所示的一些特殊打印模式。 tyw藏书 图13-112 “Print Single Page”对话框(输入打印页面) 图13-113 “Tools”菜单中的特殊打印模式命令 “Create Final”:该命令主要用于分层打印。当执行此命令时,在设计管理器 的“Browse PCB Print”选项卡中将列出各工作层的名称,如图13-114所示。选择某工作 层,在右边的工作窗口中就会出现该层的打印预览图。此时再选择“File”→“Print Current”菜单命令,就可以将选中的工作层打印出来。 tyw藏书 图13-114 选择要打印的工作层 “Create Composite”:该命令用于叠层打印,是系统默认的打印模式。 “Create Power-Plane Set”:该命令主要用于打印电源/接地层。 “Create Mask Set”:该命令主要用于打印阻焊层和助焊层。 “Create Drill Drawings”:该命令主要用于打印钻孔层。 “Create Assembly Drawings”:该命令主要用于打印与顶层和底层内容相关的层。 “Create Composite Drill Guide”:该命令主要将“Drill Guide”、“Drill Drawing”、“KeepOut”和“Mechanical”这几个层组合起来打印。 tyw藏书 第14章 制作新元件封装 元件封装是指与实际元件形状和大小相同的投影符号。Protel 99 SE 提供了大量元件 的元件封装,但由于电子技术飞速发展,一些新型元件不断出现,这些新元件的元件封装 在元件封装库中是找不到的,解决这个问题的方法就是利用Protel 99 SE的元件封装库编 辑器制作新的元件封装。 14.1 元件封装库编辑器 tyw藏书 元件封装库编辑器是Protel 99 SE一个重要的组成模块,它的作用就是制作和编辑元 件封装。 14.1.1 元件封装库编辑器的启动 启动元件封装库编辑器有两种常用的方法:一是通过新建一个元件封装库文件启动编 辑器,二是打开一个已有的元件封装库文件启动编辑器。下面以新建一个元件封装库文件 来启动编辑器,具体操作过程如下。 ① 打开一个数据库文件,如打开“DZ2.ddb”文件,然后选择“File”→“New”菜单命令, 弹出图14-1所示的对话框,选择“PCB Library Document”图标,再单击“OK”按钮,就在数 据库文件DZ2.ddb中新建了一个元件封装库文件,默认文件名为“PCBLIB1.LIB”。 图14-1 新建元件封装库文件 ② 将元件封装库文件的默认文件名改为“FZ8.LIB”,在工作窗口中双击该文件, FZ8.LIB文件被打开,同时元件封装库编辑器也被启动。元件封装库编辑器的界面如图142所示。 tyw藏书 图14-2 元件封装库编辑器 14.1.2 元件封装库编辑器介绍 从图14-2中可以看出,元件封装库编辑器主要由菜单栏、主工具栏、元件封装库管理 器、工作窗口、放置工具栏和状态栏和命令栏等组成。 ① 菜单栏:主要提供制作、编辑和管理元件封装的各种命令。 ② 主工具栏:提供了很多常用工具,这些工具的功能也可以通过执行菜单中相应的 命令来完成,但操作主工具栏上的工具按钮较执行菜单命令更快捷方便。 ③ 元件封装库管理器:主要用来对元件封装进行管理。 ④ 工作窗口:制作、编辑元件封装的工作区。 ⑤ 放置工具栏:包含了各种制作元件封装的放置工具,如放置连线、焊盘、过孔、 圆弧等工具。 ⑥ 状态栏和命令栏:主要是显示光标的位置和正在执行的命令。 14.2 制作新元件封装的方法 制作新元件封装可采用两种方式:一种方式是直接用手工制作ty,w另藏一种书方式是利用向 导制作新元件封装。 14.2.1 手工制作新元件封装 在制作新元件封装前,先要了解实际元件的有关参数,如实际元件的外形轮廓和尺寸 等,然后再来制作该元件的元件封装。元件的封装参数可以通过查阅元件资料或者测量实 际的元件来获得。 下面以制作图14-3所示的元件封装为例来说明元件封装的制作,该元件封装的有关参 数是:焊盘外径为50mil,内径为30mil;焊盘垂直间距为100mil,水平间距为30mil;外形 轮廓长为200mil、宽为200mil,圆弧半径为25mil;焊盘与轮廓边沿距离为50mil。 图14-3 待制作的元件封装 手工制作新元件封装的操作过程如下。 (1)新建或打开一个元件封装库文件 这里打开“FZ8.LIB”文件。 (2)设置有关工作环境参数 设置有关工作环境参数,如使用的工作层、计量单位、栅格尺寸和显示颜色等。进入 工作环境参数设置界面的方法是:选择“Tools”→“Library Options”菜单命令 和“Tools”→“Preferences”菜单命令,一般情况下不用设置,保持默认值。 (3)新建元件封装 在新建元件封装库文件时,系统会自动新建一个“PCBCOMPONENT_1”的元件封装, 如果想再建立一个元件封装,可单击元件封装库管理器中的“Add”按钮,或选 择“Tools”→“New Component”命令,弹出图14-4所示的对话框,单击“Cancal”按钮,会建 立一个新的元件封装,在元件封装库管理器中可以看到新建的元件封装名。 tyw藏书 图14-4 新建元件封装向导对话框 单击元件封装库管理器中新建的元件封装“PCBCOMPONENT_1”,在右边工作窗口中 会出现一个十字形编辑区,如图14-5所示,十字形中心坐标为(0mil,0mil)。如果工作 窗口没有十字形,可以先关闭当前的元件封装库文件FZ8.LIB,然后再打开它,工作窗口 中就会出现十字形。 (4)放置焊盘 单击放置工具栏中的按钮 ,或者选择“Place”→“Pad”菜单命令,鼠标变成有焊盘跟 随的十字形光标,按Tab键,弹出“Pad”对话框,如图14-6所示,将其中的“X-Size”、“YSize”都设为“50mil”(外径),“Hole Size”设为“30mil”(内径),“Designator”设为“1”,再 单击“OK”按钮结束设置。 图14-5 新建的元件封装文件 tyw藏书 图14-6 “Pad”对话框(设置焊盘属性) 将光标移到编辑区十字中心单击,就放置了第1个焊盘,再用同样的方法按顺序放置 其他3个焊盘。在放置时要注意焊盘垂直间距为100mil,水平间距为300mil(在放置焊盘 时,可观察窗口底部状态栏显示的光标坐标来确定每个焊盘的间距)。放置好的4个焊盘 如图14-7所示。 图14-7 放置好的4个焊盘 在第1个焊盘上双击鼠标右键,弹出图14-6所示的“Pad”对话框,在“Shape”下拉列表 框中选择“Rectangle”(正方形),单击“OK”按钮,就将该焊盘改为正方形。另外注意,4 个焊盘的标号要逆时针依次为1、2、3、4,若不是可在属性对话框中进行设置。 (5)绘制元件外形轮廓的半圆部分 单击放置工具栏上的按钮 ,或者选择“Place”→“Arc(Center)”菜单命令,在焊盘 附近随意绘制出一个圆弧,然后在该圆弧上双击鼠标右键,弹出图14-8(a)所示的对话 框,在对话框中按照以下内容设置。 “X-Center”(圆心横坐标):150mil。 “Y-Center”(圆心纵坐标):4050mil。 tyw藏书 “Radius”(半径):25mil。 “Start Angle”(起始角度):180.000。 “End Angle”(终止角度):360.000。 设置好后单击“OK”按钮,就绘制出了图14-8(b)所示的半圆弧。 tyw藏书 图14-8 绘制半圆弧 (6)绘制元件外形轮廓的方形部分 单击放置工具栏上的按钮 ,或者选择“Place”→“Track”菜单命令,在半圆弧的基础 上再绘制一个长为200mil、宽为200mil的方形,在绘制时如果连线拐角不是直角,可连续 按Shift+Space键,将拐角切换到90°,绘制过程如图14-9所示。 图14-9 绘制元件外形轮廓的方形部分 (7)设置元件封装的参考坐标 元件封装绘制完成后要设置参考坐标。在“Edit”→“Set Reference”子菜单中有3 个设置 参考坐标的命令:“Pin1”(以元件封装的 1 脚作为参考坐标)、“Center”(以元件封装中 心作为参考坐标)、“Location”(根据设计者选择点作为参考坐标)。一般选择元件封装 tyw藏书 的1脚作为参考坐标,选择“Edit”→“Set Reference”→“Pin1”菜单命令就将元件封装1 脚设为 参考坐标。 (8)元件封装的改名与保存 新建元件封装时,系统会自动给它命名,如果要重命名,可在元件封装库管理器中选 中该元件封装,再单击“Rename”按钮,弹出图14-10所示的对话框,在对话框中将默认名 改成新的名称,单击“OK”按钮,改名生效。 图14-10 元件封装重命名 如果要将制作好的元件封装保存下来,可单击主工具栏上的保存按钮 ,或选 择“File”→“Save”菜单命令,就可以将元件封装保存在元件封装库中。在设计PCB时,只 要将该元件封装所在的封装库文件装载进PCB编辑器中,就可以像其他元件封装一样使用 该元件封装。 14.2.2 利用向导制作新元件封装 除了可以用手工的方式来制作元件封装外,Protel 99 SE 还提供了元件封装生成向导 来制作元件封装。下面仍以制作图14-3所示的元件封装为例来说明。利用向导制作元件封 装的操作过程如下。 ① 打开或新建一个元件封装库文件。这里打开元件封装库文件FZ8.LIB。 ② 单击元件封装库管理器中的“Add”按钮,或选择“Tools”→“New Component”菜单命 令,弹出图14-11所示的元件制作向导对话框,单击“Next”按钮,出现图14-12所示的对话 框。 tyw藏书 图14-11 元件制作开始向导 图14-12 选择元件封装形式 ③ 在图14-12所示的对话框中有12种元件封装形式供选择,分别如下。 “Ball Grid Arrays (BGA)”:球栅阵列封装。 “Capacitors”:电容封装。 “Diodes”:二极管封装。 “Dual in-line Package (DIP)”:双列直插封装。 “Edge Connectors”:边连接器封装。 “Leadless Chip Carrier (LCC)”:无引线芯片载体封装。 “Pin Grid Arrays (PGA)”:引脚网格阵列封装。 “Quad Packs (QUAD)”:四边形引出扁平封装。 “Resistors”:电阻封装。 “Small Outline Package (SOP)”:小尺寸封装。 tyw藏书 “Staggered Ball Grid Array (SBGA)”:交错球栅阵列封装。 “Staggered Pin Grid Array (SPGA)”:交错引脚网格阵列封装。 这里选择“Dual in-line Package (DIP)”项,单击“Next”按钮,会弹出图14-13所示的对话 框。 ④ 在图14-13所示的对话框中可以设置焊盘的各项数值,设置时只要用鼠标选中相应 的数值,再输入新的数值即可,设置好后单击“Next”按钮,弹出图14-14所示的对话框。 ⑤ 在图14-14所示的对话框中可以设置焊盘的垂直和水平间距数值,设置时用鼠标选 中相应的数值,再输入新的数值,设置好后单击“Next”按钮,弹出图14-15所示的对话 框。 图14-13 设置焊盘的各项数据 图14-14 设置焊盘之间的垂直和水平间距 tyw藏书 图14-15 设置轮廓线的数值 ⑥ 在图14-15所示的对话框中可以设置轮廓线数值,设置时用鼠标选中相应的数值, 再输入新的数值,设置好后单击“Next”按钮,弹出图14-16所示的对话框。 ⑦ 在图14-16所示的对话框中可以设置元件封装引脚个数,设置好后单击“Next”按 钮,弹出图14-17所示的对话框。 图14-16 设置元件封装引脚的个数 图14-17 设置新建元件封装的名称 ⑧ 在图14-17所示的对话框中输入新建元件封装的名称,再单击“Next”按钮,弹出图 tyw藏书 14-18所示的对话框。 ⑨ 在图14-18所示的对话框中单击“Finish”按钮,结束新建元件封装向导,系统就会在 元件封装库中生成一个元件封装,如图14-19所示。 图14-18 结束向导 图14-19 利用向导生成的元件封装 14.3 元件封装的管理 14.3.1 查找元件封装 tyw藏书 在元件封装库管理器中可查找元件封装,元件封装库管理器如图14-20所示。 在元件封装库管理器的“Mask”文本框中可输入元件查找条件,如输入“D*”,就会在 下面的元件列表框中显示出所有以D打头的元件封装。 当在元件列表框中选中某元件时,在元件引脚列表框中会显示元件所有的引脚。 在元件列表框下方有 4 个按钮,单击“<”按钮可选中上一个元件,单击“>”按钮可选中 下一个元件,单击“<<”按钮可选中元件列表框的第1个元件,单击“>>”按钮可选中最后一 个元件。这4个按钮的功能与菜单命令“Tools”→“Next Component”、“Tools”→“Prev Component”、“Tools”→“First Component”和“Tools”→“Last Component”一一对应。 图14-20 元件封装库管理器 14.3.2 更改元件封装名称 如果要更改元件列表框中某个元件封装的名称,可先选中该元件封装,然后单击元件 列表框中的“Rename”按钮,弹出对话框,在对话框中输入新的名称ty即w可藏。 书 14.3.3 放置元件封装 如果要将元件列表框中的某个元件封装放置到某个PCB中,可打开该PCB文件,然后 返回到元件封装库文件,在元件封装库管理器的元件列表中选中某个元件封装,再单 击“Place”按钮,系统自动切换到打开的PCB文件,就可以在该PCB文件的电路板上放置刚 选中的元件封装。如果没有打开任何PCB文件,单击“Place”按钮,系统将自动新建一个 PCB文件,可以在该文件中放置元件封装。 14.3.4 删除元件封装 如果要删除元件列表框中的某个元件封装,可先选中该元件封装,然后单击列表框下 方的“Remove”按钮,会弹出图14-21所示的对话框,询问是否删除元件封装,单击“Yes”按 钮确认,选中的元件封装就被删除。 图14-21 询问是否删除元件封装 14.3.5 编辑元件封装引脚焊盘 元件封装引脚焊盘是元件封装最重要的部分。在设计电路时,经常会遇到原理图元件 的引脚标注与元件封装的引脚标注不一致的情况,如图14-22所示。二极管的元件原理图 符号正极标注为“1”,负极标注为“2”,而二极管的元件封装正极标注为“A”,负极标注 为“K”,这样采用自动设计PCB时会产生错误,解决方法是将两者的标注改成相同的。 图14-22 二极管的原理图符号和元件封装符号 下面将二极管的元件封装的引脚标号改成与原理图符号一致,具体操作过程如下。 ① 打开二极管封装所在的数据库文件“Advpcb.ddb”,该文件位于 C:\Program Files\Design Explorer 99 SE\Library\Pcb\Generic Footprints文件夹中(当Protel 99 SE安装在 tyw藏书 C:\Program Files时)。 ② 打开Advpcb.ddb数据库中的“PCB FootPrints.lib”元件封装库文件,在该文件的元件 封装库管理器中找到二极管的元件封装“DIODE0.4”,并单击打开它,如图14-23所示。 图14-23 二极管的元件封装 ③ 在元件引脚列表框中选中引脚“A”,再单击“Edit Pad”按钮,马上弹出“Pad”对话 框,将“Designator”文本框中的“A”改成“1”,再用同样的方法将引脚“K”改成“2”,然后单 击主工具栏上的保存按钮 ,或选择“File”→“Save”命令,就可以将改动的元件封装保存 在元件封装库中。 如果单击“Jump”按钮,不会弹出属性设置对话框,而是将选中的焊盘放大到整个工作 窗口大小。 如果单击“UpdatePCB”按钮,系统会将该元件封装所做的修改反映到PCB中。 图书在版编目(CIP)数据 tyw藏书 电子工程师自学速成.设计篇/蔡杏山主编.--北京:人民邮电出版社,2013.10 ISBN 978-7-115-33163-2 Ⅰ.①电… Ⅱ.①蔡… Ⅲ.①电子技术 Ⅳ.①TN 中国版本图书馆CIP数据核字(2013)第221397号 内容提要 “电子工程师自学速成”丛书分为“入门篇”、“提高篇”和“设计篇”共3本。本书为“设计 篇”,包括单片机技术和Protel电路绘图设计两大部分,其中单片机技术部分的内容有单片 机入门、单片机硬件原理、单片机的开发过程、单片机编程、中断技术、定时器/计数 器、串行通信技术和接口技术,Protel电路绘图设计部分的内容有Protel软件入门、设计电 路原理图、制作新元件、手工设计PCB、自动设计PCB和制作新元件封装。 本书具有基础起点低、内容由浅入深、语言通俗易懂、结构安排符合学习认知规律的 特点。本书适合作为电子工程师学习电子设计的自学图书,也适合作为职业学校和社会培 训机构的单片机及Protel电路绘图设计教材。 ◆主编 蔡杏山 责任编辑 张鹏 责任印制 彭志环 焦志炜 ◆人民邮电出版社出版发行  北京市丰台区成寿寺路11号 邮编 100164  电子邮件 315@ptpress.com.cn 网址 http://www.ptpress.com.cn 三 河市潮河印业有限公司印刷 ◆开本:787×1092 1/16 印张:20.75 字数:556千字  2014年1月第1版 印数:1-3500册  2014年1月河北第1次印刷 定价:50.00元 读者服务热线:(010)81055410 印装质量热线:(010)81055316 反盗版热线:(010)81055315 广告经营许可证:京崇工商广字第0021号

Top_arrow
回到顶部
EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。