2013基于Proteus的微机原理实验 - 副本_第1页
2013基于Proteus的微机原理实验 - 副本_第2页
2013基于Proteus的微机原理实验 - 副本_第3页
2013基于Proteus的微机原理实验 - 副本_第4页
2013基于Proteus的微机原理实验 - 副本_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

实验一 熟悉实验环境1 实验环境搭建1.1 emu80861.1.1 emu8086介绍emu8086虽然是一款汇编语言学习平台,但其生成的代码是符合真正x86标准的二进制代码,可以被x86平台执行。本学期实验课程中仅仅用到emu8086的汇编代码编辑功能,不会用到emu8086的二进制代码生成和调试功能。强烈建议汇编语言编程基础差的同学课下多使用emu8086练习汇编语言编程。1.1.2 emu8086安装尽量安装在非中文路径下,比如“e:stumcpemu8086”。安装文件位于本教程所在目录的“toolsemu8086-crack.zip”。按照压缩包中的说明安装即可,为学习和教学方便,使用破解软件,请勿用于其他用途。1.2 汇编编译器1.2.1 汇编编译器介绍本学期实验课程中用到的汇编语言编译器取自masm32,但masm32过于庞大,因此只选出对实验有用一些工具,打包在“toolsmasm4proteus.zip”中,包中还有三个批处理文件,专用于本学期的主要实验平台Proteus。1.2.2 汇编编译器安装将“toolsmasm4proteus.zip”解压即可,尽量解压到非中文路径下,比如“e:stumcpmasm”。1.3 Proteus1.3.1 Proteus介绍Proteus是一款商用的专业的IC设计软件,同时具备许多处理器的仿真功能,本学期实验即用到了它的8086处理器仿真功能。1.3.2 Proteus安装实验室微机上可能已经安装,若未安装,可按下面说明安装。尽量安装在非中文路径下,比如“e:stumcpproteus”。安装文件位于本教程所在目录的“toolsProteus7.10pro-crack.zip”。按照压缩包中的说明安装即可,为学习和教学方便,使用破解软件,请勿用于其他用途。1.3.3 Proteus配置启动Proteus,按图1提示打开Proteus的代码生成工具设置窗口。图1 开打代码生成工具添加删除窗口在代码生成工具添加删除窗口中选New,如图2中红圈所示,便可打开一个文件选择对话框。图2 代码生成工具添加删除窗口在弹出的文件选择对话框中找到1.2节中安装汇编编译器时解压出的“MASM32.BUILD.EXE.bat”,双击或点打开,对话框关闭,返回代码生成工具设置窗口,然后按图3中的红圈标注进行设置,然后点OK关闭该窗口,这样Proteus就拥有编译本学期实验课程中用到的汇编语言的能力了。图3 代码生成工具添加删除窗口-配置新添加的编译器接着,按图4所示,设置外部代码编辑器。图4 打开外部代码编辑器设置窗口按照图5所示,找到前面过程中安装好的emu8086,点OK即可,如此Proteus将使用emu8086作为汇编语言编辑工具。图5 配置emu8086Proteus基本配置完毕,若无其他操作,可以关闭Proteus。2 8086平台基本电路搭建本节将介绍从Proteus自带的8086仿真实例中截取的8086平台基本电路。2.1 创建实验文件夹一定在非中文路径下,创建一个文件夹“exp01”,比如“e:stumcpexpexp01”。2.2 添加8086平台基本电路到实验文件夹打开本教程所在文件夹中的“exp8086base.zip”,将压缩包中的“8086base.dsn”复制到实验文件夹下,最好更名为“exp01.dsn”。2.3 打开dsn文件双击2.2中复制过来的dsn文件即可启动Proteus,并看到整个电路设计图。其中8086模块如图6所示。图6 8086模块请观察电路图,自查资料,在实验报告纸上回答下列问题:1为什么RESET端口要接地(低电平)?2为什么MN/MX和READY端口要接电源(高电平)?3AD0.15和A16.19的作用是什么?4M/IO端口的作用是什么?5RD端口的作用是什么?(进行下面步骤时不要关闭当前Proteus)3 在Proteus的8086仿真平台中编辑和调试汇编程序3.1 创建汇编源程序文件在先前创建的实验文件夹中创建一个文本文件并更名为“exp01.asm”。按照图7所示,打开添加源文件窗口。图7 打开添加源文件窗口在打开的源文件添加删除窗口中按照如图8注释的顺序进行设置,然后点“New”,打开源文件浏览窗口。图8 源文件添加删除窗口在打开的文件浏览器找到刚才创建的“exp01.asm”,打开即可。至此也可看到图8中的源文件添加删除浏览器窗口的“Source Code Filename”区域中显示出刚刚输入的源程序文件名(如“exp01.asm”),然后点OK关闭源文件添加删除窗口。3.2 编辑汇编源程序文件如图9所示进行操作,即可打开刚创建的汇编源程序文件,并且是由emu8086作为编辑器打开的。图9请在源文件中写下如下代码:写完代码后请点击emu8086界面上的保存按钮。6请在实验报告纸上写源代码每一行的含义。3.3 编译汇编源程序文件不用关闭emu8086,回到Proteus界面,按图10进行操作,即可对源程序进行编译。图10 编译源程序编译完成后会弹出一个“BUILD LOG”窗口(该窗口稍后关闭即可),若窗口中没有红色错误提示,则表明源程序已经被成功编译,否则要根据红色错误提示回到emu8086界面修改源程序,然后再回到Proteus中编译。编译成功后可以在实验文件夹下看到编译产生的与源程序文件同名但后缀不同的三个文件,如“exp01.obj”、“exp01.map”、“exp01.exe”,其中exe后缀的即为二进制可执行文件。3.4 运行程序双击电路图中的8086芯片,弹出8086配置窗口,如图11所示红圈部分设置即可,这样便可在稍后的环节中由8086芯片运行刚生成的“exp01.exe”。图11 8086与二进制程序的关联设置点OK关闭图11中的窗口,然后按Proteus界面左下角的运行按钮便可启动8086运行刚才的程序。可以观察到设计图上有些端口变红或变蓝。按停止按钮便可结束8086的程序运行。3.5 单步调试程序,观察8086内部寄存器变化如图12进行操作就可开启单步调试模式。图12 开启调试模式然后再次点图12中的Debug菜单时,弹出的内容如图13所示。图13 调试窗口菜单选上图13中所有勾选项就可以看到所有调试用窗口。此时可通过“8086 Source Code”窗口的单步调试按钮单步执行程序,并通过“8086 Registers”窗口观察8086芯片中各个寄存器的变化。3.6 设置调试时刻观察的变量在3.5最后阶段,打开了若干调试窗口,其中有个叫做“8086 Variables”,这个窗口可以显示定义在源程序中的变量(观察源程序可发现,其中在“.data”部分定义了“var8”、“var16”两个变量),但在3.5最后阶段,并未发现该窗口显示变量。若要将源程序中的变量显示到“8086 Variables”窗口中,则需要将要显示的变量声明成全局的,这需要在“.data”后添加两行代码,如下:4 实验验收向实验指导教师演示搭建好的实验平台,并按老师的提问进行操作。5 实验报告请在实验报告上回答红字部分提出的问题。实验二 配置存储器及BIOS仿真应用1 了解微机启动过程以下资料截选自百度文库:/view/f5f51254ad02de80d4d840c1.html以下资料截选自ChinaUnix:/uid-22996709-id-3371789.html,原英文资料网址:/gustavo/blog/post/how-computers-boot-upHow Comuputers Boot Up计算机如何引导启动前面的博文介绍了Intel计算机的底板芯片组与内存映射,为理解计算机引导初始过程打下了基础。引导是一个复杂的、多阶段的、有趣的“东西”。下面是这个过程的简图(outline):An outline of the boot sequence当你按下计算机上的电源键时,事情已经开始启动。在加电之后(powered up),底板首先初始化自身固件(firmware)-芯片组与其它小部件(tidbits)-并试图运行CPU。如果此时运行CPU失败(例如,没有发现CPU或者CPU损坏),那么该计算机除了转动的风扇之外,一无所用。在发现CPU损坏或者缺失的情况下,一些底板会发出蜂鸣报警声,但我最常遇见的情况是只有“旋转风扇的僵尸电脑”。有时USB或者其它设备也会导致此类情况发生:对于之前一直运行良好,而突然出现上述死机状态的计算机,你可以拔掉所有非关键设备,这很可能解决死机问题,然后排除出导致该问题的设备。如果一切正常,CPU便开始运行。在多处理器(multi-processor)或多核(multi-core)系统中,会动态地选择一个CPU作为引导处理器(BSP:BootTrap Processor),它负责运行所有的BIOS以及内核初始化代码(kernel initialization code)。此时,其它的被称作应用处理器(application processor:AP)的CPU仍处于终止状态(halted),直到内核显示地激活它们。Intel CPU已经演化了很多年,但它们是完全后向兼容的(fully backwards compatible)。因而,现代的CPU同最初的1973年的Intel 8086CPU的启动行为非常相似:在加电之后执行相同的动作。在这种原始的加电状态下(primitive power up state),CPU处于实模式(real mode),此时内存映射是禁用的(memory paging disabled),这同古老的MS-DOS时代类似。DOS系统仅能寻址1M字节内存,并且任何代码可以写入内存的任何位置-即不存在保护(protection)或特权(privilege)的概念。加电之后,CPU内部的寄存器均具有定义好的值(well-defined values),包括指令指针(EPI:instruction pointer),它用于保存CPU将要执行指令的内存地址。Intel CPU加电后仅能够寻址1M内存空间,同时,一个隐含的基址(hidden base address)将应用于EIP,因而,CPU执行的第一条指令位于地址:0xFFFFFFF0。这个魔幻地址被称作重启向量(reset vector),也是现代Intel CPU的标准规格。底板(motherboard)保证位于重启向量的指令(jump)跳转到映射了BIOS入口的内存地址。跳转指令隐含地(implicitly)清除加电时的隐含基址(hidden base address)。多亏了芯片组(chipsets)保存的内存映射(memory map),使得所有内存地址存储着CPU所需要的正确内容。这些内存映射到包含BIOS的flash内存(flash memory),而此时的RAM模块里面还是一些乱七八糟的东西。以下资料通过百度知道以关键词“proteus 仿真8086 启动”搜索得到,资料网址为:/question/315529898.html【问题】8086不是没有集成存储器的吗,proteus中的仿真模型好像有内部存储器,使用内部存储器的时候怎么分别设置RAM和ROM的空间大小?如果不想使用内部存储器,自己来扩展存储器,怎么设置?如果使用自己扩展的存储器,程序从那个地址开始运行的?【回答】8086本身就没有存储器。只有三类总线:地址总线、数据总线、控制总线。你如果想给8086添加存储器,必须利用总线。加载ROM芯片和RAM芯片。这些芯片和8086本身的芯片一样,都在元器件库里面,但是怎么接,接多大的存储器,按照你的要求选择。芯片具体的连接方法,需要看清楚8086芯片的各个引脚功能,和芯片的引脚功能。接下来的任务就是把芯片连接到引脚。但是连接时有些能直接相连,有些需要借助其他芯片做转换。例如8086是AD(地址和数据线)复用,这样你必须先利用锁存器74ls373把地址总线和数据总线分离开,然后才能和存储器芯片的地址线和数据线连接。这些方面的详细介绍你可以看看微机原理方面的书籍。里面的存储器设计和译码电路设计部分。详细的介绍这些内容。8086的程序开始地址是从ROM的FFFF0开始的,你如果要用8086必须配备ROM。RAM根据需要决定陪还是不配。这和单片机不同。这个芯片的运行可以在ROM也可以在RAM,但是启动的第一条指令必须在ROM的FFFF0单元。【追问】存储器的扩展,连线,译码之类的我会,我只是不知道proteus怎么对8086的存储器进行管理和设置的,你能说明一下这个吗?【回答】管理和普通系统一样的。是由你自己编写的软件控制的。举例来说。你编程的时候,首先写一条跳转指令,写在ROM的FFFF0这个位置,proteus运行的时候,就首先执行在这个位置的第一条跳转指令。然后转移到你实际程序的所在位置。然后你在实际程序的所在位置编写代码,完成任务。如果你需要变量或者可读写的量。那些你就存在RAM里面,如果你不需要这些,你就只用ROM。和单片机操作差不多。你问的意思是能不能像dos环境下,那样,把程序读进来,然后在RAM运行。在有操作系统的环境里面,操作系统完成这些任务。你现在没有操作系统,所有的操作必须你自己完成。有系统的机器,在开始工作前也是由主板上固定的ROM程序完成自检和设备初始化的。现在你编程一般情况就写在ROM当中。类似于ROM固话的自检程序。一般任务这样的方法完全可以完成。1查阅资料,回答为什么8086CPU加电后会从0xFFFF0地址开始执行指令。2 配置闪存2.1 闪存的作用由于闪存的内容在掉电后仍然可以保持,因此在0806存储系统中通常都会配有闪存。闪存中的内容是8086启动后最先执行的内容。本次实验将在“exp8086base.zip”提供的8086基本电路基础上配置闪存。闪存即8086存储系统中的ROM,可以在图1中看到闪存在微机硬件结构上所处的位置。计算机主板上的bios就是存储在ROM中。本次实验课就是要模拟计算机系统中的bios ROM。图1 微型计算机总线化硬件结构图(图片来自:/mndz/2012/0125/article_13810.html)2.2 配置闪存本节相当于在8086base基础上做一个ROM扩展,容量为64K字节,采用两片27256(32K8)的EPROM芯片,其地址范围为F0000到FFFFF。注意:8086是16位CPU,每次会通过数据总线从ROM模块读取16位数据,因此两片27256分别为8086提供高8位数据和低8位数据。请在8086base.dsn基础上仿照图2进行电路扩展。简要画图说明:(1)挑选元器件:点左边工具栏中的,再点击,在弹出的“Pick Devices”对话框中找到需要的元件(比如27256),然后按OK关闭对话框;(2)在电路图上放置元器件:点左边工具栏中的,然后点击下列出的所需元件(比如27256),然后在电路图上合适位置点击即可放置;(3)为连线命名:点击左边工具栏中的,再点击要命名的连线,弹出的对话设置窗口中,直接填写String项命名或从下拉菜单中选择已有命名均可,命名相同的连线被认为是相互导通的(在逻辑上被认为是同一条线);(4)单线接点、电源、接地、总线接点可通过左边工具栏中的进行选择,总线可通过左边工具栏中的进行绘制。图2 在8086base.dsn基础上扩展的ROM电路2电路图中如何保证27256的地址范围为F0000到FFFFF。3为什么27256的地址接受端口A0.14接的是系统地址总线的A1.15,而不是A0.14。4电路图中两片27256标示符分别为U4和U12,哪片是向8086提供高8位数据,哪片提供低8位数据。3 向闪存中写入程序3.1 配置闪存编译环境由于前面实验中介绍的MASM32.BUILD.EXE.bat不能直接将汇编源代码编译成纯二进制代码的bin文件,因此本次实验中需要添加一个专用于编译生成bin文件的环境,具体步骤如下:(1)点击Proteus界面的“Source-Define Code Generation Tools”打开“Add/Remove Code Generation Tools”界面;(2)点击“Add/Remove Code Generation Tools”界面的New按钮以添加用于编译bin文件的环境(这个环境位于“toolsmasm4proteusNASM.BUILD.BIN.bat”),如图3。图3 添加bin文件编译生成环境3.2 编辑源程序在实验目录下创建一个名为“bios.asm”的汇编源程序文件,然后将该文件添加到电路设计图,注意添加时选择“Code Generation Tool”要选择“NASM.BUILD.BIN”。添加好“bios.asm”后,通过Proteus界面的Source菜单打开该源程序文件,然后编辑如图4。图4 用于生成bios的源程序3.3 生成bin文件通过Proteus界面的Source-Build All即可生成bin文件,使用该功能后,在实验目录下(即源程序所在目录)可以见到生成的“bios.bin”。3.4 将bin文件装入ROM本次实验8086要运行的可执行代码不是来自设置给8086的Program File,因此要保持8086的Program File项为空,如图5所示。图5 双击8086后,清空其Program File项双击用作低8位数据的27256芯片,设置如图6。图6 用于低8位数据的27256设置双击用作高8位数据的27256芯片,设置如图7。图7 用作高8位数据的27256设置关于图6、图7中的三项的含义可以在双击27256芯片后,点击打开的界面中的Help按钮,查阅Proteus提供的“The Memory Model - MEMORY_#1_#2”英文说明。4 仿真微机启动过程真实的微机bios要做许多机器检测工作,代码非常复杂,本实验仅仅在硬件结构上模拟这个过程,因此bios的功能装装样子而已,实现的就是图4中所示代码的功能。点击即以调试模式单步运行8086。第一次点击调试后,请打开“8086 Registers”观察窗口,观察8086当前寄存器的值:5此时,CS、IP、LA的值分别是什么。然后,分别在两片27256上点击右键,选择“Memory Contents”,显示两片ROM的内容观察窗口,可以发现大部分内容为00,仅有开始部分和结尾部分内容有变化,6如果想让其值为00的部分都变成FE,应该如何修改“bios.asm”,请尝试修改并观察。1通过单步调试,记录源程序中每一行代码执行时,“8086 Registers”窗口中显示的寄存器值:Pc、CS、IP、LA、AX、BX、CX、DX。7图4源程序第13行的代码在“bios.bin”文件中的首地址为FFF0,但装载到27256芯片后,在其“Memory Contents”中的首地址为7FF8,这是为什么?5 实验验收先将以上实验指导内容中蓝色部分的问题写在实验报告纸上,然后在掌握实验内容的情况下请指导老师验收,并回答指导老师提出的问题。6 实验报告在实验报告纸上回答实验指导内容中的红字部分。实验三 配置硬件地址及交通灯仿真应用1 如何确定硬件地址图1 8086基础电路中的74154部分的电路设计打开8086base.dsn,图中已经给出一个基本的8086硬件系统,其中74154这部分是专门为操作外围(扩展)硬件而设计的(如图1)。74154是一个4-16译码器(选择器),当E1、E2都为低电平时工作,工作时,通过A、B、C、D选中015中某一个端口,选中的端口对外呈现低电平,未选中的呈现高电平,具体可见其真值表(图2)。图2 74154真值表首先明确:8086的内存地址为20位,但硬件地址为16位,1请尝试从8086base电路图中观察到这一事实。观察图1可知,若要74154工作,A13A15以及M/IO必须为低电平,因此硬件的有效地址范围为00000000000000000001111111111111,即0000h1fffh(2为什么),一共是8192个地址(1为什么)。稍后,我们将看到如何将这8192个地址配置给指定的硬件。2 交通灯仿真应用利用两片74273(图4为74273真值表)和4组红绿黄LED搭建交通灯仿真电路,并编写程序模拟交通灯行为。2.1 设计电路图在8086base的基础上扩展出交通灯仿真电路(扩展电路如图3)。2.2 确定硬件控制地址观察图3可知,仅当IO1、A0、BHE、WR都为低电平时,两片74273可将数据线上的数据AD0.11传递到LED0.11,从而驱动交通灯亮灭,控制交通灯的行为。IO1来自图1中的74154,因此可以确定若要两片74273完成数据传递工作,则硬件地址起码为0000001xxxxxxxxx(2为什么);A0是地址最低位,因此若要连接A0的74273传递数据,则需要地址为0000001xxxxxxxx0,而BHE信号是CPU发来的高8位数据操作信号,该信号通常均有效,因此,和BHE连接的74273也仅需地址为0000001xxxxxxxxx即可传递数据。综合两片74273的情况可知,若要它们完成数据传递的工作,需要地址为0000001xxxxxxxx0,我们假设x为0,则可以确定交通灯的硬件操作地址为0200h(其实0200h03feh均可,可在后面的程序设计中体验一下,实际硬件设计中不应这样,应该严谨)。图3 交通灯仿真电路图图4 74273真值表2.3 编程程序如图5所示。3查阅资料,解释第8、11、17行的用法及作用。图5 交通灯模拟程序2.4 编译编译采用MASM32.BUILD.EXE(请根据实验一,自行配置编译环境)。2.5 运行设置好8086的Program File项后,即可运行或单步调试。运行时,交通灯可能闪烁过快,可以通过设置8086的Clock Frequency项降低8086的运行频率,从而更好的观看交通灯模拟效果。2.6 修改电路图若要交通灯的硬件控制地址为0a00h,电路图应如何修改。请修改后运行(注意别忘了将源程序中硬件控制地址也改成0a00h)。2.7 修改程序,贴近实际情况图5所示的程序在红绿黄灯亮时,延迟时间都是一样的,实际情况应该是,黄灯延迟时间比较短,请修改程序重新编译,使交通灯运行效果更贴近实际情况。3 实验验收请将蓝字问题写在实验报告纸上。4 实验报告请将红字问题写在实验报告纸上。实验四 硬件I/O控制1 灯光控制应用本次实验模拟一个灯光控制应用,所需扩展电路如图1。采用八个开关(:SWITCH)分别控制八个LED灯(:LED-RED)的亮灭(灯的颜色可以任意选择,图例中使用的都是LED-RED,也可以混用其它颜色的LED灯)。图1 灯光控制应用电路扩展图1.1 扩展电路设计分析(1)图中74273用来锁存从D0D1接受到的控制LED灯的信号,其MR必须接高电平,否则74273的Q0Q1会被复位(仅输出低信号),这样当CLK有上升沿电平跳变时,D0D1的数据可被锁存并经由Q0Q1稳定输出,从而控制LED等亮灭,1请问Q端输出高电平时,LED灯是亮还是灭,为什么。(2)标记为“U2:B”的7427元件,其输出给74273的CLK,因此它用来操控是否将D端数据送给Q端以控制LED等亮灭,从其输入信号A0,IO1可看出,若要其输出高电平,则A0,IO1都要为低电平,观察完整电路图8086base部分,2回答什么样的地址能使A0,IO1都为低电平,这样的地址即可作为LED灯的控制地址。除此之外还需要一个WR必须为低电平,这个条件由汇编指令OUT满足,当CPU执行OUT指令时,WR被置为低电平。(3)图中两片74LS244为单向三态8位数据缓冲器。它们可将开关闭合的状态传导至数据总线AD0.15,从而被CPU读取接收。其OE端为低电平时,A端的数据才能通过并由Y端输出。(4)标记为“U2:C”的7427,其输出通过一个反门连至两片74LS244的OE,因此它用来操控是否将8个开关的状态送至数据总线(由CPU接收)。观察其输入信号可得知,仅当A0,IO2都为低电平时,两片74LS277的OE才能为低电平,请分析,3什么样的地址能使A0,IO2都为低电平,这样的地址即可作为开关状态的读取控制地址。除此之外还需要一个RD必须为低电平,这个条件由汇编指令IN满足,当CPU执行IN指令时,RD被置为低电平。(5)可见观察到,图1中74273和两片74LS244均与数据总线(AD0.15)相连,这样,CPU可以通过数据总线读取到开关的状态,并根据这些状态将LED灯控制信号同样经由数据总线送给LED灯。1.2 源程序及分析图2所示代码中从06行到11行为一个无限循环,循环中功能为:(1)将控制开关状态读取的地址赋值给dx;(2)使用in指令读取开关状态并存入al;(3)将控制LED等亮灭的地址赋值给dx;(4)使用out指令将al中存储的开关状态送到LED灯控制地址,从而控制灯的亮灭。图2 灯光控制应用汇编源程序1.3 编译运行本次实验用编译环境为MASM32.BUILD.EXE。运行时将编译好的exe文件指定给8086芯片的Program File项即可。1.4 观察实验现象1请单步执行,并记录每次单步时A0,IO1、IO2、RD、WR的电平状态(高电平:红色,低电平:蓝色,高阻:灰色),只记录一轮循环即可。2连续运行,鼠标点击开关可改变其开合状态,请观察,若要LED灯亮,是闭合开关还是断开开关,3若要反过来,电路应如何改造,并改造电路。2 实验验收请将蓝字问题写在实验报告纸上。3 实验报告请将红字问题写在实验报告纸上。实验五 接口芯片应用1 接口芯片的作用在实验四中,为了使八个开关分别控制八个LED灯,使用了1片74273、2片74244、2片7427以及一些辅助元件,电路图较为复杂,设计效率不高。本次实验还是利用八个开关控制八个LED灯,但使用8255可编程并行接口芯片来完成设计。电路图如图1,和实验四的电路图相比,应用8255芯片后,电路图简洁了许多,实验四中使用的74273、74244、7427等元件的功能由一片8255完全替代,提高了电路设计的效率,也更利于成品的小型化,低成本化。2 8255可编程并行接口芯片简介2.1 连接CPU数据总线的数据端口8255拥有一组与CPU进行数据交互的连接到数据总线的8位端口。2.2 连接外部设备的数据端口8255拥有PA口、PB口、PC口三个8位数据端口,用于连接到外部设备。这三组端口可做输入从外部设备(如本次实验的开关)获取数据到CPU,也可做输出传送CPU数据到外部设备(如本次实验的LED灯),但注意,对于某个端口而言,不能同时做输出、输入。至

温馨提示

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

评论

0/150

提交评论