基于51单片机的风扇【自然风,手动,电位器,ADC0808】(仿真)

#include "ADC0832.h"
#include "intrins.h"
/*********************************************
读取ADC
**********************************************/
uchar ADC1(uchar ch)//通道ch	 1,2
{
	uchar temp0,temp1,i;
	CS1=0;
	temp0=0;
	temp1=0;
	_nop_();
	_nop_();
	DI=1;//开始位
	_nop_();
	_nop_();
	CLK=1;
	_nop_();
	_nop_();
	CLK=0;
	_nop_();
	_nop_();
	DI=0;
	_nop_();
	_nop_();
//选择通道0
	DI=1;
	_nop_();
	CLK=1;//上升沿DI=1
	_nop_();
	CLK=0;//1个下降沿DI=1
	_nop_();
	if(ch==1)
	DI=0;
	if(ch==2)
	DI=1;
	_nop_();
	CLK=1;
	_nop_();
	CLK=0;//第3个上升沿DI=0
	_nop_();
   	DI=1;
//********通道选择结束开始读取转换后的二进制数****
//下降沿读数,一下进行判断和处理,共8次
for(i=0;i<8;i++)
   {
	temp0=temp0<<1;
	CLK=1;
    if(DO)
   	temp0++;
   	_nop_();
   	CLK=0;
   }
for(i=0;i<8;i++)
   {
	temp1=temp1>>1;
	CLK=1;
    if(DO)
   	temp1=temp1 +0x80;
   	_nop_();
   	CLK=0;
   }
	 CS1=1;
   return temp0;
}
/*********************************************
读取ADC
**********************************************/
uchar ADC2(uchar ch)//通道ch	 1,2
{
	uchar temp0,temp1,i;
	CS2=0;
	temp0=0;
	temp1=0;
	_nop_();
	_nop_();
	DI=1;//开始位
	_nop_();
	_nop_();
	CLK=1;
	_nop_();
	_nop_();
	CLK=0;
	_nop_();
	_nop_();
	DI=0;
	_nop_();
	_nop_();
//选择通道0
	DI=1;
	_nop_();
	CLK=1;//上升沿DI=1
	_nop_();
	CLK=0;//1个下降沿DI=1
	_nop_();
	if(ch==1)
	DI=0;
	if(ch==2)
	DI=1;
	_nop_();
	CLK=1;
	_nop_();
	CLK=0;//第3个上升沿DI=0
	_nop_();
   	DI=1;
//********通道选择结束开始读取转换后的二进制数****
//下降沿读数,一下进行判断和处理,共8次
for(i=0;i<8;i++)
   {
	temp0=temp0<<1;
	CLK=1;
    if(DO)
   	temp0++;
   	_nop_();
   	CLK=0;
   }
for(i=0;i<8;i++)
   {
	temp1=temp1>>1;
	CLK=1;
    if(DO)
   	temp1=temp1 +0x80;
   	_nop_();
   	CLK=0;
   }
	 CS2=1;
   return temp0;
}

资料借鉴于此纷传

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ADC0808是一种8位模数转换器,可以将模拟信号转换为数字信号。在模拟信号转换为数字信号的过程中,我们可以使用51单片机进行ADC0808仿真。 首先,我们需要连接51单片机ADC080851单片机的P1端口的高四位(P1.7~P1.4)用作ADC0808的控制端口(A, B, C, START),低四位(P1.3~P1.0)用作ADC0808的数据端口(D0~D7)。ADC0808的引脚VCC和GND分别连接到电源正负极,AIN+和AIN-分别连接到模拟信号的输入端。 然后,我们需要编写51单片机的程序来模拟ADC0808的工作过程。程序的主要流程如下: 1. 设置51单片机的P1端口为输出端口,用于控制ADC0808的控制端口。 2. 设置51单片机的P1端口为输入端口,用于读取ADC0808的数据端口。 3. 初始化ADC0808,设置模拟输入信号的参考电压和转换时钟频率等参数。 4. 发送开始转换信号给ADC0808,启动模拟信号转换为数字信号的过程。 5. 等待ADC0808将转换结果存储到数据端口,然后通过51单片机的P1端口读取转换结果。 6. 将转换结果进行处理,可以将其显示在液晶显示屏上或通过串口发送到计算机等外部设备。 在程序中,可以根据需要设置不同的控制参数,如转换时钟频率、参考电压、模拟输入信号的范围等,以实现对模拟信号的准确转换。 总结起来,通过51单片机的程序控制和编程,我们可以对ADC0808进行仿真。这种仿真方法可以帮助我们了解ADC0808的工作原理,并在实际应用中进行验证和调试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白茶丫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值