《微机原理与接口技术》实验指导书

更新时间:2024-01-29 05:26:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《微机原理与接口技术》课程实验指导书

实验内容

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 2000/XP等多种操作系统下运行。在使用本软件系统调试程序时,可以同时打开寄存器窗口、内存窗口、反汇编窗口、波形显示窗口等等,极大地方便了用户的程序调试。该软件集源程序编辑、编译、链接、调试与一体,每项功能均为汉字下拉菜单,简明易学。经常使用的功能均备有热键,这样可以提高程序的调试效率。

一、基本特点

EL型微机教学实验系统是北京精仪达盛科技有限公司根据广大学者和许多高等院校实验需求,结合电子发展情况而研制的具有开发、应用、实验相结合的高科技实验设备。旨在尽快提高我国电子科技发展水平,提高实验者的动手能力、分析解决问题能力。系统具有以下特点:

1、系统采用了模块化设计,实验系统功能齐全,涵盖了微机教学实验课程的大部分内容。

2、系统采用开放式结构设计,通过两组相对独立的总线最多可同时扩展2块应用实验板,用户可根据需要购置相应实验板,降低了成本,提高了灵活性,便于升级换代。

3、配有两块可编程器件EPM7064,一块被系统占用。另一块供用户实验用。两块器件皆可通过JTAG接口在线编程。使用十分方便。

4、灵活的电源接口:配有PC机电源插座,可由PC提供电源。另外还配有外接开关电源,提供所需的+5V,±12V,其输入为220V的交流电。

5、系统功能齐全,可扩展性强。本实验系统不仅完全能满足教学大纲规定的基本接口芯片实验,其灵活性和可扩展性(数据总线、地址总线、控制总线为用户开放)亦能轻松满足其课程设计、毕业设计使用等。 二、系统概述

该系统采用开放接口,并配有丰富的软硬件资源,可以形象生动地向学生展示8086及其相关接口的工作原理,其应用领域重点面向教学培训,同时也可作为8086的开发系统使用。采用该系统能大大提高教学质量,系统概述如下:

1、微处理器:8086 2、时钟频率:6MHz

3、可提供对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及其相关电路。

存储器:随机存储器RAM 40K字节,EPROM 40K字节。 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可编程中断控制器 8237 DMA控制电路

脉冲产生电路:采用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所示。

图6 8259中断控制电路

6、8253定时器/计数器电路

(1)电路原理

该电路由1片8253组成,8253的片选输入端插孔CS8253,数据口,地址,读写线均已接好,T0、T1、T2时钟输入分别为8252CLK0、8253CLK1、8253CLK2。定时器输出,GATE控制孔对应如下:OUT0、GATE0、OUT1、GATE1、OUT2、GATE2。原理如图7所示。

注:GATE信号无输入时为高电平

图7 8253定时器/计数器电路

7、8255并行接口电路

(1)电路原理

该电路由1片8255组成,8255的数据口,地址,读写线,复位控制线均已接好,片选输入端插孔为8255CS, A、B、C三端口的插孔分别为:PA0~PA7,PB0~PB7,PC0~PC7.电路原理如图8所示。

图8 8255并行接口电路

8、8237 DMA传输电路

(1)电路原理

该电路由一片8237、一片74LS245、一片74LS373、一片74LS244组成,DRQ0,DRQ1是DMA请求插孔,DACK0、DACK1是DMA响应信号插孔。SN74LS373提供DMA期间高8位地址的锁存,低8位地址由端口A0~A7输出。74LS245提供高8位存储器的访问通道。DMA0~DMA3是CPU对8237内部寄存器访问的通路。原理如图9所示。

图9 8237 DMA传输电路

9、8250串行接口电路

(1)电路原理

该电路由一片8250,一片MAX232组成,该电路所有信号线均已接好。原理如图10所示。

图10 8250串行接口电路

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所示。

图11 A/D、D/A电路

11、8279键盘、显示电路

(1)电路原理

8279显示电路由6位共阴极数码管显示,74LS244段驱动器,75451位驱动器,74LS138键盘译码电路。8279的数据口,地址,读写线,复位,时钟,片选都已经接好,键盘行列扫描线均有插孔输出。键盘行扫描线插孔号为KA0~KA3;列回复线插孔号为RL0~RL7;8279还引出CTRL、SHIFT插孔。原理如图12所示。

图12 8279键盘、显示电路

