Proteus8仿真:51单片机A/D转换(ADC0808)

这篇具有很好参考价值的文章主要介绍了Proteus8仿真:51单片机A/D转换(ADC0808)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

元器件

元器件 名称
排阻 RESPACK-8
51单片机 AT89C51
数码管 7SEG-MPX4-CA-BLUE
ADC芯片 ADC0808
滑动变阻器 POT-HG

原理图部分

Proteus8仿真:51单片机A/D转换(ADC0808)
ADC0808引脚作用

项目 Value
ADDA-C 选择IN通道
IN0-7 模拟量输入
VREF+ ADC参考电压
VREF- ADC参考地
CLOCK 时钟
VREF+ ADC参考电压
OUT1-8 数字信号输出
START 起始信号
OE 输出使能
EOC 结束信号

ADC0808初始化函数
Proteus8仿真:51单片机A/D转换(ADC0808)
根据时序图,首先是START信号,由低变高再变低,然后看EOC信号,由高到低,然后再到高时,OUTPUT ENABLE(OE)信号变高,然后读取输出信号,然后输出OUTPUT ENABLE(OE)变低关闭输出。

u8 ADC_Init(void)
{
	u8 ad_result=0;
	//首先是START信号,由低变高再变低
	START=0;
	START=1;
	START=0;
	//然后看EOC信号,由高到低
	while(EOC==0);
	//OUTPUT ENABLE(OE)信号变高,然后读取输出信号
	OE=1;
	ad_result=P1;
	OE=0;
	return ad_result;
}

代码

main.c

代码如下:

#include <reg51.h>//头文件

#define u8 unsigned char //宏定义
#define u16 unsigned int

sbit START=P2^5;
sbit EOC=P2^6;
sbit OE=P2^7;

void SMG_output(void);
void delay_ms(u16 ms);
u8 ADC_Init(void);
u8 tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf}; //数码管码值

u8 SMG[8]={10,10,10,10,10,10,10,10};//存储数码管要显示的码

u8 ad=0;
void main(void)
{

	while(1)
	{
		ad=ADC_Init();
		
		SMG[0]=10; 
		SMG[1]=ad/100;
		SMG[2]=ad%100/10;
		SMG[3]=ad%10;

		
		SMG_output();//数码管显示
	}
}


u8 ADC_Init(void)
{
	u8 ad_result=0;
	START=0;
	START=1;
	START=0;
	while(EOC==0);
	OE=1;
	ad_result=P1;
	OE=0;
	return ad_result;
}


//数码管显示函数
void SMG_output(void)
{
	u8 i; //定义数码管控制位
	for(i=0;i<=4;i++) //八次循环
	{
		P2=1<<i; //第一次选第一根数码管,第二次第二根。。。。 1  0000 0001 0000 0010
		P0=tab[SMG[i]];//显示数码管数组对应的值 p0=tab[smg[0]]=tab[2]=2
		delay_ms(1); //延时1ms == 显示1ms
	}
	
	P2=0xff; //数码管消隐
	P0=0xff; //数码管消隐
}

//延时函数
void delay_ms(u16 ms)
{
	u16 i,j;
	for(i=0;i<ms;i++)
	for(j=71;j>0;j--);
}

工程文件

工程文件文章来源地址https://www.toymoban.com/news/detail-505955.html

