ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 2025/5/9 3:06:31ÐÇÆÚÒ» ÏÂÃæÊÇÎÄÕµÄÈ«²¿ÄÚÈÝÇëÈÏÕæÔĶÁ¡£
˳Ðò»áÔì³ÉÒì³£³õʼ»¯¡£ÔÚ³õʼ»¯Ö÷Ƭ8259 ʱ£¬Ð´Èë³õʼ»¯ÃüÁî×ÖµÄ˳ÐòÊÇ£ºICW1¡¢ICW2¡¢ICW3¡¢È»ºóÊÇICW4£¬³õʼ»¯´ÓƬ8259 µÄ˳ÐòÓë³õʼ»¯Ö÷Ƭ8259 µÄ˳ÐòÊÇÏàͬµÄ¡£
ϵͳÆô¶¯Ê±£¬Ö÷Ƭ8259 Òѱ»³õʼ»¯£¬ÇÒ4 ºÅÖжÏÔ´£¨IR4£©Ìṩ¸øÓëPC Áª»úµÄ´®¿ÚͨÐÅʹÓã¬ÆäËüÖжÏÔ´±»ÆÁ±Î¡£ÖжÏʸÁ¿µØÖ·ÓëÖжϺÅÖ®¼äµÄ¹ØÏµÈçϱíËùʾ£º 2. 8259 µ¥ÖжÏʵÑé
ʵÑé½ÓÏßͼÈçͼ2-3-11Ëùʾ£¬µ¥´ÎÂö³åÊä³öÓëÖ÷Ƭ8259 µÄIR7 ÏàÁ¬£¬Ã¿°´¶¯Ò»´Îµ¥´ÎÂö³å£¬²úÉúÒ»´ÎÍⲿÖжϣ¬ÔÚÏÔʾÆÁÉÏÊä³öÒ»¸ö×Ö·û¡°7¡±¡£
ͼ2-3-11 8259µ¥ÖжÏʵÑé½ÓÏßͼ
ʵÑé³ÌÐòÇåµ¥
SSTACK SEGMENT STACK
DW 32 DUP(?)
SSTACK ENDS CODE SEGMENT
ASSUME CS:CODE
START: PUSH DS
MOV AX, 0000H MOV DS, AX
MOV AX, OFFSET MIR7 ;È¡ÖжÏÈë¿ÚµØÖ· MOV SI, 003CH ;ÖжÏʸÁ¿µØÖ· MOV [SI], AX ;ÌîIRQ7µÄÆ«ÒÆÊ¸Á¿ MOV AX, CS ;¶ÎµØÖ· MOV SI, 003EH
MOV [SI], AX ;ÌîIRQ7µÄ¶ÎµØÖ·Ê¸Á¿ CLI POP DS
;³õʼ»¯Ö÷Ƭ8259
MOV AL, 11H OUT 20H, AL ;ICW1 MOV AL, 08H OUT 21H, AL ;ICW2 MOV AL, 04H OUT 21H, AL ;ICW3 MOV AL, 01H OUT 21H, AL ;ICW4 MOV AL, 6FH ;OCW1 OUT 21H, AL STI
AA1: NOP
JMP AA1
MIR7: STI
CALL DELAY MOV AX, 0137H INT 10H ;ÏÔʾ×Ö·û7 MOV AX, 0120H INT 10H MOV AL, 20H
OUT 20H, AL ;ÖжϽáÊøÃüÁî IRET
DELAY: PUSH CX
MOV CX, 0F00H
AA0: PUSH AX
POP AX LOOP AA0 POP CX RET
CODE ENDS
END START
ʵÑé²½Öè
£¨1£©°´Í¼2-3-11 Á¬½ÓʵÑéÏß·£»
£¨2£©±àдʵÑé³ÌÐò£¬¾±àÒë¡¢Á´½ÓÎÞÎóºó×°Èëϵͳ£»
£¨3£©ÔËÐгÌÐò£¬Öظ´°´µ¥´ÎÂö³å¿ª¹ØKK1£«£¬ÏÔʾÆÁ»áÏÔʾ×Ö·û¡°7¡±ÒÔ˵Ã÷ÏìÓ¦ÁËÖжϡ£
2.5 8254 ¶¨Ê±/¼ÆÊýÆ÷Ó¦ÓÃʵÑé
2.5.1 ʵÑéÄ¿µÄ
1. ÕÆÎÕ8254 µÄ¹¤×÷·½Ê½¼°Ó¦Óñà³Ì£» 2. ÕÆÎÕ8254 µäÐÍÓ¦Óõ緵Ľӷ¨¡£
2.5.2 ʵÑéÉ豸
PC»úһ̨£¬TD-PITE ʵÑé×°ÖÃÒ»Ì×£¬Ê¾²¨Æ÷һ̨¡£
2.5.3 ʵÑéÄÚÈÝ
1. ¼ÆÊýÓ¦ÓÃʵÑé¡£±àд³ÌÐò£¬Ó¦ÓÃ8254 µÄ¼ÆÊý¹¦ÄÜ£¬Ê¹Óõ¥´ÎÂö³åÄ£Äâ¼ÆÊý£¬Ê¹Ã¿µ±°´¶¯¡®KK1£«¡¯5 ´Îºó£¬²úÉúÒ»´Î¼ÆÊýÖжϣ¬²¢ÔÚÆÁÄ»ÉÏÏÔʾһ¸ö×Ö·û¡®M¡¯¡£
2. ¶¨Ê±Ó¦ÓÃʵÑé¡£±àд³ÌÐò£¬Ó¦ÓÃ8254 µÄ¶¨Ê±¹¦ÄÜ£¬²úÉúÒ»¸ö1ms µÄ·½²¨¡£
2.5.4 ʵÑéÔÀí
8254 ÊÇIntel ¹«Ë¾Éú²úµÄ¿É±à³Ì¼ä¸ô¶¨Ê±Æ÷¡£ÊÇ8253 µÄ¸Ä½øÐÍ£¬±È8253 ¾ßÓиüÓÅÁ¼µÄÐÔÄÜ¡£8254 ¾ßÓÐÒÔÏ»ù±¾¹¦ÄÜ£º
£¨1£©ÓÐ3 ¸ö¶ÀÁ¢µÄ16 λ¼ÆÊýÆ÷£»
£¨2£©Ã¿¸ö¼ÆÊýÆ÷¿É°´¶þ½øÖÆ»òÊ®½øÖÆ£¨BCD£©¼ÆÊý£» £¨3£©Ã¿¸ö¼ÆÊýÆ÷¿É±à³Ì¹¤×÷ÓÚ6 ÖÖ²»Í¬¹¤×÷·½Ê½£»
£¨4£©8254 ÿ¸ö¼ÆÊýÆ÷ÔÊÐíµÄ×î¸ß¼ÆÊýƵÂÊΪ10MHz£¨8253 Ϊ2MHz£©£»
£¨5£©8254 ÓжÁ»ØÃüÁ8253 ûÓУ©£¬³ýÁË¿ÉÒÔ¶Á³öµ±Ç°¼ÆÊýµ¥ÔªµÄÄÚÈÝÍ⣬»¹¿ÉÒÔ
¶Á³ö״̬¼Ä´æÆ÷µÄÄÚÈÝ£»
£¨6£©¼ÆÊýÂö³å¿ÉÒÔÊÇÓйæÂɵÄʱÖÓÐźţ¬Ò²¿ÉÒÔÊÇËæ»úÐźš£¼ÆÊý³õÖµ¹«Ê½Îª£º
n=fCLKi¡ÂfOUTi¡¢ÆäÖÐfCLKiÊÇÊäÈëʱÖÓÂö³åµÄƵÂÊ£¬fOUTiÊÇÊä³ö²¨ÐÎµÄÆµÂÊ¡£
ͼ2-5-1 ÊÇ8254 µÄÄÚ²¿½á¹¹¿òͼºÍÒý½Åͼ£¬ËüÊÇÓÉÓëCPU µÄ½Ó¿Ú¡¢ÄÚ²¿¿ØÖƵç·ºÍÈý¸ö¼ÆÊýÆ÷×é³É¡£8254 µÄ¹¤×÷·½Ê½ÈçÏÂÊö£º
£¨1£©·½Ê½0£º¼ÆÊýµ½0 ½áÊøÊä³öÕýÔ¾±äÐźŷ½Ê½¡£ £¨2£©·½Ê½1£ºÓ²¼þ¿ÉÖØ´¥·¢µ¥ÎÈ·½Ê½¡£ £¨3£©·½Ê½2£ºÆµÂÊ·¢ÉúÆ÷·½Ê½¡£ £¨4£©·½Ê½3£º·½²¨·¢ÉúÆ÷¡£
£¨5£©·½Ê½4£ºÈí¼þ´¥·¢Ñ¡Í¨·½Ê½¡£ £¨6£©·½Ê½5£ºÓ²¼þ´¥·¢Ñ¡Í¨·½Ê½¡£
ͼ2-5-1 8254µÄÄÚ²¿½Ó¿ÚºÍÒý½Å
8254 µÄ¿ØÖÆ×ÖÓÐÁ½¸ö£ºÒ»¸öÓÃÀ´ÉèÖüÆÊýÆ÷µÄ¹¤×÷·½Ê½£¬³ÆÎª·½Ê½¿ØÖÆ×Ö£»ÁíÒ»¸öÓÃÀ´ÉèÖöÁ»ØÃüÁ³ÆÎª¶Á»Ø¿ØÖÆ×Ö¡£ÕâÁ½¸ö¿ØÖÆ×Ö¹²ÓÃÒ»¸öµØÖ·£¬ÓɱêʶλÀ´Çø·Ö¡£¿ØÖÆ×Ö¸ñʽÈç±í2-5-1Ëùʾ¡£
±í2-5-1 8254µÄ·½Ê½¿ØÖÆ×Ö¸ñʽ
±í2-5-2 8254¶Á³ö¿ØÖÆ×Ö¸ñʽ
±í2-5-3 8254״̬×Ö¸ñʽ
2.5.5 ʵÑé²½Öè
1. ¼ÆÊýÓ¦ÓÃʵÑé
±àд³ÌÐò£¬½«8254 µÄ¼ÆÊýÆ÷0 ÉèÖÃΪ·½Ê½3£¬¼ÆÊýֵΪʮ½øÖÆÊý4£¬Óõ¥´ÎÂö³åKK1£«×÷ΪCLK0 ʱÖÓ£¬OUT0 Á¬½ÓMIR7£¬Ã¿µ±KK1£«°´¶¯5 ´Îºó²úÉúÖжÏÇëÇó£¬ÔÚÆÁÄ»ÉÏÏÔʾ×Ö·û¡°M¡±¡£
ʵÑé²½Ö裺
£¨1£©ÊµÑé½ÓÏßÈçͼ2-5-2Ëùʾ£»
£¨2£©±àдʵÑé³ÌÐò£¬¾±àÒë¡¢Á´½ÓÎÞÎóºó×°Èëϵͳ£»
£¨3£©ÔËÐгÌÐò£¬°´¶¯KK1£«²úÉúµ¥´ÎÂö³å£¬¹Û²ìʵÑéÏÖÏó£» £¨4£©¸Ä±ä¼ÆÊýÖµ£¬ÑéÖ¤8254 µÄ¼ÆÊý¹¦ÄÜ¡£
ͼ2-5-2 8254¼ÆÊýÓ¦ÓÃʵÑé½ÓÏßͼ
ʵÑé³ÌÐòÇåµ¥
A8254 EQU 06C0H B8254 EQU 06C2H C8254 EQU 06C4H CON8254 EQU 06C6H SSTACK SEGMENT STACK
DW 32 DUP(?)
SSTACK ENDS CODE SEGMENT
ASSUME CS:CODE, SS:SSTACK
START: PUSH DS
MOV AX, 0000H MOV DS, AX
MOV AX, OFFSET IRQ7 ;È¡ÖжÏÈë¿ÚµØÖ· MOV SI, 003CH ;ÖжÏʸÁ¿µØÖ· MOV [SI], AX ;ÌîIRQ7µÄÆ«ÒÆÊ¸Á¿ MOV AX, CS ;¶ÎµØÖ· MOV SI, 003EH