(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。

图13 4X6扫描键盘电路

13、开关量输入输出电路

(1)电路原理

开关量输入电路由8只开关组成,每只开关有两个位置H和L,一个位置代表高电平,一个位置代表低电平。对应的插孔是:K1~K8。开关量输出电路由8只LED组成,对应的插孔分别为LED1~LED8,当对应的插孔接低电平时LED点亮。原理如图14所示。

图14 开关量输入输出电路

(2)电路测试

开关量输入电路可通过万用表测其插座电压的方法测试,即开关的两种状态分别为低电平和高电平;开关量输出电路可通过在其插孔上接低电平的方法测试,当某插孔接低电平时相应二极管发光。

14、六位LED数码管驱动显示电路

(1)电路原理

该电路由六位LED数码管、位驱动电路、段输入电路组成,数码管采用动态扫描的方式显示。

具体见原理如图15所示。,图中用75251作数码管的位驱动。跳线开关用于选择数码管的显示源,可外接,也可选择8279芯片。

图15 LED数码管驱动显示电路

(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]

例如,按指定范围显示存储单元内容的方法为: -D100 120

067C:0100 C7 D7 0D 0A 32 33 33 34 - D5 C5 B4 C6 30 10 42 0C ....2334....0.B. 067C:0110 03 41 42 43 44 45 46 47 - 48 49 4A 4B 4C 4D 4E 4F .ABCDEFGHIJKLMNO 067C:0120 8B

其中0100至0120是DEBUG显示的单元内容。 左边用十六进制表示每个字节,右边用ASCII字符表示每个字节。“.”表示不可显示的字符。

这里没有指定段地址,D命令自动显示DS段的内容。如果只指定首地址,则显示从首地址开始的80个字节的内容;如果完全没有指定地址,则显示上一个D命令显示的最后一个单元后的内容。

2、修改存储单元内容的命令有两种

输入命令E(Enter),有两种格式如下:

(1)第一种格式可以用给定的内容表来替代指定范围的存储单元内容。

命令格式为: -E address [list] 例如,-E DS(具体值):100 F3'XYZ'8D

其中F3,‘X’,‘Y’,‘Z’和8D各占一个字节

该命令可以用这五个字节来替代存储单元DS:0100到0104的原先的内容。 (2)第二种格式则是采用逐个单元相继修改的方法。

命令格式为: -E address 例如,-E DS(具体值):100

则可能显示为: 18E4:0100 89. –

如果需要把该单元的内容修改为78,则可以直接键入78,再按空格键可接着显示下一个单元的内容,如下: 18E4:0100 89._78 1B._

这样可以不断修改相继单元的内容,直到Enter键结束该命令为止。 3、填写命令F(Fill)

其格式为: -F range list 例如,-F 4BA:0100 0105 F3'XYZ'8D

使04BA:0100-0104单元包含指定的五个字节的内容,如果list中的字节数超过指定的范围,则忽略超过的项;如果list的字节数小于指定范围,则重复使用list填入,直到填满指定的所有单元为止。

4、检查和修改寄存器内容的命令R(Register)

它有三种格式如下:

(1)显示CPU内所有寄存器内容和标志位状态,其格式为: -R

例如, -r

AX=0000 BX=0000 CX=010A DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000 DS=18E4 ES=18E4 SS=18E4 CS=18E4 IP=0100 NV UP DI PL NZ NA PO NC 18E4:0100 C70604023801 MOV WORD PTR[0204],0138 DS:0204=0000 标志位状态的含义

标志名标志为1标志为0 溢出(是/否)OVNV 方向(减量/增量)DNUP 中断(允许/关闭)ETDT 符号(负/正)NGPL 零(是/否)ZRNZ

辅助进位(是/否)ACNC 奇偶(偶/奇)PEPO 进位(是/否)CVNC

(2)显示和修改某个寄存器内容,其格式为: -R register name

例如,键入 -r ax

系统将响应如下: AX F1F4

即AX寄存器的当前内容为F1F4,如不修改则按Enter键,否则,键入欲修改的内容 如: -r bx BX 0369 :059F

则把BX寄存器的当前内容修改为059F。

(3)显示和修改标志位状态,命令格式为: -RF

系统将响应,如: OV DN EI NG ZR AC PE CY –

此时如不修改其内容可按Enter键,否则,建入欲修改的内容,如: OV DN EI NG ZR AC PE CY – 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执行(例 MOV AH,4CH INT 21H)则进入DOS,执行BIOS的内容 7、汇编命令A(Assemble)

其格式为:-A [address]

该命令允许键入汇编语言语句,并能把它们汇编成机器代码,相继地存放在从指定地址开始的存储区中。

必须注意:DEBUG把键入的数字均看成十六进制数,所以如要键入十进制数,则其后应加以说明,如100D。

8、反汇编命令U(Unassemble)

有两种格式:

(1)从指定地址开始,反汇编32个字节,其格式为: -U[range]

例如: -u 100

18E4:0100 C70604023801 MOV WORD PTR[0204],0138 18E4:0106 C70606020002 MOV WORD PTR[0206],0200 18E4:010C C70608020202 MOV WORD PTR[0208],0202 18E4:0112 BB0402 MOV BX,0204 18E4:0115 E80200 CALL 011A 18E4:0118 CD20 INT 20 18E4:011A 50 PUSH AX 18E4:011B 51 PUSH CX 18E4:011C 56 PUSH SI 18E4:011D 57 PUSH DI

18E4:011E 8B37 MOV SI,[BX]

如果地址被省略则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。 (2)对指定范围内的存储单元进行反汇编,格式为: -U[range]

例如: -u 100 10C

18E4:0100 C70604023801 MOV WORD PTR[0204],0138 18E4:0106 C70606020002 MOV WORD PTR[0206],0200 18E4:010C C70608020202 MOV WORD PTR[0208],0202

或: -u 100 112

18E4:0100 C70604023801 MOV WORD PTR[0204],0138 18E4:0106 C70606020002 MOV WORD PTR[0206],0200 18E4:010C C70608020202 MOV WORD PTR[0208],0202 这两种格式是等效的。用反汇编命令U来确定我们所要设定的断点地址。 9、命名命令N(Name)

其格式为: -N filespecs [filespecs]

命令把两个文件标识符格式化在CS:5CH和CS:6CH的两个文件控制块中,以便在其后用L或W命令把文件装入或存盘。

filespecs的格式可以是: [d:][path] filename[.exe] 例如:

-N myprog -L -

可把文件myprog装入存储器。 10、装入命令L(Load)

有两种功能:

(1)把磁盘上指定扇区范围的内容装入到存储器从指定地址开始的区域中

其格式为: -L[address [drive sector sector]] (2)装入指定文件,其格式为: -L[address]

此命令装入已在CS:5CH中格式化了的文件控制块所指定的文件。如未指定地址,则装入CS:0100开始的存储区中。 11、写命令W(Write)

有两种功能:

(1)把数据写入磁盘的指定扇区。其格式为: -W address drive sector sector (2)把数据写入指定的文件中。其格式为: -W [address]

此命令把指定的存储区中的数据写入由CS:5CH处的文件控制块所指定的文件中。如未指定地址则数据从CS:0100开始。要写入文件的字节数应先放入BX和CX中。 12、退出DEBUG命令Q(Quit)

其格式为:-Q

它退出DEBUG,返回DOS。本命令无存盘功能,如需存盘应先使用W命令。 四、调试实验程序及调试功能设置清单:

-A

MOV AX,1234 MOV BX,AX -T -T

-A 0100 MOV DL,35 MOV AH,2

INT 21 调用DOS 21号中断2号功能, 用来逐个显示装入DL的字符

INT 20 调用DOS 20号中断,终止程序, 将控制权交回给 DEBUG

-G

-A 0100

MOV CX,0100 MOV DL,00 MOV AH,02 INT 21 INC DL LOOP 0105 INT 20 -G

-A 0100 MOV DX,109 MOV AH,9 INT 21 INT 20

DB ‘UNDERSTAND?$’ -G

STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS DATA SEGMENT

PROG DB 'MOV AX,DATA',0DH,'MOV DX,AX',0DH,'MOV AX,0',0DH,'MOV BX,2',0DH,'MOV CX,10',0DH,'ADD AX,BX',0DH DB '...' DB 1AH NUM DW 0 DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK BEGIN: MOV AX,DATA MOV DS,AX MOV AX,0

MOV SI,OFFSET PROG LOPA: CMP [SI],BYTE PTR 1AH JE EXIT

CMP [SI],BYTE PTR 'M' JNE NEXT

CMP [SI+1],BYTE PTR 'O' JNE NEXT

CMP [SI+2],BYTE PTR 'V' JNE NEXT INC AX ADD SI,2 NEXT: INC SI

JMP LOPA EXIT: MOV NUM,AX MOV AH,4CH INT 21H CODE ENDS END BEGIN

? 实验二 简单程序设计实验

一、实验目的:

熟悉汇编程序设计的基本过程。 二、实验内容:

1、编写人机对话程序WHAT IS YOUR NAME? 输入:My name is . ,试编写程序。 2、在以BUF为首址的字节存储区中存放有N个无符号数X1,X2,??Xn,现需将它们按从小到大的顺序排列在BUF存储区中,试编写程序。

3、将变量A=10011010B的数据以二进制形式在显示器上输出,试编写程序。

4、1+2+2+2+??+2=255,求N值并显示(十进制数)出来,试编写程序。

5、已知在以BUF为首地地址的字节存储区中,存放着一个以‘$’作结束标志的字符串,编写程序,显示该字符串,并要求将小写字母以大写字母形式显示出来。(小写a为61H,大写A为41H。)

三、实验程序清单: 1、

DSEG SEGMENT

DATA DB 0AH,0DH,'WHAT IS YOUR NAME?$' BUF DB 81 DB ?

DB 80 DUP(0) DSEG ENDS STACK1 SEGMENT

DB 200 DUP(0) STACK1 ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DSEG,SS:STACK1 START: MOV AX,DSEG MOV DS,AX LEA DX,DATA MOV AH,09H INT 21H LEA DX,BUF MOV AH,0AH INT 21H MOV AH,4CH INT 21H CODE ENDS

END START

2

3

n-1

2、

STACK1 SEGMENT

DB 200 DUP(0) STACK1 ENDS DATA SEGMENT

BUF DB 30H,10H,40H,20H,50H,70H,60H,90H,80H,0,0FFH N=$-BUF DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK1 BEGIN: MOV AX,DATA MOV DS,AX MOV SI,1 LOPI: MOV DI,SI INC DI

MOV AL,[BUF+SI-1] LOPJ: CMP AL,[BUF+DI-1]

JBE NEXT ; XCHG [BUF+DI-1],AL MOV [BUF+SI-1],AL NEXT: INC DI CMP DI,N JBE LOPJ INC SI CMP SI,N-1 JBE LOPI MOV AH,4CH INT 21H CODE ENDS

END BEGIN 3、

DATA SEGMENT

A DB 10011010B B DB '(A)=$'

C DB 'B',0DH,0AH,'$' DATA ENDS STACK1 SEGMENT

DB 200 DUP(0) STACK1 ENDS CODE SEGMENT

ASSUME DS:DATA,SS:STACK1,CS:CODE START: MOV AX,DATA MOV DS,AX LEA DX,B

无符号数 MOV AH,09H INT 21H MOV BL,A MOV CL,8 NEXT: MOV DL,0 SAL BL,1 RCL DL,1 ADD DL,30H MOV AH,2 INT 21H DEC CL JNE NEXT LEA DX,C MOV AH,9 INT 21H MOV AH,4CH INT 21H CODE ENDS

END START 4、

CODE SEGMENT

ASSUME CS: CODE START: MOV AX,1 MOV BX,2 ADD AX,BX MOV CX,1 L1: INC CX SAL BX,1 ADD AX,BX CMP AX,255 JB L1 ADD CX,1 MOV DX,0 L2: CMP CX,0AH JNAE L3 INC DX SUB CX,0AH JMP L2 L3: CMP DL,0 JE B1 OR DL,30H MOV AH,02H INT 21H B1: ADD CX,30H

MOV DL,CL MOV AH,02H INT 21H MOV AH,4CH INT 21H CODE ENDS

END START 5、

STACK1 SEGMENT

DB 200 DUP(0) STACK1 ENDS DATA SEGMENT

BUF DB 'add AX,BX sub CX,10 MOV dx,1234h END$' DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK1 BEGIN: MOV AX,DATA MOV DS,AX LEA BX,BUF LOPA: MOV DL,[BX] CMP DL,'$' JE EXIT CMP DL,'A' JB N

CMP DL,'Z' JA N

SUB DL,20H N: MOV AH,2 INT 21H INC BX JMP LOPA EXIT: MOV AH,4CH INT 21H CODE ENDS

END BEGIN

? 实验三 RAM实验

一、实验目的 1、掌握PC机内存扩展方法 2、熟悉6264芯片的接口方法。 3、掌握8086十六位数据存储的方法。 二、实验内容 向02000H至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)

