(ÍêÕû°æ)µ¥Æ¬»úÔ­Àí¼°Ó¦Ó᪡ª»ùÓÚProteusºÍKeil_CÁÖÁ¢_ÕÅ¿¡ÁÁ°æ¿ÎºóϰÌâ´ð°¸Ò»ÖÁÆßÕ ÏÂÔØ±¾ÎÄ

SM2£º¶à»úͨÐÅ¿ØÖÆÎ»

REN£º´®ÐпڽÓÊÕʹÄÜ¿ØÖƶˣ»REN=1ʱ£¬ÔÊÐí½ÓÊÕ£¬REN=0ʱ£¬½ûÖ¹½ÓÊÕ TB8£º·¢ËͽÓÊÕÊý¾Ýλ8 RB8£º½ÓÊÕÊý¾Ýλ8

TI£º·¢ËÍÖжϱê־λ£»TI=1±íʾ֡·¢ËͽáÊø£¬TI¿ÉÓÉÈí¼þÖÃ0 RI£º½ÓÊÕÖжϱê־λ£»RI=1±íʾ֡½ÓÊÕÍê³É£¬RI¿ÉÓÉÈí¼þÖÃ0

7.4. ÔÚ·½Ê½1ºÍ·½Ê½3µÄͨÐÅģʽÏ£¬²¨ÌØÂÊͨ¹ýÄǸö¶¨Ê±Æ÷Çý¶¯²úÉú£¿²ÉÓúÎÖÖ¶¨Ê±·½Ê½£¿Èç¹ûÒªÇó²ÉÓþ§ÕñΪ11.0592MHz£¬²úÉúµÄ´«ËͲ¨ÌØÂÊΪ2400b/s£¬Ó¦¸ÃÔõÑù¶Ô¶¨Ê±Æ÷³õʼ»¯²Ù×÷£¿

´ð£ºÓɶ¨Ê±Æ÷1Çý¶¯²úÉú£¬²ÉÓö¨Ê±Æ÷1µÄ¹¤×÷·½Ê½2£¬×Ô¶¯´Ó×°³õÖµ µ±¾§ÕñΪ11.0592MHz£¬²¨ÌØÂÊΪ2400b/s,Óɲ¨ÌØÂʹ«Ê½£º ²¨ÌØÂÊ=

(2SMOD/32)?fOSC/(12?(256?a))

a?256?11.0592?106/(384?2400)

¿ÉÇóµÃ³õÖµaΪF4H ³õʼ»¯²Ù×÷£º TMOD=0x20; TL1=0xF4; TH1=0xF4; PCON=0x00; SCON=0x00; TR1=1;

8.3 ÔÚÓɵ¥Æ¬»ú80C51ºÍһƬADC0809×é³ÉµÄÊý¾Ý²É¼¯ÏµÍ³ÖУ¬¼ÙÉèADC0809µÄµØÖ·Îª0x7ff8~0x7fff£¬»­³ö½Ó¿Úµç·ͼ£¬²¢±àдÿ¸ô1msÂÖÁ÷²É¼¯Ò»´Î8¸öͨµÀÊý¾ÝµÄ³ÌÐò¡£²ÉÑù100´Îȡƽ¾ùÖµ¡£ ´ð£ºµç·ͼÊéÉÏʵÀýÓУ¬×öÁËÈçÏ¸Ķ¯

1.¿ØÖƶËADDA£¬ADDB£¬ADDC·Ö±ð½ÓP2^0£¬P2^!,P2^2.

2.ɾȥÁËÒëÂëÆ÷ÓëÂß¼­Æ÷¼þÆ÷¼þ£¬74LS373,74HC14,74HC02£¬ 3.Öжϼì²â¶ËEOC½ÓP3^2¡£

²Î¿¼³ÌÐòÈçÏ£¬×Ô¼ºÐ´µÄû¾­¹ý·ÂÕæ£¬ #include #include

#define uchar unsigned char//ºê¶¨Òå #define uint unsigned int

#define AD_0 XBYTE[0xff8]//¶¨ÒåͨµÀ·ÃÎʵØÖ· #define AD_1 XBYTE[0xff9] #define AD_2 XBYTE[0xffa] #define AD_3 XBYTE[0xffb] #define AD_4 XBYTE[0xffc] #define AD_5 XBYTE[0xffd]

29

#define AD_6 XBYTE[0xffe] #define AD_7 XBYTE[0xfff]

sbit busy=P3^2;//¶¨ÒåÖжÏÇëÇó¶Ë uchar count=0;//¶¨Òå²ÉÑù´ÎÊý

uchar datcode[100]={0};//¶¨ÒåÊý¾Ý´æ·ÅÊý×é int dat=0,dat1=0;//¶¨ÒåÁÙʱÊý¾ÝÓë×îÖÕÆ½¾ùÊý¾Ý uchar i,j,num;//¶¨Òå±äÁ¿ void main() {

TMOD=0x01;//¶¨Ê±Æ÷0 ¹¤×÷·½Ê½1

TL0=(65536-1000)/256;//1msÖжÏÒ»´Î TH0=(65536-1000)%6;

EA=1;//¿ª×ÜÖжϣ¬¶¨Ê±Æ÷Öжϣ¬´ò¿ª¶¨Ê±Æ÷0 ET0=1; TR0=1;

while(count<100)//100´ÎÊý¾ÝÇóºÍº¯Êý {

dat1=dat1+datcode[i]; count++; }

dat=dat1/100; if(count>=100) count=0; }

void timer0() interrupt 1//ÖжϺ¯Êý {

TMOD=0x01;

TL0=(65536-1000)/256; TH0=(65536-1000)%6;

AD_0=0;//Æô¶¯0ͨµÀADת»» while(busy==1) {

num=AD_0+1;//°Ñ0ͨµÀÊý¾Ý¸½¸ønum£¬²¢Ö¸ÏòAD_1ͨµÀ²éѯ datcode[i+1]=num; j++;

if(j==7)//°Ë´Î²éѯÍê±ÏÍ˳öÑ­»· {

busy=0; j=0; } } }

30