微机原理与接口技术课程设计[精心整理]
微机原理与接口技术
课程设计
学院:电气工程学院
班级:09级4班
姓名:刘鹏
学号:2009301390078
报告日期:2012.2.15
一、课题内容及要求
(1)用D/A转换器DAC0832产生锯齿波和正弦波。
(2)了解数/模转换器的基本原理,掌握 DAC0832 芯片的使用方法。
(3)产生锯齿波只须将输出到DAC0832的数据从0开始循环递增。产生正弦波可根据正弦函数建一个正弦函数表,取值范围为一个周期。
(4)要求写出试验中产生的锯齿波的最大频率约为多少,与什么有关。并且要使所产生的频率尽量高,编写程序时应注意什么。
二、方案、系统组成框图和工作原理说明
(1)DAC 实验电路原理如图 1.1。DAC0832 采用单缓冲方式,具有单双极性输入端(图中的 Ua、Ub),利用调试输出命令,输出数据给 DAC0832,用万用表测量单极性输出端Ua及双极性输出端Ub的电压,验证数字与电压之间的线性关系。
(2)分别编程产生锯齿波、正弦波电压波形(从 Ub 输出,用示波器观察)
图 1.1 DAC0832 基本实验电路
D/A转换:
(a)8位 D/A转换器 DAC0832 的口地址8000H,输入数据与输出电压的关系为:
(UREF表示参考电压,N表示数数据) ,这里的参考电压为PC机的+5V电源。
(b)产生锯齿波只须将输出到 DAC0832 的数据由0循环递增。产生正弦波可根据正弦函数建一个下弦数字量表,取值范围为一个周期,表中数据个数为256个。
三、程序功能描述及程序流程
1 、产生锯齿波的流程:
2、产生正弦波的流程图如下:
四、程序代码
1 锯齿波:CODE SEGMENT
ASSUME CS:CODE
DAPORT EQU 8000H;定义D/A接口芯片地址
ORG 10b0H;定义起始地址
START:JMP DACONTORL;数字量FF送0832转换
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 1200H ;初始地址至少从1200h开始
START:
DAC0832 EQU 8000H ;定义D/A端口地址
MOV BX,OFFSET TAB ;取变量TAB的首地址
LAB1:MOV CX,256
MOV SI,00H ;变量的相对地址
LAB2:MOV AL,[BX][SI]
MOV DX,DAC0832 ;DAC0832的端口地址
OUT DX,AL
INC SI
CALL LAB4 ;调用延时程序
LOOP LAB2
JMP LAB1 ;完成一个周期,进入下一个周期
LAB4:MOV DI,CX ;保护CX
MOV CX,20H ;控制发生时间,即用来控制周期
LAB3:NOP
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,0F7