找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2298|回复: 1
收起左侧

单片机DAC0832信号发生器仿真程序设计

[复制链接]
ID:681355 发表于 2020-11-25 18:41 | 显示全部楼层 |阅读模式
电流/电压转换放大电路
由于从DAC0832转换出来的模拟信号为电流信号,将DAC0832输出的信号经过电流/电压转换放大电路转变为电压信号。仿真中使用集成运放OPAMP,OPAMP集成运算放大器是价格便宜的带差动输入功能的四运算放大器
图3-4-1 电流/电压转换放大仿真电路

3.574LS21双4输入与门
74LS21 四输入与门,14个引脚DIP14封装,每个ic两组,工作电压4.75v-5.25v。采用74LS21 4输入与门与产生波形的开关相连,当有开关键按下时,中断打开,相应的波形产生函数工作,系统产生的相应的波形。
图3-5-1 74LS21仿真图

3.6按键输入电路
按键使由一组按压式或触摸式开关构成的,是一种常用的输入设备。
3.6系统总体结构图

主要程序
主要程序
1.              梯形波函数
              void st()
{                                                                       
              uchar i=0xff;
              while(KST)
              {
                            XBYTE[DAC]=i--;                 //启动DAC
                            if(i==0x0)
                            {
                               delay();
                               delay();
                               delay();
                               delay();
                               while(i!=0xff)
                               {
                                            XBYTE[DAC]=i++;                 //启动DAC i++;
                               }
                               delay();
                               delay();
                               delay();
                               delay();
                            }

              }
}
2. 三角波函数
void tri()
{                                                                       
              uchar i=0;
              XBYTE[DAC]=i;                        //启动DAC
              do
              {
                            XBYTE[DAC]=i;                    //上升沿
                            i++;
              }while(i<0xff);
              do
              {
                            XBYTE[DAC]=i;                    //下降沿
                            i--;
              }
              while(i>0x0);
}
3. 方波函数
void sq(){                                                                       
              XBYTE[DAC]=0x00;                    //启动DAC
              delay();
              delay();
              delay();
              delay();
              XBYTE[DAC]=0xff;              
              delay();
              delay();
              delay();
              delay();
}
4. 正弦波函数
void sin()
{                                                                       
              uchar i;
              for(i=0;i<18;i++) XBYTE[DAC]=SINTAB;                 //第一个1/4周期
              for(i=18;i>0;i--) XBYTE[DAC]=SINTAB;                 //第二个1/4周期
              for(i=0;i<18;i++) XBYTE[DAC]=~SINTAB;                 //第三个1/4周期
              for(i=18;i>0;i--) XBYTE[DAC]=~SINTAB;                 //第四个1/4周期
}
5. 锯齿波函数
void jc()
{                                                                       
              uchar i=0xff;
              while(KJC)
              {
                            XBYTE[DAC]=i++;                 //启动DAC
            
              }
}

电路仿真及仿真结果分析
4.1仿真总电路图

五个按键,每按一次按键后输出对应的波形。双极性电压输出,电压幅值可调。
4.2梯形仿真结果

4.3三角波仿真结果


4.4波仿真结果
4.5锯齿波仿真结果
4.6正弦波仿真结果




五、心得体会

通过本次设计,使我对protues和Keil_C51有了更好的理解,能够熟练的掌握这两款软件。另外对所学理论知识的深化和提高。通过本次设计,我了解和掌握了单片机应用系统的软硬件设计过程、方法及实现,为以后设计和实现更难得应用打下了良好的基础。
在本次设计题目的过程中,我参考了书上的例题9-6,在原来的硬件和软件上做了改动,但是也在设计中遇到了很多得问题,对硬件方面的各种知识并不是非常理解,对软件编程方面也有很多不足,查找了很多资料和其他例子,付出很多,收获也很多。对于单片机设计,硬件电路相对还是比较简单,但是在程序设计上,费了很大的功夫,对于程序不是那么容易上手。要设计一个成功的电路,必须要有耐心,要有坚持的毅力,完成这次设计后,我在书本理论知识的基础上又有了更深层次的理解,同时更有耐心和毅力去完成一个项目。

51hei.png

全部资料51hei下载地址:
波形发生电路.zip (980.11 KB, 下载次数: 13)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:637591 发表于 2020-12-1 22:08 | 显示全部楼层
频率范围多少
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表