ÆäÖУº
8255A µÄ4¸ö¶ËµÄµØÖ··Ö±ðΪ£º80H¡¢81 H¡¢82HºÍ83 H£¬¶ÔÓ¦ÓÚ8255AµÄA¿Ú¡¢B¿Ú¡¢C¿ÚºÍ¿ØÖÆ×ּĴæÆ÷¡£
8253µÄ4¸ö¶ËµÄµØÖ··Ö±ðΪ£º84H¡¢85 H¡¢86HºÍ87 H£¬¶ÔÓ¦ÓÚ8253µÄT0¡¢T1¡¢T2ºÍ¿ØÖÆ×ּĴæÆ÷¡£
8259µÄ2¸ö¶ËµÄµØÖ··Ö±ðΪ£º88H¡¢89 H¡£Éè8259µÄÖжÏÀàÐͺÅΪ40¡«48 H£¬IRQ2µÄÖжÏÀàÐͺÅΪ42H¡£
8253ÐèÒª¶¨Ê±0.5s£¬Í¨¹ýT0£¬T1ͨµÀ¼¶ÁªÊµÏÖ¡£0.5s/(1/ 2MHz)=1000000£¬ÉèT0¹¤×÷ÓÚ·½Ê½2£¬³õֵΪ1000£»T1¹¤×÷ÓÚ·½Ê½3£¬³õֵΪ1000£¨T1Èç¹û¹¤×÷ÓÚ·½Ê½0£¬ÔòÔÚÖжϷþÎñ×Ó³ÌÐòÖÐÐèÒªÖØÐÂдÈë³õÖµ£¬ÊµÏÖÈí¼þ´¥·¢£©¡£
³ÌÐòÈçÏ£º £»ÉèÖÃ8259µÄÖжÏÏòÁ¿
MOV AX£¬SEG IRQ2
MOV DS£¬AX
MOV DX, OFFSET IRQ2 MOV AL£¬42H MOV AH£¬25H INT 21H £»8259³õʼ»¯
MOV AL£¬13H£»ICW1±ßÑØ´¥·¢£¬µ¥Æ¬8259£¬ÓÐICW4
OUT 88H£¬AL
MOV AL£¬40H £»ICW2 ÖжÏÀàÐͺŻùֵΪ40H OUT 89H£¬AL
MOV AL£¬01H £»ICW4 8088ϵͳ£¬ÆÕͨEOI£¬£»ÍêȫǶÌ×ʽ OUT 89H£¬AL MOV AL£¬0FDH
OUT 89H £¬AL £»OCW1£¬ÉèÖÃIMR£¬ÖÐ¶ÏÆÁ±Î £»8255³õʼ»¯
MOV AL£¬90H£»PA¿ÚÊäÈ룬·½Ê½0£»PB¿ÚÊä³ö£¬·½Ê½0
OUT 83H£¬AL
£»8253³õʼ»¯
£»Í¨µÀ0³õʼ»¯³ÌÐò
MOV AL£¬00110101B £»Í¨µÀ0¿ØÖÆ×Ö£¬¶ÁдÁ½×Ö½Ú£¬·½Ê½2£¬Ê®½øÖƼÆÊý OUT 87H£¬AL
MOV AL, 00H
OUT 84H£¬ AL £»Ð´È˵Í×Ö½Ú MOV AL, 10H
OUT 84H£¬ AL £»Ð´È˸ß×Ö½Ú
£»Í¨µÀ1³õʼ»¯³ÌÐò
MOV AL£¬01110110B £»Í¨µÀ1¿ØÖÆ×Ö£¬¶ÁдÁ½×Ö½Ú£¬·½Ê½3£¬Ê®½øÖƼÆÊý
OUT 87H£¬AL MOV AL, 00H
OUT 85H£¬ AL £»Ð´È˵Í×Ö½Ú MOV AL, 10H
OUT 85H£¬ AL £»Ð´È˸ß×Ö½Ú £»Ö÷³ÌÐò
STI
ZX: HLT JMP ZX £»ÖжϷþÎñ×Ó³ÌÐò IRQ2£º PUSH AX
STI
IN AL, 80H £»´ÓA¿Ú¶ÁÈË¿ª¹Ø×´Ì¬ NOT AL £»A¿Ú¿ª¹Ø×´Ì¬È¡·´
OUT 81H £¬AL £»B¿Ú¿ØÖÆLED£¬Ö¸Ê¾¿ª¹Ø×´Ì¬ MOV AL£¬20H
OUT 88H£¬AL £»·¢ÖжϽáÊøÆÕͨEOIÃüÁî POP AX IRET £¨2£©
Ó루1£©ÀàËÆ¡£µ«1s/(1/ 2MHz)=2000000£¬ÉèT0¹¤×÷ÓÚ·½Ê½2£¬³õֵΪ2000£»T1¹¤×÷ÓÚ·½Ê½3£¬³õֵΪ1000£¨T1Èç¹û¹¤×÷ÓÚ·½Ê½0£¬ÔòÔÚÖжϷþÎñ×Ó³ÌÐòÖÐÐèÒªÖØÐÂдÈë³õÖµ£¬ÊµÏÖÈí¼þ´¥·¢£©¡£
³ÌÐòÈçÏ£º £»ÉèÖÃ8259µÄÖжÏÏòÁ¿
XOR AX£¬SEG IRQ2
MOV DS£¬AX
MOV DX, OFFSET IRQ2 MOV AL£¬42H MOV AH£¬25H INT 21H £»8259³õʼ»¯
MOV AL£¬13H£»ICW1±ßÑØ´¥·¢£¬µ¥Æ¬8259£¬ÓÐICW4
OUT 88H£¬AL
MOV AL£¬40H £»ICW2 ÖжÏÀàÐͺŻùֵΪ08H OUT 89H£¬AL
MOV AL£¬01H £»ICW4 8088ϵͳ£¬ÆÕͨEOI£¬£»ÍêȫǶÌ×ʽ OUT 89H£¬AL
MOV AL£¬0FDH
OUT 89H £¬AL £»OCW1£¬ÉèÖÃIMR£¬ÖÐ¶ÏÆÁ±Î £»8255³õʼ»¯
MOV AL£¬90H£»PA¿ÚÊäÈ룬·½Ê½0£»PB¿ÚÊä³ö£¬·½Ê½0
OUT 83H£¬AL £»8253³õʼ»¯
£»Í¨µÀ0³õʼ»¯³ÌÐò
MOV AL£¬00110101B £»Í¨µÀ0¿ØÖÆ×Ö£¬¶ÁдÁ½×Ö½Ú£¬·½Ê½2£¬Ê®½øÖƼÆÊý OUT 87H£¬AL
MOV AL, 00H
OUT 84H£¬ AL £»Ð´È˵Í×Ö½Ú MOV AL, 20H
OUT 84H£¬ AL £»Ð´È˸ß×Ö½Ú
£»Í¨µÀ1³õʼ»¯³ÌÐò
MOV AL£¬01010110B £»Í¨µÀ1¿ØÖÆ×Ö£¬¶ÁдÁ½×Ö½Ú£¬·½Ê½3£¬Ê®½øÖƼÆÊý
OUT 87H£¬AL MOV AL, 00H
OUT 85H£¬ AL £»Ð´È˵Í×Ö½Ú MOV AL, 10H
OUT 85H£¬ AL £»Ð´È˸ß×Ö½Ú £»Ö÷³ÌÐò
MOV AL, 0FEH £»Ï¨ÃðÒ»¸öµÆ£¬µãÁÁÒ»¸öµÆÎª£º01H OUT 81H£¬ AL £»Ð´È˸ß×Ö½Ú STI
ZX: HLT JMP ZX £»ÖжϷþÎñ×Ó³ÌÐò IRQ2£º STI
ROL AL£¬1 £»Ï¨ÃðµÆ×óÒÆ£¬ÂÖÁ÷ϨÃð
OUT 81H£¬AL
PUSH AX£» MOV AL£¬20H
OUT 88H£¬AL £»·¢ÖжϽáÊøÆÕͨEOIÃüÁî POP AX IRET