七、实验程序举例 1 0000 2 3 4 0100 B8 0100 5 0103 8E D8

code segment

assume cs:code org 0100h

start: mov ax, 0100h mov ds, ax

6 0105 8E C0 mov es, ax 7 0107 BE 1000 mov si, 1000h 8 010A B9 0100 mov cx, 0100h 9 010D B0 00 mov al, 0 10 010F 88 04 intram: mov [si], al 11 0111 46 inc si 12 0112 E2 FB loop intram 13 0114 BE 1000 mov si, 1000h 14 0117 B9 0100 mov cx, 100h 15 011A B8 55AA mov ax, 55aah 16 011D 89 04 fil: mov [si], ax 17 011F 46 inc si 18 0120 46 inc si 19 0121 E2 FA loop fil 20 0123 90 nop 21 0124 EB DA jmp start 22 0126 code ends

23 end start

? 实验四 简单I/0口扩展实验

一、实验目的

利用74LS244和74IS273扩展I/0口。 二、实验内容

1、熟悉74LS273,74LS244的应用接口方法。

2、掌握用锁存器、三态门扩展简单并行输入、输出口的方法。 三、实验原理图

本实验用到两部分电路:开关量输入输出电路,简单I/O口扩展电路。

七、实验程序举例 1 assume cs:code

