单片机与ADC数模转换应用,大家有时间帮我看看!
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/07 21:35:03
单片机与ADC数模转换应用,大家有时间帮我看看!
ADC0809的时钟是外接一个,运行之后通过改变阻值数码管的数字确实改变,但是不是按照从小到大或者是从大到小的顺序来的,而是没有规律的变化(一会大一会小).
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
sbit c0=P2^0;
sbit c1=P2^1;
sbit c2=P2^2;
sbit st=P3^0;
sbit oe=P3^1;
sbit eoc=P3^2;
uchar gdata;
void delay()
{
\x09uchar i,j;
\x09for(i=0;i<100;i++)
\x09for(j=0;j<10;j++);
}
void main()
{
\x09while(1){
\x09st=0;
\x09delay();
\x09st=1;
\x09delay();
\x09st=0;
\x09while(eoc==0);
\x09oe=1;
\x09gdata=P0;
\x09oe=0;
\x09c2=0;
\x09P1=tab[gdata/100];
\x09delay();
\x09c2=1;
\x09c1=0;
\x09P1=tab[gdata/10%10];
\x09delay();
\x09c1=1;
\x09c0=0;
\x09P1=tab[gdata%10];
\x09delay();
\x09c0=1;
\x09}
}
ADC0809的时钟是外接一个,运行之后通过改变阻值数码管的数字确实改变,但是不是按照从小到大或者是从大到小的顺序来的,而是没有规律的变化(一会大一会小).
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
sbit c0=P2^0;
sbit c1=P2^1;
sbit c2=P2^2;
sbit st=P3^0;
sbit oe=P3^1;
sbit eoc=P3^2;
uchar gdata;
void delay()
{
\x09uchar i,j;
\x09for(i=0;i<100;i++)
\x09for(j=0;j<10;j++);
}
void main()
{
\x09while(1){
\x09st=0;
\x09delay();
\x09st=1;
\x09delay();
\x09st=0;
\x09while(eoc==0);
\x09oe=1;
\x09gdata=P0;
\x09oe=0;
\x09c2=0;
\x09P1=tab[gdata/100];
\x09delay();
\x09c2=1;
\x09c1=0;
\x09P1=tab[gdata/10%10];
\x09delay();
\x09c1=1;
\x09c0=0;
\x09P1=tab[gdata%10];
\x09delay();
\x09c0=1;
\x09}
}
adc0808的输出管脚是反的,即OUT1是最高位,接P0.7,OUT8是最低位接P0.0
再问: 阁下真是高手!真心谢谢你……
再问: 阁下真是高手!真心谢谢你……