標(biāo)題:
ADC0808采集電壓的proteus仿真和代碼
[打印本頁]
作者:
daxionghhh
時間:
2018-1-21 09:25
標(biāo)題:
ADC0808采集電壓的proteus仿真和代碼
內(nèi)部有程序和仿真圖,適合新手學(xué)習(xí)
ADC0808采集電壓仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
(21.88 KB, 下載次數(shù): 47)
下載附件
2018-1-21 16:43 上傳
0.png
(49.17 KB, 下載次數(shù): 63)
下載附件
2018-1-21 16:43 上傳
單片機(jī)源程序如下:
#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黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
ADC0808電壓采集.zip
(39.12 KB, 下載次數(shù): 101)
2018-1-21 09:25 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
qjzyx
時間:
2018-1-21 21:13
謝謝分享
作者:
hygo
時間:
2018-5-25 19:51
學(xué)習(xí)一哈
作者:
a969934097
時間:
2019-6-25 10:26
感謝分享!
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1