2 0000 code segment public 3 org 100h 4 0100 BA 04A6 starrt: mov dx,04a6h ;8253控制口地址 5 0103 B8 0036 mov ax,36h ;设置计数器0工作方式 6 0106 EF out dx,,ax 7 0107 BA 04A0 mov dx,,04a0h ;计数器0地址 8 010A B8 0024 mov ax,,24h ;设初值 9 010D EF out dx,,ax 10 010E B8 00F4 mov ax,,0f4h 11 0111 EF out dx,,ax 12

13 0112 BA 04A6 mov dx,,04a6h ; 14 0115 B8 0076 mov ax,76h ;设置计数器1工作方式 15 0118 EF out dx,ax 16 0119 BA 04A2 mov dx,04a2h ;计数器1地址 17 011C B8 000A mov ax,0ah ;设初值 18 011F EF out dx,ax 19 0120 B8 0000 mov ax,0 20 0123 EF out dx,ax 21

22 0124 BA 04A6 mov dx,04a6h 23 0127 B8 0086 rnov ax,0b6h ;设置计数器2工作方式

24 012A EF out dx,ax 25 012B BA 04A4 mov dx,04a4h ;计数器2地址

26 012E B8 0004 mov ax,04h ;设初值 27 0131 EF out dx,ax 28 0132 B8 0000 mov ax,00h 29 0135 EF out dx,ax 30 0136 90 next: nop

