·¢²¼Ê±¼ä : ÐÇÆÚÈÕ ÎÄÕ¼ÆËã»ú¿ØÖƸüÐÂÍê±Ï¿ªÊ¼ÔĶÁ
0 0 0 //²éѯ·½Ê½ #include
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
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
#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
#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)