找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4851|回复: 4
打印 上一主题 下一主题
收起左侧

51单片机+DAC0832可调幅度及频率信号发生器程序+Proteus仿真设计

[复制链接]
跳转到指定楼层
楼主
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. //文件、端口定义、程序开始
  2. #include<reg51.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit SQU_K=P1^4;                 //开关接口定义
  6. sbit SAW_K=P1^5;
  7. sbit TRI_K=P1^6;
  8. sbit SIN_K=P1^7;               
  9. sbit SQU_L=P1^0;
  10. sbit SAW_L=P1^1;
  11. sbit TRI_L=P1^2;
  12. sbit SIN_L=P1^3;               
  13. sbit ST=P3^0;                          //0808接口定义
  14. sbit EOC=P3^3;
  15. sbit OE=P3^4;
  16. sbit CS=P3^2;                 //0832接口定义
  17. sbit W_R=P3^6;
  18. uchar code sin_tab[]={0,0,0,0,1,1,2,3,4,5,6,8,
  19.                                           9,11,13,15,17,19,22,24,
  20.                                           27,30,33,36,39,42,46,49,
  21.                                           53,56,60,64,68,72,76,80,
  22.                                           84,88,92,97,101,105,110,114,
  23.                                           119,123,128,132,136,141,145,150,
  24.                                           154,158,163,167,171,175,179,183,
  25.                                           187,191,195,199,202,206,209,213,
  26.                                           216,219,222,225,228,231,233,236,
  27.                                           238,240,242,244,246,247,249,250,
  28.                                           251,252,253,254,254,255,255,255
  29.                                           };
  30. //读ADC0808子程序
  31. unsigned char adc0808(void)
  32. {        
  33.                 uchar dat,i;
  34.                 ST=0;
  35.                 ST=1;
  36.                 ST=0;
  37.                 for(i=10;i>0;i--)
  38.                 while(!EOC);
  39.                 OE=1;
  40.                 dat=P2;
  41.                 return(dat);
  42. }
  43. //方波发生函数
  44. void square()
  45. {
  46.         uchar a,b;
  47.         for(a=0;a<127;a++)
  48.         {
  49.                 P0=0xff;
  50.                 P2=0xff;
  51.                 b=adc0808();
  52.                 b=~b;
  53.                 while(b--);                        //调节相位,b的变化越大,相位变化越小
  54.         }
  55.         for(a=0;a<127;a++)
  56.         {
  57.                 P0=0;
  58.                 P2=0xff;
  59.                 b=adc0808();
  60.                 b=~b;
  61.                 while(b--);
  62.         }
  63. }
  64. //锯齿波发生函数
  65. void sawtooth()
  66. {
  67.         uchar a,b;
  68.         for(a=0;a<255;a++)
  69.         {        
  70.                 P0=a;
  71.                 P2=0xff;
  72.                 b=adc0808();
  73.                 b=~b;
  74.                 while(b--);
  75.         }
  76. }
  77. //三角波发生函数
  78. void triang()
  79. {
  80.         uchar a,b;
  81.         for(a=0;a<254;a=a+2)
  82.         {
  83.                 P0=a;
  84.                 P2=0xff;
  85.                 b=adc0808();
  86.                 b=~b;
  87.                 while(b--);
  88.         }
  89.         for(a;a>1;a=a-2)
  90.         {
  91.                 P0=a;
  92.                 P2=0xff;
  93.                 b=adc0808();
  94.                 b=~b;
  95.                 while(b--);
  96.         }
  97. }
  98. //正弦波发生函数
  99. void sinwave()
  100. {
  101.         uchar a,b;
  102.         for(a=0;a<92;a++)
  103.         {
  104.                 P0=sin_tab[a];
  105.                 P2=0xff;
  106.                 b=adc0808();
  107.                 b=~b;
  108.                 while(b--);
  109.         }
  110.         for(a=a-1;a>0;a--)
  111.         {
  112.                 P0=sin_tab[a];
  113.                 P2=0xff;
  114.                 b=adc0808();
  115.                 b=~b;
  116.                 while(b--);
  117.         }
  118. }
  119. //主函数
复制代码
全部资料51hei下载地址:
信号发生器.zip (969.18 KB, 下载次数: 245)

评分

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

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:772673 发表于 2020-6-17 16:46 | 只看该作者
没有仿真图啊
回复

使用道具 举报

板凳
ID:507900 发表于 2020-6-19 16:33 | 只看该作者

把程序烧进去仿真
回复

使用道具 举报

地板
ID:944517 发表于 2021-6-25 10:50 来自手机 | 只看该作者
Leawon 发表于 2020-6-19 16:33
把程序烧进去仿真

感谢感谢感谢
回复

使用道具 举报

5#
ID:235285 发表于 2022-3-4 10:11 | 只看该作者
非常棒哦,是自己想要的
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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