΢»úÔ­ÀíÓë½Ó¿Ú¼¼ÊõÖܺÎÇٿκóϰÌâ´ð°¸ - ͼÎÄ ÏÂÔØ±¾ÎÄ

ÆäÖУº

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