31 0137 EB FD jmp next 32 0139 code ends 33 end start

? 实验七 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端口发光二极管(地址为04A2H)。 六、实验程序框图(实验程序名T8255.ASM)

七、实验程序 1 assume cs:code 2 0000 code segment public 3 org 100h 4 0100 BA 04A6 start: mov dx, 04a6h ;8255控制口地址 5 0103 B8 0090 mov ax, 90h 6 0106 EF out dx, ax ;设置A口输入,B口输出 7 0107 BA 04A0 start1: mov dx, 04a0h ;A口地址 8 010A ED in ax, dx ;读开关量 9 010B BA 04A2 mov dx, 04a2h ;B口地址 10 010E EF out dx, ax ;写发光二极管

11 010F EB F6 jmp start1 12 0111 code ends 13 end start

? 实验八 DMA实验

一、实验目的

掌握DMA工作方式的原理和DMA控制器8237—5的编程使用方法。 二、实验内容

用DMA方式将02000H到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 2 0000 3 4 0100 BB 0000

assume cs:code code segment public org 100h

start: mov bx, 0

5 0103 BE 1000 6 0106 B0 55 7 0108 B9 0100 8 010B 88 04 9 010D 46 10 010E E2 FB 11 0110 BE 1100 12 0113 B0 00 13 0115 B9 0100 mov si,1000h mov al,55h mov cx,100h fil: mov [si],al inc si loop fil

mov si,1100h mov al,0h

mov cx,100h 14 0118 88 04 15 011A 46 16 011B E2 FB 17 011D B9 0100 18 0120 BA 03FA 19 0123 B8 0000 20 0126 EF 21 0127 BA 03E0 22 012A 8B C3 23 012C EF 24 012D B8 0020 25 0130 EE 26 0131 BA 03E4 27 0134 8B C3 28 0136 EF 29 0137 B8 0021 30 013A EF 31 013B BA 03E6 32 013E B8 0000 33 0141 EF 34 0142 B8 0000 35 0145 EF 36 0146 BA 03F6 37 0149 B8 0088 38 014C EF 39 014D B8 0085 40 0150 EF 41 0151 BA 03FE 42 0154 B8 000F 43 0157 EF 44 0158 BA 03F0 45 015B B8 0003 46 015E EF 47 015F BA 03F2 48 0162 B8 0004

