找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 16023|回复: 30
收起左侧

自制了个简易信号发生器 1HZ-10MHZ 附仿真原理图与程序

  [复制链接]
ID:79034 发表于 2020-4-3 17:46 | 显示全部楼层 |阅读模式
能发出-2.5V~+2.5V,可调偏置输出0.6-5V。1HZ-10MHZ的信号,但是3M以后波形变形了,实际范围只有1hz-3Mhz。
板子直接拿6块一模一样的拼成一个正方体就当壳子了。
过程省略,下面是原理图, 51hei截图20200403171157.png 51hei截图20200403171218.png
下面是制作好的样子及测试 1M方波.jpg 1v5三角波100khz.jpg 1v5正弦波200khz.jpg 1v正弦波167khz.jpg 2M正弦波.jpg 2V三角波5hz.jpg 2V三角波64KHZ.jpg 2V正弦波2HZ.jpg 2V正弦波465HZ.jpg 500mV正弦波1khz.jpg 侧颜.jpg 俯视.jpg

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei.png

单片机源程序如下:
  1. #include "anjian.h"
  2. #include "intrins.h"

  3. bit zisuo;
  4. u8 chufa;
  5. u8 zijia;

  6. u8 anjian19(void)                                 //按键0-9
  7. {
  8.         unsigned char a=0;
  9.         P3 &= 0xe3;                           //键盘初始:行值=0,列值=1       
  10.         P3 |= 0xe0;                                           //P3.234=0        p3.567=1
  11.         _nop_();                                       //缓冲,待IO端口电位稳定
  12.         a = P3&0xe0;                               //得到行标志  得到P3.567电位
  13.        
  14.         P3 &= 0x1f;                          //翻转键盘接口输出                        
  15.         P3 |= 0x1c;                                        //p3.234=1 p3.567=0
  16.         _nop_();
  17.         a |= (P3&0x1c);                            //列标志 + 行标志
  18.        
  19.         return a>>2;                               //返回键值        返回 P3.234567
  20. }

  21. u8 anjian1015(void)                                   //按键10-15
  22. {
  23.         unsigned char a=0;
  24.         P1 &= 0xe7;                           //键盘初始:行值=0,列值=1       
  25.         P1 |= 0xe0;                                           //P1.34=0        p1.567=1
  26.         _nop_();                                       //缓冲,待IO端口电位稳定
  27.         a = P1&0xe0;                               //得到行标志  得到P1.567电位
  28.        
  29.         P1 &= 0x1f;                          //翻转键盘接口输出                        
  30.         P1 |= 0x18;                                           //p1.34=1 p1.567=0
  31.         _nop_();
  32.         a |= (P1&0x18);                            //列标志 + 行标志
  33.        
  34.         return a>>3;                               //返回键值        返回 P1.34567
  35. }

  36. u8 anjian1617(void)
  37. {
  38.         return P2&3;
  39. }

  40. void anjian(void)
  41. {
  42.         u8 a=anjian19();
  43.         u8 b=anjian1015();
  44.         u8 c=anjian1617();
  45.         if(a==0x3f&&b==0x1f&&c==3)
  46.         {
  47.                 zijia=0;
  48.                 zisuo=0;
  49.         }
  50.         else if(zisuo==0)
  51.         {
  52.                 zijia++;
  53.                 if(zijia>duananjishi)
  54.                 {
  55.                         zijia=0;
  56.                         zisuo=1;
  57.                         switch(a)
  58.                         {
  59.                                 case 0x36:chufa=1;break;
  60.                                 case 0x35:chufa=2;break;
  61.                                 case 0x33:chufa=3;break;
  62.                                 case 0x2e:chufa=4;break;
  63.                                 case 0x2d:chufa=5;break;
  64.                                 case 0x2b:chufa=6;break;
  65.                                 case 0x1e:chufa=7;break;
  66.                                 case 0x1d:chufa=8;break;
  67.                                 case 0x1b:chufa=9;break;
  68.                                 default:break;
  69.                         }
  70.                         switch(c)
  71.                         {
  72.                                 case 1:chufa=17;break;
  73.                                 case 2:chufa=10;break;
  74.                                 default:break;
  75.                         }
  76.                         switch(b)
  77. ……………………

  78. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
程序.rar (121.44 KB, 下载次数: 322)

评分

参与人数 2黑币 +59 收起 理由
AAA_MCU + 9 绝世好帖!
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:79034 发表于 2020-4-29 20:48 | 显示全部楼层
huxiaoxiong 发表于 2020-4-26 23:34
楼主能加wx私聊一下么,对这个挺感兴趣的,有偿问答。wx18326664110

直接问吧。不需要有偿!
回复

使用道具 举报

ID:597048 发表于 2020-4-30 11:07 | 显示全部楼层
赞赞赞  问一下  硬件成本是多少
回复

使用道具 举报

ID:314894 发表于 2020-4-30 15:48 | 显示全部楼层
楼主有原理图嘛
回复

使用道具 举报

ID:314894 发表于 2020-4-30 16:05 | 显示全部楼层
能介绍介绍按键有些什么功能嘛,我半天没摸索清楚
回复

使用道具 举报

ID:314894 发表于 2020-4-30 19:40 | 显示全部楼层
仿真图能标一下按键都有什么用嘛
回复

使用道具 举报

ID:79034 发表于 2020-5-1 01:55 | 显示全部楼层
MY黄土高坡 发表于 2020-4-30 11:07
赞赞赞  问一下  硬件成本是多少

没算过,不超过50(不含人工)
回复

使用道具 举报

ID:79034 发表于 2020-5-1 01:59 | 显示全部楼层
he2997761818 发表于 2020-4-30 19:40
仿真图能标一下按键都有什么用嘛

原理图不是在1楼吗?
按键123456789配合HZ,KHZ,MHZ调频率。
偏移按键是切换带正负电压的波形和只有正电压的波形。
波形按键就切换波形,三角,正弦,方波。
幅值按键就是调幅值的。比如0.5V幅值,或者1V幅值。哎。这看下照片一目了然了啊。这想都不用想的嘛。
回复

使用道具 举报

ID:742820 发表于 2020-5-2 15:01 | 显示全部楼层
你好打扰了   关于您做的简易信号发生器我想问一些问题。
1、您做的这个立体是只有最上面一面有用到的么,就是您的帖子里pcb最上层面板。
2、因为您的帖子是直接用示波器来测量作品,请问我可以另外连接一块显示屏吗,显示效果会是一样的吗?

非常感谢您能抽看看我的疑惑。
回复

使用道具 举报

ID:415304 发表于 2020-5-6 11:10 来自手机 | 显示全部楼层
学习到了
回复

使用道具 举报

ID:669066 发表于 2020-5-9 16:36 | 显示全部楼层
厉害了,后浪级人才,我是做示波器的厂家,你再完善一下可以聊聊合作呀
回复

使用道具 举报

ID:79034 发表于 2020-8-8 10:41 | 显示全部楼层
CTF 发表于 2020-5-2 15:01
你好打扰了   关于您做的简易信号发生器我想问一些问题。
1、您做的这个立体是只有最上面一面有用到的么, ...

1.立方体只有最上面那个板有用,其他的是用来组成壳子的,毕竟没合适的外壳。
2.加显示器这个得做个示波器。51太慢肯定是行不通的。用STM32可以勉强做一个。
51hei截图20200808103557.png
51hei截图202008081051hei7.png
51hei截图20200808103618.png
回复

使用道具 举报

ID:576025 发表于 2021-1-11 20:48 | 显示全部楼层
厉害了 我的楼主
回复

使用道具 举报

ID:872598 发表于 2021-1-12 11:58 | 显示全部楼层
这个板子用料还可啊。
回复

使用道具 举报

ID:423238 发表于 2021-1-15 16:06 来自手机 | 显示全部楼层
可以做电磁炉的驱动信号吗?
回复

使用道具 举报

ID:32348 发表于 2021-1-26 14:20 | 显示全部楼层
感谢啊   下载看看学习学习
回复

使用道具 举报

ID:851922 发表于 2021-1-30 17:40 | 显示全部楼层
厉害了  很优秀 不知道有没有做32的
回复

使用道具 举报

ID:852885 发表于 2021-2-1 09:17 | 显示全部楼层
楼主历害,要达到楼主功力没有个十年八年的是达不到的。
回复

使用道具 举报

ID:381245 发表于 2021-3-7 22:50 | 显示全部楼层
楼主牛,学习了!!谢谢分享!
回复

使用道具 举报

ID:381245 发表于 2021-3-8 11:54 | 显示全部楼层
楼主,附件中没看到proteus仿真工程文件,可以发个么?谢谢!!
回复

使用道具 举报

ID:570093 发表于 2021-3-20 20:30 | 显示全部楼层
BlueFox 发表于 2021-3-8 11:54
楼主,附件中没看到proteus仿真工程文件,可以发个么?谢谢!!

就在程序里面
回复

使用道具 举报

ID:570093 发表于 2021-3-29 09:42 | 显示全部楼层
请问下为啥3M以后变形了,分析过原因吗?
回复

使用道具 举报

ID:557856 发表于 2021-3-31 12:05 | 显示全部楼层
我想用9834做一个
反馈电阻换成 数字电位器 输出幅值是不是要灵和一点呢
回复

使用道具 举报

ID:989481 发表于 2021-12-8 10:36 | 显示全部楼层
这个能实现用电脑USB供电,电脑软件控制输出的波形,波形的频率以及振幅交流电压以及偏置直流电压不,感谢楼主!
回复

使用道具 举报

ID:472504 发表于 2022-2-22 15:00 | 显示全部楼层
楼主能发下原理图PCB源文件吗,想做一个。。。
回复

使用道具 举报

ID:1017814 发表于 2022-4-16 14:22 | 显示全部楼层
这个太深奥了,学习不了。
回复

使用道具 举报

ID:79544 发表于 2022-5-4 17:40 | 显示全部楼层
楼主威武 !学习了!!!!
回复

使用道具 举报

ID:195496 发表于 2022-5-8 07:18 | 显示全部楼层
太牛X了吧,模电超强
回复

使用道具 举报

ID:472504 发表于 2023-7-5 09:00 | 显示全部楼层
laoxu10000 发表于 2021-12-8 10:36
这个能实现用电脑USB供电,电脑软件控制输出的波形,波形的频率以及振幅交流电压以及偏置直流电压不,感谢 ...

理论完全没问题,加个通讯,做个上位机程序。
回复

使用道具 举报

ID:1083996 发表于 2023-7-5 16:52 | 显示全部楼层
多波形信号发生IC,ICL8038(0.001HZ~300kHz)、 MAX038(0.1Hz~20MHz),用这个做比较好一些,
然后MCU加入一些调制信号,能组成很炫酷的波形,可用于各种场合,后面加个高压输出,具体怎么用自己琢磨
回复

使用道具 举报

ID:149799 发表于 2023-7-5 21:22 | 显示全部楼层
谢谢分享,仿真文件在我电脑上出现闪退,可能是我的电脑配置问题吧。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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