PCB元件封装的编辑与制作及IO口的扩展_第1页
PCB元件封装的编辑与制作及IO口的扩展_第2页
PCB元件封装的编辑与制作及IO口的扩展_第3页
PCB元件封装的编辑与制作及IO口的扩展_第4页
PCB元件封装的编辑与制作及IO口的扩展_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、情境10 PCB元件封装的编辑与制作及I/O口的扩展知识点 1.了解PCB元件封装库(PCBLib)编辑器设计环境;2.掌握编辑元件封装库中已有封装的方法;3.掌握制作新元器件封装的方法;4.掌握I/O口的扩展方法。技能点1.分别运用手工法和向导法编辑与制作新元件的封装;2.在PCB编辑器环境下调用自建的元件封装图;3.利用8255扩展I/O口,外接输入输出设备。学习情境目标通过学习了解PCB元件封装库(PCBLib)编辑器设计环境;掌握编辑元件封装库中已有封装的方法;掌握制作新元器件封装的方法;掌握利用8255扩展外部I/O口。任务一 PCB元件封装的编辑与制作任务目标虽然Protel 99

2、 SE中系统已经提供了数量庞大的元件库,其中含有大量的元件封装,但是随着新元器件的不断出现,以及一些特殊要求的元器件的使用,设计软件不可能包含电路板设计者所需的全部元器件的封装图。七段数码管其实物如图10-1,而原理图中该元件符号如图10-2所示,但在PCB封装库中没有合适的封装图,这就需要设计者自己制作出符合实际尺寸的七段数码管封装图。同样常用继电器(如图10-3)也没有对应的封装图。故本次设计任务目标:设置PCB元件封装库编辑器设计环境;2、建立一个新的封装库,取名为“自建PCB元件.lib”,它包括多个自建的元件封装图,具体参数要求如图10-4七段数码管封装图、图10-5继电器封装图所示

3、;其中图10-4中焊盘外径尺寸100 mil×60mil,焊盘孔径25mil;图10-5中焊盘外径尺寸80×80mil ,焊盘孔径40 mil 。 3、修改PCB Footprints.lib封装库中已有的二极管封装图,使其封装焊盘号与原理图中元件引脚号一致,如图10-6所示。4、在PCB编辑器环境下调用自建的元件封装库及其封装图。 图10-1 七段数码管 图10-2 七段数码管元件图 图10-3 继电器 图10-4 七段数码管封装图 图10-5 继电器封装图 图10-6 二极管封装焊盘号任务分析七段数码管采用类似DIP(双列直插式)封装形式,因此可以通过向导法借用DIP1

4、0的封装来制作。而继电器封装比较简单,采用PCB封装库中的绘图工具手工制作完成。相关知识1、元件封装的分类: (1)针脚式元件:元件的引脚是一根导线,安装元件时该导线必须通过焊盘,穿过电路板焊接固定,焊盘必须钻一个能够穿过引脚的孔(从顶层钻通到底层),图10-7为针脚式元件的封装图,其中焊盘的Layer板层属性必须设置为MultiLayer(穿透层)。图10-7 针脚式元件图10-8 表面贴装式元件(2)表面贴装式元件:直接把元件贴在电路板表面,靠粘贴固定,所以焊盘不需要钻孔,特别适合大批量、全自动、机械化的生产加工,因此成本较低。表面贴装式元件各引脚间的间距很小,故元件体积也小。图10-8为

5、表面贴装式元件的封装图,其中焊盘的Layer属性必须设置为单一板层,如TopLayer(顶层)或BottomLayer(底层)。2、元件封装的编号:一般用元件类型+焊盘距离(焊盘数)+元件外形尺寸来表示,所以可根据元件封装编号来判别元件封装的规格。如: AXIAL0.4表示此元件封装为轴状,两焊盘间距为400mil; RB.2.4表示极性电容类元件封装,引脚间距为200mil,外形直径为400mil。、元件封装图的结构:包含元件外形、焊盘、元件属性3部分。如图10-5继电器的封装由矩形外形、8个焊盘及相关属性信息构成。(1)元件外形:元件的实际几何图形,不具备电气性质,它起到标注符号或图案的作