fill: mov [si],al inc si loop fill

mov cx,100h rdma: mov dx,3fah mov ax,00 out dx,ax

mov dx,3e0h mov ax,bx out dx,ax

mov ax,20h out dx,al

mov dx,3e4h mov ax,bx out dx,ax

mov ax,21h out dx,ax

mov dx,3e6h mov ax,00h out dx,ax mov ax,00h out dx,ax mov dx,3f6h mov ax,88h out dx,ax mov ax,85h out dx,ax mov dx,3feh mov ax,0fh out dx,ax mov dx,3f0h mov ax,03h out dx,ax mov dx,3f2h mov ax,04h

49 0165 EF out dx,ax 50 0166 90 nop 51 0167 90 nop 52 0168 43 inc bx 53 0169 E2 B5 loop rdma 54 016B 90 nop 55 016C code ends 56 end start

? 实验九 8250串口实验

一、实验目的

1、熟悉串行通信的一般原理和8250的工原理。 2、了解RS--232串行接口标准及连接方法。

3、掌握8250芯片的编程方法。 二、实验内容

在实验箱与PC机(上位机)之间实现串行通信,主机每下传一个字符,如通讯正确则下位机返回一个同样的字符,如果不正确,则无返回或不相同。 三、实验原理介绍

由MAX232完成RS232电平和TTL电平的转换,由8250完成数据的收发。8250内部有10个寄存器,分别对应着不同的IO口地址。对不同的寄存器进行初始化或读出写入操作就可以完成与计算机的通信。由于不能同时收发数据,所以8250又称为通用串行异步收发器,简写为:UART。8250实验电路的所有信号均已连好。 四、实验步骤

1、实验接线

利用串口电缆连接实验箱的串口和计算机的串口(COM1或COM2) 2、编写程序。

3、在实验箱上运行86编译系统,下载实验程序8250.asm,并全速运行。

4、实验箱退出86编译系统,启动上位机驱动程序T6UP.EXE,首先选择串行端口(COM1或COM2),端口与步骤1一致,键入串口号即可,然后从键盘上输入字符,看返回字符是否正确。欲退出T6UP.EXE,按回车键。 五、实验提示

实验中,通讯波特率选用9600bps。上下位机均采用查询方式。8250的端口地址为0480起始的偶地址单元。

实验中,上位机向下位机发送一个字符,下位机将接收到的字符返回。事实上这就实现了串口通信的基本过程。掌握了此实验中的编程方法再编制复杂的串行通信程序也就不难了。

串行通信和并行通信是计算机与外围设备进行信息交换的基本方法,二者有不同的特点。简而言之,前者电路及连线简单,最少用三根线就可以实现串口通信,但通信速率慢,适用于长距离慢速通信;后者电路及连线复杂,成本较高,但通信速率快,适用于短距离高速通信。

六、程序框图8250.ASM

七、程序源代码清单

code segment ;define data segment assume cs:code org 0100h

start: mov bx,0480h mov dx,bx add dx,6 mov ax,80h out dx,ax mov dx,bx

mov ax,0ch ;000ch---9600 ,clk=4.77MHZ/4 ;AL=4770000/16/9600/4=8 out dx,ax

add dx,2 mov ax,0h out dx,ax add dx,4

mov ax,07 ;no pe,8 bit, 1 stop out dx,ax mov dx,bx

add dx,2 ;no interrupt mov ax,0

out dx,ax

add dx,8h in ax,dx mov dx,bx in ax,dx crd: call recv call send jmp crd send: push ax mov bx,0480h mov dx,bx

add dx,0ah in ax,dx

test ax,20h jnz recv2 pop ax jmp send recv2: pop ax

mov dx,bx out dx,ax ret

recv: mov bx,0480h mov dx,bx

add dx,0ah in ax,dx

test ax,01h jnz recv1 jmp recv

recv1: mov dx,bx in ax,dx ret

code ends end start

;end of code segment ;end assembly ? 实验十 A/D转换器实验

一、实验目的

熟悉A/D转换的基本原理,掌握ADC0809的使用方法。 二、实验内容

