资源简介
使用51单片机结合ADC0808模数转换器采集多路模拟电压,并通过数码管显示,包含仿真
代码片段和文件信息
#include
#include
#include
#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]={0xC00xF90xA40xB00x990x920x820xF80x800x90};
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 zuchar xuchar 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(001);
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;
g=temp%10;
disp();
}
}
void ser()interrupt 4
{
if(RI==1){
RI=0;
if(SBUF==‘A‘){
LED=~LED;
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-07-12 15:09 AD2\
文件 144199 2013-07-10 21:55 AD2\ADC08082.DSN
文件 3427 2013-07-09 19:28 AD2\lesson
文件 1548 2013-07-09 15:53 AD2\lesson.c
文件 3085 2013-07-09 19:28 AD2\lesson.hex
文件 29 2013-07-09 19:28 AD2\lesson.lnp
文件 4206 2013-07-09 19:28 AD2\lesson.LST
文件 11341 2013-07-09 19:28 AD2\lesson.M51
文件 3259 2013-07-09 19:28 AD2\lesson.OBJ
文件 1044 2013-07-09 22:00 AD2\lesson.Opt
文件 1779 2013-07-09 22:00 AD2\lesson.plg
文件 1668 2013-07-09 15:53 AD2\lesson.Uv2
文件 1043 2013-07-09 15:53 AD2\lesson_Opt.Bak
文件 1668 2013-07-09 15:40 AD2\lesson_Uv2.Bak
- 上一篇:5秒内破解wordexcel密码
- 下一篇:基于51单片机的NRF24L01双向通信
评论
共有 条评论