900 likes | 1.13k Views
第一部分 系统介绍. 第二部分 基本电路介绍. 第三部分 基本实验( 8086 ). 目录. 实验一 I/O 端口实验. 实验二 8255 键盘扫描与 LED 数码管显示实验. 实验三 8253 定时实验. 实验四 8259 中断控制及中断服务实验. 实验五 A/D 转换实验. 实验六 D/A 实验. 第一部分 系统介绍. 一、系统特点. 配有两块可编程器件: EPM7128 被系统占用。另一块 EPM7032 供用户实验用。两块器件皆可通过 JTAG 接口在线编程。使用十分方便。.
E N D
第一部分 系统介绍 第二部分 基本电路介绍 第三部分 基本实验(8086) 目录 实验一 I/O端口实验 实验二 8255键盘扫描与LED数码管显示实验 实验三 8253定时实验 实验四 8259中断控制及中断服务实验 实验五 A/D转换实验 实验六 D/A实验
第一部分 系统介绍 一、系统特点 配有两块可编程器件:EPM7128被系统占用。另一块EPM7032供用户实验用。两块器件皆可通过JTAG接口在线编程。使用十分方便。
1)、时钟频率:6.0MHz 2)、存储器 二、系统概述 6264 系统RAM,地址范围 0~3FFFH,奇地址有效 6264 系统RAM,地址范围0~3FFFH,偶地址有效 27C64 系统ROM,地址范围 FFFFF~FC000H,奇地 址有效 27C256 系统ROM,地址范围 FFFFF~FC000H,偶地 址有效
3)、系统资源分配 本系统采用可编程逻辑器件(CPLD)EPM7128做地址的编译码工作,可通过芯片的JTAG接口与PC机相连,对芯片进行编程。部分地址单元经译码后输出(插孔CS0---CS5)给用户使用,他们的地址固定,用户不可改变。具体的对应关系见下地址分配。注意,用户的地址不能与系统相冲突,否则将导致错误。
CS0 片选信号,地址04A0~04AF 偶地址有效 CS1 片选信号,地址04B0~04BF 偶地址有效 CS2 片选信号,地址04C0~04CF 偶地址有效 CS3 片选信号,地址04D0~04DF 偶地址有效 CS4 片选信号,地址04E0~04EF 偶地址有效 CS5 片选信号,地址04F0~04FF 偶地址有效 CS6 片选信号,地址0000~01FF 偶地址有效 CS7 片选信号,地址0200~03FF 偶地址有效 8250 片选地址:0480~048F,偶地址有效 8279 片选地址:0490~049F,偶地址有效 ·地址分配
·硬件实验说明 所有实验程序的起始地址为01100H,CS=0100H,IP=0100H,代码段、数据段、堆栈段在同一个64K的地址空间中。
8066单元 1)微处理器:8086 2)时钟频率:6MHz 3)存储器 6264 系统RAM,地址范围 0~3FFFH,奇地址有效 6264 系统RAM,地址范围0~3FFFH,偶地址有效 27C64 系统ROM,地址范围 FFFFF~FC000H,奇地 址有效 27C256 系统ROM,地址范围 FFFFF~FC000H,偶地 址有效
8066单元 4)可提供的对8086的基本实验 (1)简单I/O扩展实验 (2)存储器扩展实验 (3)CPLD地址译码实验 (4)8255可编程并口实验 (5)8253定时/计数器实验 (6)A/D0809实验 (7)D/A0832实验 (8)8250可编程串口实验 (9)8279显示器接口实验 (10)8279键盘扩展实验 (11)8259可编程中断控制器实验 (12)8237DMA控制器实验
第三部分 基本实验(8086) 实验一 I/O端口实验 一、实验目的 1、 熟悉74LS273,74LS244的应用接口方法。 2、 掌握用锁存器、三态门扩展简单并行输入、 输出口的方法。
二、实验设备 MUT—Ⅲ型实验箱、8086CPU模块。
三、实验内容 用常用输入输出芯片244扩展输入,237扩展输出控制开关输入、发光二极指示灯显示输出结果。 1、设计出244、277与8086接口对应硬件电路,并完成相应的连接 2、调试对应244、273、开关硬件接口电路及相应接口软件 3、用开关接输入部分,当拨动开关对应发光二极管亮,显示输出结果 4、写出习题部分要求的程序
四、实验原理介绍 本实验用到两部分电路:开关量输入输出电路,简单I/O口扩展电路。
五、实验步骤 1、实验接线:(表示相互连接) CS0 CS244; CS1CS273; 平推开关的输出K1~K8 IN0~IN7(对应连接); O0~O7LED1~LED8。 2、编辑程序,单步运行,调试程序 3、调试通过后,全速运行程序,观看实验结果。 4、编写实验报告。
六、实验提示 74LS244或74LS273的片选信号可以改变,例如连接CS2,此时应同时修改程序中相应的地址。 七、实验结果 程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。例如:K2置于L位置,则对应的LED2应该点亮。
九、程序源代码清单 assume cs:code code segment public org 100h start: mov dx,04a0h ;74LS244地址 in al,dx ;读输入开关量 mov dx,04b0h ;74LS273地址 out dx,al ;输出至LED jmp start code ends end start
十、习题 (在完成上面的实验后,修改原程序,使实现如下功能) 1、修改模式为: 跳跃式左移或右移,如每次移动两位 2、调整移位频率为:加快一倍,降低一倍 3、重新调整按钮功能: KK1——启动键,按下后,方可开始移位 KK2——停止健,按后终止LED管的移位显示 KK3——更新移位模式,每按一次,在左/右移 位模式间变换 KK4——更新亮灯模式,每按一次在1亮7暗1 亮间变换
实验二 8255键盘扫描与LED数码管显示实验 一、实验目的 掌握8255A的编程原理。 二、实验设备 MUT—Ⅲ型实验箱、8086CPU模块。
三、实验内容 用8255扩展扫描3X8行列式键盘,由一位LED数码管显示 1、设计出8255与8086接口对应硬件电路,并完成 相应的连接 2、调试对应8255、键盘、及数码管硬件接口电路 及相应接口软件 3、当用键盘输入时在数码管上显示相应值 4、写出习题部分要求的程序
四、实验原理介绍 本实验用到两部分电路:开关量输入输出电路和8255可编程并口电路。
五、实验步骤 1、实验接线 CS0CS8255; PA0~PA7 RL10~RL17; PB0~PB7 LED-A~LED-DP; PC0~PC2KA10~KA12;PC3LED1。 2、编程并全速或单步运行。 3、全速运行时按动键盘,观察数码管的变化。
六、实验提示 8255A是比较常用的一种并行接口芯片,其特点在许多教科书中均有介绍。8255A有三个8位的输入输出端口,通常将A端口作为输入用,B端口作为输出用,C端口作为输出用,本实验也是如此。实验中,8255A工作于基本输入输出方式(方 式0)。
本实验为对3X8键盘(一行有8个按钮,共三行.如第一行8个按钮对应实验箱上键盘区最上一行6个加上下一行前两个,逐次类推)逐行扫描实验,每按一个键通过数码管显示其值.本实验为对3X8键盘(一行有8个按钮,共三行.如第一行8个按钮对应实验箱上键盘区最上一行6个加上下一行前两个,逐次类推)逐行扫描实验,每按一个键通过数码管显示其值. 如一行一列显示0,二行三列显示8. 逐次类推. 七、实验结果
初始化8255 检测是否有键按下 延时消抖 逐行扫描键盘 显示于数码管 八、程序框图(实验程序名t8255.asm)
九、程序源代码清单 assume cs:code code segment public org 100h start: mov dx,04a6h ;控制寄存器地址 mov ax,90h ;设置为A口(04A0H)输入, B口(04A2H)输出, C口(04A4H)输出 out dx,ax check0: mov ax,00h mov dx,04a4h out dx,ax mov dx,04a0h
in ax,dx cmp al,0ffh je check0 mov cx,05ffh delay: loop delay ;延时消抖 mov cl,3 mov ah,0 mov al, 0fbh
contin: push ax mov dx,04a4h out dx,al mov dx,04a0h in al,dx mov ah,al cmp ah,0ffh jne next pop ax ror al,1 loop contin jmp check0
next: mov ch,cl ;保存行值至CH mov cl,7 begin0: shl ah,1 jnc goon loop begin0 jmp check0 goon: mov bl,cl ;保存列值至BL dec ch mov cl,3
shl ch,cl add bl,ch mov bh,0 mov cx,bx ;显示码偏移量送CX display: mov si,offset discoed add si,cx mov dx,04a4h mov al,0fh
out dx,al mov ax,[si] mov dx,04a2h out dx,ax nop nop jmp check0
discode db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h db 7fh,6fh,77h,7ch,39h,5eh,79h,71h db 01h,02h,04h,08h,10h,20h,40h,80h ;显示段码表 code ends end start
十、习题 1、重新定义键值按递减方式排列,即依次为: F E C D B A 9 8 7 6 5 4 3 2 1 0 2、按下键的二进制值改在LED灯的高四位显示 3、 按第一次键,在个位上显示相应键位。 按第二次键,在十位上显示相应键位。 按第三次键,在百位上显示相应键位。 按第四次键,在千位上显示相应键位。 按第五次键,在个位上显示相应键位。 其余类推。
实验三 8253定时实验 一、实验目的 掌握8253定时器的编程原理,用示波器观察不同模式下的输出波形。 二、实验设备 MUT—Ⅲ型实验箱、8086CPU模块、示波器。
三、实验内容 用8253作为定时器,控制周期为0.5秒的方波,用一个发光二极管指示灯亮表示高电平,灭表示低电平,亮、灭时间相同 1、设计出8253与8086接口对应硬件电路,并完成相应的连接 2、调试对应8253、发光二极管硬件接口电路及相应接口软件 3、写出习题部分要求的程序
四、实验原理介绍 本实验用到两部分电路:脉冲产生电路、8253定时器/计数器电路
五、实验步骤 1、实验连线: CS0CS8253 OUT08253CLK2 OUT2LED1 示波器OUT1 CLK38253CLK0,CLK38253CLK1 2、编程调试程序 3、全速运行,观察实验结果
六、实验提示 8253是计算机系统中经常使用的可编程定时器/计数器,其内部有三个相互独立的计数器,分别称为T0,T1,T2。8253有多种工作方式,其中方式3为方波方式。当计数器设好初值后,计数器递减计数,在计数值的前一半输出高电平,后一半输出低电平。实验中,T0、T1的时钟由CLK3提供,其频率为750KHz。
程序中,T0的初值设为927CH(37500十进制),则OUT0输出的方波周期为(37500*4/3*10-6=0.05s)。T2采用OUT0的输出为时钟,则在T2中设置初值为n时,则OUT2输出方波周期为n*0.05s。n的最大值为FFFFH,所以OUT2输出方波最大周期为3276.75s(=54.6分钟)。可见,采用计数器叠加使用后,输出周期范围可以大幅度提高,这在实际控制中是非程序中,T0的初值设为927CH(37500十进制),则OUT0输出的方波周期为(37500*4/3*10-6=0.05s)。T2采用OUT0的输出为时钟,则在T2中设置初值为n时,则OUT2输出方波周期为n*0.05s。n的最大值为FFFFH,所以OUT2输出方波最大周期为3276.75s(=54.6分钟)。可见,采用计数器叠加使用后,输出周期范围可以大幅度提高,这在实际控制中是非 常有用的。
七、实验结果 程序全速运行后,LED1闪烁(周期为0.25s),OUT1示波器观察为方波,频率为15KHz。
九、程序源代码清单 assume cs:code code segment public org 100h start: mov dx,04a6h ;控制寄存器 mov ax,36h ;计数器0,方式3 out dx,ax mov dx,04a0h mov ax,7Ch out dx,ax mov ax,92h out dx,ax ;计数值927Ch mov dx,04a6h mov ax,76h ;计数器1,方式3 out dx,ax mov dx,04a2h
mov ax,32h out dx,ax mov ax,0 ;计数值32h out dx,ax mov dx,04a6h mov ax,0b6h ;计数器2,方式3 out dx,ax mov dx,04a4h mov ax,04h out dx,ax mov ax,0 ;计数值04h out dx,ax next: nop jmp next code ends end start
十、习题 1.改变定时时钟的周期,加快一倍和放慢一倍 mov ax,0b6h ;计数器2,方式3 out dx,ax mov dx,04a4h mov ax,04h out dx,ax mov ax,0 ;计数值04h out dx,ax 修改实验程序,如上的mov ax,04h的04H的值即可
2.试将8253的三个定时/计数器分别设为不同的工作方式,对同一输入信号计数,在三个输出端分别对输入信号进行2分频,4分频,8分频,用示波器观察其波形。 3.试用8253测量一个脉冲的的脉宽,把测量的结果存放在2010H、2011H。 GATE0接被测脉冲,8253的GATE0和74LS244的IN0,时钟发生电路CLK3接8253CLK0。CS8253接CS0,CS244接CS1。程序请参参考t8253pw.asm,程序运行时候请按程序注释处设断点。查看2010H、2011H中的结果。
一、实验目的 二、实验设备 实验四 8259中断控制及中断服务实验 1、掌握8259A的工作原理。 2、掌握编写中断服务程序方法。 3、掌握初始化中断向量的方法。 MUT—Ⅲ型实验箱、8086CPU模块。
三、实验内容 用8259控制开关中断源输入中断,由LED数码管显示 1、设计出8259与8086接口对应硬件电路,并完成相应的连接 2、调试对应8259、开关、发光二极管硬件接口电路及相应接口软件 3、 用开关做中断源输入部分,发光二极管显示输出结果,当分别拨动开关KK1、KK2、KK3、KK4时发光二极管相应作左、右、由中间向两边和反显流水灯显示 4、写出习题部分要求的程序
四、实验原理介绍 本实验用到三部分电路:电平开关电路、简单I/O口扩展电路和8259中断控制器电路。
五、实验步骤 1、实验接线 CS0 CS8259 CS1 CS273 O0~O7 LED1~LED8 K1~K8IR0~IR7 INT INT INTAINTA 2、编译调试程序 3、全速运行程序,拨动某一电平开关,观察 LED的变化情况。
六、实验提示 1、8259的使用说明请详细阅读教科书。 2、8086的中断系统是向量中断方式。内存中特定位置有一中断向量表,表内存有不同中断类型的中断向量(中断入口地址)。不同中断类型的中断向量在表内有对应的偏移地址,其计算方法是:中断类型*4。