按查询方式采样三路A/D转换数据,用简单输入口(74LS244)查询EOC信号。每循环一次0,l,2通道各采样一次。采样结果是O通道放入CX中,CL有效,l通道放入BX中,BL有效,2通道放入AX中,AL有效。 三、实验原理图

四、实验步骤

1、连线:将可变电位器KB1,KB2,KB3分别与ADC0809的INO,N1,IN2相连,从CS0?CS3中任选一个(如CSO)与ADC0809的片选(CS0809)端相连。将ADC0809的EOC与IC25(74LS244)的SI0相连,从CSO? CS7中任选一个(如CS1)与IC25的片选(CSUl0)端相连。

即:AN0?ADIN0,CS0?CS0809,CS1?CS244,EOC?IN0。

用实验箱左上角的“VERF.ADJ”电位器调节ADC0809第12脚上的参考电压至5.0V。 2、编写程序并调试。

3、调试通过后设置断点全速运行,并观察实验结果。 4、编写实验报告 五、实验说明

实验电路中启动信号START与地址锁存信号相连,所以启动A/D转换的方法为: MOV DX,PADC ;PADC是ADC0809的端口地址 OUT AL,DX ;发片选及IOW信号,这是0通道 ;启动1通道时,DX应加1 六、实验程序框图(实验程序名T0809.ASM)

七、实验程序举例

1 assume cs:code

2 0000 code segment public 3 org 100h

4 0100 BA 04AO start: mov dx,04aOh 5 0103 B8 0034 mov ax,34h 6 0106 EF out dx,ax

7 0107 BA 04BO 8 01OA BD 1000 9 010D 4D 10 010E 83 FD OO 11 0111 75 FA 12 0113 ED 13 0114 25 000l 14 0117 3D OOOl 15 011A 75 F7 16 011C BA 04AO 17 011F ED 18 0120 25 00FF and ax,Offh 19 0123 8B C8 20 0125 BA 04A2 21 0128 B8 0034 22 012B EF 23 012C BD 100O 24 012f 4D 25 0130 83 FD O0 26 0133 75 FA 27 0135 BA 04BO 28 0138 ED 29 0139 25 0001 30 013C 3D OOOl 31 013F 75 F7 32 0141 BA 04A2 33 0144 ED 34 0145 25 00FF 35 0148 8B D8 36 014A BA 04A4 37 014D B8 0034 38 0150 EF 39 0151 BD 1000 40 0154 4D 41 0155 83 FD 00 42 0158 75 FA 43 015A BA 04BO 44 015D ED 45 015E 25 00O1 46 0161 3D 0001 47 0164 75 F7 48 0166 BA 04A4 49 0169 ED 50 016A 25 00FF

mov dx,04bOh mov bp,1000h layl: dec bp cmp bp,0 jne lay1 wait1: in ax,dx and ax,1 cmp ax,1

jne waitl mov dx,04aOh in ax,dx mov cx,ax mov dx,04a2h mov ax,34h out dx,ax mov bp,1000h lay2:dec bp cmp bp,0 jne lay2 mov dx,04bOh wait2:in ax,dx and ax,1 cmp ax,1 jne wait2

mov dx,04a2h in ax,dx and ax,Offh mov bx,ax

mov dx,04a4h mov ax,34h out dx,ax mov bp,1000h lay3:dec bp cmp bp,0 jne lay3

mov dx,04bOh wait3:in ax,dx and ax,1 cmp ax,01 jne wait3

mov dx,04a4h in ax,dx

and ax,0ffh

51 016D 90 52 016E EB 90 53 0170 54

nop

jp start code ends end start

? 实验十一 D/A转换实验

一、实验目的

熟悉数模转换的基本原理,掌握DAC0832的使用方法。 二、实验内容

看懂接口电路后连好硬件线路,并编写程序以产生以下两种波形并用示波器或A/D、D/A卡观察。

1、锯齿波形 2、三角波

四、实验步骤

1、连线:从CSO?CS7中任选一个(如CSO)与DAC0832的片选(CS0832)端相连。将示波器接至DAC0832的输出端。有A/D、D/A卡则不需要接示波器,但需要将A/D、D/A卡的输出与实验箱的j2(8253芯片旁靠内侧的接口)相连。在软件DB86中打开波形观察窗口可观察波形。

即:CS0 ?CS0832 ;示波器(如果有该设备)?DOUT ;DS跳线:1 ?2

2、编写程序并调试。

3、调试程序通过后,全速运行产生不同波形。 4、观察实验结果,编写实验报告。 五、实验说明

