版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。《微机原理与接口技术》课程实验指导书实验内容EL-8086-III微机原理与接口技术教学实验系统简介使用说明及要求实验一实验系统及仪器仪表使用与汇编环境实验二简单程序设计实验实验三存储器读/写实验实验四简单I/0口扩展实验实验五8259A中断控制器实验实验六8253定时器/计数器实验实验七8255并行口实验实验八DMA实验实验九8250串口实验实验十A/D实验实验十一D/A实验实验十二8279显示器接口实验EL-8086-III微机原理与接口技术教学实验系统简介使用说明及要求EL-8086-III微机原理与接口技术教学实验系统是为微机原理与接口技术课程的教学实验而研制的,涵盖了当前流行教材的主要内容,该系统采用开放接口,并配有丰富的软硬件资源,能够形象生动地向学生展示8086及其相关接口的工作原理,其应用领域重点面向教学培训,同时也可作为8086的开发系统使用。可供大学本科学习《微机原理与接口技术(8086)》,《单片机应用技术》等课程提供基本的实验条件,同时也可供计算机其它课程的教学和培训使用。为配合使用EL型微机教学实验系统而开发的8086调试软件,能够在WINDOWS/XP等多种操作系统下运行。在使用本软件系统调试程序时,能够同时打开寄存器窗口、内存窗口、反汇编窗口、波形显示窗口等等,极大地方便了用户的程序调试。该软件集源程序编辑、编译、链接、调试与一体,每项功能均为汉字下拉菜单,简明易学。经常使用的功能均备有热键,这样能够提高程序的调试效率。一、基本特点EL型微机教学实验系统是北京精仪达盛科技有限公司根据广大学者和许多高等院校实验需求,结合电子发展情况而研制的具有开发、应用、实验相结合的高科技实验设备。旨在尽快提高中国电子科技发展水平,提高实验者的动手能力、分析解决问题能力。系统具有以下特点:1、系统采用了模块化设计,实验系统功能齐全,涵盖了微机教学实验课程的大部分内容。2、系统采用开放式结构设计,经过两组相对独立的总线最多可同时扩展2块应用实验板,用户可根据需要购置相应实验板,降低了成本,提高了灵活性,便于升级换代。3、配有两块可编程器件EPM7064,一块被系统占用。另一块供用户实验用。两块器件皆可经过JTAG接口在线编程。使用十分方便。4、灵活的电源接口:配有PC机电源插座,可由PC提供电源。另外还配有外接开关电源,提供所需的+5V,±12V,其输入为220V的交流电。5、系统功能齐全,可扩展性强。本实验系统不但完全能满足教学大纲规定的基本接口芯片实验,其灵活性和可扩展性(数据总线、地址总线、控制总线为用户开放)亦能轻松满足其课程设计、毕业设计使用等。二、系统概述该系统采用开放接口,并配有丰富的软硬件资源,能够形象生动地向学生展示8086及其相关接口的工作原理,其应用领域重点面向教学培训,同时也可作为8086的开发系统使用。采用该系统能大大提高教学质量,系统概述如下:1、微处理器:80862、时钟频率:6MHz3、可提供对8086的基本实验为了提高微机教学实验质量,提高实验效率,减轻主讲教师和实验教师的劳动强度,在该系统的实验板上,除微处理器、程序存储器、数据存储器外,还扩展了8255并行接口、8250串行控制器、8279键盘、显示控制器、8253可编程定时器、A/D、D/A转换、单脉冲、各种频率的脉冲发生器、输入、输出电路等模块,各部分电路既相互独立、又可灵活组合,能满足各类学校,不同层次微机实验与培训要求。能够完成《微机原理与接口》课程教学大纲中所规定的所有实验,并增加了CPLD地址译码实验,主要包括:1、简单I/O扩展实验2、存储器扩展实验3、CPLD地址译码实验4、8255可编程并口实验5、8255LED数码管显示实验6、8255键盘实验7、8253定时/计数器实验8、A/D0809实验9、D/A0832实验10、8250可编程串口实验11、8279显示器接口实验12、8279键盘扩展实验13、8259可编程中断控制器实验14、8237DMA控制器实验三、系统资源分配本系统采用可编程逻辑器件(CPLD)EPM7064做地址的编译码工作,可经过芯片的JTAG接口与PC机相连,对芯片进行编程。此单元也分两部分:一部分为系统CPLD,完成系统器件,如监控程序存储器、用户程序存储器、数据存储器、系统显示控制器、系统串行通讯控制器等的地址译码功能,同时也由部分地址单元经译码后输出(插孔CS0---CS6)给用户使用,她们的地址固定,用户不可改变。具体的对应关系见表1-2。另一部分为用户CPLD,它完全对用户开放,用户可在一定的地址范围内,进行译码,输出为插孔LCS0----LCS7,用户可用的地址范围如下所示,注意:用户的地址不能与系统相冲突,否则将导致错误。1、地址分配6264系统RAM,地址范围0~03FFF,奇地址有效62256系统RAM,地址范围0~03FFF,偶地址有效2764系统ROM,地址范围FFFFF~FC000,奇地址有效27256系统ROM,地址范围FFFFF~FC000,偶地址有效CS0片选信号,地址04A0~04AF偶地址有效CS1片选信号,地址04B0~04BF偶地址有效CS2片选信号,地址04C0~04CF偶地址有效CS3片选信号,地址04D0~04DF偶地址有效CS4片选信号,地址04E0~04EF偶地址有效CS5片选信号,地址04F0~04FF偶地址有效CS6片选信号,地址F000~FFFF偶地址有效8250片选地址:0480~048F,偶地址有效8279片选地址:0490~049F,偶地址有效2、硬件实验说明所有实验程序的起始地址为01100H,CS=0100H,IP=0100H,代码段、数据段、堆栈段在同一个64K的地址空间中。四、硬件系统1、EL型微机教学实验系统结构EL型微机教学实验系统由电源、系统板、可扩展的实验模板、微机串口通讯线、JTAG通讯线及通用连接线组成。系统板的结构简图见图1。图1系统板的结构简图2、硬件资源微处理器模块:8086CPU及其相关电路。存储器:随机存储器RAM40K字节,EPROM40K字节。CPLD译码电路:包括系统译码CPLD和用户CPLD两部分,采用ALTERA公司速度最快的高集成度可编程逻辑器件EPM7064SLC44-10。可编程并行接口:采用8255A芯片。串行接口:采用8250芯片,用作与主机通讯或供用户编程实验。8279键盘、显示控制器:六位LED数码显示,LED和键盘可扩展。A/D转换电路:采用ADC0809,8位8通道逐次比较AD转换器,典型转换时间100us。D/A转换电路:采用DAC0832,8位微处理器兼容D/A。8253可编程定时/计数器8259可编程中断控制器8237DMA控制电路脉冲产生电路:采用74LS161计数器,输出5路时钟信号。简单I/O口扩展电路:缓冲驱动器74LS244和输出锁存器74LS273。开关量输入输出电路:8位逻辑电平输入开关,8位LED显示电路。一路可调模拟量(电位器)(0…5V)单脉冲发生器电路:可产生正、负脉冲。独立开关电源:~220V供电,+5V,±12V输出。独立的LED数码显示、LCD显示电路。独立的4X6键盘电路。3、整机测试当系统上电后,数码管显示,RX、TX发光二极管闪烁,若没运行系统软件与上位机(PC)连接则过会儿数码管显示P-,若与上位机建立连接则显示C-。此时系统监控单元(2764、27256)、通讯单元(8250、MAX232)、显示单元(8279,75451,74LS244)、系统总线、系统CPLD正常。若异常则按以下步骤进行排除:(1)按复位按扭使系统复位,测试各芯片是否复位;(2)断电检查8086及上述单元电路芯片是否正确且接触良好;(3)上电用示波器观察芯片的片选及数据总线信号是否正常。(4)若复位后RX、TX发光二极管闪烁,则显示单元有问题,检查8279时钟信号,断电调换显示单元芯片;若复位后RX、TX发光二极管不闪烁,检查8250晶振信号,断电调换通讯单元芯片。五、单元电路原理及测试1、单脉冲发生器电路(1)电路原理该电路由一个按扭,1片74LS132组成,具有消颤功能,正反相脉冲,相应输出插孔P+、P-。原理如图2:图2单脉冲发生器电路(2)电路测试常态P+为高电平,P-为低电平;按扭按下时P+为低电平,P-为高电平。2、脉冲产生电路(1)电路原理该电路由1片74LS161、1片74LS04、1片74LS132组成。CLK0是6MHz,输出时钟为该CLK0的2分频(CLK1),4分频(CLK2),8分频(CLK3),16分频(CLK4),相应输出插孔(CLK0~CLK4)。如图3所示。图3脉冲产生电路(2)电路测试电路正常时,可经过示波器观察波形。若CLK0有波形而其它插孔无波形,更换74LS161;若都无波形,74LS04、74LS132或6M晶振有问题。3、存储器电路(1)电路原理该电路由一片2764、一片27256、一片6264、一片62256、三片74LS373组成,2764提供监控程序高8位,27256提供监控程序低8位,6264提供用户程序及数据存储高8位,2764提供监控程序低8位,74LS373提供地址信号。ABUS表示地址总线,DBUS是数据总线。D0~D7是数据总线低八位,D8~D15是数据总线高八位。其它控制总线如:MEMR,MEMW和片选线均已接好。在8086系统中,存储器分成两部分,高位地址部分(奇字节)和低位地址部分(偶字节)。当A0=1时,片选信号选中奇字节;当A0=0时,选中偶字节。原理如图4所示。图4存储器电路4、简单I/O口扩展电路(1)电路原理输入缓冲电路由74LS244组成,输出锁存电路由上升沿锁存器74LS273组成。74LS244是一个扩展输入口,74LS273是一个扩展输出口,同时它们都是一个单向驱动器,以减轻总线的负担。74LS244的输入信号由插孔IN0~IN7输入,插孔CS244是其选通信号,其它信号线已接好;74LS273的输出信号由插孔O0~O7输出,插孔CS273是其选通信号,其它信号线已接好。其原理如图5所示。(2)电路测试当74LS244的1,19脚接低电平时,IN0~IN7与DD0~DD7对应引脚电平一致;当74LS273的11脚接低电平再松开(给11脚一上升沿)后,O0~O7与DD0~DD7对应引脚电平一致。或用简单I/O口扩展实验测试:程序执行完读开关量后,74LS244的IN0~IN7与DD0~DD7对应引脚电平一致;程序执行完输出开关量后,74LS273的O0~O7与DD0~DD7对应引脚电平一致。图5简单I/O口扩展电路5、8259中断控制电路(1)、电路原理CS8259是8259芯片的片选插孔,IR0~IR7是8259的中断申请输入插孔。DDBUS是系统8位数据总线。INT插孔是8259向8086CPU的中断申请线,INTA是8086的中断应答信号。电路如图6所示。图68259中断控制电路6、8253定时器/计数器电路(1)电路原理该电路由1片8253组成,8253的片选输入端插孔CS8253,数据口,地址,读写线均已接好,T0、T1、T2时钟输入分别为8252CLK0、8253CLK1、8253CLK2。定时器输出,GATE控制孔对应如下:OUT0、GATE0、OUT1、GATE1、OUT2、GATE2。原理如图7所示。注:GATE信号无输入时为高电平图78253定时器/计数器电路7、8255并行接口电路(1)电路原理该电路由1片8255组成,8255的数据口,地址,读写线,复位控制线均已接好,片选输入端插孔为8255CS,A、B、C三端口的插孔分别为:PA0~PA7,PB0~PB7,PC0~PC7.电路原理如图8所示。图88255并行接口电路8、8237DMA传输电路(1)电路原理该电路由一片8237、一片74LS245、一片74LS373、一片74LS244组成,DRQ0,DRQ1是DMA请求插孔,DACK0、DACK1是DMA响应信号插孔。SN74LS373提供DMA期间高8位地址的锁存,低8位地址由端口A0~A7输出。74LS245提供高8位存储器的访问通道。DMA0~DMA3是CPU对8237内部寄存器访问的通路。原理如图9所示。图98237DMA传输电路9、8250串行接口电路(1)电路原理该电路由一片8250,一片MAX232组成,该电路所有信号线均已接好。原理如图10所示。图108250串行接口电路10、A/D、D/A电路(1)电路原理八路八位A/D实验电路由一片ADC0809,一片74LS04,一片74LS32组成,该电路中,ADIN0—ADIN7是ADC0809的模拟量输入插孔,CS0809是0809的AD启动和片选的输入插孔,EOC是0809转换结束标志,高电平表示转换结束。齐纳二极管LM336-5提供5V的参考电源,ADC0809的参考电压,数据总线输出,通道控制线均已接好,;八位双缓冲D/A实验电路由一片DAC0832。一片74LS00,一片74LS04,一片LM324组成,该电路中除DAC0832的片选未接好外,其它信号均已接好,片选插孔标号CS0832。输出插孔标号DAOUT。该电路为非偏移二进制D/A转换电路,经过调节RANG.ADJ,可调节D/A转换器的满偏值,调节ZERO.ADJ,可调节D/A转换器的零偏值。如图11所示。图11A11、8279键盘、显示电路(1)电路原理8279显示电路由6位共阴极数码管显示,74LS244段驱动器,75451位驱动器,74LS138键盘译码电路。8279的数据口,地址,读写线,复位,时钟,片选都已经接好,键盘行列扫描线均有插孔输出。键盘行扫描线插孔号为KA0~KA3;列回复线插孔号为RL0~RL7;8279还引出CTRL、SHIFT插孔。原理如图12所示。图128279键盘、显示电路(2)电路测试六位数码管电路的测试:除去数码管右侧的所有跳线,系统加电,用导线将插孔LED1接低电平(GND),再将插孔LED-A,LED-B,LED-C,LED-D,LED-E,LED-F,LED-G,LED-DP依次接高电平(VCC),则数码管SLED1的相应段应点亮,如果所有的段都不亮,则检查相应的芯片75451,如果个别段不亮,则检查该段的连线、及数码管是否损坏。用同样的方法依次检查其它数码管。8279显示、键盘控制芯片电路的测试:将数码管右边的所有跳线短接,复位系统,应能正常显示。否则检查8279芯片、74LS244芯片、74LS138芯片是否正常。12、4X6扫描键盘电路(1)电路原理:键盘采用行列扫描的方式。如图13所示,其中SHIFT、CTRL两键经过检查是否与GND相连来判断按键是否按下。(2)电路测试按照下图,系统加电,首先用万用表的电压档依次测试各个插孔的电压,在无键按下的情况下,共13个插孔的电压皆为VCC电压,否则检查故障插孔相关的电路。上述检查无误后,将插孔KA10与GND短路,依次按键,插孔RL10---RL17应有一个电压将为GND,而且每当一个按键按下时,仅有一个对应插孔的电压降低。否则检查相应的按键是否正常。依次检查KA11、K112。图134X6扫描键盘电路13、开关量输入输出电路(1)电路原理开关量输入电路由8只开关组成,每只开关有两个位置H和L,一个位置代表高电平,一个位置代表低电平。对应的插孔是:K1~K8。开关量输出电路由8只LED组成,对应的插孔分别为LED1~LED8,当对应的插孔接低电平时LED点亮。原理如图14所示。图14开关量输入输出电路(2)电路测试开关量输入电路可经过万用表测其插座电压的方法测试,即开关的两种状态分别为低电平和高电平;开关量输出电路可经过在其插孔上接低电平的方法测试,当某插孔接低电平时相应二极管发光。14、六位LED数码管驱动显示电路(1)电路原理该电路由六位LED数码管、位驱动电路、段输入电路组成,数码管采用动态扫描的方式显示。具体见原理如图15所示。,图中用75251作数码管的位驱动。跳线开关用于选择数码管的显示源,可外接,也可选择8279芯片。图15LED数码管驱动显示电路(2)电路测试:去除短路线,系统加电,将插孔LED-1与GND短接,用电源的VCC端依次碰触插孔LED-A-----LED-DP,观察最左边的数码管的显示段依次发亮,则可断定此位数码管显示正常,否则检查芯片75451、及连线。依次检查其它各位数码管电路。实验一汇编环境与DEBUG工具的使用一、实验目的:了解汇编环境,学习DEBUG工具。二、实验内容:调试程序DEBUG为汇编语言设计的一种调试工具,经过单步、设置断点等方式为汇编语言程序员提供了非常有效的调试手段。三、实验原理:在DOS的提示符下,可键入命令:C>DEBUG[d:][path][filename][.exe][parm1][parm2]d:是DEBUG将要调试的文件所在的磁盘驱动器。path:是查找DEBUG将要调试的文件所需的子目录路径,若未指定,DOS使用当前目录。filename[.exe]:是DEBUG将要调试的文件名。如果用户键入文件名,则DEBUG将指定的文件装入存储器中,用户可对其进行调试,如果未键入文件名,则用户可用当前存储器的内容工作,或者用DEBUG命令N和L将需要的文件装入存储器后再进行调试。parm1和parm2:是为运行被调试的程序(或文件)时所需的命令参数。在DEBUG程序调入后,将出现提示符_,此时就可用DEGUG命令来调试程序。1、显示存储单元的命令D_D[address]或_D[range]例如,按指定范围显示存储单元内容的方法为:-D100120067C:0100C7D70D0A32333334-D5C5B4C63010420C....2334....0.B.067C:01100341424344454647-48494A4B4C4D4E4F.ABCDEFGHIJKLMNO067C:01208B其中0100至0120是DEBUG显示的单元内容。左边用十六进制表示每个字节,右边用ASCII字符表示每个字节。”.”表示不可显示的字符。这里没有指定段地址,D命令自动显示DS段的内容。如果只指定首地址,则显示从首地址开始的80个字节的内容;如果完全没有指定地址,则显示上一个D命令显示的最后一个单元后的内容。2、修改存储单元内容的命令有两种输入命令E(Enter),有两种格式如下:(1)第一种格式能够用给定的内容表来替代指定范围的存储单元内容。命令格式为:-Eaddress[list]例如,-EDS(具体值):100F3'XYZ'8D其中F3,‘X’,‘Y’,‘Z’和8D各占一个字节该命令能够用这五个字节来替代存储单元DS:0100到0104的原先的内容。(2)第二种格式则是采用逐个单元相继修改的方法。命令格式为:-Eaddress例如,-EDS(具体值):100则可能显示为:18E4:010089.–如果需要把该单元的内容修改为78,则能够直接键入78,再按空格键可接着显示下一个单元的内容,如下:18E4:010089._781B._这样能够不断修改相继单元的内容,直到Enter键结束该命令为止。3、填写命令F(Fill)其格式为:-Frangelist例如,-F4BA:01000105F3'XYZ'8D使04BA:0100-0104单元包含指定的五个字节的内容,如果list中的字节数超过指定的范围,则忽略超过的项;如果list的字节数小于指定范围,则重复使用list填入,直到填满指定的所有单元为止。4、检查和修改寄存器内容的命令R(Register)它有三种格式如下:(1)显示CPU内所有寄存器内容和标志位状态,其格式为:-R例如,-rAX=0000BX=0000CX=010ADX=0000SP=FFFEBP=0000SI=0000DI=0000DS=18E4ES=18E4SS=18E4CS=18E4IP=0100NVUPDIPLNZNAPONC18E4:0100CMOVWORDPTR[0204],0138DS:0204=0000标志位状态的含义标志名标志为1标志为0溢出(是/否)OVNV方向(减量/增量)DNUP中断(允许/关闭)ETDT符号(负/正)NGPL零(是/否)ZRNZ辅助进位(是/否)ACNC奇偶(偶/奇)PEPO进位(是/否)CVNC(2)显示和修改某个寄存器内容,其格式为:-Rregistername例如,键入-rax系统将响应如下:AXF1F4即AX寄存器的当前内容为F1F4,如不修改则按Enter键,否则,键入欲修改的内容如:-rbxBX0369:059F则把BX寄存器的当前内容修改为059F。(3)显示和修改标志位状态,命令格式为:-RF系统将响应,如:OVDNEINGZRACPECY–此时如不修改其内容可按Enter键,否则,建入欲修改的内容,如:OVDNEINGZRACPECY–PONZDINV即可,键入的顺序是任意的。5、运行命令G(Go)其格式为:-G[=address1][address2[address3...]]其中,地址1指定了运行的起始地址,如不指定则从当前的CS:IP开始运行。后面的地址均为断点地址,当指令执行到断点时,就停止执行并显示当前所有寄存器及标志位的内容,和下一条将要执行的指令。6、跟踪命令T(Trace)有两种格式:(1)逐条指令跟踪-T[=address]从指定地址起执行一条指令后停下来,显示所有寄存器内容及标志位的值。如未指定则从当前的CS:IP开始执行。(2)多条指令跟踪-T[=address][value]从指定地址起执行n条指令后停下来,n由value指定。若中断用T执行(例MOVAH,4CHINT21H)则进入DOS,执行BIOS的内容7、汇编命令A(Assemble)其格式为:-A[address]该命令允许键入汇编语言语句,并能把它们汇编成机器代码,相继地存放在从指定地址开始的存储区中。必须注意:DEBUG把键入的数字均看成十六进制数,因此如要键入十进制数,则其后应加以说明,如100D。8、反汇编命令U(Unassemble)有两种格式:(1)从指定地址开始,反汇编32个字节,其格式为:-U[range]例如:-u10018E4:0100CMOVWORDPTR[0204],013818E4:0106C7060602MOVWORDPTR[0206],020018E4:010CCMOVWORDPTR[0208],020218E4:0112BB0402MOVBX,020418E4:0115E80200CALL011A18E4:0118CD20INT2018E4:011A50PUSHAX18E4:011B51PUSHCX18E4:011C56PUSHSI18E4:011D57PUSHDI18E4:011E8B37MOVSI,[BX]如果地址被省略则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。(2)对指定范围内的存储单元进行反汇编,格式为:-U[range]例如:-u10010C18E4:0100CMOVWORDPTR[0204],013818E4:0106C7060602MOVWORDPTR[0206],020018E4:010CCMOVWORDPTR[0208],0202或:-u10011218E4:0100CMOVWORDPTR[0204],013818E4:0106C7060602MOVWORDPTR[0206],020018E4:010CCMOVWORDPTR[0208],0202这两种格式是等效的。用反汇编命令U来确定我们所要设定的断点地址。9、命名命令N(Name)其格式为:-Nfilespecs[filespecs]命令把两个文件标识符格式化在CS:5CH和CS:6CH的两个文件控制块中,以便在其后用L或W命令把文件装入或存盘。filespecs的格式能够是:[d:][path]filename[.exe]例如:-Nmyprog-L-可把文件myprog装入存储器。10、装入命令L(Load)有两种功能:(1)把磁盘上指定扇区范围的内容装入到存储器从指定地址开始的区域中其格式为:-L[address[drivesectorsector]](2)装入指定文件,其格式为:-L[address]此命令装入已在CS:5CH中格式化了的文件控制块所指定的文件。如未指定地址,则装入CS:0100开始的存储区中。11、写命令W(Write)有两种功能:(1)把数据写入磁盘的指定扇区。其格式为:-Waddressdrivesectorsector(2)把数据写入指定的文件中。其格式为:-W[address]此命令把指定的存储区中的数据写入由CS:5CH处的文件控制块所指定的文件中。如未指定地址则数据从CS:0100开始。要写入文件的字节数应先放入BX和CX中。12、退出DEBUG命令Q(Quit)其格式为:-Q它退出DEBUG,返回DOS。本命令无存盘功能,如需存盘应先使用W命令。四、调试实验程序及调试功能设置清单:-AMOVAX,1234MOVBX,AX-T-T-A0100MOVDL,35MOVAH,2INT21调用DOS21号中断2号功能,用来逐个显示装入DL的字符INT20调用DOS20号中断,终止程序,将控制权交回给DEBUG-G-A0100MOVCX,0100MOVDL,00MOVAH,02INT21INCDLLOOP0105INT20-G-A0100MOVDX,109MOVAH,9INT21INT20DB‘UNDERSTAND?$’-GSTACKSEGMENTSTACKDB200DUP(0)STACKENDSDATASEGMENTPROGDB'MOVAX,DATA',0DH,'MOVDX,AX',0DH,'MOVAX,0',0DH,'MOVBX,2',0DH,'MOVCX,10',0DH,'ADDAX,BX',0DHDB'...'DB1AHNUMDW0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKBEGIN:MOVAX,DATAMOVDS,AXMOVAX,0MOVSI,OFFSETPROGLOPA:CMP[SI],BYTEPTR1AHJEEXITCMP[SI],BYTEPTR'M'JNENEXTCMP[SI+1],BYTEPTR'O'JNENEXTCMP[SI+2],BYTEPTR'V'JNENEXTINCAXADDSI,2NEXT:INCSIJMPLOPAEXIT:MOVNUM,AXMOVAH,4CHINT21HCODEENDSENDBEGIN实验二简单程序设计实验一、实验目的:熟悉汇编程序设计的基本过程。二、实验内容:1、编写人机对话程序WHATISYOURNAME?输入:Mynameis.,试编写程序。2、在以BUF为首址的字节存储区中存放有N个无符号数X1,X2,……Xn,现需将它们按从小到大的顺序排列在BUF存储区中,试编写程序。3、将变量A=10011010B的数据以二进制形式在显示器上输出,试编写程序。4、1+2+22+23+……+2n-1=255,求N值并显示(十进制数)出来,试编写程序。5、已知在以BUF为首地地址的字节存储区中,存放着一个以‘$’作结束标志的字符串,编写程序,显示该字符串,并要求将小写字母以大写字母形式显示出来。(小写a为61H,大写A为41H。)三、实验程序清单:1、DSEGSEGMENTDATADB0AH,0DH,'WHATISYOURNAME?$'BUFDB81DB?DB80DUP(0)DSEGENDSSTACK1SEGMENTDB200DUP(0)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DSEG,SS:STACK1START:MOVAX,DSEGMOVDS,AXLEADX,DATAMOVAH,09HINT21HLEADX,BUFMOVAH,0AHINT21HMOVAH,4CHINT21HCODEENDSENDSTART2、STACK1SEGMENTDB200DUP(0)STACK1ENDSDATASEGMENTBUFDB30H,10H,40H,20H,50H,70H,60H,90H,80H,0,0FFHN=$-BUFDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK1BEGIN:MOVAX,DATAMOVDS,AXMOVSI,1LOPI:MOVDI,SIINCDIMOVAL,[BUF+SI-1]LOPJ:CMPAL,[BUF+DI-1]JBENEXT;无符号数XCHG[BUF+DI-1],ALMOV[BUF+SI-1],ALNEXT:INCDICMPDI,NJBELOPJINCSICMPSI,N-1JBELOPIMOVAH,4CHINT21HCODEENDSENDBEGIN3、DATASEGMENTADB10011010BBDB'(A)=$'CDB'B',0DH,0AH,'$'DATAENDSSTACK1SEGMENTDB200DUP(0)STACK1ENDSCODESEGMENTASSUMEDS:DATA,SS:STACK1,CS:CODESTART:MOVAX,DATAMOVDS,AXLEADX,BMOVAH,09HINT21HMOVBL,AMOVCL,8NEXT:MOVDL,0SALBL,1RCLDL,1ADDDL,30HMOVAH,2INT21HDECCLJNENEXTLEADX,CMOVAH,9INT21HMOVAH,4CHINT21HCODEENDSENDSTART4、CODESEGMENTASSUMECS:CODESTART:MOVAX,1MOVBX,2ADDAX,BXMOVCX,1L1:INCCXSALBX,1ADDAX,BXCMPAX,255JBL1ADDCX,1MOVDX,0L2:CMPCX,0AHJNAEL3INCDXSUBCX,0AHJMPL2L3:CMPDL,0JEB1ORDL,30HMOVAH,02HINT21HB1:ADDCX,30HMOVDL,CLMOVAH,02HINT21HMOVAH,4CHINT21HCODEENDSENDSTART5、STACK1SEGMENTDB200DUP(0)STACK1ENDSDATASEGMENTBUFDB'addAX,BXsubCX,10MOVdx,1234hEND$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK1BEGIN:MOVAX,DATAMOVDS,AXLEABX,BUFLOPA:MOVDL,[BX]CMPDL,'$'JEEXITCMPDL,'A'JBNCMPDL,'Z'JANSUBDL,20HN:MOVAH,2INT21HINCBXJMPLOPAEXIT:MOVAH,4CHINT21HCODEENDSENDBEGIN实验三RAM实验一、实验目的 1、掌握PC机内存扩展方法 2、熟悉6264芯片的接口方法。 3、掌握8086十六位数据存储的方法。二、实验内容 向0H至02100H单元的偶地址送入AAH,奇地址送入55H。三、实验原理图四、实验步骤 1、连线(本实验连线均已接好)。2、编写程序并调试。3、运行实验程序可单步、设置断点,打开内存窗口可看到内存区的变化。4、观察实验结果,编写实验报告。五、实验说明RAM区的地址为0~3FFFH,编程时可将段地址设为0l000H,则偏移地址为1000H。如果按字节进行存储,则AL为55H或AAH;如果按字进行存储,则AX应为55AAH。如要观察运行结果可打开窗口项中的内存窗口。在8086系统中,常见6264、62256等作内存扩展。6264为随机存储器即RAM,可用作程序存储或数据存储。本实验所要求的内存置数在程序中是常见的,如在计算机与外围设备进行数据传输时,经常要用到将内存中某一区域置位并传输给外设,或将外设的数据读入写至内存的某一区域,以实现CPU与外围设备间通讯。六、实验程序框图(实验程序名RAM.ASM)七、实验程序举例 10000 code segment 2 assume cs:code 3 org 0100h 40100B80100 start: movax,0100h 501038ED8 mov ds,ax 601058EC0 moves,ax 70107BE1000 movsi,1000h 8010AB90100 movcx,0100h 9010DB000 moval,010010F8804 intram:mov[si],al11011146 inc si120112E2FB loopintram130114BE1000 mov si,1000h140117B90100 movcx,100h15011AB855AA movax,55aah16011D8904 fil:mov[si],ax17011F46 inc si18012046incsi190121E2FA loop fil20012390 nop210124EBDA jmpstart220126 code ends23endstart实验四简单I/0口扩展实验一、实验目的利用74LS244和74IS273扩展I/0口。二、实验内容1、熟悉74LS273,74LS244的应用接口方法。2、掌握用锁存器、三态门扩展简单并行输入、输出口的方法。三、实验原理图本实验用到两部分电路:开关量输入输出电路,简单I/O口扩展电路。四、实验步骤1、连线:将74LS244(IC25)的输入SI0~SI7分别与逻辑电平开关电路的KI~K8相连,从I/0地址片选信号CS0~CS7中任选一个与74LS244的片选信号(CSU10)相连(例如CS0)。将74LS273(IC24)的输出S00~S07分别与发光二极管电路的Ll~L8相连。从I/O地址片选信号CS0~CS7中任选一个与74LS273的片选信号(CSU8)相连(如CS1)。即:CS0«CS244;CS1«CS273;平推开关的输出K1~K8«IN0~IN7(对应连接);O0~O7«LED1~LED8。2、编辑程序,单步运行,调试程序。3、调试经过后,全速运行,观察实验结果。4、编写实验报告。五、实验说明用逻辑电平开关作为74LS244(IC25)的输入,用发光二极管作为74LS273(IC24)的输出编程序,使得逻辑电平开关的输入状态从发光二极管上显示出来。逻辑电平开关拨上时为5V,拨下时为0V。发光二极管输入”1”为亮、”0在8086CPU中有四个16位通用数字寄存器,其中仅AX(AH,AL)有输入输出功能。本实验经过输入语句(IN),将开关量输入存到AL中,再经过输出语句(OUT)将AL值输出到发光二极管,从而实现开关控制发光二极管。当开关量换作其它形式控制输入,发光二极管换作其它形式控制对象,输入数据后对输入量作一定的运算处理再输出时,就实现了计算机控制。同时这些输入输出点均为I/O扩展口,当输入和输出的点位较多时,这种扩展十分必要。六、实验程序框图(实验程序名T244273.ASM)七、实验程序1 assumecs:code20000 codesegmentpublic3 org100h 40100BA04A0 start: movdx,04a0h ;74LS244地址 5 0103EC in al,dx ;读输入开关量 6 0104BA04B0 mov dx,04b0h ;74LS273地址 7 0107EE out dx,al ;写发光二极管 8 0108EBF6 jmp srart9 010A code ends 10endstart实验五8259中断控制器实验一、实验目的掌握8259工作原理;掌握编写中断服务程序方法;掌握初始化中断向量的方法。二、实验内容 用单脉冲发生器作为中断源,每个开关对应于一个中断源。在中断服务程序中,经过74LS273输出一个数据,以点亮与中断源相对应位置的LED。三、实验原理图本实验用到三部分电路:单脉冲发生器电路、简单I/O口扩展电路和8259中断控制器电路。四、实验步骤1、实验接线CS0↔CS8259;CS1↔CS273;O0~O7↔LED1~LED8;K1~K8↔IR0~IR7;INT↔INTR;INTA↔QINTA。2、编译调试程序3、全速运行程序,拨动单脉冲按键,观察LED的亮灭情况。五、实验说明1、8259的使用说明请详细阅读教科书。2、8086的中断系统是向量中断方式。内存中特定位置有一中断向量表,表内存有不同中断类型的中断向量(中断入口地址)。不同中断类型的中断向量在表内有对应的偏移地址,其计算方法是:中断类型*4。3、中断类型由8259经过数据总线送给8086,8086内部电路会将该类型值自动乘4,而后赋给指令指针,从而转向中断向量表的相应单元取得中断入口地址,之后就进入中断服务程序。请仔细研读8259的工作时序。4、中断类型的高5位由8259寄存器ICW2决定,低3位由中断源IRx的编码自动填入。IR0~IR7的编码分别为000,001,010,011,100,101,110,111。六、实验程序图(实验程序名T8259.ASM)七、实验程序举例 1 assume cs:code 20000 code segmentpublic 3 org 100h 40100BA03F0 start: mov dx,3f0h 50103B80013 mov ax,13h 60106EF out dx,ax 70107BA03F2 movdx,3f2h 8010AB80080 mov ax,80h 9010DEF out dx,ax10010EB80001 mov ax,01h110111EF out dx,ax12130112B80000 mov ax,00h140115EF out dx,ax150116B80000 movax,00h1601198ED8 movds,ax17011BBE0200 movsi,200h18011EB80136 movax,offsethint1901218904 movds:[si],ax20012383C602 addsi,221012622012AB80000 movax,023012DFB sti24012E3D0055waiting:cmpax,55h25013175FB jnewaiting26013390 nop270134EB280136B80055 hint: movax,55h29013990 nop30013AFA cli31013BCF iret32013C code endsendstart实验六8253定时器/计数器实验一、实验目的掌握8253定时器的编程原理,用示波器或A/D、D/A卡观察不同模式下的输出波形。二、实验内容编程将计数器0,1,2设置为模式2(分频方式),并观察其输出波形。三、实验原理图本实验用到两部分电路:脉冲产生电路、8253定时器/计数器电路。四、实验步骤1、连线:从CS0~CS7中任选一个(如CS0)与8253的片选信号(CS8253)相连,8253的OUT0与CLK2相连,OUT2与发光二极管LI相连,OUT1接示波器,其它信号均已接好或无须连接。有A/D、D/A卡则不需要接示波器,但需要将A/D、D/A卡的输出与实验箱的j2(8253芯片旁靠内侧的接口)相连。在软件DB86中打开波形观察窗口可观察波形。即:CS0«CS8253OUT0«8253CLK2OUT2«LED1示波器(如果有该设备)«OUT1;CLK3«8253CLK0,CLK3«8253CLK12、编写程序并调试程序。3、调试经过后全速运行并观察实验结果。4、编写实验报告。五、实验说明8253的时钟端CLK0、CLK1均为lM/8。CLK2的时钟由OUT来控制。8253为8086系统中常见的可编程定时器/计数器,内部有三个相互独立的计数器,分别称为计数器0,计数器1,计数器2。8253有多种工作模式,其中模式3为方波发生器。当设好初值后,自动将所设周期平分为两个部分,前一部分保持为高,后一部分保持为低,输出为一方波。CLK0,CLK1的频率均为lM/8,设计数器0的初值为0F424H(十进制为62500)时,方波周期为0.5S。在计数器2中设置不同的初值2n时,可得周期n×0.5S的方波,n的最大值为7FFFH(十进制为32767)时,周期最长为16383.5S(4小时33分3.5秒),此时的初值为7FFE六、实验程序框图(实验程序名T8253.ASM)七、实验程序举例 1 assumecs:code20000 code segmentpublic3 org100h40100BA04A6 starrt:mov dx,04a6h ;8253控制口地址50103B80036 mov ax,36h ;设置计数器0工作方式60106EF out dx,,ax70107BA04A0 movdx,,04a0h ;计数器0地址8010AB80024 mov ax,,24h ;设初值9010DEF outdx,,ax10010E B800F4 movax,,0f4h110111EF outdx,,ax12130112BA04A6 movdx,,04a6h ;140115B80076 movax,76h ;设置计数器1工作方式150118EF outdx,ax160119BA04A2 movdx,04a2h;计数器1地址17011CB8000A movax,018011FEF outdx,ax190120B80000 movax,0200123EF outdx,ax21220124BA04A6 movdx,04a6h230127B80086 rnovax,0b6h;设置计数器2工作方式24012AEF outdx,ax25012BBA04A4movdx,04a4h ;计数器226012EB80004movax,04h;设初值270131EF outdx,ax280132B80000 movax,00h290135EF outdx,ax30013690 next:nop310137EBFDjmpnext320139 codeends33 endstart实验七8255并行口实验一、实验目的掌握8255A编程原理。二、实验内容8255A的A口作为输入口,与逻辑电平开关相连。8255A的B口作为输出口,与发光二极管相连。编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。三、实验原理图本实验用到两部分电路:开关量输入输出电路和8255可编程并口电路。四、实验步骤1、连线:8255A(IC37)的PA0~PA7分别与逻辑电平开关电路的KI~K8相连;PB0~PB7分别与发光二极管电路的Ll~L8相连。从CS0~CS7中任选一个与8255A的片选(CS8255)端相连(如CS0)。其它线路均已连好。即:CS0«CS8255;PA0~PA7«RL10~RL17;PB0~PB7«LED-A~LED-DP;PC0~PC2«KA10~KA12;PC3«LED1。2、编辑程序,单步运行,调试程序。3、调试经过后,全速运行,观察实验结果。4、编写实验报告。五、实验说明逻辑电平开关拨上时5V,拨下时0V;发光二极管输入为1时亮,输入为0时灭。拨动开关,观察发光二极管的变化。当开关某位拨上时,对应的发光二极管点亮,拨下时熄灭。8255A是并行接口电路中比校常见的一种芯片,它的特点在许多教科书中都有介绍,在此不做详细说明(以后各实验中所用芯片均是如此),8255A有三个8位的输入输出端口,由于内部电路原因,一般将A端口(PA0~PA7)作输入用,B端口(PB0~PB7)作输出用,C端口作辅助控制用,本实验也是如此。本实验中,输入输出都比较简单,控制也不太复杂,因此可选择用基本输入输出方式(方式0,即输入输出设置与上相同)下工作。在设计程序时,先设置8255的工作方式(拉制端口地址为04A6H),然后循环读PA端口开关状态(地址为004A0H),输出至PB端口发光二极管(地址为04A六、实验程序框图(实验程序名T8255.ASM)七、实验程序1 assumecs:code20000 codesegmentpublic3 org100h 40100BA04A6 start: movdx,04a6h ;8255控制口地址 50103B80090 movax,90h 60106EF outdx,ax ;设置A口输入,B口输出 70107BA04A0 start1: movdx,04a0h ;A口地址 8010AED in ax,dx ;读开关量9010BBA04A2movdx,04a2h ;B口地址 10010EEF out dx,ax ;写发光二极管11010FEBF6 jmpstart1120111codeends13 endstart实验八DMA实验一、实验目的掌握DMA工作方式的原理和DMA控制器8237—5的编程使用方法。二、实验内容用DMA方式将0H到02OFFH共l00H个字节的传送到02100H起的100H个单元里。源地址单元内容初始化为55H,传送结束后目的地址的内容也应是55H。三、实验原理图四、实验步骤1、硬件连接CS6↔CS8237,将CS6与8237的CS37相连。2、编写程序,源地址单元内容初始化为55H,传送结束后目的地址的内容也应是55H。3、单步执行调试程序。4、调试经过后,全速运行,观察实验结果。5、编写实验报告。五、实验说明1、8237是按字节方式工作,而8086是按字方式工作。2、8237的所有口地址都应是偶地址。3、设置断点,并打开数据窗口,查看目的地址,单元内容是否改变。六、实验程序框图(实验程序名T8237.ASM)七、实验程序举例 1 assume cs:code 20000 codesegmentpublic 3 org100h 40100BB0000 start: mov bx,0 50103 BE1000 mov si,1000h 60106 B055 mov al,55h70108 B90100 mov cx,100h 8010B 8804 fil: mov [si],al 9010D46 incsi10010E E2FB loopfil 110110 BE1100 mov si,1100h 120113 B000 mov al,0h 130115B90100 movcx,100h 1401188804 fill: mov[si],al 15011A46 incsi 16011BE2FB loopfill 17011DB90100 movcx,100h 180120BA03FA rdma: mov dx,3fah 190123B80000 movax,00 200126 EF outdx,ax 210127BA03E0 movdx,3e0h 22012A 8BC3 movax,bx 23012CEF outdx,ax 24012D B80020 movax,20h 250130 EE outdx,al 260131BA03E4 movdx,3e4h 2701348BC3 movax,bx 280136 EF outdx,ax 290137B80021 movax,21h 30013AEF outdx,ax 31013B BA03E6 movdx,3e6h 32013E B80000 movax,00h 330141 EF outdx,ax 340142B80000 movax,00h 350145EF outdx,ax 360146BA03F6 movdx,3f6h 370149 B80088 movax,88h 38014CEF outdx,ax 39014DB80085 movax,85h 400150EF outdx,ax 410151BA03FE movdx,3feh 420154 B8000F movax,0fh 430157 EF outdx,ax 440158 BA03F0 movdx,3f0h 45015BB80003 movax,03h 46015EEF outdx,ax 47015FBA03F2 movdx,3f2h 480162 B80004 movax,04h 490165 EF outdx,ax 50016690 nop51016790nop520168 43 incbx530169 E2B5 looprdma54016B 90 nop55016C code ends
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于大数据的2025年度冷藏车调度管理系统合同2篇
- 长沙卫生职业学院《中国古典文献学》2023-2024学年第一学期期末试卷
- 2025版智能建筑抹灰分项工程劳务服务协议书4篇
- 科技助力川菜馆实现可持续发展
- 从用户需求出发的未来酒店餐饮空间设计策略
- 小学科学课程中实践活动的开展与问题解决
- 2025版门楼金属卷帘门安装与维护服务合同4篇
- 2025年度高端别墅定制设计与建造合同协议2篇
- 2024铝质板材市场销售合作协议2篇
- 父母心理韧性培养家庭教育的关键要素
- 普通高中生物新课程标准
- 茉莉花-附指法钢琴谱五线谱
- 结婚函调报告表
- SYT 6968-2021 油气输送管道工程水平定向钻穿越设计规范-PDF解密
- 冷库制冷负荷计算表
- 肩袖损伤护理查房
- 设备运维管理安全规范标准
- 办文办会办事实务课件
- 大学宿舍人际关系
- 2023光明小升初(语文)试卷
- GB/T 14600-2009电子工业用气体氧化亚氮
评论
0/150
提交评论