6、用。(2)焊盘:元件主要的电气部分,相当于电路图里的引脚。(3)元件属性:设置元件的位置、层面、序号和类型值等信息。封装更注重元件的引脚尺寸,对于任何元器件都需要按照实际的元件尺寸画封装图,同时对于针脚式元件还要使焊盘的尺寸足够大,以便元器件的引脚能够插入焊盘。所以在设计元件封装图前,需要了解元件外形、引脚形状及尺寸、引脚间距等信息。元件使用手册中一般给出元件安装参数,若没有器件封装尺寸数据,在画元件封装图时,可使用游标卡尺、螺旋测微器等高精度测量工具对元件外形、引脚间距、安装螺丝孔径等进行精确测量,然后在PCB封装库编辑器中绘制元件封装图。另外还需要注意公英制单位之间的转换。任务实施过程1、

7、启动PCB元件封装库编辑器:方法类似原理图元件库编辑器的启动。首先在当前设计数据库环境下,执行菜单命令File/New,进入“New Document”对话框,选择PCB元件库编辑器图标,如图10-9所示。双击该图标或单击OK按钮后,系统在当前设计数据库中建立一个新元件封装库文件,修改文件名为“自建PCB元件.lib”。然后双击该文件图标,进入PCB封装库编辑器工作界面,如图10-10所示 。2、设置PCB封装库编辑器环境(1)编辑区调整。最初进入PCB封装库的编辑区内有一个十字坐标轴,其中心坐标为原点(0,0)。单击鼠标右键,出现图10-11菜单,选择Library Options命令, L

8、ayers标签中打开第一可视栅格,关闭第二可视栅格,如图10-12所示;Options标签中将定位栅格均设置为5mil,电气栅格取4mil,如图10-13所示。提示:PCBLibplacementTools工具栏的各项含义类似PCB工作环境中相应工具栏。 图10-9 “New Document”对话框图10-10 PCB封装库编辑器界面图10-11 封装库编辑器环境设置菜单图10-12 可视栅格设置(2)工作参数及图纸参数设置。执行菜单命令Tools/Preferences,进入图10-14所示参数设置对话框,可以对工作层、焊盘、过孔等的显示颜色、光标形状等信息设置。(3)打开封装库管理器。点

9、击View/Design Manager,选择Browse PCBLib标签,可切换到封装库管理器,如图10-15所示。其中Components(元件列表)窗口内容与原理图元件库编辑器相同,不再重复。Update PCB按钮功能是更新PCB图中有关该元件的信息,即在元件封装库编辑器中所做的修改可相应反应到电路板中。图10-13定位栅格设置 图10-14 封装库参数设置对话框 图10-15 封装库管理器3、用向导法制作七段数码管封装图(参数要求见图10-4)(1)启动封装向导:在上述自建PCB元件.lib的封装库编辑器工作界面中,单击Browse PCBLib标签中的Add按钮,或执行菜单命令T

10、ools/New Component,进入图10-16的元件封装向导界面。(2)选择元件封装外形及尺寸单位:单击图10-16中“Next”按钮进入图10-17,选择“Dual in-line Package (DIP)”双排直插式封装形式,并选择英制单位“Imperial(mil)”。提示:表10-1列出了12种元件封装形式的中文名称。表10-1 通过向导创建的封装类型Dual in-line Package (DIP)双列直插式封装Ball Grid Array(BGA)格点阵列式封装Staggered Ball Grid Array错列BAG封装Diodes二极管型封装Capacitors

11、电容型封装Quad Packs (QUAD)四方扁平塑料封装Pin Grid Array (PGA)引脚网络阵列封装Resistors电阻型封装Staggered Pin Grid Arrays错列PGA封装Small Outline Package小型表贴式封装Leadless Chip Carrier (LCC)无引线芯片载体型封装Edge Connectors边缘连接型封装(3)确定元件引脚焊盘尺寸:单击 “Next”进入图10-18,缺省引脚焊盘外径尺寸为100 mil×50mil,引脚焊盘孔径为25mil。根据要求修改尺寸,直接将鼠标移到原尺寸数据50mil上,单击鼠标左键

12、输入60mil。图10-16 元件封装向导界面注意:焊盘外径尺寸应大于焊盘孔径,引脚焊盘外径与焊盘孔径之间关系如表10-2所示。表10-2 最小焊盘直径与引线孔直径的关系 单位:mm 引线孔直径最小焊盘直径0.40.50.60.80.91.01.31.62.0高精度0.80.91.01.21.31.41.72.22.5普通精度1.01.01.21.41.51.61.82.53.0低精度1.21.21.51.82.02.53.03.54.0图10-17 选择元件封装外形及尺寸单位(4)设置引脚水平间距和垂直间距(指焊盘中心距):单击 “Next”进入图10-19,经实际测量得知该数码管引脚水平间

