硬件设计:

(末尾附文件)

仿真图:
正弦波

三角波:

锯齿波:

方波:

程序设计

#include "reg51.h"
#include "LCD12864.h"
#include "font.h"#define ADC_VALUE P0
sbit START = P3^4;
sbit OE    = P3^6;
sbit EOC   = P3^5;#define COLLECT_NUM 64
uint8_t adc_collect[COLLECT_NUM];uint8_t GatAdcValue()
{uint8_t temp;START = 1;START = 0;   //  下降沿触发转换OE = 1;while(EOC == 0);   //等待转换完成temp = ADC_VALUE;OE = 0;return temp;}void main()
{uint8_t i,j,k,row,col,page,Data;uint8_t old_Data,old_page,temp_Data,temp_Data2,temp_page;LCD12864_Init();while(1){for(i = 0;i<COLLECT_NUM;i++)adc_collect[i] = GatAdcValue();for(j = 0;j<COLLECT_NUM;j++){col = j;          // 列row = adc_collect[j]/4;   // 计算在第几行page = row/8;Data = 0x01 <<(row-page*8);refresh_one_list(col);if(j!=0){temp_Data2 = Data;temp_page = page;if(page == old_page)   //  同一页内{if(Data > old_Data)     //波形下降  向上补充{temp_Data = Data;temp_Data = temp_Data>>1;while(temp_Data!=old_Data){temp_Data = temp_Data>>1;Data = Data|(Data>>1);     //向上补充}}else if(Data < old_Data)    // 波形上升  向下补充{temp_Data = Data;temp_Data =temp_Data<<1;while(temp_Data!=old_Data){temp_Data =temp_Data<<1;                            Data = Data|(Data<<1);     //向下补充}}} //end   if(page == old_page)   //  同一页内 else if(page > old_page)   // 跨页下降   应该向上补充{temp_Data = Data;for(k = 0;k<(row-page*8);k++)    //向上补充到本页顶部temp_Data |= (temp_Data>>1);     //向上补充write_one_list(page,col,temp_Data);  //填充本页page--;      //往上一页while(page != old_page)   //填充两点之间的中间的页{write_one_list(page,col,0xFF);page --;}if(page == old_page)   // 来到了同一页{temp_Data = 0x80;Data = 0x80;if(Data>old_Data){temp_Data = temp_Data>>1;          // 上移一格while(temp_Data != old_Data){temp_Data = temp_Data>>1;          // 上移一格                    Data = Data|(Data>>1);     // 向上补充}}}}//end  else if(page > old_page)   // 跨页下降   应该向上补充else if(page < old_page)    // 跨页上升    应该向下补充{temp_Data = Data;for(k = 0;k<(7-(row-page*8));k++){    temp_Data|=(temp_Data<<1);}write_one_list(page,col,temp_Data);page++;     //向下一页while(page != old_page){write_one_list(page,col,0xFF);page++   ;  // 下降一页}if(page == old_page){Data = 0x01;temp_Data = 0x01;if(Data < old_Data){temp_Data = temp_Data<<1;   //向下移动一格while(temp_Data != old_Data){temp_Data = temp_Data<<1;   //向下移动一格Data |= (Data<<1);    //向下补充}}}}//end else if(page < old_page)    // 跨页上升    应该向下补充old_Data = temp_Data2;old_page = temp_page;}else{old_Data = Data;old_page = page;}write_one_list(page,col,Data);    }}
}

.

文件仅供参考

链接:https://pan.baidu.com/s/1M52b64FYtIi1NtVH-OtR-w
提取码:yi2b

.

基于51单片机的简易数字示波器proteus仿真相关推荐

  1. 【039】基于51单片机的简易门铃Proteus仿真设计

    一.压缩包资料内容 (1).基于51单片机的简易门铃proteus仿真设计一份: (2).基于51单片机的简易门铃proteus仿真设计keli源代码一份: (3).基于51单片机的简易门铃prote ...

  2. 基于51单片机的简易数字电压表proteus仿真原理图程序设计

    硬件电路设计 原理图: 仿真图: 单片机的时钟电路与复位电路设计 本系统采用STC系统列单片机,相比其他系列单片机具有很多优点.一般STC单片机资源比其他单片机要多,而且执行速度快:STC系列单片机使 ...

  3. 【019】基于51单片机的交通灯Proteus仿真设计

    一.资料内容 (1).基于51单片机的交通灯proteus仿真设计一份: (2).基于51单片机的交通灯proteus仿真设计keli源代码一份: (3).基于51单片机的交通灯proteus仿真设计 ...

  4. 【034】基于51单片机的HX711电子秤Proteus仿真设计

    一.压缩包资料内容 (1).基于51单片机的HX711电子秤proteus仿真设计一份: (2).基于51单片机的HX711电子秤proteus仿真设计keli源代码一份: (3).基于51单片机的H ...

  5. 基于51单片机的烟雾火灾报警器proteus仿真设计

    基于51单片机的烟雾火灾报警器proteus仿真设计 1 开发环境 仿真图:proteus8.9以上 程序代码:KEIL4/KEIL5 原理图:AD 设计编号:A0004 代码讲解+仿真讲解+仿真演示 ...

  6. 【002】基于51单片机的电子万年历proteus仿真设计

    一.资料内容(私信获取) (1).基于51单片机的电子万年历proteus仿真设计一份: (2).基于51单片机的电子万年历proteus仿真设计keli源代码一份: (3).基于51单片机的电子万年 ...

  7. 【008】【毕业设计】基于51单片机的烟雾报警系统proteus仿真与实物设计

    ​一.压缩包资料内容(私信获取) (1).基于51单片机的烟雾报警系统proteus仿真设计一份: (2).基于51单片机的烟雾报警系统proteus仿真设计keli源代码一份: (3).基于51单片 ...

  8. 【013】【毕业设计】基于51单片机的节能路灯proteus仿真设计

    ​一.资料内容(私信) (1).基于51单片机的节能路灯proteus仿真设计一份: (2).基于51单片机的节能路灯proteus仿真设计keli源代码一份: (3).基于51单片机的节能路灯pro ...

  9. 基于51单片机多路温度检测proteus仿真 ds18b20

    本设计是基于51单片机多路温度检测proteus仿真_ds18b20(仿真+程序+原理图) 仿真图proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:C0042 ...

  10. 基于51单片机智能路灯控制系统Proteus仿真

    资料编号:182    下面是仿真功能视频演示: 182-基于51单片机智能路灯控制系统Proteus仿真 功能讲解: 采用51单片机作为控制CPU,可以通过设置开灯和关灯时间开自动控制路灯的打开和关 ...

最新文章

  1. 挑战NLP、量子计算难题,300多支本科生队伍同场角逐,2020 ASC超算竞赛一触即发...
  2. 使用 Spring HATEOAS 开发 REST 服务--转
  3. java 接口文档工具_一款Java基于注释的接口文档生成工具
  4. 活学巧用电脑上网实例入门
  5. Windows Phone 如何振动手机?
  6. Linux发行版本详解
  7. JQuery AJAX基本使用
  8. mybatis 同名方法_判断同名股票是否存在的MyBatis查询函数写法
  9. 修改UINavigationController返回按钮的标题及如何隐藏导航栏
  10. 客户端向hdfs读写数据流程
  11. 考研:无穷小微积分的不适症
  12. aiml简介+源代码解析+中文分词(java)
  13. 组合数学 | 递推关系和母函数
  14. 今日份PS练习|玻璃材质背景练习
  15. 神来之笔之傅里叶变换(频谱)
  16. P205-下载xkcd漫画
  17. 搜索计算机硬盘的索引恢复,[转载]Chkdsk—磁盘查错修复命令
  18. 转载自杭电大牛的博客 线段树 绝对经典
  19. Rancher 磁盘空间不足问题处理
  20. outlook使用网易邮箱

热门文章

  1. Android本地音乐播放器(二)
  2. php 常见的视频格式转换
  3. Atitit 衡量项目的规模 1. 预估衡量项目的规模的方法 1 1.1. 方法一、Delphi 法 1 1.2. 方法二、 类比法 1 1.3. 方法三、功能点估计法 2 1.4. 方法四、PER
  4. 办公室专用表格大全,公司管理常用表格公司制度大全
  5. Netty 解决TCP粘包/半包使用
  6. idea 安装 jclasslib
  7. 三种 绘制奈奎斯特曲线 的方法
  8. 低通滤波器计算截止评率_了解奈奎斯特图中的截止频率
  9. 数字信号处理前瞻(note1):奈奎斯特与折叠频率
  10. c 陷阱与缺陷 摘录