MOV AH, 25H
MOV AL, 0AH ; δ֪ INT 21H POP DS
MOV DX, 021H ; ¶ÁÈ¡ÖжÏÆÁ±ÎÃüÁî×Ö IN AL, DX
AND AL, 0FBH ; 0FBH = 1111 1011B£¬¿ª·ÅIRQ2ÖÐ¶Ï OUT DX, AL ; ËÍ»ØIMR STI ; ¿ªÖжÏ
; ÖжϷþÎñ³ÌÐò
INTPR: MOV DX, 200H ; ´Ó200H¶Ë¿Ú¶ÁÈëÊý¾Ý
IN AL, DX OR AL, AL JNP NEXT MOV DX, 201H ; żУÑ飬ÊäÈëµÄÊý¾ÝÊä³öµ½¶Ë¿Ú201H OUT DX, AL JMP DONE
NEXT: MOV DL, ¡¯N¡¯ ; ·ÇżУÑ飬ÏÔʾ¡°N¡±£¬²¢¹Ø±ÕIRQ2ÖжÏ
MOV AH, 2 ; ÏÔʾ¡°N¡± INT 21H MOV DX, 021H ; ¹Ø±ÕIRQ2ÖÐ¶Ï IN AL, DX
OR AL, 00000100B OUT DX, AL
DONE: IRET
£±£·£®ÖжÏÓëÒì³£ÓкÎÒìͬ£¿
£±£¸£®32λ»úµÄÒì³£·ÖΪ¼¸Àࣿ
£±£¹£®ÖжÏÃèÊö·ûÓëÒ»°ã¶ÎÃèÊö·ûÓкβ»Í¬£¿
£²£°£®ÖжÏÃèÊö·û±íÓëÖжÏÏòÁ¿±íÓкÎÒìͬ£¿
µÚ8Õ ³£ÓýӿÚоƬ
1£®¼Ù¶¨8255AµÄµØַΪ0060H¡«0063H£¬ÊÔ±àдÏÂÁи÷ÖÖÇé¿öµÄ³õʼ»¯³ÌÐò£º
£¨l£©½«A×éºÍB×éÉèÖÃΪ·½Ê½0£¬¶Ë¿ÚAºÍC×÷ΪÊäÈë¿Ú£¬¶Ë¿ÚB×÷ΪÊä³ö¿Ú¡£ £¨2£©½«A×éÉèÖÃΪ·½Ê½2£¬B×éÉèÖÃΪ·½Ê½1£¬¶Ë¿ÚB×÷ΪÊä³ö¿Ú¡£
£¨3£©½«A×éÉèÖÃΪ·½Ê½1£¬ÇҶ˿ÚA×÷ΪÊäÈ룬PC6ºÍPC7×÷ΪÊä³ö£»B×éÉèÖÃΪ·½Ê½1£¬ÇҶ˿ÚBΪÊäÈë¿Ú¡£
2£®IBM PC£¯XT»úÖÐ8255AÓëϵͳ×ÜÏßµÄÁ¬½ÓÈçͼ8.74Ëùʾ£¬ÊÔ·ÖÎö8255AµÄ A¿Ú¡¢B¿Ú¡¢C¿Ú¼°¿ØÖƼĴæÆ÷µÄ»ù±¾µØÖ·¡£
½â£º ͼ8.74
ͼ8.75
A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 0 0 0 1 1 ¡Á ¡Á ¡Á ¡Á ¡Á A¿Ú£º060H B¿Ú£º061H C¿Ú£º062H
¿ØÖƼĴæÆ÷£º063H
3£®Ä³ÍâÉèÒý½ÅÈçͼ8.75Ëùʾ£¬µ±BUSYΪµÍµçƽʱ£¬±íʾÍâÉè¿ÉÒÔ½ÓÊÕÊý¾Ý¡£ÍâÉèͨ¹ý8255A½Óµ½ÏµÍ³×ÜͳÉÏ£¬CPUÀûÓòéѯ·½Ê½½«BUFFER¿ªÊ¼µÄ100×Ö½ÚÊý¾ÝÊä³ö¡£
£¨1£©¹æ¶¨8255AµÄ¿ÚµØַΪECH¡ªEFH£¬ÊÔ»³ö8255AºÍϵͳ×ÜÏß¼°ÍâÉèµÄÁ¬½Óͼ¡£
£¨2£©±àд°üÀ¨8255A³õʼ»¯³ÌÐòÔÚÄÚµÄÊä³ö³ÌÐò¡£
4£®Í¼8.76Ϊ¿ª¹Ø״̬¼ì²âµç·ºÍ¼ÌµçÆ÷¿ØÖƵç·£¬µ±¿ª¹Ø±ÕºÏʱ£¬½«Çý¶¯¶ÔÓ¦µÄ¼Ì
ͼ8.76
µçÆ÷£¨ÓÐÇý¶¯µçÁ÷Á÷¹ý¼ÌµçÆ÷ÏßȦ£©£»Èôij¿ª¹Ø´¦ÓڶϿª×´Ì¬£¬ÔòÎÞµçÁ÷Á÷¹ý¼ÌµçÆ÷ÏßȦ¡£ÏµÍ³Ã¿¸ô10ms¼ì²âÒ»´Î¿ª¹Ø״̬ºÍ¶Ô¼ÌµçÆ÷×÷ÏàÓ¦¿ØÖÆ£¬¶¨Ê±¿ØÖÆÓÉ8253Íê³É£¬ÊÔÍê³É¶Ô8255AµÄ³õʼ»¯±à³Ì£¨³õʼ״̬ËùÓм̵çÆ÷µÄÏßͼ¶¼ÎÞµçÁ÷Á÷¹ý£©ºÍ¼ì²â¿ØÖƳÌÐò£¨¼Ù¶¨8255AµØַΪ3COH¡«3C3H£©¡£
5£®Í¼8.23µÄ8253Ó¦ÓÃʵÀýÖУ¬ÈôͨµÀ0ºÍͨµÀ1¶¼²ÉÓöþ½øÖƼÆÊý£¬ÑïÉùÆ÷µÄ·¢ÉùƵÂÊΪ500HZ£¬ÎʳÌÐòÓ¦×÷ºÎ±ä¶¯£¿ ½â£º £»Ö÷³ÌÐò
MOV AL£¬15H£¨¸ÄΪ14H£© £»¼ÆÊýÆ÷0³õʼ»¯ OUT 43H£¬AL
MOV AL£¬50H£¨¸ÄΪ50£© OUT 40H£¬AL
STI £»¿ªÖÐ¶Ï LOP£ºHLT £»µÈ´ýÖÐ¶Ï JMP LOP £»ÖжϷþÎñ³ÌÐò
INIP£ºMOV AL£¬01H £»GATE1ÖÃ1£¬Æô¶¯¼ÆÊý OUT 80H£¬AL
MOV AL£¬77H£¨¸ÄΪ76H£©£»¼ÆÊýÆ÷1³õʼ»¯ OUT 43H£¬AL
6
MOV AL£¬00H£¨¸ÄΪ0F0H£©£»1.4¡Á10/500=2800=0AF0H OUT 41H£¬AL
MOV AL£¬07H£¨¸ÄΪ0AH£© OUT 4lH£¬AL
CALL DLSS £»ÑÓʱ5Ãë
MOV AL£¬0 £»GATE1ÖÃ0£¬Í£Ö¹¼ÆÊý OUT 80H£¬AL IRET
6£®Èô8253¿ÉÀûÓÃ8088µÄÍâÉè½Ó¿ÚµØÖ·D0D0H¡«D0D3H£¬ÊÔ»³öµç·Á¬½Óͼ¡£Èô¼Óµ½8253ÉϵÄʱÖÓÐźÅΪ2MHz£¬
£¨1£©ÈôÀûÓüÆÊýÆ÷0¡¢1¡¢2·Ö±ð²úÉúÖÜÆÚΪ10?SµÄ¶Ô³Æ·½²¨ÒÔ¼°Ã¿1SºÍ10s²úÉúÒ»¸ö¸ºÂö³å¡£ÊÔ˵Ã÷8253ÈçºÎÁ¬½Ó²¢±àд°üÀ¨³õʼ»¯ÔÚÄڵijÌÐò¡£
£¨2£©ÈôÏ£ÍûÀûÓÃ8088³ÌÐòͨ¹ý½Ó¿Ú¿ØÖÆGATE£¬µ±CPUʹGATEÓÐЧ¿ªÊ¼£¬20?SºóÔÚ¼ÆÊýÆ÷0µÄOUT¶Ë²úÉúÒ»¸öÕýÂö³å£¬ÊÔÉè¼ÆÍê³É´ËÒªÇóµÄÓ²¼þºÍÈí¼þ¡£ ½â£º (1)
¢Ù²úÉúÖÜÆÚΪ10?sµÄ¶Ô³Æ·½²¨£¬¼ÆÊýÆ÷£º0£¬¹¤×÷·½Ê½£º·½Ê½3£¬³õÖµ£º10?S=0.1MHZ£¬2/0.1=20 MOV AL,00010111B MOV DX,0D0D3H OUT DX,AL MOV AL,20H MOV DX,0D0D0H OUT DX,AL
¢Úÿ1S²úÉúÒ»¸ö¸ºÂö³å£¬¼ÆÊýÆ÷£º0¡¢1£¬¹¤×÷·½Ê½£º3¡¢2£¬³õÖµ£º200¡¢10000
MOV AL,00110111B£»¼ÆÊýÆ÷0 MOV DX,0D0D3H OUT DX,AL MOV DX,0D0D0H MOV AL,00H OUT DX,AL MOV AL,02H OUT DX,AL
MOV AL,01110101B£»¼ÆÊýÆ÷1 MOV DX,0D0D3H OUT DX,AL MOV DX,0D0D1H MOV AL,00H
OUT DX,AL OUT DX,AL
¢Ûÿ10S²úÉúÒ»¸ö¸ºÂö³å£¬¼ÆÊýÆ÷£º0¡¢1£¬¹¤×÷·½Ê½£º3¡¢2£¬³õÖµ£º2000¡¢10000
MOV AL,00110111B£»¼ÆÊýÆ÷0 MOV DX,0D0D3H OUT DX,AL MOV DX,0D0D0H MOV AL,00H OUT DX,AL MOV AL, 20H OUT DX,AL
MOV AL,01110101B£»¼ÆÊýÆ÷1 MOV DX,0D0D3H OUT DX,AL MOV DX,0D0D1H MOV AL,00H OUT DX,AL OUT DX,AL
(2)8255¿ØÖƼÆÊýÆ÷0µÄGATEÐźţ¬OUT0½Ó·´ÏàÆ÷£¬¹¤×÷·½Ê½£º·½Ê½5£¬³õÖµ£º20?S=0.05MHZ£¬2/0.05=40
MOV AL,00011011B MOV DX,0D0D3H OUT DX,AL MOV AL,40H MOV DX,0D0D0H OUT DX,AL
7£®Èô¼Óµ½8253ÉϵÄʱÖÓƵÂÊΪ0.5MHz£¬ÔòÒ»¸ö¼ÆÊýÆ÷µÄ×¶¨Ê±Ê±¼äÊǶàÉÙ£¿ÈôÒªÇó10·ÖÖÓ²úÉúÒ»´Î¶¨Ê±Öжϣ¬ÊÔÌá³ö½â¾ö·½°¸¡£
8£®¼ÙÉèһƬ IBM PC»úI£¯O¿¨µÄ8253Á¬µ½Ò»¸ö1KHzµÄʱÖÓ£¬ÓøÃ8253ÒÔBCD¸ñʽ±£³ÖÒ»ÌìÖеÄʱ¼ä£¬¾«¶ÈΪÃë¡£ÔÚDATA1¡¢DATA2¡¢DATA3£¨Ê±¡¢·Ö¡¢Ã룩µÈ×Ö½Ú×°È뵱ǰʱ¼äºó£¬Æô¶¯8253¿ªÊ¼¼Æʱ¡£ÊÔ±àдһ¸ö8253µÄ³õʼ»¯³ÌÐòºÍÒ»¸öÔÚÿÃë½áÊøʱÐÞ¸Äʱ¼äµÄÖжÏÑÛÎñ³ÌÐò¡££¨8253µÄµØַΪ02C0H¡«02C3H£©¡£ ˵Ã÷£»8253²úÉúµÄÖжÏÇëÇóÐźÅÁ¬½Óµ½PC×ÜÏßµÄIRQ2¡£
9£®ÉèÓÐij΢»ú¿ØÖÆϵͳ£¬²ÉÓö¨Ê±Æ÷8253²úÉú¶¨Ê±ÖжÏÐźš£CPUÏìÓ¦ÖжϺó¸üÖ´ÐÐÊý¾Ý²É¼¯¡¢Êý×ÖÂ˲¨ºÍÏàÓ¦µÄ¿ØÖÆËã·¨£¬ÒÔ¿ØÖÆÊä³ö¡£Èçͼ8.77Ëùʾ¡£²ÉÓÃÁ½¸ö¼ÆÊýÆ÷´®ÁªµÄ·½·¨ÊµÏÖ¶¨Ê±¿ØÖÆ¡£Ò»µ©¶¨Ê±Ê±¼äµ½£¬OUT1ÐźÅÓɸ߱äµÍ£¬¾·´ÏàºóËÍIRQ2¡£IRQ2µÄÖжÏÀàÐͺÅΪ0AH£¬Öжϴ¦Àí³ÌÐòÊ×Ö·´æ´¢ÔÚ28H~2BH¡£8253¶Ë¿ÚµØַΪ230H~233H¡£ÊÔ±àÖÆ8253µÄ³õʼ»¯¼°ÉèÖÃÖжϴ¦Àí³ÌÐòÊ×µØÖ·³ÌÐò¶Î¡£
ͼ8.77