找回密码
 立即注册

QQ登录

只需一步,快速开始

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

自动增益放大电路,直流,交流,0~3档 proteus仿真

[复制链接]
跳转到指定楼层
楼主
纯模数电电路,这电路可比用单片机控制难多了,其实随便改改也可以变成单片机电路,与门译码器都去掉,然后根据电压比较结果给模拟开关对应口导通就行了,反而不用想那些数电的逻辑变化.

1,纯模数电电路
0~1v放大5倍,1~2V放大2倍,2~3v放大1倍,3V以上放大0.1倍,当然,放大倍数随你定,只要改一下反馈电阻,实际电路要注意正负供电,有些模拟开关是双电源才能正常工作。电路中想换交流的自己动手连一下,把直流输入换成整流鉴幅电路的输出端,而原来连到741的线去掉连到交流信号,这是灿佳一个活动做的,初步验证还行,就是电路里忘了加滤波电容,小信号会影响较大(<0.3v).



2,单片机控制
今天把它改成单片机控制的了,上面那个已经明确说明是纯模电数电的电路,没有用到单片机,所以没有坑爹,单片机电路反而电路更加简单,注意电路是运放的,只显示档位,不显示大小,因为我以前做的题目没有要求,当然,换成测电压电路就可以显示电压结果了,用自带A/D转换的电路或者用A/D转换芯片都可以,我这里没有,因为做这个没用处,又不比赛,也不好玩


因为没啥功能所以程序很短

  1. #include<REG52.h>
  2. #define uchar unsigned char
  3. #define uint  unsigned int
  4. uchar code dofly[]={0x3f,0x06,0x5b,0x4f};

  5. void deal()
  6. {
  7. uchar temp,AB;
  8. temp=(P2&0x07);

  9. switch(temp)
  10.   {
  11.     case 0x00:{P0=dofly[0];AB=0X00;break;}
  12.     case 0 x01:{P0=dofly[1];AB=0X01;break;}
  13.     case 0x03:{P0=dofly[2];AB=0X02;break;}
  14.     case 0x07:{P0=dofly[3];AB=0X03;break;}
  15.    
  16.   }

  17.   P1=AB;

  18. }
  19. void main(void)
  20. {
  21.   while(1)
  22.   {
  23.     deal();
  24.   }
  25. }
复制代码



梦想起航2.zip

29.37 KB, 下载次数: 39, 下载积分: 黑币 -5

用单片机的protues仿真.zip

27.73 KB, 下载次数: 41, 下载积分: 黑币 -5

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

使用道具 举报

沙发
ID:263449 发表于 2018-3-27 20:10 | 只看该作者
可以给详细讲解一下么?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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