首页 精选百科 > 正文

正弦波发生器产生正弦波的条件(正弦波发生器)

导读 你好 这是一个相对简单的编程。DA转换器品种较多,从接口上分为并行,串行。从精度上,8位10位12位等等,位数越多精度越高。只要了解了该D...

你好 这是一个相对简单的编程。

DA转换器品种较多,从接口上分为并行,串行。

从精度上,8位10位12位等等,位数越多精度越高。

只要了解了该DA与MPU的接口协议,那种都一样用。

我这个程序,由于子程序襄套较多,只给你主程序在这里探讨一下,波形也是锯齿波的,正玄波的话把代码换一下就行了。

完全程序要的话,给我个邮箱。

正玄波的代码,网上应该能搜到,自己也能换算。

老早学汇编的时候就搞过,不过没保存。

/*----------------------------------------------- 名称:IIC协议 PCF8591 AD/DA转换 论坛:www. 编写: 修改:无 内容:使用DA输入,数码管显示输出数字量,LED显示模拟电压大小 ------------------------------------------------*/ #include #include "i2c.h" #define AddWr 0x90 //写数据地址 #define AddRd 0x91 //读数据地址 /*unsigned char code tab[]={ 0,25,50,75,100,125,150,175,200,225,250 //表格数值越多,波形越平滑 };*/ unsigned char code tab1[]={ 0,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160, 170,180,190,200,210,220,230,240,250 }; extern bit ack; bit WriteDAC(unsigned char dat,unsigned char num); /*------------------------------------------------ 主程序 ------------------------------------------------*/ main() { unsigned char i; while (1) //主循环 { for(i=0;i<26;i++) WriteDAC(tab1[i],1); } } /*------------------------------------------------ 写入DA转换数值 输入参数:dat 表示需要转换的DA数值,范围是0-255 ------------------------------------------------*/ bit WriteDAC(unsigned char dat,unsigned char num) { unsigned char i; Start_I2c(); //启动总线 SendByte(AddWr); //发送器件地址 if(ack==0)return(0); SendByte(0x40); //发送器件子地址 if(ack==0)return(0); for(i=0;i

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。