先保存好环境,设置中断开中断,进入中断处理程序,关中断,恢复现场等。实验中使用的8259为单片,边沿触发,采用3号中断源,即IR3和8259输出口OUT2相连,每过1/20秒接收到一个中断,向8259发出中断请求信号,如果电平信号不符合要求,则自动转到7号中断,显示“ERR”,CPU响应后,在中断处理程序中,对中断次数进行记数,记满20次,把时间缓冲区的时间加1,并将其输入到显示缓冲区,以便显示器显示更新后的时间。总的来说,这次实验让自己体会了,硬件在实现需求功能上和软件很不一样,软件重视的处理数据的算法而硬件则更强调命令和硬件特性的逻辑性。
一、 实验目的与要求
进一步掌握数/模转换的基本原理。 二、 实验内容 1.实验原理
实验原理如图 5-5所示,由于DAC0832有数据锁存器、选片、读、写控制信号线,故可与 8088CPU 总线直接接口。图中是只有一路模拟量输出, 且为单极型电压输出。DAC0832工作于单缓冲方式,它的ILE接+5V,/CS和/XFER相接后作为0832芯片的片选0832CS。这样, 对DAC0832执行一次写操作就把一个数据直接写入DAC寄存器、模拟量输出随之而变化。 2.实验线路的连接
将D/A片选信号DACS插孔和译码输出070H-07FH插孔相连。 3.实验要求
(1)本实验要求在Aout端输出方波信号。根据Vout= —(VREF(输入数字量的十进制数))/256,即可知道,只要将数字量0-256(00H-FFH)从0开始逐渐加1递增至256为止,不断循环,在AOUT端就会输出连续不断的锯齿波。 (2)、根据要求改写锯齿波程序 将锯齿波变成三角波。 4.实验软件框图:
5.实验主要仪器设备和材料
PC机、DVCC-8086JH实验系统及连接导线。 6.实验方法、步骤及结果测试
(1)根据实验原理图正确连接好实验线路 (2)正确理解实验原理
(3) 实验步骤:
a:按“调试”按钮(它包括‘编译’、‘联接’、‘传送’功能)。 b:选“窗口”下拉菜单里的“进入示波器窗口”(这是模拟示波器)然后将其最小化。 c:按“运行”按钮。
d :将模拟示波器窗口打开,选择“串行口2”,再按“Ctrl+F2开关”即可看到波形。 在DVCC-8086JH数码管上显示“0832-2”,用真示波器测量DAC0832下AOUT插孔,应有锯齿波输出。
e:根据要求改写锯齿波程序 将锯齿波变成三角波
三. 实验程序,要求写注释。
(以下是以最高点0FFH,最低点00H,的三角波程序) CODE SEGMENT
ASSUME CS:CODE //初始化一些常量值 DAPORT EQU 0070H //0832数据口地址 CONTPORT EQU 00DFH //8279命令控制口地址 DATAPORT EQU 00DEH //8279数据口地址 DATA EQU 0500H
//------------------------------------------------------------------------ START: JMP DACONTORL
DACONTORL:CALL FORMAT //初始化LED
CALL LEDDISP //用LED显示“0832——2” MOV DX,DAPORT
MOV AL,00H //从最低点为:00H开始 DACON1: OUT DX,AL //输出三角波上升那段 INC AL //步长为1 MOV CX,06H
DACON2: LOOP DACON2 //根据cx=6延时
CMP AL,0FFH //三角波最高点为:0FFH JNZ DACON1 //没到达最高点
DACON3:OUT DX,AL //输出三角波下降那段 DEC AL MOV CX,06H
DACON4: LOOP DACON4 //根据cx=6延时
CMP AL,00H JNZ DACON3 JMP DACON1
LEDDISP:MOV AL,90H //显示数据方式命令字送8279控制口 MOV DX,CONTPORT //8279命令控制口 OUT DX,AL
MOV BYTE PTR DS:[0600H],00 //显示为数初值为0
LED1: CMP BYTE PTR DS:[0600H],07H //判断显示为数是否满8位 JA LED2 //是跳到LED2
MOV BL,DS:[0600H] //否,取高一位数据
MOV BH,0H
MOV AL,CS:[BX+DATA]
MOV DX,DATAPORT //8279数据口地址 OUT DX,AL //显示数据
ADD BYTE PTR DS:[0600H],01H //取高一位数据,显示数据位数加1 JNZ LED1
LED2: RET //子程序返回 FORMAT: MOV BX,0
MOV WORD PTR DS:[BX+0500H],405BH ADD BX,2
MOV WORD PTR DS:[BX+0500H],4040H ADD BX,2
MOV WORD PTR DS:[BX+0500H],4F5BH ADD BX,2
MOV WORD PTR DS:[BX+0500H],3F7FH
RET CODE ENDS END START
//子程序返回
一、 实验目的与要求
加深理解逐次逼近法模数转换器的特征和工作原理,掌握ADC0809的接口方法以及A/D输入程序的设计和调试方法。
二、 实验内容 1 、实验原理
本实验采用 ADC0809 做 A/D 转换实验。ADC0809 是一种8路模拟输入、8位数字输出的逐次逼近法A/D器件,转换时间约100us,转换精度为±1/512,适用于多路数据采集系统。ADC0809片内有三态输出的数据锁存器,故可以与8088微机总线直接接口。
图中ADC0809的CLK信号接CLK=2.385MHZ,基准电压Vref(+)接Vcc。一般在实际应用系统中应该接精确+5V,以提高转换精度,ADC0809片选信号0809CS和/IOW、/IOR经逻辑组合后,去控制ADC0809的ALE、START、ENABLE信号。ADC0809的转换结束信号EOC未接, 如果以中断方式实现数据采集,需将EOC信号线接至中断控制器8259A的中断源输入通道。本实验以延时方式等待A/D转换结束,ADC0809的通道号选择线ADD-A、ADD-B、ADD-C 接系统数据线的低3位,因此ADC0809的8个通道值地址分别为00H、01H、02H、03H、04H、05H 、 06H、07H。
启动本A/D转换只需如下三条命令:
MOV DX,ADPORT ;ADPORT为ADC0809端口地址。 MOV AL,DATA ;DATA为通道值。
MOV DX, AL ; 通道值送端口。
读取A/D转换结果用下面二条指令: MOV DX,ADPORT IN AL,DX
2 、 实验线路的连接