13、距为800mil,垂直间距为150mil。在图10-19中加以修改。(5)设置元件外轮廓线宽度:单击 “Next”进入图10-20,设置元件外轮廓线宽度与设置元件引脚焊盘尺寸方法相同,一般采用默认值10mil。图10-18 设置引脚焊盘尺寸(6)输入元件引脚数目:单击 “Next”进入图10-21,七段数码管应有10个引脚。(7)输入元件封装名称:单击 “Next”进入图10-22,在文本框中输入元件名“七段数码管”。图10-19 设置焊盘间距(8)最后确定:单击 “Next”进入图10-23,当确认元件外形、焊盘外径、孔径、间距等尺寸无误后,单击“Finish”按钮,完成向导过程,显示出七段

14、数码管的初步封装,如图10-24所示。图10-20 设置元件外轮廓线宽(9)旋转:图10-24中元件引脚排列方向与实际七段数码管不同,需要整体旋转。选定整个七段数码管,鼠标左键一直按住七段数码管5脚不放,点击空格键即可旋转。撤销选定状态后,如图10-25所示。(10)修改引脚焊盘属性:依次对10个焊盘引脚鼠标左键双击,进入到每个焊盘属性对话框中,如图10-26所示。根据七段数码管引脚名称及排列规则,逐一修改焊盘属性。(11)设置参考点:执行菜单命令Edit/Set Reference/Location,将参考点放在“dp”引脚焊盘上,作为本元件的参考点,即该引脚焊盘坐标为(0,0)。图10-2

15、1 输入元件引脚数目图10-22 输入元件封装名称图10-23 封装向导结束 图10-24 七段数码管初步封装图 图10-25 七段数码管旋转图10-26 修改焊盘属性(12)修改外轮廓线:将工作层面切换到TopOverlay(顶层丝印层),删除现有外轮廓线。然后将图10-13中定位栅格Snap X改为1mil,Snap Y改为5mil。最后利用菜单命令Place/Track,或单击PCBLibPlacementTools工具栏中的按钮,按照任务目标中的尺寸要求绘制出数码管的外轮廓线,如图10-27所示,全部完成之后如图10-28所示。注意:根据尺寸要求,数码管的外轮廓四点坐标分别为(-662

16、,875)、(63,875)、(-662,-75)、(63,-75),依据此坐标值绘制外轮廓线。 图10-27 绘制外轮廓线 图10-28 七段数码管封装图(13)保存:单击主工具栏内的按钮,将生成的七段数码管元件封装图保存到自建PCB元件.lib库文件中。至此,用向导法完成了在自建PCB元件.lib库中制作并增加七段数码管封装图的任务。注意:数码管元件图中管脚编号为18,分别对应adp,9对应VCC;而数码管封装图中管脚编号依次是e、d、3、c、dp、b、a、8、 f、g,两个图的管脚号不一致,势必在调入网络表时出错,所以修改其封装图管脚号如图10-29所示。图10-29 修改七段数码管封装

17、图管脚号4、手工制作继电器封装图(参数要求见图10-5)(1)新建元件封装:在自建PCB元件.lib的封装库编辑器工作界面中,单击Browse PCBLib标签中的Add按钮,或执行菜单命令Tools/New Component,进入图10-16的元件封装向导界面,对话框中单击按钮,退出元件封装创建向导。(2)设置工作环境:执行菜单命令Tools/Library Options进入图10-13,将定位栅格Snap X改为10mil,Snap Y改为10mil。如图10-30所示。注意:为了使用户在绘制元件封装的过程中放置线段、弧线等更精确,应该将定位栅格设置的小一些,而电气栅格中数值要小于定位

18、栅格。(3)放置引脚焊盘:执行菜单命令Place/Pad,或单击PCBLibPlacementTools工具栏中的按钮,将十字光标定位于(0,0)放置第一个焊盘。然后根据图10-5中焊盘之间的水平间距和垂直间距放置其它7个焊盘,如图10-31所示。图10-30 重新设置定位栅格注意:可以利用栅格来确定焊盘间的相对位置,也可利用Pad属性对话框中焊盘的坐标值来确定各焊盘间的相对位置。 图10-31 放置引脚焊盘 图10-32 焊盘属性设置(4)修改引脚焊盘属性:依次双击各个引脚焊盘(或选中焊盘后按Tab键),调出其相应的引脚焊盘属性对话框,根据任务要求修改各项值,如图10-32是修改第一个引脚焊

