访问手机版页面
你的位置:老古开发网 > 51单片机与ADC > 正文  
51单片机(AT89C52)A/D转换
内容导读:
#include#define uchar unsigned char#define uint unsigned int#define PORT P3#define dula_h P2|=0x40#define dula_l P2&=0xbf#define wela_h P2|=0x80#define wela_l P2&=0x7fsbit cs=P2^0;sbit rd=P2^1;sbit wr

#include

#define uchar unsigned char

#define uint unsigned int

#define PORT P3

#define dula_h P2|=0x40

#define dula_l P2&=0xbf

#define wela_h P2|=0x80

#define wela_l P2&=0x7f

sbit cs=P2^0;

sbit rd=P2^1;

sbit wr=P2^2;

uchar read;

uchar table[]={ //共阳数码管

0xc0,0xf9,0xa4,0xb0,

0x99,0x92,0x82,0xf8,

0x80,0x90,0x88,0x83,

0xc6,0xa1,0x86,0x8e};

void delayms(uint x)

{

uint y,z;

for(y=x;y>0;y--)

for(z=110;z>0;z--);

}

void show()

{

dula_l;

wela_l;

PORT=0x80;

wela_h;

wela_l;

PORT=table[read%10];

dula_h;

dula_l;

delayms(1);

PORT=0x40;

wela_h;

wela_l;

PORT=table[read%100/10];

dula_h;

dula_l;

delayms(1);

PORT=0x20;

wela_h;

wela_l;

PORT=table[read/100];

dula_h;

dula_l;

delayms(1);

PORT=0x10;

wela_h;

wela_l;

PORT=table[0];

dula_h;

dula_l;

delayms(1);

PORT=0x08;

wela_h;

wela_l;

PORT=table[0];

dula_h;

dula_l;

delayms(1);

PORT=0x04;

wela_h;

wela_l;

PORT=table[0];

dula_h;

dula_l;

delayms(1);

PORT=0x02;

wela_h;

wela_l;

PORT=table[0];

dula_h;

dula_l;

delayms(1);

PORT=0x01;

wela_h;

wela_l;

PORT=table[0];

dula_h;

dula_l;

delayms(1);

}

void main()

{

while(1)

{

cs=1;//A/D转换时序

wr=1;

cs=0;

wr=0;

wr=1;

cs=1;

delayms(1);

cs=1;//转换结果输出时序

rd=1;

cs=0;

rd=0;

read=P0;

delayms(1);

rd=1;

cs=1;

show();//数码管显示函数

delayms(10);

}

}

 

标签: 51单片机,ad转换,at89c52,
来源:21ic 作者:wuq 时间:2019/5/28 20:05:11
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