A9A8IORIOWA7A6A5A4
ͼ7.1
11. ÔÚIBM PCϵͳÖУ¬Èç¹ûAENÐźÅδ²Î¼ÓI/O¶Ë¿ÚµØÖ·ÒëÂ룬»á³öÏÖʲôÎÊÌ⣿ÔÚûÓÐDMA
»ú¹¹µÄÆäËü΢»úϵͳÖУ¬ÊÇ·ñ´æÔÚͬÑùµÄÎÊÌ⣿
´ð£ºÔÚIBM PCϵͳÖУ¬Èç¹ûAENÐźÅδ²Î¼ÓI/O¶Ë¿ÚµØÖ·ÒëÂ룬Ôò»á³öÏÖDMA»ú¹¹ÓëI/O¶Ë¿Ú¾ºÕù×ÜÏßµÄÎÊÌâ¡£ÔÚûÓÐDMA»ú¹¹µÄÆäËû΢»úϵͳÖУ¬²»»á´æÔÚͬÑùµÄÎÊÌâ¡£
12. ÔÚ8088 CPU ¹¤×÷ÔÚ×î´ó·½Ê½×é³ÉµÄ΢»úϵͳÖУ¬ÀûÓÃ74LS244Éè¼ÆÒ»¸öÊäÈë¶Ë¿Ú£¬·ÖÅ䏸¸Ã¶Ë
¿ÚµÄµØÖ·Îª04E5H£¬ÊÔ»³öÁ¬½Óͼ¡£
½â£ºÁ¬½ÓͼÈçͼ7.2Ëùʾ¡£
ƬѡÐźÅ
ͼ7.2
13. ÔÚÉÏÌâµÄ»ù´¡ÉÏ£¬ÀûÓÃ74LS374Éè¼ÆÒ»¸öÊä³ö¶Ë¿Ú£¬·ÖÅ䏸¸Ã¶Ë¿ÚµÄµØÖ·ÎªE504H£¬ÊÔ»³öÁ¬
½Óͼ¡£ÈôÉÏÌâÖÐÊäÈë¶Ë¿ÚµÄbit3¡¢ bit4ºÍbit7 ͬʱΪ1£¬½«ÄÚ´æBUFFER¿ªÊ¼µÄÁ¬Ðø10¸ö×Ö½Úµ¥ÔªµÄÊý¾ÝÓÉE504H¶Ë¿ÚÊä³ö£»Èô²»Âú×ãÌõ¼þ£¬ÔòµÈ´ý¡£ÊÔ±àд³ÌÐò¡£ ½â£ºÁ¬½ÓͼÈçͼ7.3Ëùʾ¡£
ͼ7.3
³ÌÐòÈçÏ£º MOV CX ,10
LEA SI,BUFFER MOV DX,04E5H WAIT1£ºIN AL,DX AND AL,98H CMP AL,98H JNZ WAIT1 MOV DX,0E504H L1£ºMOV AL,[SI] OUT DX,AL INC SI LOOP L1
HLT
14£®ÔÚ8086×î´óϵͳÖУ¬·Ö±ðÀûÓÃ2Ƭ74LS244ºÍ74LS273Éè¼Æ16λÊäÈëºÍÊä³ö½Ó¿Ú£¬ÆäÆðʼ¶Ë¿ÚµØÖ·Îª504H¡¢506H£¬»³öÓ²¼þÁ¬½Óͼ
½â£ºÓ²¼þÁ¬½ÓͼÈçͼ7.4Ëùʾ¡£
ͼ7.4 Ó²¼þÁ¬½Óͼ
9ÕÂϰÌâ
1.
ÏÂÁеØÖ·ÄÄЩÄܹ»·ÖÅ䏸8253/8254µÄ¼ÆÊýÆ÷0£¿ÎªÊ²Ã´£¿£¨23H¡¢54H¡¢97H¡¢51H¡¢FCH¡¢59H£© ½â£ºÒòΪÒѾԼ¶¨²ÉÓÃA2,A1×÷Ϊ8253µÄÄÚ²¿µØÖ·Ïߣ¬¶øÇÒ¼ÆÊýÆ÷0µÄµØÖ·Îª00£¬ËùÒÔÔÚÌâÖÐËù¸øµÄµØÖ·ÖÐÖ»ÓÐ51H,59HµÄA2ºÍA1ͬʱΪ0£¬¼´£ºA2A1=00. 2.
Èç¹û¼ÆÊýÆ÷0É趨Ϊ·½Ê½0£¬GATE0£½1£¬CLK0£½1MHz£¬Ê±³£ÊýΪN£½1000£¬Ç뻳öOUT0µÄ²¨ÐΡ£Èç¹û¼ÆÊýÆ÷1É趨Ϊ·½Ê½1£¬ÆäËü²ÎÊýÓë¼ÆÊýÆ÷0Ïàͬ£¬»³öOUT1µÄ²¨ÐΡ£
3.
±à³ÌʵÏÖ£º½«8253¼ÆÊýÆ÷0ÉèÖóɷ½Ê½4£¬²¢ÖÃʱ³£Êý10000£¬È»ºó´¦Óڵȴý״̬£¬Ö±µ½CEµÄÄÚÈÝ¡Ü1000ºóÔÙÏòÏÂÖ´ÐС£ ½â£º
MOV DX,COUNTD ;дÈë¼ÆÊýÆ÷0µÄ·½Ê½¿ØÖÆ×Ö MOV AL,00111000B OUT DX,AL
MOV DX,COUNTA ;ÉèÖüÆÊýÆ÷0µÄ³£Êý MOV AX,10000 OUT DX,AL XCHG AL,AH OUT DX,AL
L1: MOV DX,COUNTD ;дÈë¼ÆÊýÆ÷0µÄ·½Ê½¿ØÖÆ×Ö MOV AL,0H OUT DX,AL
MOV DX,COUNTA £»¶ÁÈëCE IN AL,DX MOV AH,AL IN AL,DX XCHG AL,AH
CMP AX,1000 £»ÅбðCEµ±Ç°´óС JA L1
4.
ÀûÓÃ8253¿ÉÒÔʵÏÖÈ·¶¨Ê±¼äµÄÑÓ³Ù£¬±à³ÌʵÏÖÑÓʱ10ÃëµÄ³ÌÐò¶Î£¨Éè¿ÉÒÔʹÓõĻù׼ʱÖÓΪ1MHz£©¡£ ½â£º±¾ÌâʹÓüÆÊýÆ÷0ºÍ¼ÆÊýÆ÷1£¬²¢ÇÒ¼ÆÊýÆ÷0µÄÊä³öOUT0×÷Ϊ¼ÆÊýÆ÷1µÄʱÖÓÊäÈëCLK1. ³ÌÐòÈçÏ£º MOV MOV MOV MOV
DX,COUNTD AL,00110100B DX,COUNTA
AX,10000 ;д¼ÆÊýÆ÷0ʱ³£Êý£¬·ÖƵµÃµ½100HzʱÖÓÆµÂÊ
;д¼ÆÊýÆ÷0·½Ê½¿ØÖÆ×Ö
OUT DX,AL
OUT DX,AL