proteus是一个仿真软件,可以用来仿真电子线路的工作状况,具有多种EDA工具软件(的功能。这些功能是:1.原理布图;2.PCB自动或人工布线;3.SPICE电路仿真;

它可以仿真51系列、AVR、PIC、ARM、STM32等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。

以下内容分别对ADC0809在51单片机下,在LCD602及数码管上的仿真例程

1.ADC0809+LCD1602仿真

(1)仿真图(采用的是protues7.8版本)

(2)程序

程序采用模块化编程,以LCD1602及ADC0809作为两个模块,每个模块具有.h和.c文件,分别为1602.c和1602.h,以及0809.c和0809.h,然后通过main.c文件对这两个驱动程序进行调用;

/********main.c***********/
#include "0809.h"
#include "1602.h"
​
uchar table1[]="LCD1602 TEST OK";
uchar table2[]="U=0.000V";
uint num;
void DelayMS(uint ms)
{uchar i;while(ms--){for(i=0;i<120;i++);}
}
​
void LCD_Display()
{uint d ;uchar i;Red_0809 ( ) ;d =num * 5000.000 / 256;table2[2]=d/1000+'0';table2[4]=d/100%10+'0';table2[5]=d/10%10+'0';table2[6]=d%10+'0';write_com(0x80);i=0;while(table1[i]!='\0'){write_dat(table1[i++]);    }write_com(0x80+0x44);i=0;while(table2[i]!='\0'){write_dat(table2[i++]);}
}
​
void main()
{TMOD = 0x02;TH0  = 0x14;TL0  = 0x00;IE   = 0x82;TR0  = 1;P1   = 0x3f;init();while(1){LCD_Display();  }
}
​
void Timer0_INT() interrupt 1
{CLK = !CLK;
}/********1602.h***********/
#ifndef __1602_H__
#define __1602_H__
​
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
​
sbit rs=P0^0;
sbit rw=P0^1;
sbit e=P0^2;
​void delay_50us(uchar i);void write_com(uchar com);void write_dat(uchar dat);void init (void);
#endif
​
/********1602.c***********/
#include "1602.h"
#include "0809.h"
​
void delay_50us(uchar i)
{uchar  a;for (;i>0;i--)for (a=0;a<20;a++);
}void write_com(uchar com)
{rs=0;rw=0;e=0;P2=com;delay_50us(10);e=1;delay_50us(20);e=0;
}
void write_dat(uchar dat)
{rs=1;rw=0;e=0;P2=dat;delay_50us(10);e=1;delay_50us(20);e=0;
​
}void init (void)
{delay_50us(300);write_com(0x38);delay_50us(300);write_com(0x38);delay_50us(100);write_com(0x38);write_com(0x38);write_com(0x01);write_com(0x06);write_com(0x0c);
}
​
/********0809.h***********/
#ifndef __0809_H__
#define __0809_H__
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
extern uint num;
sbit OE  = P1^0;
sbit EOC = P1^1;
sbit ST  = P1^2;
sbit CLK = P1^3;
void Red_0809 ();
#endif
​
/********0809.c***********/
#include "0809.h"
void Red_0809 ()
{   ST = 0;ST = 1;ST = 0;while(EOC == 0);OE = 1;num = P3;OE = 0;
}

2.ADC0809+数码管仿真

(1)仿真图(采用的是protues7.8版本)

(2)程序

#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
​uchar code LEDData[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f  };
sbit OE  = P1^0;
sbit EOC = P1^1;
sbit ST  = P1^2;
sbit CLK = P1^3;
​void DelayMS(uint ms)
{uchar i;while(ms--){for(i=0;i<120;i++);}
}
​
void Display_Result(uint d)
{P2 = 0xf7;P0 = LEDData[d%10];DelayMS(5);P2 = 0xfb;P0 = LEDData[d%100/10];DelayMS(5);P2 = 0xfd;P0 = LEDData[d%1000/100];DelayMS(5);P2 = 0xfe;P0 = LEDData[d/1000] +128;DelayMS(5);
}
​
void main()
{uint num,num1;TMOD = 0x02;TH0  = 0x14;TL0  = 0x00;IE   = 0x82;TR0  = 1;P1   = 0x3f;while(1){ST = 0;ST = 1;ST = 0;while(EOC == 0);OE = 1;num1 = P3;OE = 0;num =num1 *5000.000 / 256;Display_Result(num);}
}
​
void Timer0_INT() interrupt 1
{CLK = !CLK;
}

关注公众号-单片机实例设计,发送关键词:ADC0809,获取。

仿真及程序下载链接

ADC0809仿真-LCD602及数码管显示相关推荐

  1. 51单片机汽车胎压大气气压测量仪仿真设计_数码管显示

    51单片机汽车胎压大气气压测量仪仿真设计_数码管显示 (仿真+程序) 仿真原版本:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0018 目录标题 51 ...

  2. 基于51单片机电子秒表倒计时器proteus仿真程序原理图PCB数码管显示语言播报

    硬件设计 仿真图1: 计时功能,数码管显示 仿真图2 数码管LCD结合显示:具有多次记录模式: 仿真图3 数码管显示:具有时钟和秒表功能: 仿真图4 数码管显示:具有语音播报功能(这里采用示波器模拟, ...

  3. 基于51单片机的三路自动数字电压表仿真ADC0809 数码管显示程序设计

    硬件设计. 之前讲过的几种数字电压表均是一路输入,今天讲一下多路输入的电压表,显示是采用数码管显示,ADC采用的是TI的ADC0809. 以AT89C51单片机为核心,起着控制作用.系统包括数码管显示 ...

  4. 数码管显示1到8c语言,单片机控制八只数码管滚动显示1~8 附PROTEUS软件仿真图

    数码管显示是每一个单片机初学者都必须学的,而单片机驱动数码管的数字循环显示实验,又是单片机基础中的基础,同时也是学好C语言编程的关键,此实验在硬件上可以弄清楚单片机驱动原理和数码管的显示原理,在软件上 ...

  5. multisim仿真D触发器设计的模六计数器并在数码管显示0-5

    D触发器设计的模6计数器 设计思路从000计数到101,并用卡诺图进行化简,没有输出为摩尔型 用quartus仿真看波形 BCD译码 选择74LS48芯片,将D触发器输出Q2Q1Q0对应接到输入管脚C ...

  6. Arduino:数码管显示原理详解和Proteus仿真实验

    Arduino:数码管显示原理详解和Proteus仿真实验 Proteus仿真 数码管介绍 数码管是半导体发光元件,其基本单元是发光二极管.根据段数,数码管分为七段管和八段管. 八段管比七段管还多一个 ...

  7. STMCubeMX+Proteus仿真DHT11(数码管显示)

    目录 数码管 DHT11简介 精度 量程 DHT11接线图 DHT11引脚说明 STM32CubeMX配置 Keil移植DHT11 核心代码 Proteus仿真 DHT11库 sys.h DHT11. ...

  8. 【Proteus仿真】按键设置+数码管显示

    [Proteus仿真]按键设置+数码管显示 Proteus仿真 采用的是7位共阴数码管段码作为显示,可以用于移植到所需的其他项目上,作为模板或参考程序来使用,其中包含了按键扫描功能的实现,显示和设置功 ...

  9. 基于51单片机MPX4115的压力测量仪proteus仿真 数码管显示

    硬件设计 (末尾附文件) 总体设计方案 本次设计是基于8051单片机的测量与显示.利用传感器将压力转换为电信号后,在经过ADC0832的模数转换器经A/D转换后由单片机进行有效处理,然后用数码管进行显 ...

最新文章

  1. linux修改密码和宽限天数,Linux chage用法详解:修改用户密码状态
  2. 【深度学习】眼底图像的视杯和视盘分割解析
  3. 工作中使用jasmine遇到的一个html element和Component绑定属性失去同步的问题
  4. BZOJ 2588 Spoj 10628 Count on a tree | 树上主席树
  5. python冒泡排序函数_python冒泡排序-Python,冒泡排序
  6. 调用图片文件夹中的任意图片随机显示_hexo框架下,实现图片一键式上传到七牛云
  7. 优化element ui中的弹框样式
  8. Sandbox简介和路径获取
  9. 中鸣机器人走黑线_乐高机器人三光感走黑线
  10. 问答 | 我适合做软件开发吗?
  11. 记一次接口压力测试与性能调优
  12. android手机自带浏览器无法识别apk文件
  13. matlab line属性
  14. 授权(mining.authorize)与 auth_stratum函数
  15. Linux的777权限
  16. java关于数组的下标越界
  17. OPTEE学习笔记 - AArch64 RPC(一)
  18. python使用scrt时间戳画图
  19. 性能优化系列(一)找出卡顿的元凶 —— 渲染性能优化
  20. 微信小程序的分包加载

热门文章

  1. [教程] 手把手教你如何安装Google Play框架服务不闪退
  2. Linux配置阿里云CentOS镜像仓库及Epel镜像仓库
  3. 媒体发三板块利空,大盘放量震荡整理
  4. 牛顿迭代法及其实际应用(附C++代码)
  5. Microsoft Word的学习
  6. java代码解压ZIP文件
  7. 轻轻松松背单词软件测试,MBA联考十佳背单词软件测评报告
  8. ubuntu下android虚拟机(emulator)出现error: unable to load driver错误
  9. SAP MM物料与客户主数据的税分类
  10. 使用xml模板生成word文档