OUT 03H£¬ AL £» C¿Ú¸ßλ·½Ê½0ÊäÈ룬µÍλ·½Ê½0Êä³ö
MOV AL£¬ 01H£»
OUT 03H£¬AL £»Ê¹PC0ÖÃ룬¼´Ê¹Ñ¡Í¨ÎÞЧ
WAIT£º IN AL£¬ 02H
TEST AL£¬ 80H £»¼ì²âPC7ÊÇ·ñΪ1¼´ÊÇ·ñæ JNZ WAIT £» ΪæÔòµÈ´ý MOV AL£¬£ÛSI£Ý
CMP AL£¬'$' £»ÊÇ·ñ½áÊø·û JZ DONE £» ÊÇÔòÊä³ö»Ø³µ
OUT 00H£¬AL £»²»ÊǽáÊø·û£¬Ôò´ÓA¿ÚÊä³ö MOV AL£¬00H OUT 03H£¬ AL MOV AL£¬ 01H
OUT 03H£¬AL £»²úÉúѡͨÐźÅ
INC SI £»ÐÞ¸ÄÖ¸Õ룬ָÏòÏÂÒ»¸ö×Ö·û JMP WAIT
DONE£º MOV AL£¬0DH
OUT 00H£¬AL £»Êä³ö»Ø³µ·û MOV AL£¬ 00H OUT 03H£¬AL MOV AL£¬ 01H OUT 03H£¬AL £»²úÉúѡͨ
WAIT1£º IN AL£¬ 02H
TEST AL£¬ 80H £»¼ì²âPC7ÊÇ·ñΪ1¼´ÊÇ·ñæ JNZ WAIT 1 £» ΪæÔòµÈ´ý MOV AL£¬0AH
OUT 00H£¬AL £»Êä³ö»»Ðзû MOV AL£¬ 00H OUT 03H£¬AL MOV AL£¬ 01H OUT 03H£¬AL £»²úÉúѡͨ MOV AH£¬4CH INT 21H
CODE ENDS END START
¡¾Àý4¡¿ ½«ÉÏÀýÖÐ8255AµÄ¹¤×÷·½Ê½¸ÄΪ·½Ê½1£¬²ÉÓÃÖжϷ½Ê½½«BUFF¿ªÊ¼µÄ»º³åÇøÖеÄ100¸ö×Ö·û´Ó´òÓ¡»úÊä³ö¡££¨¼ÙÉè´òÓ¡»ú½Ó¿ÚÈÔ²ÉÓÃCentronics±ê×¼£©¡£
·ÖÎö£ºÈÔÓÃPC0×÷Ϊ´òÓ¡»úµÄѡͨ£¬´òÓ¡»úµÄACK×÷Ϊ8255AµÄA¿Ú£¬ACK8255AµÄÖжÏ
13
ÇëÇóÐźţ¨PC3£©½ÓÖÁϵͳÖжϿØÖÆÆ÷8259AµÄIR3£¬ÆäËüÓ²¼þÁ¬ÏßͬÉÏÀý£¬Èçͼ7-15Ëùʾ¡£
ͼ9-6 ÖжϷ½Ê½Ó²¼þÁ¬Ïß
8255AµÄ¿ØÖÆ×ÖΪ£º1010XXX0 PC0ÖÃλ: 00000001 ¼´ 01H PC0¸´Î»£º 00000000 ¼´ 00H
PC6ÖÃλ: 00001101 ¼´ 0DH £¬ÔÊÐí8255AµÄA¿ÚÊä³öÖжÏ
ÓÉÓ²¼þÁ¬Ïß¿ÉÒÔ·ÖÎö³ö£¬8255AµÄ4¸ö¿ÚµØÖ··Ö±ðΪ£º00H£¬01H£¬02H£¬03H¡£ ¼ÙÉè8259A³õʼ»¯Ê±ËÍICW2Ϊ08H£¬Ôò8255A A¿ÚµÄÖжÏÀàÐÍÂëÊÇ0BH£¬´ËÖжÏÀàÐÍÂë¶ÔÓ¦µÄÖжÏÏòÁ¿Ó¦·Åµ½ÖжÏÏòÁ¿±í´Ó2CH¿ªÊ¼µÄ4¸öµ¥ÔªÖС£ Ö÷³ÌÐò£º
MAIN£º MOV AL£¬0A0H
OUT 03H£¬AL £»ÉèÖÃ8255AµÄ¿ØÖÆ×Ö MOV AL£¬01H £»Ê¹Ñ¡Í¨ÎÞЧ OUT 03H£¬AL XOR AX£¬AX MOV DS£¬AX
MOV AX£¬OFFSET ROUTINTR MOV WORD PTR [002CH]£¬AX
MOV AX£¬SEG ROUTINTR
MOV WORD PTR [002EH]£¬AX £»ËÍÖжÏÏòÁ¿ MOV AL£¬0DH
OUT 03H£¬AL £»Ê¹8255A A¿ÚÊä³öÔÊÐíÖÐ¶Ï MOV DI£¬OFFSET BUFF £»ÉèÖõØÖ·Ö¸Õë MOV CX£¬99 £»ÉèÖüÆÊýÆ÷³õÖµ MOV AL£¬[DI]
OUT 00H£¬AL £»Êä³öÒ»¸ö×Ö·û
14
INC DI
MOV AL£¬00H
OUT 03H£¬AL £»²úÉúѡͨ INC AL
OUT 03H£¬AL £»³·Ïûѡͨ STI £»¿ªÖжÏ
NEXT£º HLT £»µÈ´ýÖжÏ
LOOP NEXT £»Ð޸ļÆÊýÆ÷µÄÖµ£¬Ö¸ÏòÏÂÒ»¸öÒªÊä³öµÄ×Ö·û HLT
ÖжϷþÎñ×Ó³ÌÐòÈçÏ£º
ROUTINTR£ºMOV AL£¬[DI]
OUT 00H£¬AL £º´ÓA¿ÚÊä³öÒ»¸ö×Ö·û MOV AL£¬00H
OUT 03H£¬AL £º²úÉúѡͨ INC AL
MOV 03H£¬AL £»³·Ïûѡͨ INC DI £ºÐ޸ĵØÖ·Ö¸Õë IRET £ºÖжϷµ»Ø
¡¾Ë¼¿¼¡¿ ÊÇ·ñ¿ÉÒÔ²ÉÓÃA¿ÚµÄOBF×÷Ϊ´òÓ¡»úµÄѡͨÐźţ¿Èç¿ÉÒԵϰ£¬Èí¼þ¸ÃÈçºÎÐ޸ģ¿ÊÇ·ñ¿ÉÓôòÓ¡»úµÄBUSY×÷Ϊ8255µÄA¿ÚACK £¿ ¡¾Ï°ÌâÓë˼¿¼¡¿
1£®ÊÔ·ÖÎö8255A·½Ê½0¡¢·½Ê½1ºÍ·½Ê½2µÄÖ÷񻂿±ð£¬²¢·Ö±ð˵Ã÷ËüÃÇÊʺÏÓÚʲôӦÓó¡ºÏ¡£
2£®µ±8255AµÄA¿Ú¹¤×÷ÔÚ·½Ê½2ʱ£¬Æä¶Ë¿ÚBÊʺÏÓÚʲôÑùµÄ¹¦ÄÜ£¿Ð´³ö´Ëʱ¸÷ÖÖ²»Í¬×éºÏÇé¿öµÄ¿ØÖÆ×Ö¡£
3£®Èô8255AµÄ¶Ë¿ÚA¶¨ÒåΪ·½Ê½0£¬ÊäÈ룻¶Ë¿ÚB¶¨ÒåΪ·½Ê½1£¬Êä³ö£»¶Ë¿ÚCµÄÉϰ벿¶¨ÒåΪ·½Ê½0£¬Êä³ö¡£ÊÔ±àд³õʼ»¯³ÌÐò¡££¨¿ÚµØÖ·Îª80H~83H£©
4£®¼ÙÉèһƬ8255AµÄʹÓÃÇé¿öÈçÏ£ºA¿ÚΪ·½Ê½0ÊäÈ룬B¿ÚΪ·½Ê½0Êä³ö¡£´ËʱÁ¬½ÓµÄCPUΪ8086£¬µØÖ·ÏßµÄA1¡¢A2·Ö±ð½ÓÖÁ8255AµÄA0¡¢A1£¬¶øÐ¾Æ¬µÄCSÀ´×ÔA3A4A5A6A7=00101£¬ÊÔÍê³É8255AµÄ¶Ë¿ÚµØÖ·ºÍ³õʼ»¯³ÌÐò¡£
15
9.3 ΢»úÓë¼üÅ̵ĽӿÚ
Ò»¡¢¾ØÕóʽ¼üÅ̵Ľṹ
ÔÚ΢ÐÍ»úϵͳÖУ¬¼üÅÌÊÇÒ»ÖÖ×î³£ÓõÄÍâÉ裬ËüÓɶà¸ö¿ª¹Ø×éºÏ¶ø³É¡£¿ÉÒÔÓÃÀ´ÖÆÔì¼üÅ̵İ´¼ü¿ª¹ØÓкöàÖÖ£¬×î³£ÓõÄÓлúеʽ¡¢±¡Ä¤Ê½¡¢µçÈÝʽºÍ»ô¶ûЧӦʽµÈ4ÖÖ¡£»úеʽ¿ª¹Ø½Ï±ãÒË£¬µ«Ñ¹¼üʱ»á²úÉú´¥µã¶¶¶¯£¬¼´ÔÚ´¥µã¿É¿¿µØ½Óͨǰ»áͨ¶Ï¶à´Î£¬¶øÇÒ³¤ÆÚʹÓúó¿É¿¿ÐԻήµÍ¡£±¡Ä¤Ê½¿ª¹Ø¿É×ö³ÉºÜ±¡µÄÃÜ·âµ¥Ôª£¬²»Ò×ÊÜÍâ½ç³±Æø»ò»·¾³ÎÛȾ£¬³£ÓÃÓÚ΢²¨Â¯¡¢Ò½ÁÆÒÇÆ÷»òµç×Ó³ÓµÈÉ豸µÄ°´¼ü¡£µçÈÝʽ¿ª¹ØÃ»Óж¶¶¯ÎÊÌ⣬µ«ÐèÒªÌØÖÆµç·À´²âµçÈݵı仯¡£»ô¶ûЧӦ°´¼üÊÇÁíÒ»ÖÖÎÞ»úе´¥µãµÄ¿ª¹Ø£¬¾ßÓкܺõÄÃÜ·âÐÔ£¬Æ½¾ùÊÙÃü¸ß´ï1ÒÚ´ÎÉõÖÁ¸ü¸ß£¬µ«¿ª¹Ø»úÖÆ¸´ÔÓ£¬¼Û¸ñºÜ¹ó¡£¼ÆËã»úÉÏÓõļüÅÌÒ»°ã¶¼Óûúеʽ¿ª¹Ø¡£
¶ÔÓÚ´ó¶àÊýµÄ¼üÅÌ£¬°´¼ü±»ÅųÉÐкÍÁеľØÕó¡£ÏÂÃæÒÔ»úеʽ¿ª¹Ø¹¹³ÉµÄ16¸ö¼üµÄ¼üÅÌΪÀý£¬À´ÌÖÂÛ¼üÅ̽ӿڵŤ×÷ÔÀí£¬ÕâÖÖÔÀí¶Ô²ÉÓÃÆäËüÀàÐ͵Ŀª¹ØµÄ¼üÅÌÒ²ÊÇÊÊÓõġ£
Éè16¸ö¼ü·Ö±ðΪ16½øÖÆÊý×Ö0¡«9ºÍA¡«F£¬¼üÅÌÅÅÁС¢Á¬Ïß¼°½Ó¿Úµç·ÈçÏÂͼËùʾ¡£16¸ö¼üÅųÉ4ÐСÁ4ÁеľØÕ󣬽ӵ½Î¢ÐÍ»úµÄÒ»¶Ô¶Ë¿ÚÉÏ¡£¶Ë¿ÚÓÉ8255A¹¹³É£¬ÆäÖж˿ÚA×÷Êä³ö£¬¶Ë¿ÚB×÷ÊäÈë¡£¾ØÕóµÄ4ÌõÐÐÏß½Óµ½Êä³ö¶Ë¿ÚAµÄPA3¡«PA0£¬ÓóÌ
ÐòÄܸıäÕâ4ÌõÐÐÏßÉÏµÄµçÆ½¡£4ÌõÁÐÏßÁ¬µ½ÊäÈ˶˿ÚBµÄPB3¡«PB0£¬4ÌõÐÐÏß»¹Í¬Ê±½Óµ½ÊäÈ˶˿ÚBµÄPB7¡«PB4ÉÏ¡£ÕâÑù£¬ÓÃÊäÈëÖ¸Áî¶ÁÈ¡B¿Ú״̬ʱ£¬¿Éͬʱ¶ÁÈ¡¼üÅ̵ÄÐÐÁÐÐźš£
16
Ïà¹ØÍÆ¼ö£º