¼ÆËã»ú¿ØÖÆ ÁªÏµ¿Í·þ

·¢²¼Ê±¼ä : ÐÇÆÚÈÕ ÎÄÕ¼ÆËã»ú¿ØÖƸüÐÂÍê±Ï¿ªÊ¼ÔĶÁ

0 0 0 //²éѯ·½Ê½ #include sbit P1_0=P1^0; sbit P1_1=P1^1;

void delay(void) /*ÑÓʱ*/ {

unsigned char i; for (i=50;i>0;i--); }

void mian() {

unsigned char i; while(P1_1==1); P1_0=1; delay(); P1_0=0; SCON=0x10; while(!RI); RI=0; i=SBUF; }

¿ª¹ØS½Óµ½INT1 //ÖжϷ½Ê½

#include sbit P1_0=P1^0;

void delay(void) /*ÑÓʱ*/ {

unsigned char i; for (i=50;i>0;i--); }

void EXT0_INIT(void) {

EA=1; EX0=1; IT0=1; }

void int(void)interrupt0 {

unsigned char i;

1 0 0 0 0 P1_0=1; delay(); P1_0=0; SCON=0x10; while(!RI); RI=0; i=SBUF; }

void mian(void) {

EXT0_INIT(); while(1); }

µÚÈýÕÂ×÷Òµ

3.1 ºâÁ¿D/Aת»»Æ÷ºÃ»µµÄÖ÷ÒªÐÔÄÜÖ¸±êÓÐÄļ¸Ï ´ð£º·Ö±æÂÊ¡¢×ª»»¾«¶È¡¢½¨Á¢Ê±¼äºÍ·ÇÏßÐÔÎó²î¡£

3.2 ÒÑÖª8λDAת»»Æ÷²Î¿¼µçѹVREFΪ-5V£¬µ±ÊäÈëÊý¾ÝΪ80Hʱ£¬ÀíÂÛÉÏÊä³öµçѹΪ¶àÉÙ£¿

´ð£ºÀûÓÃÏÂÃ湫ʽ¼ÆË㣺

BVout??VREF

256B=128 (80Hת»»ÎªÊ®½øÖÆ)£¬VREF=-5V£¬¼ÆËãµÃµ½Vout=2.5 V¡£

3.3 8λD/Aת»»Æ÷DAC0832ÖеÄ8λÊäÈë¼Ä´æÆ÷ºÍ8λDAC¼Ä´æÆ÷¸÷ÓÐʲô¹¦ÄÜ£¿ÎªÊ²Ã´ÐèÒªÁ½¸ö¼Ä´æÆ÷£¿

´ð£ºÁ½¸ö¼Ä´æÆ÷ÅäºÏʵÏÖÈçϹ¤×÷·½Ê½£ºÖ±Í¨¡¢µ¥»º³åºÍË«»º³å¡£Ê¹ÓÃÁ½¸ö¼Ä´æÆ÷¿ÉÒÔʵÏÖÁ½´Î»º³å²Ù×÷£¬´Ó¶ø¿ÉÒÔ¼ò»¯Ä³Ð©Ó¦ÓÃϵͳÖеÄÓ²¼þ½Ó¿Úµç·Éè¼Æ¡£Í¬Ê±£¬ÀûÓÃÁ½¼¶»º´æ£¬Ìá¸ßÁËת»»ËÙÂÊ¡£

3.4 ijA/Dת»»µç·ÈçͼËùʾ¡£ (1) д³ö8255µÄËĸö¶Ë¿ÚµÄµØÖ·£»

(2) ¸Ãµç·²ÉÓÃʲô¿ØÖÆ·½Ê½£¿»­³ö¸ÃÖÖת»»µÄ³ÌÐò¿òͼ£» (3) ÓÃC51±àдÍê³ÉÉÏÊöת»»µÄ³ÌÐò¡£

P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.01&G1G2AY6G2BABC8255CSPB7-PB0ADC0809D7-D0IN0V1PC7A1A0PC3STARTALEEOCABCP0.7-P0.0D7-D0 ´ð£º

(1) AD0809ͨ¹ý8255Ó뵥Ƭ»úÁ¬½Ó£¬Òò´Ë£¬8255µÄËĸö¶Ë¿ÚµØַΪ£º0x78ff-0x7bff£» (2) ²ÉÓòéѯʽ¿ØÖÆ·½·¨£¬ÏàÓ¦µÃ³ÌÐòÁ÷³ÌͼÈçÏ£º

¿ªÊ¼ÉèÖÃ8255¹¤×÷ģʽADC0809¹¤×÷EOC=1?YN

´Ó8255¶ÁÊý¾Ý½áÊø

(3).

#include #include

#define uchar unsigned char

#define COM8255 XBYTE[0x7bff] //ÃüÁî¿ÚµØÖ· #define PB8255 XBYTE[0x79ff] //B¿ÚµØÖ· #define PC8255 XBYTE[0x7aff] // C¿ÚµØÖ·

void main(void) {

uchar j;

COM8255=0x83;//PC¸ßλÖÃÊä³ö£¬µÍλÖÃÊäÈ룻B¿ÚÊäÈë _nop_();

COM8255=0x0e; //Æô¶¯ADת»» COM8255=0x0f; _nop_();

COM8255=0x0e;

while(( 0x08 & PC8255)==0); // ÅжÏA/Dת»»½áÊø j=PB8255; while(1) }

3.5 ÈçÏÂͼËùʾ£¬ÊÔÓÃÖжϷ½Ê½±àдC51³ÌÐò£¬¶ÔIN3ͨµÀÉϵÄÄ£ÄâµçѹÊý¾ÝÁ¬Ðø½øÐÐ8´Î²É¼¯£¬Çóƽ¾ùÖµºó½«×ª»»½á¹ûËÍÈëÄÚ²¿RAM 20Hµ¥ÔªµÄÊý¾Ý»º³åÇøÖС£ ´ð£º

D ALE G 74LS 373 OE Q ADC0809 CLK IN0 IN1 IN2 ADDA ADDB ADDC D0¡«D7 IN3 IN4 IN5 IN6 IN7 CP Q A0 A1 A2 P0 MCS-51 µ¥ Ƭ »ú WR P2.7 RD INT0 ¡Ý1 ¡Ý1 START ALE OE EOC 51µ¥Æ¬»úÓëADC0809µÄ½Ó¿Ú

#include #include

#define uchar unsigned char uchar xdata *adch; uchar data *addata; uchar i; uchar sum; uchar ave;

void ADint0 (void) interrupt 0 {

uchar j; j=*adch; sum=sum+j; i++; if(i==0x08)