微机原理与接口技术
实验指导书
\\
二00九年十二月
前言 .................................................................................................................................................. 3 第一章 系统概述 ................................................................................................................... 4
一、 系统组成 ................................................................................................................... 4 二、 使用入门 ................................................................................................................... 5 三、 基本调试技巧 ........................................................................................................... 6 第二章 软件部分实验 ........................................................................................................... 8
实验一 清零程序 ........................................................................................................... 8 实验二 显示子程序 ....................................................................................................... 9 第三章 硬件部分实验 ......................................................................................................... 10
实验一 简单I/O口扩展 ............................................................................................. 10 实验二 8259单级中断控制器实验 ............................................................................ 12 实验三 定时/计数器 8253方波 .............................................................................. 14 实验四 8255A并行口实验 输出方波 ....................................................................... 16 实验五 8251串口实验 自发自收 .............................................................................. 17 实验六 A/D转换实验 .............................................................................................. 19 实验七 D/A转换实验 输出方波 ............................................................................... 21
前言
本实验讲义是为8088十六位微机实验系统编写的详细实验指导,与Dias-8086H系统配套。该系统上提供的全套实验是为《微机原理与接口》等课程设置的。讲义中详细叙述了各实验目的、实验内容、实验原理图、程序框图,主要供本校计算机专业学生学习《微机原理与接口技术》等课程时作为实验指导。书中所有软硬件程序都已经过调试运行。需要特别说明的是:
一、当选择联机模式时,把软盘上的\\dais88\\88.exe实验程序全部下载到实验系统的
RAM中。 当选择脱机模式时,把插在固化区上的EPROM内容(0000—3FFFH) 用传送命令将程序传送到 以0000H为起始地址的RAM中,因实验程序中 采用子程序形式较多,要互相调用,所以必须把程序全部传送到实验系统中,对中断入口等地址的指令按照实验要求输入。其中8088实验程序地址范围:3000H—3FFFH,您可以通过系统自带的键盘显示输入各种命令运行系统RAM中的实验程序,显示实验结果,完成各个实验,这种模式适合于PC机不足的情况。 二、所有实验都是相互独立的,次序上也没有固定的先后关系,在使用该系统进行教学
时可以根据贵校(院)的教学要求,选择相应的实验。 三、各实验原理图中的粗黑线表示在实验时需要连接的线。 四、软硬件实验丰富,提供12个软件实验和24个硬件实验。本实验讲义仅选用其中的
部分,学有余力的同学可以参考Dias IDE软件的“实验指导”菜单项下的相关说明,进一步选做相关内容。
由于时间仓促、水平有限,不尽之处,敬请指正。
+
第一章 系统概述
一、 系统组成
1、硬件构成
Dias系列单片机微机仿真实验系统的8088/8086微机接口实验由管理CPU 89C52单元、目标CPU8088/8086单元、接口实验单元和内置稳压电源组成,通过RS-232C串行接口与PC微机相连,系统硬件主要内容如下: CPU 系统存储器 接口芯片及单元实验 管理CPU 89C52单元、目标CPU8032/78E438单元 监控在89C52内E2PROM(8K)、RAM6264、RAM61256一片(32K)、BPRAM61256(32K) 8253、8255、8259、ADC0809、DAC0832、6264、164、273、244、393分频、电子发声单元、电机控制单元、开关及发光二极管、单脉冲触发器、继电器控制、16*16点阵、8155扩展3*3键盘、四位LED显示、PC总线扩展单元及8251、8250串行通信等。 打印接口、RS232C串口、D/A驱动接口、步进电机驱动接口、音频驱动接口、PC总线接口、2*16LCD液晶显示接口 6位LED、二路双踪示波器 32键自定义键盘 编对EPROM2764/27128快速读出 +5V/2A,+12V/0.5A 外设接口 显示器 键盘 EPROM程器 系统电源 2、功能与特点
1) 目标CPU主频14.3818MHZ,系统以最小模式工作方式构成。
2) 配有的1片6264构成8K基本内存,地址范围:0F000:0000H~07FFH,作为监控程序
区和数据区;另配有1片61C256作为实验程序空间,地址从0000:0000H~FFFFH(其中0~003FFH作为目标机中断向量区),还配有一片61C256作为用户设置的断点区。 3、系统资源分配
1)寻址范围定义如下: 系统数据区 系统堆栈区 系统程序区 用户程序区 用户数据区 用户堆栈区 中断向量区 F000:0000~00FFH F000:0100~01FFH F000:0200~02FFH 0000:1000~7FFFH 0000:0600~0400H 0000:0000~03FFH 4
2)系统已定义的I/O地址如下: 接口芯片 74LS273 74LS273 74LS245 8255A口 8255B口 8255C口 8255控制口 口地址 FFDDH FFDCH FFDEH FFD8H FFD9H FFDAH FFDBH 用途 字位口 字形口 键入口 EP总线 EP地址 EP控制 控制字 二、 使用入门
1、系统检测 1)硬件启动
打开电源,系统应显示闪动的“P.”,处于待命状态;否则按下RESET键,如仍不显示,应立即切断电源,检查后重新进行或向实验指导教师报告。 2) 系统功能自检
在闪动的“P.”状态下按键:[MOVE]——> 1000——> [STEP]——> [EXEC],系统已连续方式运行“8”字循环右移程序,若6位LED 出现跑“8”,显示,说明系统已进入正常工作状态。可按RESET键返回“P.”状态。
2、初始化状态
系统上电总清后,各寄存器初值如下:
SP=0600H,CS=0000H,DS=0000H,SS=0000H,ES=0000H,IP=1000H,FL=0000H 2、软件使用
启动:一旦正确安装 Dais-IDE,您只需把鼠标指向“开始/程序/启东达爱思仿真开发系统”程序组,选择所要运行的软件便可启动程序。
退出:Dais-IDE 可以从“文件/退出”命令退出集成环境,或单击屏幕右上角的也可直接按 Alt+X 退出。 3、计算机与仿真器联机
启动调试软件或在使用软件过程中出现通讯错误主要有以下几个原因: ⑴ 仿真器与计算机没有连接; ⑵ 仿真器的电源没有打开;
5
按钮,
⑶ 仿真器连接的实际串行口及软件设置不一致; ⑷ 软件已被病毒感染。 对于⑴⑵⑷的错误,只要在硬件上检查一下,或用杀毒软件清除病毒即可。对于第⑶种错误,请单击“No”进入主界面,再打开“设置/通讯端口选择”菜单,选择与硬件实际连接的端口后,单击“确定”按钮即可。
三、 基本调试技巧
3-1、编译调试程序
进行源程序调试,必须事先生成符号化的调试代码。Dais-IDE 提供了这一步骤的集成开发环境(IDE:Integrated Devel-opment Environment)。只要通过选择菜单项便可轻松创建、打开、编辑、编译调试程序。
打开“文件”菜单的“新文件”或“打开文件”命令。在输入或打开源文件后用“编译/编译、连接、装载”命令将源文件编译成调试代码并自动打开调试窗口进入源文件调试。 3-2、 代码
执行“编译/装载”菜单命令或单击工具栏上的装载按钮,然后在弹出的文件列表对话框中用鼠标点击或直接键入目标代码文件名(扩展名为*.OMF、*.HEX、*.BIN、*.OBJ、*.O的文件),单击“打开”按钮,代码即装入到程序存储器内。 3-3、调试窗口使用
1) 浏览模块
在调试窗口执行“编译/浏览模块”菜单命令或从快捷菜单选择“浏览模块”命令即弹出对话框。程序所有的模块列在左边框内,每个模块的属性列在右边框内。您只需单击左边框内的模块名,右边框内即显示该模块的属性。单击“确认”,被选取的模块的内容便在调试窗口中显示。您可使用“源文件方式”或“混合方式”命令进行浏览。 2) 显示调试程序
当源程序经过编辑、编译、连接、装载后即进入调试窗口,缺省以源文件方式显示,您也可以激活调试窗口后执行“编辑/混合方式”、“编辑/反汇编方式”菜单命令或用快捷菜单选择调试程序的显示方式。 3) 设置断点
你可在程序调试窗口设置断点。具体步骤如下:将鼠标指向程序行左侧(行号或地址左边)需要设置的断点处,鼠标形状从箭头变成手指状时按下鼠标左键。这时,程序行左边会出现断点标志。
另一种设置断点的方法是将光标移到要设置断点的程序代码行(调试窗口左侧有小圆点的为程序代码行),执行“调试/设置或清除断点”菜单命令或单击工具栏“设置断点”按钮,设置完断点后该行即出现断点标志。
一次设置多个断点:执行“调试/浏览断点”菜单命令,在弹出的浏览断点对话框内可以看到已设置断点的个数、断点所在模块、断点的物理地址及断点的源文件行号。
6
要增加断点,请单击“增加”,便弹出一个输入对话框,提示您输入要设置的断点地址,输入完成后单击确认返回到浏览断点对话框,您可看到刚才设置的断点已出现在断点列表中,再单击浏览断点对话框中的“确认”便可完成断点设置。 您也可通过对话框右边的命令铵扭删除、清除断点。单击“删除”可删除所选断点;单击“清除”可清除所有断点。 注意:“浏览断点”对话框中的增加断点命令可一次设置多个断点。此方法较适用于混合调试及反汇编调试方式。 4) 查看存储器
在仿真过程中需要查看或修改存储器值时,可以执行“视图/存储空间”菜单命令以打开存储器窗口。Dais-IDE 允许同时打开 2 个存储器窗口,使您可方便地观察程序不同区域的存储器。详细请参阅第九章所述内容。 5) 查看寄存器
需要查看和修改寄存器值时,可以执行“视图/寄存器”菜单命令以打开寄存器窗口。另外,Dais-IDE 的寄存器窗口允许您自行增加寄存器窗口中未列出的寄存器,也可删除列在寄存器窗口的寄存器。详细内容请参阅第八章。 6) 查看变量
在仿真调试过程中使用变量窗口便可以监控某些符号参数、变量等。首先选择“视图/变量”菜单命令打开变量窗口,然后在变量窗口中单击右键打开快捷菜单,执行菜单中的“增加”命令,在增加变量对话框中填入所要查看的变量名并单击“OK”。详细内容请参阅第十章。
3-4、用户程序运行
1、 断点/连续运行
在程序调试窗口下选择“调试/连续运行”菜单命令或单击工具栏上的命令按钮便开始连续运行。当程序遇到在所设置的断点即停下,当设置多个断点时再次执行此命令,程序会在下一个断点处停下。当未设置断点时,程序以连续方式运行 2、 单步运行/自动单步
执行用户指令,当遇到有子程序调用的指令时,则跟踪进入该子程序运行。“调试/自动单步”命令以连续单步方式运行程序。 3、 宏单步运行/自动宏单步
此命令与单步相仿。不同的是当遇到有子程序调用的指令时,一步运行完整个过程。 “调试/自动宏单步”命令以连续宏单步方式运行程序。
7
第二章 软件部分实验
实验一
清零程序
一、实验目的
1)掌握8088汇编语言程序设计和调试方法,熟悉键盘操作。 2)熟悉实验系统构成与程序调试方法。 二、实验内容
把RAM区内4000H-40FFH单元的内容清零 。 三、程序框图
四、实验步骤
用连续或单步方式运行程序,检查4000-40FFH内容 执行程序前后的变化。
五、思考
假使把4000H-40FFH中的内容改成FF,如何修改程序。
8
实验二
显示子程序
一、实验目的
1)掌握LED显示器的显示过程。 2)熟悉实验系统构成。
二、实验内容
编写程序,依次闪动显示“dais88”“good”。
三、程序框图
五、 实验步骤
连续运行31E0程序,观察数码管显示情况。
五、思考 如何读出实验程序,分析实验程序给出注释。
9
第三章 硬件部分实验
实验一
一、实验目的
学习单片机系统中扩展简单I/O口的方法。 学习数据输入输出程序的编制方法。
简单I/O口扩展
二、实验内容
利用74LS244作为输入口,读取开关状态,并将此状态,通过74LS273再驱动发光二极管显示出来。
三、程序框图
四、实验电路
10
五、实验步骤
(1)74LS244的输入端PI0-PI7接K1-K7,74LS273的输入端PO0-PO7接L1-L8。 (2)按图连接138译码输入端A.B.C,其中A接A2,B接A3,C接A4,138使能控制输入端G与位于地址线A0引出孔所在位置下方的使能控制输出端G作对应连接,该端的寻址范围为0FFE0H-0FFFFH(分析寻址范围如何得来?)。 (3)在EXIC1插座上插有一片74LS02,在EXIC2插座上插有一片74LS32,按图连接好有关线路。
(4)把I/O IN,I/O OUT区的D0-D7用排线或8芯扁平线与数据总线区D0-D7任一接口相连。
(5)输入3380,按EXEC键,用连续方式运行从3380H开始的程序。 (6)拨动K1-K8,观察L1-L8是否对应点亮。
(3)按复位键RESET返回“P.”或按暂停键STOP+MON键返回“P”。
六、思考
可否用273输入,244作输出。
11
实验二 8259单级中断控制器实验
一、实验目的
(1)掌握8259中断控制器的接口方法。 (2)掌握8259中断控制器的应用编程。
二、实验内容
编制程序,利用8259芯片的IR7作为中断源,产生单一中断,系统显示中断号”7”。
三、程序框图
IR7中断服务程序
四、 实验电路
12
五、编程提示
(1)8259芯片介绍
中断控制器8259A是专为控制优先级中断而设计的芯片。它将中断源优先级排队, 辨别中断源以及提供中断矢量的电路集于一片中。因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。同时,在不需要增加其它电路的情况下,通过多片8259A的级联, 能构成多达64级的矢量中断系统。
(2)本实验中使用7号中断源IR7,\"SP\"插孔和IR7相连,中断方式为边沿触发方式,每按一次AN按钮产生一次中断,编写程序,使系统每次响应外部中断IR7时,显示1 个字符“7”,满6次后显示“P.”继续等待中断。 六、实验步骤
(1)按实验电路图连接线路:
①“SP”插扎和8259 7号中断IR7插孔相连,“SP”端初始为低电平。
② 按照本实验指导书第11页步骤(2)的要求连接138译码电路,8259的CS端连138译码器的Y0孔。
③ 将8259的单元总线接口D0-D7用排线或8芯扁平线与数据总线区D0-D7任一接
口相连。
(2)运行实验程序
在系统处于命令提示符“P.”状态下, 输入3400,按EXEC键,系统显示“P.”
(3)按AN按钮,每按2次,LED数码管从最高位开始依次显示1个“7”,显示满6位后最高位显示 “P.”继续等待中断。
(4)按复位键RESET返回“P.”或按暂停键STOP+MON键返回“P.”。
13
实验三 定时/计数器 8253方波
一、实验目的
(1)学会8253芯片和微机接口原理和方法。
(2)掌握8253定时器/计数器的工作方式和编程原理。
二、实验内容
8253的0通道工作在方式3,产生方波。
三、程序框图
四、实验电路
五、编程提示
8253芯片介绍
8253是一种可编程定时/计数器,有三个十六位计数器,其计数频率范围为0-2MHz, 用+5V单电源供电。 8253的功能用途:
(1)延时中断 (5)实时时钟 (2)可编程频率发生器 (6)数字单稳
(3)事件计数器 (7)复杂的电机控制器 (4)二进制倍频器 8253的六种工作方式:
(1)方式0:计数结束中断 (4)方式3:方波频率发生器
14
(2)方式1:可编程频率发生 (5)方式4:软件触发的选通信号 (3)方式2:频率发生器 (6)方式5:硬件触发的选通信号 8253的0号通道工作在方式3,产生方被。 六、实验步骤
(1)按实验电路图连接线路: ①8253的GATE0接+5V。
②8253的CLK0插孔接分频器74LS393(左上方)的T2插孔,分频器的频率源为: 4.9152MHz(已连好)。
③按照本实验指导书第11页步骤(2)的要求连接138译码电路,8253的CS端连138译码器的Y0孔。
④将8253单元总线接口D0-D7(部分机型在8251右侧)用排线或8芯扁平线与数
据总线区D0-D7任一接口相连。
(2)运行实验程序
在系统处于\"P.\"状态下,输入3490,按EXEC键
(3)用示波器测量8253的OUT0输出插孔有方波产生。
(4)按复位键RESET返回“P.”或按暂停键STOP+MON键返回“P.”。
15
实验四
一、实验目的
8255A并行口实验 输出方波
掌握可编程I/O接口芯片8255的接口原理使用,熟悉对8255初始化编程和输入、输出软件的设计方法。
二、实验内容
在8255A.B.C口用示波器测出波形。
三、程序框图
四、实验步骤
(1)在系统处于“P.”状态时,输入32C0,按EXEC键,系统显示执行提示符“┌”。
(2)用示波器观察8255A.B.C口波形。
(3)按复位键RESET返回“P.”或按暂停键STOP+MON键返回“P.”。
16
实验五 8251串口实验 自发自收
一、实验目的
(1)了解串行通信的实现方法;
(2)掌握8251芯片的工作方式和编程方法。
二、实验内容
利用本实验系统内的8251接口芯片,采用自发自收的方法,实现数据收发通信实验。发送的数据为4000H开始的16个源RAM区单元内容,接收到的数据放在5000H开始的目标RAM单元中,核对接收的数据是否和发送的数据一致。
三、程序框图
四、编程提示
(1)数据发送、接收字节均采用查询方式 (2)8251接口芯片的口地址己确定如下:
8251命令状态口地址为FFElH;8251数据口地址为FFE0H。
(3)设置方式字,异步方式,字符8位,1位起始位,1位停止位,波特率因子为16。 (4)TXC、RXC时钟速率一致,可选速率F:38.4KHz、76.8KHz、153.6KHz、307.2KHz。波特率bps=TXC÷16,相应可选bps:2400、4800、9600、19200。 五、实验电路 (见下页图)
17
六、实验步骤
注意:本实验所用的时钟信号均由硬件分频所得,如用户想用软件分频,只需把T/RXC孔与OUT1孔相连、8088CPU卡上PCLK短路块插上即可。
按实验电路接线,粗实线为要连的线,其余实验线路己连。
(1) 按照本实验指导书第11页步骤(2)的要求连接138译码电路,8251的CS端连138译码器的Y0孔。
(2)把CLK孔与T0(PCK)孔相连即可。
(3)波特率选择2400,即把T/RXC孔与T6孔相连。
(4)用一双头实验导线把8251的TxD与RxD端相连,实现自发自收。
(5)在“P.”状态下,按“ 0 → F1 → 4 → F2 → 0 → EV/UN ”,装载实验程序。
(6)在4000H-400FH l6个单元中,用实验系统键盘输入16个不同字节的数据,然后按RST复位按钮,迫使8251进入初始状态。
(7)在输入35C0后,按下 [EXEC] 运行入口地址为35C0H的程序。 (8)按复位键RESET返回“P.”或按暂停键STOP+MON键返回“P.”。
(9)检查RAM区5000H-500FH单元的数据,应和RAM区4000H-400FH相一致。
18
实验六
一、实验目的
A/D转换实验
了解模/数转换基本原理,掌握ADC0809的处用方法。
二、实验内容
利用实验系统上的0809作为A/D转换器,实验系统上的电位器提供模拟量输入,编制程序,将模拟量转换成数字,通过数码管显示出来。
三、程序框图
四、实验电路
五、编程提示
(1)ADC0809的START端为A/D转换启动信号,ALE端为通道选择地址的锁存信号, 实验电路中将其相连,以便同时锁存通道地址并开始A/D采样转换,其输入控制信号为CS和IOW,故启动A/D转换只需如下两条指令: MOV DX,ADPORT ;ADC0809端地址
OUT DX,AL ;发CS和IOW信号并送通道地址
(2)用延时方式等待A/D转换结果,使用下述指令读取A/D转换结果: MOV DX,ADPORT
19
IN AL,DX
(3)循环不断采样A/D转换的结果,边采样边显示A/D转换后的数字量。
六、实验步骤
(1)按实验电路图连接线路:
①按照本实验指导书第11页步骤(2)的要求连接138译码电路,0809的CS端连138译码器的Y0孔;把0809的CLK 插孔与六位LED显示器左下方的ALE插孔相连,VREF端接+5V;EXEC1上插上74LS02芯片,A/D区D0-D7接口用8芯排线或8芯扁平线与数据总线D0-D7任一接口相连,其余按实验图要求连接。
②将A/D区通道0模拟量输入端IN0连电位器W1的中心插头V01插孔(0-5V)。
(2)运行实验程序: 在8088系统显示监控提示符“P.”时,输入起始地址3390,按EXEC键,在系统上显示 “0809XX”。“XX”表示输入的模拟量转换后的数字量。
(3)调节电位器W1,显示器上会不断显示新的转换结果。
模拟量和数字量对应关系的典型值为: 0V--00H, +2.5V--80H, +5V--FFH
(4)按复位键RESET返回“P.”或按暂停键STOP+MON返回“P.”。
20
实验七
一、实验目的
D/A转换实验 输出方波
了解数/模转换的基本原理,掌握DAC0832芯片的使用方法。
二、实验内容
编制程序,利用0832芯片输出方波。
三、程序框图
四、实验电路
五、编程提示
(1)首先须由CS片选信号确定DAC寄存器的端口地址,然后锁存一个数据通过0832输出,典型程序如下:
MOV DX,DAPORT ;0832口地址 MOV AL,DATA ;输出数据到0832 OUT DX,AL
(2)产生方波信号的周期由延时间常数确定。
21
六、实验步骤
(1)按实验电路图连接线路:
①按照本实验指导书第11页步骤(2)的要求连接138译码电路,D/A区的0832的CS端连138译码器的Y0孔。
②D/A区0832的WR插孔与六位LED显示器左下方的WR或IOWR插孔相连,电位器W2的输出VREF端接D/A区的VREF上,调节W2使VREF为+3.5V
③D/A区D0-D7接口用8芯排线或8芯扁平线与数据总线D0-D7任一接口相连 ④其余按实验图要求连接。 (2)运行实验程序
在系统处于“P.”状态时,输入3480,按EXEC键(调零程序),显示执行符“┌”。然后把AOUT输出端电压调至0 V.
(3)按复位键RESET返回“P.”输入33E0, EXEC键,用示波器测量0832左侧0UT插孔,应有方波输出。
(4)按复位键RESET返回“P.”或按暂停键STOP+MON返回“P.”
22
23
附录:实验箱面板图
因篇幅问题不能全部显示,请点此查看更多更全内容