1、 微机原理与接口技术微机原理与接口技术 课程设计课程设计 学院:电气工程学院学院:电气工程学院 班级:班级: 姓名:姓名: 学号:学号: 报告日期:报告日期: 一、课题内容及要求一、课题内容及要求 (1)用 D/A 转换器 DAC0832 产生锯齿波和正弦波。 (2)了解数/模转换器的基本原理,掌握 DAC0832 芯片的使用 方法。 (3)产生锯齿波只须将输出到 DAC0832 的数据从 0 开始循环递 增。产生正弦波可根据正弦函数建一个正弦函数表,取值范围为一 个周期。 (4)要求写出试验中产生的锯齿波的最大频率约为多少,与什 么有关。并且要使所产生的频率尽量高,编写程序时应注意什么。 二
2、、二、方案、系统组成框图和工作原理说明方案、系统组成框图和工作原理说明 (1)DAC 实验电路原理如图 1.1。DAC0832 采用单缓冲方式, 具有单双极性输入端(图中的 Ua、Ub),利用调试输出命令,输出 数据给 DAC0832,用万用表测量单极性输出端 Ua 及双极性输出端 Ub 的电压,验证数字与电压之间的线性关系。 (2)分别编程产生锯齿波、正弦波电压波形(从 Ub 输出,用 示波器观察) 图 1.1 DAC0832 基本实验电路 (3) D/A 转换: (a)8 位 D/A 转换器 DAC0832 的口地址 8000H,输入数据与 输出电压的关系为: (UREF 表示参考电压,N
3、 表示数数据) ,这里的参考电压 为 PC 机的+5V 电源。 (b) 产生锯齿波只须将输出到 DAC0832 的数据由0循环递增。 产生正弦波可根据正弦函数建一个下弦数字量表, 取值范 围为一个周期,表中数据个数为 256 个。 三、程序三、程序功能描述及程序功能描述及程序流程流程 1 1 、产生锯齿波的流程:、产生锯齿波的流程: 开始 数据 00 送 AL 寄存器 AL 中的数据输出到 0832 延时 取 AL 中的数据 2 2、产生正、产生正弦波的流程图如下:弦波的流程图如下: 四、程序代码四、程序代码 1 锯齿波: CODE SEGMENT ASSUME CS:CODE DAPORT
4、EQU 8000H;定义 D/A 接口芯片地址 ORG 10b0H;定义起始地址 START:JMP DACONTORL;数字量 FF 送 0832 转换 开始 正弦表第一个数字的首 地址送到 BX 表长度送到 CX SI 指向正弦表首地址 将表中数字送到 AL SI 加 1 若 SICX DACONTORL:MOV DX,DAPORT MOV AL,00H;延时 DACON1:OUT DX,AL INC AL;数字量加 1 JMP DACON1;循环转换得到锯齿波 CODE ENDS END START 2 正弦波: CODES SEGMENT ASSUME CS:CODES ORG 120
5、0H ;初始地址至少从 1200h 开始 START: DAC0832 EQU 8000H ;定义 D/A 端口地址 MOV BX,OFFSET TAB ;取变量 TAB 的首地址 LAB1:MOV CX,256 MOV SI,00H ;变量的相对地址 LAB2:MOV AL,BXSI MOV DX,DAC0832 ;DAC0832 的端口地址 OUT DX,AL INC SI CALL LAB4 ;调用延时程序 LOOP LAB2 JMP LAB1 ;完成一个周期,进入下一个周期 LAB4:MOV DI,CX ;保护 CX MOV CX,20H ;控制发生时间,即用来控制周期 LAB3:NO
6、P LOOP LAB3 MOV CX,DI ;还原 CX RET TAB: ;正弦波数值表,256 个 DB 80H,83H,86H,89H,8DH,90H,93H,96H DB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH DB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H DB 0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H,0D8H DB 0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9H DB 0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5H DB 0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDH DB 0FDH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH DB 0FFH,0FFH,0F