ÓÃ8031µ¥Æ¬»úÉè¼Æ¼òµ¥Êý×Öµçѹ±íÒÔ¼°Ô­Àíͼ ÏÂÔØ±¾ÎÄ

AT89S51ºÍADC0809¹¹³ÉµÄÊý×Öµçѹ±íµç·ԭÀíͼ

ÀûÓõ¥Æ¬»úAT89S51ÓëADC0809Éè¼ÆÒ»¸öÊý×Öµçѹ±í£¬Äܹ»²âÁ¿0£­5VÖ®¼äµÄÖ±

Á÷µçѹֵ£¬ËÄλÊýÂëÏÔʾ£¬µ«ÒªÇóʹÓõÄÔªÆ÷¼þÊýÄ¿×îÉÙ¡£

3£® ϵͳ°åÉÏÓ²¼þÁ¬Ïß

a) °Ñ¡°µ¥Æ¬»úϵͳ¡±ÇøÓòÖеÄP1.0£­P1.7Óë¡°¶¯Ì¬ÊýÂëÏÔʾ¡±ÇøÓòÖеÄABCDEFGH¶Ë

¿ÚÓÃ8оÅÅÏßÁ¬½Ó¡£ b) °Ñ¡°µ¥Æ¬»úϵͳ¡±ÇøÓòÖеÄP2.0£­P2.7Óë¡°¶¯Ì¬ÊýÂëÏÔʾ¡±ÇøÓòÖеÄ

S1S2S3S4S5S6S7S8¶Ë¿ÚÓÃ8оÅÅÏßÁ¬½Ó¡£

c) °Ñ¡°µ¥Æ¬»úϵͳ¡±ÇøÓòÖеÄP3.0Óë¡°Ä£Êýת»»Ä£¿é¡±ÇøÓòÖеÄST¶Ë×ÓÓõ¼ÏßÏàÁ¬

½Ó¡£ d) °Ñ¡°µ¥Æ¬»úϵͳ¡±ÇøÓòÖеÄP3.1Óë¡°Ä£Êýת»»Ä£¿é¡±ÇøÓòÖеÄOE¶Ë×ÓÓõ¼ÏßÏàÁ¬

½Ó¡£

e) °Ñ¡°µ¥Æ¬»úϵͳ¡±ÇøÓòÖеÄP3.2Óë¡°Ä£Êýת»»Ä£¿é¡±ÇøÓòÖеÄEOC¶Ë×ÓÓõ¼ÏßÏà

Á¬½Ó¡£ f) °Ñ¡°µ¥Æ¬»úϵͳ¡±ÇøÓòÖеÄP3.3Óë¡°Ä£Êýת»»Ä£¿é¡±ÇøÓòÖеÄCLK¶Ë×ÓÓõ¼ÏßÏà

Á¬½Ó¡£ g) °Ñ¡°Ä£Êýת»»Ä£¿é¡±ÇøÓòÖеÄA2A1A0¶Ë×ÓÓõ¼ÏßÁ¬½Óµ½¡°µçÔ´Ä£¿é¡±ÇøÓòÖеÄGND

¶Ë×ÓÉÏ¡£ h) °Ñ¡°Ä£Êýת»»Ä£¿é¡±ÇøÓòÖеÄIN0¶Ë×ÓÓõ¼ÏßÁ¬½Óµ½¡°Èý·¿Éµ÷µçѹģ¿é¡±ÇøÓòÖÐ

µÄVR1¶Ë×ÓÉÏ¡£ i) °Ñ¡°µ¥Æ¬»úϵͳ¡±ÇøÓòÖеÄP0.0£­P0.7ÓÃ8оÅÅÏßÁ¬½Óµ½¡°Ä£Êýת»»Ä£¿é¡±ÇøÓò

ÖеÄD0D1D2D3D4D5D6D7¶Ë×ÓÉÏ¡£ 4£® ³ÌÐòÉè¼ÆÄÚÈÝ

i. ÓÉÓÚADC0809ÔÚ½øÐÐA/Dת»»Ê±ÐèÒªÓÐCLKÐźţ¬¶ø´ËʱµÄADC0809µÄCLKÊǽÓÔÚ

AT89S51µ¥Æ¬»úµÄP3.3¶Ë¿ÚÉÏ£¬Ò²¾ÍÊÇÒªÇó´ÓP3.3Êä³öCLKÐźŹ©ADC0809ʹÓá£Òò´Ë²úÉúCLKÐźŵķ½·¨¾ÍµÃÓÃÈí¼þÀ´²úÉúÁË¡£ ii. ÓÉÓÚADC0809µÄ²Î¿¼µçѹVREF£½VCC£¬ËùÒÔת»»Ö®ºóµÄÊý¾ÝÒª¾­¹ýÊý¾Ý´¦Àí£¬ÔÚÊýÂë¹Ü

ÉÏÏÔʾ³öµçѹֵ¡£Êµ¼ÊÏÔʾµÄµçѹֵ (D/256*VREF) 5£® »ã±àÔ´³ÌÐò £¨ÂÔ£©

6£® CÓïÑÔÔ´³ÌÐò

#include

unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f};

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00};

unsigned char dispbuf[8]={10,10,10,10,0,0,0,0}; unsigned char dispcount; unsigned char getdata; unsigned int temp; unsigned char i;

sbit ST=P3^0; sbit OE=P3^1; sbit EOC=P3^2; sbit CLK=P3^3;

void main(void) { ST=0; OE=0; ET0=1; ET1=1; EA=1;

TMOD=0x12; TH0=216; TL0=216;

TH1=(65536-4000)/256; TL1=(65536-4000)%6; TR1=1; TR0=1; ST=1; ST=0; while(1) {

if(EOC==1) { OE=1;

getdata=P0; OE=0;

temp=getdata*235; temp=temp/128; i=5;

dispbuf[0]=10; dispbuf[1]=10; dispbuf[2]=10; dispbuf[3]=10; dispbuf[4]=10; dispbuf[5]=0; dispbuf[6]=0; dispbuf[7]=0; while(temp/10) {

dispbuf[i]=temp; temp=temp/10; i++; }

dispbuf[i]=temp; ST=1; ST=0; }