AD0809转换及用数码管的显示 - 图文

更新时间:2024-04-27 23:33:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

本程序功能是利用AD0809实现模数转换及在数码管上显示;文中绿字部分是利用不同的方法实现某一项功能或任务,像AD的时钟既可以用定时器T0或T1产生,也可以利用T2特有的产生时钟脉冲的功能。学习过程中遇到很多困难,希望能和大家相互交流。有兴趣的可以加51单片机群:293469552

#include #include

#define uchar unsigned char #define uint unsigned int

uchar code duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

//uchar code wei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //uchar code td[]={0,1}; //uchar x[2]; sbit t1=P1^1; sbit t2=P1^2;

sbit t3=P1^3; sbit st=P3^0; sbit oe=P3^1; sbit eoc=P3^2; sbit a=P1^7; //sbit key5=P3^5; //sbit key6=P3^6; //sbit key7=P3^7; long value=0; uchar bai,shi,ge; void delay(uint tms) { }

void init_t2()//T2端口输出时钟脉冲设置 (用T2产生时钟脉冲) { }

/*void init_t0()//法1 用定时器产生时钟脉冲

//TR2=0x00; T2MOD=0x02; C_T2=0;

TL2=0xfa;//单片机11.0592Mhz条件下实测为460khz左右 TH2=0xff; RCAP2L=0xfa; RCAP2H=0xff; TR2=1; uint i,j;

for(i=tms;i>0;i--)

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

{ }

void t0() interrupt 1 { }*/

/*void init_t0()//T0计数器模式的设置,不是中断 { }

void num_read() { {

th0=TH0; while(1) //EA=1; //ET0=1; TMOD=0x05; TH0=0; TL0=0; TR0=1;

TH0=(65536-20)/256;//单片机11.0592Mhz时产生的频率实测为15khz左右 TL0=(65536-20)%6; clock=~clock; TMOD=0x01; TH0=(65536-20)/256; TL0=(65536-20)%6; EA=1; ET0=1; TR0=1;

} }*/

tl0=TL0; th=TH0; if(th==th0)

break;

void init_AD() { /*uint i; for(i=0;i<2;i++) { st=0; } }

void keyscan() {

a=td[i]; oe=0; _nop_();

st=1;

_nop_(); st=0;

oe=1;

x[i]=P2; _nop_(); oe=0;

if(key6==0) { delay(10); if(key6==0) { value=x[0];

}

if(key7==0) { }*/

a=1; st=0; _nop_();

_nop_(); st=0;

while(eoc==0);

value=P2;

while(!key6);

}

delay(10); if(key7==0) { value=x[1]; while(!key7);

}

st=1;

oe=1;

}

_nop_(); oe=0;

void display() { }

void main() { //

key5=0; init_t2();

value=value*100*4.8/255; bai=value/100; shi=value/10; ge=value; t1=0; t2=1; t3=1;

P0=~duan[bai]; delay(2); t1=1; t2=0; t3=1;

P0=~duan[shi]; delay(2); t1=1; t2=1; t3=0;

P0=~duan[ge]; delay(2);

// }

init_t0(); while(1) { init_AD(); //keyscan(); display();

}

本文来源:https://www.bwwdw.com/article/8ucg.html

Top