基于89c51的八路ad转换系统-凯发旗舰

×
嵌入式 > 嵌入式开发 > 详情

基于89c51的八路ad转换系统

发布时间:2024-08-15 发布时间:
|

本文是基于89c51的八路ad转换系统设计

一)硬件部分:

二)程序部分:

#include

#include

#define uchar unsigned char

#define uint unsigned int

#define adc0809 xbyte[0x7fff]

uchar code seg7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

uchar code act[4]={0xfe,0xfd,0xfb,0xf7};

sbit p1_7=p1^7;

sbit p2_6=p2^6;

sbit p3_3=p3^3;

bit flag;

uchar m;

uint x[8];

void d200us(void);

void delay(uint k);

/******************************/

void main(void)

{

tmod=0x01;

th0=-(1000/256);

tl0=-(1000%6);

tr0=1;

ie=0x82;

while(1)

{

if(!p2_6){delay(30);if(!p2_6)flag=!flag;delay(300);}

adc0809=m;

while(!p3_3);

x[m]=adc0809;

m ;

if(m>7)m=0;

delay(50);

}

}

/************************************/

void delay(uint k)

{

uint i,j;

for(i=0;i for(j=0;j60;j )

{;}}

}

/***********************************/

void timer0(void) interrupt 1 using 1

{static uchar disbit,n;static uint cnt;

th0=-(1000/256);

tl0=-(1000%6);

switch(disbit)

{

case 0:{p1=seg7[n];if(flag)p1_7=1;else p1_7=0;}break;

case 1:{p1=seg7[(x[n]*49/25)/100];p1_7=1;}break;

case 2:{p1=seg7[(x[n]*49/25)0/10];}break;

case 3:{p1=seg7[(x[n]*49/25)0];}break;

default:break;

}

p2=act[disbit];

disbit ;cnt ;

if(disbit>3)disbit=0;

if(!flag)

{if(cnt>500){cnt=0;n ;}}

if(n>7)n=0;

}



『本文转载自网络,凯发旗舰的版权归原作者所有,如有侵权请联系删除』

热门文章 更多
74ls164功能及工作原理
网站地图