一. 实验要求
DAC0832,编制程序产生锯齿波、三角波、正弦波。三种波轮流显示,用示波器 利用
观看。
二.实验目的
1.了解D/A转换的基本原理。
2.了解D/A转换芯片0832的性能及编程方法。3.了解单片机系统中扩展D/A转换的基本方法。三.实验电路及连线
四.实验说明
D/A转换是把数字量转换成模拟量的变换,从本书D/A电路输出的是模拟电压信号。要实现实验要求,比较简单的方法是产生三个波形的表格,然后通过查表来实现波形显示。 产生锯齿波和三角波的表格只需由数字量的增减来控制,同时要注意三角波要分两段来产生。
要产生正弦波,较简单的手段是造一张正弦数字量表。即查函数表得到的值转换成十六进制数填表。这样做虽然简单,但是费时费力,没有充分发挥单片机的能力。利用嵌入式定点、浮点运算子程序库可方便的完成正弦波的波形表生成工作。
有关子程序库的详细使用方法请查阅《爱迪克仿真器51/98/96汇编运算子程序库使用手册》。
注意汇编子程序的每个子程序名应为%开头的字符串,汇编程序在汇编时会自动将子程序链入。CALCL51/96 禁止用户对此改写,否则会导致调用出错。
D/A转换取值范围为一个周期,采样点越多,精度越高些。本例采用的采样点为256点/周期。
五.实验框图
程序框图:
入口置计数器初值查表读波形数据启动D/A改变计数器及表指针N显示完毕Y返回开始产生锯齿波数据N256个数据否Y产生三角波上升部数据N128个数据否Y产生三角波下降部数据N128个数据否Y产生正弦波数据N128个数据否Y显示锯齿波256次显示三角波256次显示正弦波256次PDA.ASM主程序框图
SIN波形读2π/256的浮点数ASCII码并转换成浮点数产生振幅的浮点数H产生自变量X的浮点数A与X相乘计算Sin(A*X)计算H*Sin(A*X)把结果转换成两字节无符号数Y峰值否N结果存表峰值处理计算H*Sin(a*(X+π))结果存表N128个YSIN计算结束
因篇幅问题不能全部显示,请点此查看更多更全内容