到了这里,关于Proteus8仿真:51单片机A/D转换(ADC0808)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【51单片机Keil+Proteus8.9】温室盆栽灌溉系统

    实验五 实验名称 温室盆栽灌溉系统 软件设计: 1. 定义对应的引脚和端口的别名。 2. 编写延时函数,用于控制程序的执行速度。 3. 编写LCD控制函数,包括发送命令和发送数据两种操作。 4. 编写显示函数,用于在LCD上显示字符串。 5. 编写获取AD转换结果的函数,用于测量环境

    2024年01月20日
    浏览(43)
  • 单片机仿真软件Proteus8.0的安装及使用

    介绍: Proteus是英国著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、

    2023年04月09日
    浏览(37)
  • 【51单片机Keil+Proteus8.9】控制步进电机+LCD1602显示状态

    步进电机控制 设计思路 电路设计: 选用AT89C51单片机作为电路核心部件,外加LM016L液晶显示屏作为显示,显示步进电机的Fast,Slow,Stop的三个状态 将AT89C51单片机所选引脚与LM016L控制引脚相连,再将数据通过引脚与LCD接收引脚相连。 通过AT89C51单片机P0^0和P0^2两个引脚引出两个

    2024年01月20日
    浏览(40)
  • 单片机——C51实验含Proteus仿真(AD转换器(数字电压表),DA转换器(波形发生器))

    分为两部分:AD转换器实现数字电压表,DA转换器实现波形发生器(在仿真部分详细说明) 所用到的原理图:  AD转换器实现数字电压表部分         需要打开main函数中LCD_init(),ADC(),display()三个注释其中电压的输出显示用到了LCD1602关于这部分详情见(96条消息) 单片机——

    2024年02月08日
    浏览(41)
  • 【51单片机系列】proteus仿真单片机的串口通信

    本文参考:https://zhuanlan.zhihu.com/p/425809292。 在proteus之外使用串口软件和单片机通信。通过在proteus设计一个单片机接收PC发送的数据,并将接收的数据发送出去,利用软件【Configure Virtual Serial Port Driver】创建一对虚拟串口,利用软件【串口助手】向单片机发送数据。 proteus仿真

    2024年01月17日
    浏览(39)
  • 【PROTEUS-51单片机串口通信仿真】

    本次实验对51单片机的串口进行了双机通信的仿真,实现了51单片机的简单双机通信;现对本次仿真的结构及实现的功能做简要的介绍, 本次仿真主要构成:主机U1-MASTER、从机U2-SLAVE、以及LED显示部分(第一部分显示主机接收到的信息、第二部分显示从机接收到的信号); 实

    2024年01月15日
    浏览(57)
  • 【Proteus仿真】【51单片机】贪吃蛇游戏

    本项目使用Proteus8仿真51单片机控制器,使用8*8LED点阵、按键模块等。 主要功能: 系统运行后,可操作4个按键控制小蛇方向。 B站演示视频:https://space.bilibili.com/444388619 视频地址:https://space.bilibili.com/444388619/video 专注于51单片机、STM32、国产32、DSP、Proteus、arduino、ESP32、物联

    2024年02月06日
    浏览(32)
  • 【Proteus仿真】【51单片机】智能婴儿车

    本项目使用Proteus8仿真51单片机控制器,使用LCD1604显示模块、按键模块、LED和蜂鸣器、DHT11温湿度、DS18B20温度传感器、SR04超声波,声音传感器、L298N直流电机、语音蓝牙控制等。 主要功能: 系统运行后,LCD1604显示DHT11检测环境湿度值、DS18B20检测体温、HC-SR04超声波检测距离、

    2024年02月08日
    浏览(35)
  • 【Proteus仿真】【51单片机】智能温控风扇设计

    本项目使用Proteus8仿真51单片机控制器,使用LCD1602液晶、按键、蜂鸣器、L298N电机驱动模块、直流电机、DS18B20温度传感器等。 系统运行后,LCD1602显示传感器检测的温度值; 默认以自动模式运行,若按下K4键切换为手动模式,此时可以 通过K1和K2控制风扇加减速,风扇档位共

    2024年02月16日
    浏览(42)
  • 【Proteus仿真】【51单片机】水箱液位监控系统

    本项目使用Proteus8仿真51单片机控制器,使用LCD1602液晶、按键、蜂鸣器、液位传感器、PCF8591 ADC转换器、水泵等。 主要功能: 系统运行后,LCD1602显示当前水位、上下限阈值和工作模式,系统默认处于自动模式。若检测水位高于上限,声光报警,开启抽水。若检测水位低于下限

    2024年02月07日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包