19、盘的对话框,其中焊盘外径尺寸80×80mil,焊盘孔径30 mil。其它焊盘属性依照图10-5逐一修改。若需要对所有焊盘的相同属性进行修改,可以采用整体修改方式。如将图10-31上所有外径为80×80mil的圆形焊盘,修改其焊盘孔径为40mil,则单击图10-32对话框中的“Global”按钮,对话框展开,出现整体编辑区,如图10-33所示,“Hole Size”改为40mil,在“Attributes Match By”区域中的“X-Size”、“Y-Size”、“Shape”三栏都设为“Same”,将“Designator”栏设为“Different”;其他各栏都设为“

20、Any”,则表示将电路板图中所有X轴和Y轴尺寸为80mil、形状为圆形、序号不是1的焊盘作为整体编辑的对象;在“Change Scope”区域中,选择“All Primitives in current component”;在“Copy attributes”区域,选择“Hole Size”栏,表示将所有被整体编辑的焊盘钻孔直径改为40mils。图10.33 焊盘属性整体修改(5)设置参考点:执行菜单命令Edit/Set Reference/Location,将参考点放在“1”引脚焊盘上,作为本元件的参考点,即该引脚焊盘坐标为(0,0)。(6)绘制封装外形轮廓线:将工作层面切换到TopOve

21、rlay(顶层丝印层),执行菜单命令Place/Track,或单击PCBLibPlacementTools工具栏中的按钮,按照任务目标中的尺寸要求绘制出继电器的外轮廓线,完成后如图10.34所示。图10.34 绘制继电器外轮廓线(7)修改元件封装名称:执行菜单命令Tools/Rename Component,或单击Browse PCBLib标签中的Rename按钮,出现如图10-35对话框,修改元件封装名为继电器。图10.35 修改封装名(8)保存:单击主工具栏内的按钮,将生成的继电器元件封装图保存到自建PCB元件.lib库文件中。至此,用手工法完成了在自建PCB元件.lib库中制作并增加继电

22、器封装图的任务。此时自建PCB元件.lib库中已新建了两个元件封装图。5、修改PCB Footprints.lib封装库中已有的二极管封装图(如图10.6所示)(1)新建元件封装:方法同上,改名为二极管。(2)打开软件自带封装库。执行菜单Files/Open命令,在路径C:Program FilesDesign Explorer 99 SELibraryPcbGeneric FootprintsAdvpcb.DDB中打开PCB Footprints.lib元件库,找到需要修改的二极管封装DIODE0.4,将其选定、复制、粘贴到“自建PCB元件.lib”库文件的“二极管”封装图纸中,如图10.3

23、6。(3)修改引脚焊盘编号:依次双击两个引脚焊盘(或选中焊盘后按Tab键),调出其相应的引脚焊盘属性对话框,分别将原来的编号1改为A,如图10.37所示,将原来的编号2改为K,使其封装焊盘号与原理图中元件引脚号保持一致。(4)保存:单击主工具栏内的按钮,将生成的二极管元件封装图保存到自建PCB元件.lib库文件中,注意保存路径,本例在D:画图练习放大整形电路.ddb。图10.36 复制已有封装 图10.37 图10.38至此,在自建PCB元件.lib库中制作并增加了三个元件封装图,如图10.38所示。6、调用自建封装库(1)回到PCB编辑状态,执行菜单命令Design/Add/Remove L

24、ibrary,将自己创建的封装库“自建PCB元件.lib” 添加到当前PCB设计环境中,如图10.39所示。(2)和其它封装库一样,使用自建PCB元件.lib库中封装,如图10.40所示。7、创建项目元件封装库项目元件封装库是根据本项目电路图上的元件而产生的元件封装库,实际就是把整个项目中所用到的元件整理并存入一个元件封装库文件中。以高灵敏度无线话筒.pcb为例:(1)执行菜单命令File/Open,打开高灵敏度无线话筒.pcb文件,进入其PCB设计环境。(2)执行菜单命令Design/Make Library后,自动切换到元件封装库编辑器,并生成相应的项目元件封装库“高灵敏度无线话筒.lib

