集美大学计算机工程学院实验报告
课程名称:微型计算机 实验编号: 实验六 班 级:计算12 上机实践日期:2014.12 一、实验目的
指导教师:颜庆茁 实验成绩: 实验名称:0832D/A转换器实验 姓 名: 学号:
上机实践时间: 2学时
1、了解数模转换的原理及与8086的接口逻辑;
2、掌握使用DAC0832进行数模转换的技术。 二、实验设备
STAR系列试验仪一套、星研集成软件环境、PC机一台 三、实验内容
1、设计DAC0832与8086CPU的硬件连接图,分配DAC0832的端口地址为0FF00H; 2、设计8251的硬件连接及编写程序,实现让0832依次输出方波、负向锯齿波、三角波、正弦波、并不断重复。要求在示波器上可看到每个波形2个完整的波形。
产生正弦波的数据如下:
7FH,8BH,96H,0A1H,0ABH,0B6H,0C0H,0C9H,0D2H,0DAH,0E2H,0E8H 0EEH,0F4H,0F8H,0FBH,0FEH,0FFH,0FFH,0FFH,0FEH,0FBH,0F8H,0F4H 0EEH,0E8H,0E2H,0DAH,0D2H,0C9H,0C0H,0B6H,0ABH,0A1H,96H,8BH 7FH,74H,69H,5EH,54H,49H,40H,36H,2DH,25H,1DH,17H 11H,0BH,7,4,2,0,0,0,2,4,7,0BH
11H,17H,1DH,25H,2DH,36H,40H,49H,54H,5EH,69H,74H
3、画出各种波形的示意图,并在示意图上标出波形的最高、最低峰值和周期(根据示波器测量各种波形的最高、最低峰值与波形的周期)。 四、实验步骤
1、电路设计
2、在STAR系列试验仪上完成连线
F3:CS F3:OUT F3:GND 程序流程图:
CALL MOV CX,200 MOV DX,DAC0831_0 MOV AX,0FFH OUT DX,AL DEC AL CALL DELAY CALL MOV CX,200 MOV AL,0FFH PUSH CX MOV CX,72 LEA SI,BUFF MOV DX,DAC0832_0 —— —— —— A3:CS1 示波器:阳极探头 示波器:阴极探头 3、编写程序流程图及汇编程序
CALL MOV CX,200 MOV DX,DAC0831_0 MOV AL,0H OUT DX,AL INC AL CALL DELAY MOV AL,[SI] CALL DELAY INC SI AL=0? N AL=0FFH? N Y N CX=0? Y CX=0? N DEC AL OUT DX,AL CALL DELAY Y POP CX Y RET CX=0? N AL=0? Y CX=0? RET DAC0832产生负向锯齿波
子程序
CALL MOV CX,200 MOV AL,0FFH OUT DX,AL NOT AL CALL DELAY N Y RET N DAC0832产生正弦波子程序
DAC0832产生三角波子程序
CX=0? N Y RET DAC0832产生方波子程序
程序见附录
4、在星研集成软件环境中测试程序,并观察STAR系列试验仪及示波器中实验结果
(1)全速运行程序后,看到示波器上依次出现方波、负向锯齿波、三角波、正弦波。这说明实验结果正确,符合实验要求 五、实验小结
1、通过本次实验,我了解数模转换的原理及与8086的接口逻辑以及掌握使用DAC0832进行数模转换的技术;
2、本次实验采用DAC0832,将数字信号0~0FFH转换成0~5V模拟信号,通过将连续的数字信号转换成对应模拟信号,利用示波器,显示连续的波形图。
附录 程序代码:
.MODEL TINY DAC0832_0 EQU 0FF00H .STACK 100 .DATA
BUFFER DB 7FH,8BH,96H,0A1H,0ABH,0B6H,0C0H,0C9H,0D2H,0DAH,0E2H,0E8H DB 0EEH,0F4H,0F8H,0FBH,0FEH,0FFH,0FFH,0FFH,0FEH,0FBH,0F8H,0F4H DB 0EEH,0E8H,0E2H,0DAH,0D2H,0C9H,0C0H,0B6H,0ABH,0A1H,96H,8BH DB 7FH,74H,69H,5EH,54H,49H,40H,36H,2DH,25H,1DH,17H DB 11H,0BH,7,4,2,0,0,0,2,4,7,0BH
DB 11H,17H,1DH,25H,2DH,36H,40H,49H,54H,5EH,69H,74H .CODE
START: MOV AX,@DATA MOV DS,AX XOR AX,AX CALL FANGB CALL DELAY11
CALL ZHENGXB CALL DELAY11
CALL FUXJCB CALL DELAY11
CALL SANJB CALL DELAY11
JMP START
ZHENGXB PROC MOV CX,200 L11:
PUSH CX
MOV CX,72 LEA SI,BUFFER MOV DX,DAC0832_0 L12:
MOV AL,[SI]
OUT DX,AL CALL DELAY INC SI LOOP L12 POP CX LOOP L11 RET
ZHENGXB ENDP
FANGB PROC MOV CX,200 MOV DX,DAC0832_0 MOV AL,0FFH L21:
OUT DX,AL
NOT AL CALL DELAY LOOP L21 RET FANGB ENDP
FUXJCB PROC MOV CX,200
MOV DX,DAC0832_0 L31: L32:
MOV AX,0FFH OUT DX,AL
DEC AL CALL DELAY CMP AL,0 JNZ L32 LOOP L31 RET FUXJCB ENDP
SANJB PROC MOV CX,200
MOV DX,DAC0832_0 MOV AL,00H L41:
OUT DX,AL
INC AL CALL DELAY CMP AL,0FFH JNZ L41 L42:
DEC AL
OUT DX,AL CALL DELAY CMP AL,00H JNZ L42 LOOP L41 RET SANJB ENDP
DELAY PROC PUSH CX MOV CX,60
DELAY1: LOOP DELAY1 POP CX RET DELAY ENDP
DELAY11 PROC PUSH CX MOV CX,10 D1: D2:
PUSH CX LOOP D2
MOV CX,60000 POP CX LOOP D1 POP CX RET
DELAY11 ENDP END START

