标题:
ADC0808采集电压的proteus仿真和代码
[打印本页]
作者:
daxionghhh
时间:
2018-1-21 09:25
标题:
ADC0808采集电压的proteus仿真和代码
内部有程序和仿真图,适合新手学习
ADC0808采集电压仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
(21.88 KB, 下载次数: 47)
下载附件
2018-1-21 16:43 上传
0.png
(49.17 KB, 下载次数: 63)
下载附件
2018-1-21 16:43 上传
单片机源程序如下:
#include<reg51.h>
#include<intrins.h>
#include<stdio.h>
#define uint unsigned int
#define uchar unsigned char
sbit CLK=P2^0;
sbit ST=P2^1;
sbit EOC=P2^2;
sbit OE=P2^3;
sbit ADDA=P2^5;
sbit ADDB=P2^6;
sbit ADDC=P2^7;
sbit X1=P3^4;
sbit X2=P3^5;
sbit X3=P3^6;
sbit P07=P0^7;
sbit LED=P3^7;
uint temp;
uchar getdata;
uchar b;
uchar s;
uchar g;
uchar code table[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
void delayus(uchar us){
uchar i;
while(us--)
for(i=0;i<120;i++)
;
}
void init(){
TMOD=0x21;
TH0=(65536-200)/256;
TL0=(65536-200)%256;
TH1=0XFD;
TL1=0XFD;
PCON=0X00;
SCON=0X50;
ES=1;
ET0=1;
EA=1;
TR1=1;
TR0=1;
}
void timer0()interrupt 1
{ TH0=(65535-200)/256;
TL0=(65535-200)%256;
CLK=~CLK;
}
void disp(){
X1=1;
X2=0;
X3=0;
P0=table[b];
P07=0;
X1=1;
X2=0;
X3=0;
delayus(5);
P0=0XFF;
P0=table[s];
X1=0;
X2=1;
X3=0;
delayus(5);
P0=0XFF;
P0=table[g];
X1=0;
X2=0;
X3=1;
delayus(5);
P0=0XFF;
}
void adda(uchar z,uchar x,uchar c){
ADDA=z;
ADDB=x;
ADDC=c;
}
void send(uchar x){
EA=0;
SBUF=x;
while(TI==0);
TI=0;
EA=1;
}
void main(){
P1=0XFF;
init();
LED=0;
P2=0XFF;
adda(0,0,1);
while(1){
ST=0;
OE=0;
ST=1;
ST=0;
while(EOC==0);
OE=1;
getdata=P1;
send(getdata);
OE=0;
temp=getdata*1.0/255*500;
b=temp/100;
s=temp/10%10;
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
ADC0808电压采集.zip
(39.12 KB, 下载次数: 101)
2018-1-21 09:25 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
qjzyx
时间:
2018-1-21 21:13
谢谢分享
作者:
hygo
时间:
2018-5-25 19:51
学习一哈
作者:
a969934097
时间:
2019-6-25 10:26
感谢分享!!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1