微机原理实验指导书
3. 方式2:带选通的双向传输方式
在双向的传输方式中,8255A可以向外设发送数据,同时CPU通过这8位数据线又接收外设的数据,因此称为双向的传输方式。方式2的基本定义是,只能适用于A端口,一个8位的双向端口(A端口)和1个5位的控制端口(C端口)。
扫描法是对键盘上的某一行送低电平,其他行为高电平,然后读取列值,若列值中有一位是低,表明该行与低电平对应列的键被按下,否则扫描下一行。
PC0、PC1 与键盘的行线相连,8列与PB口相连。在读键时先将PC0置为低电平,从PB口读回键码,如果为FFH 表示为无键,若0FEH表示‘0’键被按下。然后PC1置为低电平再读PB口,即读第二行的键码。这样循环读取键码,再经判断,便可判定唯一的按键。 四、实验程序例程及框图
示例程序:8255KeyD.asm
先通第二行 是否有PC键?
五、实验步骤
1.接线:用8位数据线将8255模块的JD1D、JD2D、JD3D对应连接到8279键盘显示模块的JD2F、JD1F、JD3F。8279键盘显示模块的三只拔码开关(S21F、S22F、S23F)各路开关全部置位下方。
2.把BIN文件夹复制到硬盘根目录下,如:D:\\BIN ;把8255KeyD.asm文件复制到BIN 路径下。
3.在Windows98下打开MS-DOS,使用cd命令到BIN 路径下,输入下面命令后回车。 4.编译:tasm /zi 8255KeyD.ASM (注:“.ASM”可省略)
36
开始 先通第一行 是否有键? Y 显示1行键码 等待键抬起 是否有键? Y 显示2行键码 等待键抬起 返回DOS Y 微机原理实验指导书
5.连接:tlink /v/3 8255KeyD.OBJ (注:“.OBJ”可省略) 6.运行:8255KeyD.EXE (注:“.EXE”可省略) 运行结果如下图所示:
按实验机上的键盘(任意键),数码管低位显示键值,可重复输入。按PC键盘“Q”键,则程序退出。
实验八 D/A 转换(0832)实验
一、实验目的
1.掌握DAC0832 芯片的性能、使用方法及对应的硬件电路; 2.了解D/A 转换的基本原理。 二、实验要求
编写程序使0832输出0-5V的正弦波,方波。在用户使用时‘1’键输出锯齿波、‘2’键输出正弦波,‘3’键输出方波,‘4’键退出程序。用示波器观察输出端的波形。 三、实验原理
D/A转换器是一种将数字量转换成模拟量的器件,其特点是接收、保持和转换的是数字信息,不存在随温度和时间的漂移问题,因此电路的抗干扰性能较好。
(一)8位D/A转换器DAC0830/0831/0832
DAC0830/083l/0832是8位分辨率的D/A转换集成芯片,它具有价格低廉、接口简单及转换控制容易等特点。DAC0830系列产品包括DAC0830、DAC0831和DAC0832,它们可以完全相互代换。这类产品由8位输入锁存器、8位DAC寄存器、8位DIA转换电路及转换控制电路组成,能和CPU数据总线直接相连,属中速转换器,大约在1μs内将一个数字量输入转换成模拟量输出。 1) 特点与主要规范
该类产品采用双缓冲、单缓冲或直接数字输入,与12位DAC1230系列容易互
37
微机原理实验指导书
换,且引脚兼容,可用于电压开关方式,电流建立时间为1 μs,8位的分辨率,功耗低,只需20 mW,采用+5~+15 V单电源供电,满足TTL电平规范的逻辑输入(1.4 V逻辑域值),具有8、9或10 位线性度(全温度范围均保证)。图(1)给出了DAC0830系列芯片的引脚图。
图(1) DAC0830/0831/0832系列芯片的引脚图
D7VREF IOUT28位输入8位DAC8位D / AIOUT1 寄存器寄存器转换器
D0ILE&RFBAGNDVCCDGNDCSWR1WR2XFER&&图(2) DAC0830内部结构
该器件有两个内部寄存器,要转换的数据先送到输入锁存器,但不进行转换。只有数据送到DAC寄存器时才能开始转换,因而称为双缓冲。ILE、CS和WR13个信号组合控制第一级缓冲器的锁存。当ILE为高电平,并且CPU执行OUT指令时,CS和WR1同时为低电平,使得输入锁存器的使能端LE1为高电平,此时锁存器的输出随输入变化;当CPU写操作完毕时,CS和WR1都变成高电平,使得LE1为低电平,此时,数据锁存在输入锁存器中,实现第一级缓冲。同理,当WR1和WR2同时为低电平时,LE2为高电平,第一级缓冲器的数据送到DAC寄存器;当XFER和WR2中任意一个信号变为高电平时,这个数据被锁存在DAC寄存器中,实现第二级缓冲,并开始转换。 4) 工作方式
(1) 双缓冲方式。所谓双缓冲方式,就是把DAC0830的输入锁存器和DAC寄存器都接成受控锁存方式。这种方式适用于多路D/A同时进行转换的系统。因为各芯片的片选信号不同,可由每片的片选信号CS与WR1分时地将数据输入到每片的输入锁存器中,每片的ILE固定为+5 V,XFER与WR2分别连在一起,作为公共控制信号。数据写入时,首先将待转换的数字信号写到8位输入锁存器,当WR1与WR2同时为低电平时,数据将在同一时刻由各个输入锁存器将数据传送到对应的DAC寄存器并锁存在各自的DAC寄存器中,使多个DAC0830芯片同时开始转换,实现多点控制。双缓冲方式的优点是,在进行D/A转换的同时,可接收下一个转换数据,从而提高了转换速度。
38
微机原理实验指导书
(2) 单缓冲方式。如果应用系统中只有一路D/A转换,或虽然是多路转换但不要求同步输出时,可采用单缓冲方式。所谓单缓冲方式,就是使DAC0830的输入锁存器和DAC寄存器有一个处于直通方式,另一个处于受控的锁存方式。一般将WR2和XFER接地,使DAC寄存器处于直通状态,ILE接+5 V,WR1接CPU的IOW,CS接I/O地址译码器的输出,以便为输入锁存器确定地址。在这种方式下,数据只要一写入DAC芯片,就立即进行D/A转换,省去了一条输出指令。
(3) 直通方式。当ILE接+5 V,CS、WR1、WR2及XFER都接地时,DAC0830处于直通方式,输入端D7~D0一旦有数据输入就立即进行D/A转换。这种方式不使用缓冲寄存器,不能直接与CPU或系统总线相连,可通过8255与之相连接。 (5) 输出方式
DAC0830为电流输出型D/A转换器,要获得模拟电压输出时,需要外接一个运算放大器。
(1) 单极性模拟电压输出。如果参考电压为+5 V,则当数字量N从00H至FFH变化时,对应的模拟电压VO的输出范围是-5~0 V。
DBDACVFB08300831IOUT20832IOUT1AGNDVREF+5 VVO-+图(a) 单极性输出方式
(2) 双极性模拟电压输出。如果要输出双极性电压,则需在输出端再加一级运算放大器作为偏移电路,如图11.17所示。当数字量N从00H至FFH变化时,对应的模拟电压VO的输出范围是-5~+5 V。
+5 V
15 k?15 k?
VREF DACFBDB0830V
7.5 k?- 0831IOUT2-I+0832OUT1V O+VO
AGND
39
图(b)双极性输出
微机原理实验指导书
DAC0832由8位输入寄存器、8位DAC寄存器、8位D/A转换器所构成。DAC0832中有两级锁存器,第一级即输入寄存器,第二级即DAC寄存器。因为有两级锁存器,DAC0832可以工作在双缓冲方式下,这样在输出模拟信号的同时可以采集下一个数字量,这样可以有效地提高转换速度。另外,有了两级锁存器,可以在多个D/A转换器同时工作时,利用第二级锁存信号实现多路D/A 的同时输出。
DAC0832 的引脚如下: ? DI0—DI7:8位数据输入端。
? ILE:输入寄存器的数据允许锁存信号。 ? /CS:输入寄存器选择信号。 ? /WR1:输入寄存器的数据写信号。 ? /WR2:DAC 寄存器写信号,并启动转换。
? /XFER:数据向DAC 寄存器传送信号,传送后即启动转换。 ? Iout1,Iout2:电流输出端。Vref :参考电压输入端。 ? Rfb:反馈信号输入端。
? Vcc:芯片供电电压。AGND:模拟电路地。 ? DGND:数字地。
DAC0832 的输出时电流型的。在应用时,通常需要电压信号,电流信号和电压信号之间
的转换可由运算放大器实现。输出电压值为 U? - 为输入的数据)。
方波:对0832 写入0H 时在0-5V 输出点上输出0V 电压,写入FFH 时输出5V,通过调整写入时间的间隔可控制输出的方波的频率和占空比。
正弦波:可以造一张正弦数字量表。即查函数表得到的值转换成十六进制数填表。D/A 转换取值范围为一个周期,采样点越多,精度越高。本例采用的采样点为16 点/周期。
锯齿波:只需输出的DAC0832 的数据由0 循环递增。
Vref * N。(其中U 为输出电压,N
2558255APA0~PA7PB4PB3PB2PB1PB0DAC0830D0~D7VREFILERFBCSIOUT2WR1IOUT1WR2+5 V8086或8088-+VO XFER 图(C)DAC0830锯齿波发生器电路
四、实验程序例程及框图
注:在实验时必须先查找PCI9054 卡是否存在,获取PCI 卡的I/O 扩展地址,
40
微机原理实验指导书
MEMORY
扩展地址,中断号,然后重新计算实验上的地址。此过程不再出现在框图中。
示例程序:0832WAVE.asm 框图:见下一页。
五、实验步骤
1.接线:并行D/A转换模块的OUT1接到示波器。
2.把BIN文件夹复制到硬盘根目录下,如:D:\\BIN ;把0832WAVE.asm文件复制到BIN 路径下。
3.在Windows98下打开MS-DOS,使用cd命令到BIN 路径下,输入下面命令后回车。 4.编译:tasm /zi 0832WAVE.ASM (注:“.ASM”可省略) 5.连接:tlink /v/3 0832WAVE.OBJ (注:“.OBJ”可省略) 6.运行:0832WAVE.EXE (注:“.EXE”可省略) 运行结果如下图所示:
按PC键盘“1”输出锯齿波;按PC键盘 2”输出正弦波;按PC键盘“3”输出方波;按PC键盘“4”,则程序退出。
41