8086实验6 A/D转换实验
一 实验目的
1 掌握ADC与8086连接方法 2 了解ADC0809转换性能及编程 3 通过实验了解数据采集过程 二 实验内容
利用0809做A/D转换器,实验箱上电位器为其提供电压模拟量输入,编程将模拟量转换成数字量(8位二进制),用8255的PA口输出到八个发光二级管显示。 注意:采用查询方式读入A/D转换结果。
ADC0809的转换时间约100uS(100微秒),所以每次转换完需要延时100uS(采用软件延时程序)。
地址:8255,ADC0809地址根据片选信号连线查表可得。 三 实验连线如下图表中所示:由下图实验连线可知:
8255地址为:PA口地址:9000H PB口地址:9001H PC口地址:9002H
8255控制寄存器(8位)地址 9003H
ADC0809地址(读取的转换结果存放地址):8000H
实验参考程序及框图:
mode equ 082h PA equ 09000h CTL equ 09003h CS0809 equ 08000h code segment assume cs:code start:
mov al, mode mov dx, CTL
out dx, al again:
mov al, 0
mov dx, CS0809
out dx, al ;mov cx, 40h
loop $ ; in al, dx ; mov dx, PA out dx, al jmp again code ends end start
起动 A/D 延时 > 100us 读入结果
8086实验7 8255输入输出实验
一 实验目的 1 2 3
熟悉8086片外设备,硬件资源及其连接 熟悉CPU访问片外设备方式 了解8255芯片结构及编程使用方法
二 实验内容
利用8255可编程并行口芯片,实现输入输出实验。
1 实验用8255PA口(八位)作输出连接LED0-LED7,编程实现八个LED的循环点亮。在每点亮一个LED后需要一定的延时才能够观察到灯的变化,延时程序编写与使用。 2 实验用8255PA口(八位)作输出,接LED0-LED7;8255PB口(8位)做输入接K0-K7(开关量0或1)。用PB口读入开关状态,通过PA口用LED显示各个开关状态(1亮,0灭)。 三.实验仪器 微机、WAVE6000编程环境,实验箱 说明:工作方式选择:工作方式0
CPU以片外映射存储器(IOMAP)的形式访问外设。采用不同的指令区分内外。 8255片选信号CS连接CPU片选CS0时对应8255地址为(CPU分配): PA口地址:8000H PB口地址: 8001H PC口地址:8002H
8255控制寄存器(8位)地址 8003H
CPU要使用外设(8255),首先设定8255的工作过方式,即写控制字寄存器(8003H) 注意:片外设备的访问指令形式(参考教材) IN OUT DX寄存器的寻址方式
参考程序(伪指令):
mode equ 082h ; mode 8255方式0 ,PA,PC输出,PB输入 PortA equ 8000h ; Port A PortB equ 8001h ; Port B PortC equ 8002h ; Port C CAddr equ 8003h ; 控制字地址 ------
实验8 8253定时器实验
一 实验目的
1 熟悉8086控制片外设备8253定时器方法
2 熟悉8253硬件资源,工作方式,大时间常数的计数方法 3 了解8253芯片结构及编程使用方法
二 实验内容:用8253对标准脉冲信号进行计数,实现定时功能。用板上1MHz做标准脉冲,将8253的时间常数设为1000000,在定时器的管教上输出高/1秒低/1秒的脉冲信号。因为8253每个计数器只有16位,(最大数值65535),所以要用两个计数器实现1000000次的计数。
两级计数初值选取: 1000×1000或者20×50000=1000000
注意:各个计数器工作方式选择:要求输出方波信号,所以末级计数器采用工作方式3(方波发生器);第一级计数器的输出作为第二级计数器的时钟信号(标准脉冲)也要求是方波信号,所以也选工作方式3。 两级计数都采用工作方式3
8253CS连接CPU CS4时8253各部分的地址:(地址复用) 计数器0地址 c000H 计数器1地址 0c001H 计数器2地址 0c002H
8253的控制字寄存器地址 c003H 实验连线:
说明:采用两级计数,计数器0和计数器1;计数器1(T1)是第一级数器见表中第6行(8253_CLK1连接F/4(1M));第一级输出8253_OUT1连接第二级计数器(T0)的计数脉冲输入端8253_CLK0;第二级输出8253_OUT0到LED(L0)。