25、”文件,如图10-41所示。 图10-39 添加“自建PCB元件.lib” 图10-40 使用“自建PCB元件.lib”库元件图10.41 创建高灵敏度无线话筒.lib实训练习:在自己的文件夹中创建元件封装库,名为“自建封装.lib”,然后绘制以下各元件封装,并将其存放于上述自建封装库中。实训题1 从已有的封装库中拷贝一个DIP8的封装,然后将它修改为DIP4的封装。提示:(1)在Protel 99 SE环境,使用File/New Design建立设计数据库,然后再使用File/New菜单,在跳出的窗口中选择PCB Library Document图标。(2)拷贝操作:打开General IC

26、封装库,并使DIP-8封装处于编辑状态,执行菜单命令Edit/Copy Component。(3)粘贴操作:使用菜单命令Edit/Paste Component,就可以看到封装DIP-8就被调入该窗口,执行菜单命令Tools/Rename Component,把元件封装名改为DIP-4。(34)修改操作:用Edit/Delete菜单删除4个焊盘,然后重新为焊盘编号,顺序与原DIP-8的顺序一致,在顶层丝网层重画轮廓线,注意焊盘尺寸使用原焊盘尺寸,最后存盘。实训题2试画一个PGA44的封装,要求:如图10.42,图中的数字为焊盘号码,画图时注意封装焊盘号和实际器件的关系。提示:(1)首先用元件封

27、装制作向导建立8×8的PGA封装,然后再删去不需要的焊盘,最后编辑焊盘号、书写文字和画边框。(2)注意焊盘使用向导中的缺省焊盘尺寸。 图10.42 PGA44封装图 图10.43 发光二极管封装图实训题3 试画出所示的发光二极管封装图,要求如图10.43,焊盘外径为60mil,内径为30mil,焊盘号如图所示。实训题4试画出所示的按钮封装图,要求如图10.44,焊盘尺寸为外径120mil,内径为60mil,焊盘号如图所示。 图10.44 按钮封装图 图10.45 开关封装图实训题5试画出所示的开关封装图,要求如图10-45,焊盘尺寸为外径200mil,内径为150mil,焊盘号如图所

28、示。任务2 外部I/O口的扩展任务目标通过本任务的学习,掌握利用8255A可编程芯片扩展外部I/O口的方法;掌握利用8255A的A口、B口、C口完成数据的输入与输出;进一步掌握指针变量的使用;了解TTL芯片扩展I/O口的方法。任务描述把8255A的C口外接的8个开关量的状态读入到内部RAM 50H单元,然后分别通过8255A的A口、B口输出,并分别在其外接的8个发光二极管上显示。硬件电路如图10.46所示。图10.46 8255扩展I/O口电路源程序#define uchar unsigned char#define A8255 0x7ffc#define B8255 0x7ffd#defin

29、e C8255 0x7ffe#define K8255 0x7fffvoid delay() uchar i,j; for(i=0;i<40;i+) for(j=0;j<250;j+) ;void main() uchar xdata *p; uchar data *pn=(uchar data *)0x50; while(1) p=(unsigned int *)(K8255); *p=0x89; p=(unsigned int *)(C8255); *pn=*p; p-; *p=*pn; p-; *p=*pn; delay(); 任务实施1.利用PROTEL软件绘制如图9.69

30、硬件电路图,生成元件清单、网络报表、制作PCB板(根据设计情况尽量小)。2.利用proteus仿真软件绘制电路原理图3. C51程序的编译按照情景一Keil C51编译软件的操作步骤对源程序进行编译和调试。4.执行程序观察效果将编译成功后的.HEX文件加载到CPU执行程序并设置开关的状态观察效果。相关知识1.并行I/O口的简单扩展简单I/O口扩展是通过系统外总线进行的。简单I/O口扩展芯片可选用带输入、输出锁存端的三态门组合门电路,如74LS373、74LS377、74LS273、74LS245及8282等。图10.47为由74LS373及8282构成的8位并行输入输出I/O口,其中74LS3