DAC0832在图9所示的接口电路中,KB6调节参考电压VREF,KB5调节DA的零点,KB4 调节DA的满偏,DAC0832工作在双缓冲接口万式下。当A1=0时可锁存输入数据,当A1=1时,可起动转换输出。所以要进行D/A转换,需分两步进行,方法如下:

MOV DX,DACPORT ;DAC0832片选信号偶地址 MOV AL,DACPORT

OUT DL,AL ;锁存数据 ADD DX,2

OUT DX,AL ;启动转换

六、实验程序框图(实验程序名锯齿波DAC-1.ASM,三角波DAC-2.ASM)

程序一 产生锯齿波

七、实验程序举例 1、产生锯齿波程序: 1 assume cs:code 2 0000 code segment public 3 org100h 4 0100 Start : 5 0100 BA 04A0 mov dx,04a0h 6 0103 BB 0000 upl:mov bx,0 7 0106 8B C3 up2:mov ax,bx 8 0108 EF out dx,ax 9 0109 BA 04A2 mov dx,04a2h 10 010C EF out dx,ax 11 010D BA 04A0 mov dx,04a0h 12 0110 43 inc bx

程序二 产生三角波

13 0111 81 FB 00FF cmp bx,0ffh 14 0115 75 EF jne up2 15 0117 EB EA jmp up1 16 0119 code ends 17 end start 2、产生三角波程序:

1 assume cs:code 2 0000 code segment public 3 org 100h 4 0100 start :

5 0100 BA 04A0 mov dx,04a0h 6 0103 BB 0000 upl:mov bx,0 7 0106 8B C3 up2:mov ax,bx 8 0108 EF out dx,ax

9 0109 BA 04A2 mov dx,04a2h 10 010C EF out dx,ax 11 010D BA 04AO mov dx,04a0h 12 0110 43 inc bx

13 0111 81 FB 00FF cmp bx,0ffh 14 0115 75 EF jne up2 15 0117 EB EA jmp up1 16 0119 code ends 17 end start

? 实验十二 8279显示器接口实验

一、实验目的

1、进一步掌握8279的工作原理。 2、学习LED显示器的使用方法。 3、熟悉8279的接口方法。 二、实验内容

在六位LED数码管上循环显示1,2,3,4, 5-----E,F。 三、实验原理介绍

显示器的段选码由OUTA口和OUTB口输出,经74LS244驱动后送给共阴极LED。显示器的位扫描信号经74LS138译码、75451驱动后提供给LED的公共极。RL0-RL7提供了键盘列扫描接口,KA0-KA3提供键盘的行扫描接口。原理见下图8279键盘、显示电路。

四、实验步骤

1、实验连线(本实验无需额外接线)。

2、编写调试程序,全速运行,观察实验结果 五、实验提示

1、LED是共阴极的,其七段LED的段选码为:

字符

C

2、LED显示的方法为动态显示。

六、实验程序框图(实验程序名:T8279d.asm)

D E F 39h 5eh 79h 71h 0 1 2 3 4 5 6 7 8 9 A B 段选码 3fh 06h 5bh 4fh 66h 6dh 7dh 07h 7fh 6fh 77h 7ch

七、程序源代码清单:

CON8279 EQU 0492H

DAT8279 EQU 0490H ASSUME CS:CODE CODE SEGMENT PUBLIC ORG 100H

START: MOV DI,OFFSET SEGCOD

MOV AX,08H ;工作方式,16位,左入 MOV DX,CON8279 OUT DX,AX

START1: MOV CX,06 ;循环次数 MOV BX,80H DISP: MOV AX,BX

MOV DX,CON8279

OUT DX,AX ;写显示RAM命令,地址自增 MOV DX,DAT8279 MOV AX,CS:[DI]

OUT DX,AX ;写RAM0 NOP NOP

INC DI

MOV AL,CS:[DI] CMP AL,0FFH

JNZ FLASH

MOV DI,OFFSET SEGCOD FLASH: PUSH CX

CALL DELAY ;延时

;call black ;全灭 CALL DELAY ;延时 POP CX INC BX LOOP DISP

CALL BLACK JMP START1 BLACK:

MOV DX,CON8279 MOV AX,0D1H

OUT DX,AX ;all clear and delay CALL DELAY RET DELAY:

MOV CX,8FFFH ;time delay DELAY1:

NOP NOP

LOOP DELAY1 RET

SEGCOD DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H

DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H,0FFH CODE ENDS

END START ;全灭

本文来源:https://www.bwwdw.com/article/nkew.html

Top