单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

很牛逼虚拟示波器proteus仿真 包含程序

  [复制链接]
跳转到指定楼层
楼主






虚拟示波器proteus仿真原理图


虚拟示波器程序:
  1. /*Mini51B数字示波器*/
  2. /*原作者:田开坤*/
  3. //移植:古道热肠


  4. #include <reg52.h>
  5. #include "osc.h"
  6. #include "lcd12864.h"
  7. #include "irm.h"
  8. #include "timer2.h"
  9. #include "dots.h"

  10. void main()
  11. {
  12.            char i=0,j=0,k=0;
  13.         unsigned char dah,dal,dam;
  14.         int tmp,tmp1;
  15.         pointxA=10;
  16.         pointxB=110;
  17.         pointyA=14;
  18.         pointyB=44;

  19.         lcd12864_init();
  20.         extern2_init();
  21.         timer2_init();
  22.         lcd12864_put_xywhb(0,7,128,8,bg);
  23.         disp_vdiv();
  24.           disp_ypoint();
  25.        
  26.         while(1)
  27.         {
  28.                 key_scan();
  29.                 if((da_finish)||(run_flag)) {                       
  30.                         dah=0;dal=255;
  31.                         for(i=0;i<DATA_SIZE/2;i++) {
  32.                                 if(da_buffer[i] > dah) dah = da_buffer[i]; //找出最大值
  33.                                 if(da_buffer[i] < dal) dal = da_buffer[i]; //找出最小值
  34.                         }
  35.                         dam=(dah-dal)/2+dal; //计算出中间值
  36.                         i=0;
  37.                         while(da_buffer[i] <= dam) if(++i > (DATA_SIZE/2)) break;
  38.                         while(da_buffer[i]  > dam) if(++i > (DATA_SIZE/2)) break;
  39.                         while(da_buffer[i] <= dam) if(++i > (DATA_SIZE/2)) break;       
  40.                         while(da_buffer[i]  > dam) if(++i > (DATA_SIZE/2)) break;                                               
  41.                         for(j=0;j<WIDTH;j++)
  42.                         {                               
  43.                                 if(acdc_flag==0)
  44.                                 {
  45.                                         tmp = da_buffer[i+j+movx]-dam;
  46.                                         tmp1 = da_buffer[i+j+movx+1]-dam;
  47.                                         tmp = tmp/(vdiv[val_vdiv])+HEIGHT/2 + movy; //过滤直流成分
  48.                                         tmp1 = tmp1/(vdiv[val_vdiv])+HEIGHT/2 + movy; //过滤直流成分
  49.                                 }
  50.                                 else
  51.                                 {
  52.                                         tmp = da_buffer[i+j+movx]/(vdiv[val_vdiv]) + movy;       
  53.                                         tmp1 = da_buffer[i+j+movx+1]/(vdiv[val_vdiv]) + movy;       
  54.                                 }
  55.                         if(tmp > HEIGHT-1) tmp = HEIGHT-1;       
  56.                         if(tmp1 > HEIGHT-1) tmp1 = HEIGHT-1;       
  57.                         if(tmp < 0) tmp =0;
  58.                         if(tmp1 < 0) tmp1 =0;
  59.                         k=tmp-tmp1;                         
  60.                         disp(j,tmp,k);
  61.                         }
  62.                         da_finish=0;
  63.                 }                       
  64.         }
  65. }

复制代码






虚拟示波器的所有资料下载:
示波器程序.zip (102 KB, 下载次数: 69)

虚拟示波器仿真电路.zip (74.13 KB, 下载次数: 79)

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

使用道具 举报

沙发
lizhendong 发表于 2016-10-4 23:06 | 只看该作者
你太牛了,谢谢
回复

使用道具 举报

板凳
lizhendong 发表于 2016-10-5 00:37 | 只看该作者
太好了,谢谢
回复

使用道具 举报

地板
lizhendong 发表于 2016-10-5 00:42 | 只看该作者
太好了,谢谢了,下来玩玩
回复

使用道具 举报

5#
黄新义 发表于 2016-10-15 11:56 | 只看该作者
如果能测量就好了
回复

使用道具 举报

6#
雪玉寐影 发表于 2016-10-31 17:21 | 只看该作者
这个应该可以用于简单测量
回复

使用道具 举报

7#
归依龙井 发表于 2017-4-29 16:26 | 只看该作者
频率不变吗?
回复

使用道具 举报

8#
kylinwu 发表于 2017-9-22 00:33 | 只看该作者
很好的资料,谢谢
回复

使用道具 举报

9#
walt740 发表于 2018-3-1 21:05 | 只看该作者
太好了,谢谢
回复

使用道具 举报

10#
walt740 发表于 2018-3-1 21:06 | 只看该作者
你太牛了,谢谢
回复

使用道具 举报

11#
rrqxx 发表于 2019-1-12 20:30 | 只看该作者
带宽可以到多少啊?
回复

使用道具 举报

12#
yilinghai 发表于 2019-1-16 22:24 | 只看该作者
频率只有0-99HZ ?
回复

使用道具 举报

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

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51黑电子论坛单片机. 联系QQ:125739409;技术交流QQ群582644647

Powered by 单片机教程网

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