31、73用作输出口,8282用作输入口,若不用的地址线取为“1”,则口地址为:BFFFH(输出口)、7FFFH(输入口)。数据的输入与输出通过下述指令进行:输出数据:unsigned char xata *p;unsigned char i;p=(unaignedchar data *)0xbfff;/指向输出口*p=0x30; / 输出数据输入数据:p=(unaignedchar data *)0x7fff;/指向输入口i=*p; /输入数据图10.47 简单I/O口扩展2.采用8255扩展I/O口简单I/O口扩展有使用普通的TTL门电路作为扩展器件的简单I/O口扩展,该方式线路简单,但由于TF

32、L门电路不可编程,因此用这种方法扩展的I/O口功能单一,使用不太方便。使用通用可编程I/O扩展芯片如8255、8155等芯片进行扩展,由于它是I/O口扩展专用芯片,与单片机进行连接比较方便,而且芯片的可编程性质使I/O扩展口应用灵活,这种方法在实际应用中用得较多。通过串行口扩展并行I/O口也是一种常用的I/O口扩展方法,该方法的最大优点是不占用数据存储器地址空间,但速度较慢,适用于数据空间使用较多且对I/O口速度要求不高的应用场所。除通过串行口扩展I/O口外,用另两种方法扩展I/O口,其I/O口地址与数据存储器地址统一编址。8255是一种可编程的并行I/O接口芯片,与8155相比没有内部定时器

33、/计数器及静态RAM,但同样具有三个端口,端口的结构与功能略强于8155。1) 8255的内部结构和引脚功能。8255的内部由端口、端口控制电路、数据总线缓冲器、读/写控制逻辑电路组成。8255的内部结构(见图10.48)和引脚功能 (见图10.49)图10.48 8255内部结构图10.49 8255A引脚图(1)外设接口部分该部分有3个8位并行I/O端口,即A口、B口、C口。可由编程决定这3个端口的功能。A口:具有个8位数据输出锁存/缓冲器和个8位数据输入锁存器,PA0PA7是其可与外设连接的外部引脚。它可编程为8位输入/输出或双向I/O口。B口:具有一个8位数据输出锁存/缓冲器和一个8位

34、数据输入缓冲器(不锁存),PB0PB7是其可与外设连接的外部引脚。B口可编程为8位输入/输出口,但不能作为双向输入/输出口。C口:具有一个8位数据输出锁存/缓冲器和一个8位数据输入缓冲器(不锁存),PC0PC7为其与外设连接的外部引脚。这个口包括两个4位口。C口除作输入、输出口使用外,还可以作为A口、B口选通方式操作时的状态/控制口。(2)A组和B组控制电路这两组控制电路合在一起构成一个8位控制寄存器,每组控制电路既接收来自读/写控制逻辑电路的读/写命令,也从数据线接收来自CPU的控制字,并发出相应的命令到各自管理的外设接口通道。或对端口C按位清0、置1。(3)数据总线缓冲器数据总线缓冲器是一

35、个三态双向8位缓冲器,D7D0为相应外部引脚,用于和单片机系统的数据总线相连,以实现单片机与8255A芯片之间的数、控制及状态信息的传送。(4)读/写控制逻辑读/写控制逻辑电路依据CPU发来的A1、A0、和信号,对8255进行硬件管理。决定8255使用的端口对象、芯片选择、是否被复位以及8255与CPU之间的数据传输方向,具体操作情况如表10-10-1。RESET(输入):复位信号,高电平有效,清除控制寄存器,使8255各端口均处于基本的输入方式。(输入):片选信号,低电平有效。(输入):读信号,低电平有效。控制8255将数据或状态信息送至CPU。(输入):写信号,低电平有效。控制把CPU输出

36、数据或命令信息写入8255。A1、A0(输入):端口选择线。这两条线通常与地址总线的低两位地址相连,使CPU可以选择片内的4个端口寄存器。表10-1 8255的端口选择及操作表A1A0端口操作00001读PA口,端口A数据总线00010写PA口,端口A数据总线00101读PB口,端口A数据总线00110写PB口,端口A数据总线01001读PC口,端口A数据总线01010写PC口,端口A数据总线01110数据总线8255控制寄存器1××××芯片未选中(数据线呈高阻状态)01101非法操作0××11非法操作2)80C51与8255A的连接

