标题:
单片机PCF8591 AD转换仿真实验(附源程序)
[打印本页]
作者:
12345555900000
时间:
2018-12-24 17:03
标题:
单片机PCF8591 AD转换仿真实验(附源程序)
编程实现:将PCF8591的AIN0引脚输入的0~5V模拟电压(由电位器产生)进行A/D转换,并将转换结果输出到P0口(P0口接8个LED),要求P0口的8个灯能实时反映出输入的模拟电压
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
QQ图片20181224170209.png
(15.67 KB, 下载次数: 84)
下载附件
2018-12-24 17:02 上传
单片机源码:
#include<reg52.h>
#include<intrins.h>
sbit SCL=P2^1;
sbit SDA=P2^0;
void start()
{ SDA=1;
SCL=1;
_nop_();
_nop_();
SDA=0;
_nop_();
_nop_();
SCL=0;}
void stop()
{ SDA=0;
SCL=0;
_nop_();
_nop_();
SCL=1;
_nop_();
_nop_();
SDA=1;}
void rack()
{ SCL=1;
_nop_();
_nop_();
SCL=0;}
void nack()
{ SDA=1;
SCL=1;
_nop_();
_nop_();
SCL=0;
SDA=1;}
void wbyte(unsigned char tmp)
{ unsigned char i;
for(i=0;i<8;i++)
{ tmp<<=1;
SDA=CY;
SCL=1;
_nop_();
_nop_();
SCL=0;}
rack();}
unsigned char rbyte()
{ unsigned char i,d;
for(i=0;i<8;i++)
{ SCL=1;
d<<=1;
d=d|SDA;
SCL=0;}
return d;}
unsigned char rdata()
{ unsigned char d;
start();
wbyte(0x90);
wbyte(0);
start();
wbyte(0x91);
d=rbyte();
nack();
stop();
return d;}
void main()
{ while(1)
P0=rdata();}
复制代码
全部资料51hei下载地址:
AD转换源程序(PCF8591).zip
(62.31 KB, 下载次数: 192)
2018-12-24 17:03 上传
点击文件名下载附件
下载积分: 黑币 -5
AD转换.zip
(18.72 KB, 下载次数: 122)
2018-12-24 17:02 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
linnyshow
时间:
2020-2-26 13:01
挺详细的。好资料,51黑有你更精彩!!!
作者:
raxx
时间:
2020-5-18 00:01
麻烦问一下,dsn仿真文件只能用Proteus7.5才能打开吧?
作者:
changchangchang
时间:
2020-5-18 01:15
新手路过,看起来好厉害的样子
作者:
liuzhiyuan
时间:
2021-4-16 16:07
这个不错的 好用
作者:
jammy98
时间:
2021-5-9 15:20
挺详细的。好资料,51黑有你更精彩!!!
作者:
zhouwei0815
时间:
2021-6-12 22:08
比较简单直观 方便学习
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1