º¼Öݵç×ӿƼ¼´óѧ±¾¿Æ±ÏÒµÉè¼Æ
ͼ4-9 2051ÐźÅÒý½Åͼ
4.5 µçƽת»»
ÔÚ²»Í¬µÄÊý×ÖϵͳÖУ¬Æäµçƽ±ê×¼ÊDz»Í¬µÄ¡£¸ÃϵͳÖоͰüÀ¨ÁËTTLµçƽ±ê×¼ºÍRS-232µçƽ±ê×¼£¬ÒªÊµÏÖÁ½¸ö±ê×¼µÄÕý³£Í¨ÐÅ£¬±ØÐë½øÐÐµçÆ½×ª»»¡£¸Ãϵͳ²ÉÓÃʹÓüòµ¥µÄMAX232CPEоƬ¡£
һƬMAX232CPEоƬ¿ÉÍê³É2·TTL/CMOS ¡« RS-232µÄµçƽת»»ºÍ2·RS-232 ¡« TTL/CMOSµÄµçƽת»»¡£Êµ¼Êµç·ÖÐÖ»ÓÐһ·µ¥Æ¬»úµÄTXD´®¿ÚÊä³ö£¬²»½øÐÐRXD´®¿ÚÊäÈë¡£Òò´Ë£¬Ñ¡ÓÃÒý½Å11½Ó2051 TXD´®¿ÚÊä³ö£»¶ø¶ÔÓ¦µÄ14½ÅÔò½Óµ½¼ÆËã»úµÄ´®¿ÚÊäÈë¶Ë¡£
ͼ4-10 MAX232CPEоƬÄÚ²¿½á¹¹
º¼Öݵç×ӿƼ¼´óѧ±¾¿Æ±ÏÒµÉè¼Æ
5 Èí¼þÉè¼Æ
5.1 ×ÜÌå·½°¸
¸ÃϵͳµÄÐźżì²âÓëÊý¾Ý´«ËͲ¿·Ö£¬Éæ¼°µÄÈí¼þ²¿·Ö½ÏÉÙ¡£Ö÷ÒªÊÇ2051µ¥Æ¬»úÊý¾Ý´®ÐÐͨÐż°Í¨ÐÅÐÒéµÄ³ÌÐòÉè¼Æ¡£
¶ÔÓÚ2051µÄ³ÌÐòÉè¼Æ[12]£¬ÓÉÓÚËùÐèʵÏֵŦÄܽϼòµ¥£¬²ÉÓûã±àµÄÐÎʽ¡£±àÒëÆ÷²ÉÓÃKeil 7.02b¡£¸Ã±àÒëÆ÷ÊÇ51ϵÁе¥Æ¬»ú³ÌÐòÉè¼ÆµÄ³£Óù¤¾ß£¬¼È¿ÉÓûã±à£¬Ò²Ö§³ÖCÓïÑÔ±àÒ롣ͬʱ¾ßÓÐÍêÉÆµÄµ÷ÊÔ¹¦ÄÜ¡£
5.2 ³ÌÐòÁ÷ͼ
¶ÁÈ¡P1¿ÚÖµ
ÑÓʱ200ms ÖжϷþÎñ³ÌÐò ³õʼ²ÎÊýÉèÖà µÈ´ýÖÐ¶Ï ·¢ËÍÊý¾ÝÖ¡ ÇåÖжϱêÖ¾ ÖжϷµ»Ø ͼ5-1 ´®Ðз¢ËÍÁ÷³Ìͼ
5.3 Ä£¿é˵Ã÷
º¼Öݵç×ӿƼ¼´óѧ±¾¿Æ±ÏÒµÉè¼Æ
£¨1£©Ö÷³ÌÐò£º
MAIN:
MOV SP,#0X60 £»¶ÑÕ»³õʼ»¯ CALL INIT £»¸÷¼Ä´æÆ÷²ÎÊýÉèÖà MOV 40H,#0x01 £»´ò°Ð´ÎÊýÖÃ1 AJMP $ £»µÈ´ýÖÐ¶Ï £¨2£©³õʼ»¯³ÌÐò£º
INIT:
MOV TMOD,#0X21£»²¨ÌØÂÊ·¢ÉúÆ÷ MOV TL1,#0XFD £»²¨ÌØÂÊ 9600bps MOV TH1,#0XFD
CLR ET1 £»½ûÖ¹timer1
SETB PT1 £»Ê±ÖÓ1 ÓÅÏȼ¶:¸ß MOV SCON,#0x40£»´®¿Ú¹¤×÷ģʽ1,SM2=0,REN=0 MOV PCON,#0 £»²¨ÌØÂÊ 9600bps SETB EA £»ÖжÏÔÊÐí CLR PS £»¹Ø±Õ´®¿ÚÖÐ¶Ï CLR ES £»´®¿ÚÓÅÏȼ¶:µÍ
SETB EX0 £»¿ªÍⲿÖжÏINT0 SETB IT0 £»Ï½µÑØÓÐЧ CLR PX0 £»INT0 ÓÅÏȼ¶:µÍ SETB TR1 £»Ê±ÖÓ1 ¿ªÊ¼¼ÆÊý RET
£¨3£©ÖжϷþÎñ³ÌÐò£º
_INT0: £»ISRÖжϷþÎñ³ÌÐò NOP
CALL DELAY_2MS £»Í¬²½ÑÓʱ MOV P1,#0xff £»¶ÁP1¿ÚǰÏÈÖÃ1 MOV A,P1 £»¶ÁP1¿Ú CALL INT0_SEND RET
£¨4£©Êý¾ÝÖ¡´«ËÍ×Ó³ÌÐò£º
±ê־λSYNC ££0x30 ±í5-1 Êý¾ÝÖ¡¸ñʽ
´ò°Ð´ÎÊý ´ò°Ð³É¼¨ TIMES RESULT УÑéλCHECKSUM TIMES£«RESULT Àý£º30 02 15 17 (Ê®Áù½øÖÆ)
º¼Öݵç×ӿƼ¼´óѧ±¾¿Æ±ÏÒµÉè¼Æ
±íʾµÚ¶þ´Î´ò°Ð£¬»÷ÖеÚ21ºÅ£¨¶ÔÓ¦»·Êý£º7»· Æ«ÒÆ·½Ïò£ºÓÒÉÏ£©¡£
INT0_SEND: £»Êý¾ÝÖ¡´«ËÍ×Ó³ÌÐò PUSH ACC £»±£»¤ACC CLR A
ADD A,#0X30
CALL UART_SEND £»·¢Ëͱê־λ MOV A,40H
CALL UART_SEND £»·¢ËÍ´ò°Ð´ÎÊý POP ACC
CALL UART_SEND £»·¢ËÍ´ò°Ð³É¼¨ ADD A,#0X30 ADD A,0040H
CALL UART_SEND £»·¢ËÍУÑéλ INC 0040H £»´ò°Ð´ÎÊýÀÛ¼Ó1 CALL DELAY_200MS£»ÑÓʱ200ms CLR EX0 £»¹ØÍⲿÖжÏ
CLR IE0 £»Çå INT0 ÍⲿÖжÏÇëÇó±ê־λ¨D¨D·ÀÖ¹ÍⲿÖÐ¶Ï¼Ä´æ¶øÒýÆð¶à´ÎÖжϡ£
SETB EX0 £»¿ªÖÐ¶Ï RETI £¨5£©´®Ðз¢ËÍ×Ö½Ú
UART_SEND: £»´®Ðз¢ËÍÒ»¸ö×Ö½Ú MOV SBUF,A
JNB TI,$ £»µÈ´ý·¢ËÍÍê±Ï CLR TI £» RET £¨6£©¶¨Ê±³ÌÐò£º
DELAY_2MS: £»Óö¨Ê±Æ÷ÑÓʱ2ms MOV R7,#21;21 DLY1:MOV R6,#42 DLY2:DJNZ R6,DLY2 DJNZ R7,DLY1 RET
DELAY_10MS: £»µ÷ÓÃDELAY_2MS£¬ÊµÏÖÑÓʱ10ms MOV R5,#5
º¼Öݵç×ӿƼ¼´óѧ±¾¿Æ±ÏÒµÉè¼Æ
DLY: CALL DELAY_2MS DJNZ R5,DLY RET