37、方法80C51和8255可以直接连接,简单的连接方法如10.46所示。A1A0:与8031的低两位地址线经锁存器后相连。:与8031剩下地址线中的一根相连。:与8031相连。:与8031相连。RESET:与8031的RESET直接相连。D0D7:与8031的P0口直接相连。根据10.46的连接情况,地址分配如下(设未用地址线为高电平)。P2.7()A1(P0.1)A0(P0.0)端口地址000A口7FFCH001B口7FFDH010C口7FFEH011控制寄存器7FFFH3)8255的方式控制字用编程的方法向8255A的控制端口写入控制字,可以用来选择8255A的工作方式。8255A的控制字有

38、两个:即方式选择控制字和PC口复位/置位控制字。这两个控制字共用一个地址,根据每个控制字的最高位D7来识别是何种控制字,D7=1为方式选择控制字,D7=0为C口置位/复位控制字。(1)方式选择控制字方式选择控制字用来定义PA、PB、PC口的工作方式。其中对PC口的定义不影响其某些位作PA、PB口的联络线使用。方式控制字的格式和定义如图10.50所示。图10.50 8255A方式选择控制字8255A的PA和PB在设定工作方式时,必须以8位为一个整体进行,而PC可以分为高4位和低4位分别选择不同的工作方式,这样四个部分可以按规定互相组合起来,非常灵活方便。例如,假设8255A的PA和PB工作方式0

39、输出,PC工作于方式为0输入,则命令字为10010000B=89H,以10.46所示电路为例,则任务中初始化程序为: uchar xdata *p; /指针指向命令口 p=(unsigned int *)(K8255); *p=0x89; /方式命令字写入8255A的命令寄存器(2)C口按位复位/置位控制字C口的各位具有位控制功能,在8255工作方式1、2时,某些位是状态信号和控制信号,为便于实现控制功能,可以单独的对某一位复位/置位。格式如图10.51。图10.51 C口 按位复位/置位控制寄存器必须注意的是,虽然是对PC口的某一位进行操作,但命令字必须从8255A的命令口写入。例如编程使P

40、C口的PC1置1输出: uchar xdata *p; /指针指向命令口 p=(unsigned int *)(K8255); *p=0x03; /复位/置位控制字写入8255A的命令寄存器4)8255工作方式8255有三种方式:方式0、方式1、方式2(仅A口)。(1)方式0(基本输入/输出方式)适用这种工作方式的外设,不需要任何选通信号。8255A以方式0工作的端口在单片机执行I/O操作时,在单片机和外设之间建立一个直接的数据通道。PA口、PB口及PC口的高、低两个4位端口中的任何一个端口都可以被设定为方式0输入或输出。作为输出口时,输出数据锁存;作为输入口时,输入数据不锁存。(2)方式1(

41、选通输入/输出方式)方式1有选通输入和选通输出两种工作方式,只有PA口和PB口可由编程设定为方式1输入或输出口,PC口中的若干位将用来作为方式1输入/输出操作时的控制联络信号。8255A工作于方式1输入情况下的功能如图10.51所示。此时PC的位被定义为:PC4:PA的选通信号,低电平有效,由外设提供。当该信号有效时,8255A的PA将外设提供的数据锁存。PC5:PA的输入缓冲器满信号IBFA,高电平有效,由8255A输出给外设。当该信号有效时,表明外设送来的数据已到PA的输入缓冲器。该信号可以作为端口查询信号,只有当PA端口的数据被取走以后,该信号才变为低电平,端口才可以接收新的数据。PC3

42、:PA的中断请求信号INTRA,高电平有效,由8255A输出给外设。在INTEA=1的条件下,当=1和IBFA=1时,INTRA被置为1,当数据被取走后清除。PC2:PB的选通信号,功能与作用同。PC1:PB的输入缓冲器满信号IBFB,功能与作用同IBFA。PC0:PB的中断请求信号INTRB,功能与作用同INTRA。PC6和PC7可以作为自由的输入/输出线。INTEA和INTEB是PA和PB的中断允许位,它们是通过对PC4和PC2置1或清0来实现中断允许和中断禁止控制的,但这对PC4和PC2两引脚的功能(和)并不影响。图10.52 8255A方式1选通输入方式8255A工作于方式1输出情况下的功能如图所示。此时PC的位被定义为:PC7:PA的输出缓冲器满信号,低电平有效,由8255A输出给外设。当该信号有效时,表示8255A的PA中已有数据,外设可以将此数据取走。当到来时,该信号变为高电平。PC6:PA的响应信号,低电平有效,当外设将数据取走后发回给825

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论