41564736.doc¼¯ - 19 - ±àÕߣºÓ÷Æäɽ
(3)´ÓͨÐŽӿÚCOM1½ÓÊÕÒ»¸ö×Ö·û£¬²¢·ÅÈëÄÚ´æ? (4)ͨ¹ýͨÐŽӿÚCOM1ÏòÍâ·¢ËÍ1¸ö×Ö·û?? ´ð£º(1)¡¢MOV DL, ?A?
MOV AH, 05H INT 21H (2)¡¢MOV DX, 0 £»0ºÅ´òÓ¡»ú
MOV AL, ?P? MOV AH, 0 INT 17H
(3)¡¢MOV AH, 03H £»´ÓͨÐŽӿÚCOM1½ÓÊÕÒ»¸ö×Ö·û
INT 21H MOV BUF, AL (4)¡¢MOV DL, ?C? £»Í¨¹ýͨÐŽӿÚCOM1·¢ËÍ×Ö·ûC
MOV AH, 04H INT 21H 7.12 ÀûÓÃDOS ϵͳ¹¦Äܵ÷Óã¬Íê³É½«¼üÅÌÊäÈëµÄСд×Öĸת»»Îª´óд×Öĸ²¢Êä
³öÏÔʾ£¬Ö±µ½ÊäÈë?$?×Ö·ûʱֹͣÊä³ö ´ð£ºÍêÕû³ÌÐòÈçÏ£º CODE SEGMENT
ASSUME CS:CODE
START: MOV AH, 02H
MOV DL, 0DH £»ÏÔʾ¡°»Ø³µ¡± INT 21H MOV AH, 02H MOV DL, 0AH £»ÏÔʾ¡°»»ÐС± INT 21H
INPUT: MOV AH, 01H £»¼üÅÌÊäÈëÒ»¸ö×Ö·û»ØÏÔ¹¦ÄÜ
INT 21H CMP AL, ?$? £»?$?×Ö·û£¿ JE INPUT_END CMP AL, ?a? £»?a~z?×Ö·û£¿ JB INPUT CMP AL, ?z? JA INPUT
AND AL, 0DFH £»Ð¡Ð´×Öĸת»»Îª´óд×Öĸ MOV AH, 02H MOV DL, AL £»ÏÔʾ´óд×Öĸ INT 21H JMP INPUT
INPUT_END: MOV AX, 4C00H £»·µ»ØDOS¹¦ÄÜ
INT 21H
CODE ENDS
END START
41564736.doc¼¯ - 20 - ±àÕߣºÓ÷Æäɽ
7.13 ´ÓÄÚ´æµ¥ÔªBUF¿ªÊ¼µÄ»º³åÇøÖÐÓÐ7¸ö8λÎÞ·ûºÅÊý£¬ÒÀ´ÎΪ53H¡¢0D8H¡¢
67H¡¢82H¡¢0A6H¡¢9EH¡¢0F4H¡£±à³ÌÕÒ³öËüÃǵÄÖмäÖµ²¢·ÅÈëRESµ¥Ôª£¬ÇÒ½«½á¹ûÒÔ¡°(RES)£½£¿¡±µÄ¸ñʽÏÔʾÔÚÆÁÄ»ÉÏ¡£ 7.14 Éèij²âÊÔϵͳÖУ¬1ºÅ¶Ë¿ÚΪ²âÊÔ¿Ú£¬ËùµÃÊý¾ÝÊÇ0¡«9Ö®¼äµÄÊ®½øÖÆÕûÊý£»
2ºÅ¶Ë¿ÚΪÏÔʾ¿Ú£¬¶ÔÓ¦ÓÚÊý×Ö0¡«9µÄLEDÆß¶Î¹²ÒõÏÔʾÂëÒÀ´ÎΪ£º3FH¡¢06H¡¢5BH¡¢4FH¡¢66H¡¢6DH¡¢3DH¡¢07H¡¢7FH¡¢6FH¡£±àдһ¶Î²é±íËÍÏԵijÌÐò£¬ÒªÇóÏÈ´Ó²âÊÔ¿Ú¶ÁÈëÒ»¸öÊý¾Ý£¬ÔÙ²é±í½«ÏàÓ¦µÄÏÔʾÂë´ÓÏÔʾ¿ÚËͳö£¬Èç´Ë·´¸´½øÐÐÖ±ÖÁ¶ÁÈëÊý¾Ý0FFHΪֹ¡£ 7.15 ±à³ÌʵÏÖÒÔϲÙ×÷£º´Ó¼üÅÌÊäÈë4¸öÊý×Ö£¬·Ö±ð×÷ΪÁ½¸ö10¡«99Ö®¼äµÄÊ®
½øÖÆÊý¡£ÇóËüÃǵĺͣ¬²¢°Ñ½á¹ûÒÔÈýλʮ½øÖÆÊýµÄÐÎʽÏÔʾÔÚÆÁÄ»ÉÏ¡£ÒªÇóÊäÈë»ØÏÔµÄÁ½¸ö¼ÓÊýÓëËÍÏԵĺÍÖ®¼äÓÐÊʵ±µÄ·Ö¸ô£¬ÒÔÊ¾Çø±ð¡£¸ñʽ×ÔÐÐÄⶨ¡£
´ð£ºÍêÕû³ÌÐòÈçÏ£º CODE SEGMENT
ASSUME CS:CODE
START: MOV AH, 02H
MOV DL, 0DH £»ÏÔʾ¡°»Ø³µ¡± INT 21H MOV AH, 02H MOV DL, 0AH £»ÏÔʾ¡°»»ÐС± INT 21H CALL INPUT £»ÊäÈë2Êý²¢×ª»»ÎªÊ®½øÖÆÊýËÍBL MOV AL, BL £»×ª»»µÄÊ®½øÖÆÊý±£´æÔÚALÖÐ CALL INPUT £»ÊäÈë2Êý²¢×ª»»ÎªÊ®½øÖÆÊýËÍBL ADD AL, BL DAA
MOV BH, 0 ADC BH, 0 £»½«½øÎ»Î»±£´æÔÚBHÖÐ MOV BL, AL £»½«ÇóºÍ½á¹û±£´æÔÚBLÖÐ CALL OUTPUT £»ÊäÈëÏÔʾ×Ó³ÌÐòµ÷Óà INT 20H £»½áÊø£¬·µ»ØDOS
INPUT PROC
PUSH AX
MOV AH, 01H £»¼üÅÌÊäÈëÒ»¸ö×Ö·û¹¦ÄÜ INT 21H
AND AL, 0FH £»ASCIIÂëת»»Îª¶þ½øÖÆÊý MOV BL, AL MOV CL, 4 SHL BL, CL £»BLÄÚÈÝ×óÒÆËÄλ MOV AH, 01H £»¼üÅÌÊäÈëÒ»¸ö×Ö·û¹¦ÄÜ
41564736.doc¼¯ - 21 - ±àÕߣºÓ÷Æäɽ
INT 21H AND AL, 0FH OR BL, AL MOV AH, 02H MOV DL, ' '
£»ASCIIÂëת»»Îª¶þ½øÖÆÊý £»ºÏ³ÉΪһ¸öÁ½Î»µÄÊ®½øÖÆÊý £»ÏÔʾ¿Õ¸ñ
INT 21H POP AX RET
INPUT ENDP
OUTPUT PROC
PUSH AX PUSH DX PUSH CX
MOV AH, 02H MOV DL, ' ' INT 21H MOV DL, BH OR DL, 30H
MOV AH, 02H INT 21H MOV DL, BL MOV CL, 04H SHR DL, CL OR DL, 30H MOV AH, 02H INT 21H MOV DL, BL AND DL, 0FH OR DL, 30H
MOV AH, 02H INT 21H POP CX POP DX POP AX RET
OUTPUT ENDP CODE ENDS
END START
ASCIIÂë
ASCIIÂë
ASCIIÂë
£»ÏÔʾ¿Õ¸ñ£»ÏÔʾ½øÎ»Î»£»½øÎ»Î»×ª»»Îª£»ÏÔʾÇóºÍ½á¹û¸ßλ£»½á¹û¸ßλת»»Îª£»ÏÔʾÇóºÍ½á¹ûµÍλ£»½á¹ûµÍλת»»Îª41564736.doc¼¯ - 22 - ±àÕߣºÓ÷Æäɽ
µÚ 8 Õ ¼ÆÊýÆ÷/¶¨Ê±Æ÷ÓëDMA¿ØÖÆÆ÷
8.1 8.2 8.3 8.4 8.5
΢»úϵͳÖеÄÍⲿ¶¨Ê±ÓÐÄÄÁ½ÖÖ·½·¨£¿ÆäÌØµãÈçºÎ£¿ 8253¼ÆÊý/¶¨Ê±Æ÷ÓÐÄÄÐ©ÌØµã£¿ 8253³õʼ»¯±à³Ì°üÀ¨ÄÄÁ½ÏîÄÚÈÝ£¿ ´ð£ºÉ趨·½Ê½¿ØÖÆ×ֺͼÆÊý³õʼֵ¡£
8253ÓÐÄļ¸ÖÖ¹¤×÷·½Ê½£¿Çø·Ö²»Í¬¹¤×÷·½Ê½µÄÌØµãÌåÏÖÔÚÄ½Ã棿 Éè8253оƬµÄ¼ÆÊýÆ÷0¡¢¼ÆÊýÆ÷2ºÍ¿ØÖƿڵØÖ··Ö±ðΪ04B0H¡¢04B4H¡¢04B6H¡£¶¨Ò弯ÊýÆ÷0¹¤×÷ÔÚ·½Ê½3£¬CLK0Ϊ5MHz£¬ÒªÇóÊä³öOUT0Ϊ1KHz·½²¨£»¶¨Ò弯ÊýÆ÷2ÓÃOUT0×÷¼ÆÊýÂö³å£¬¼ÆÊýֵΪ1000£¬¼ÆÊýÆ÷¼Æµ½0ʱÏòCPU·¢³öÖжÏÇëÇó£¬CPUÏìÓ¦ÕâÒ»ÖжÏÇëÇóºó¼ÌÐøÐ´Èë¼ÆÊýÖµ1000£¬¿ªÊ¼ÖØÐ¼ÆÊý£¬±£³ÖÿһÃëÖÓÏòCPU·¢³öÒ»´ÎÖжÏÇëÇó¡£ÊÔд³ö¶Ô8253µÄ³õʼ»¯³ÌÐò£¬²¢»³öÓ²¼þÁ¬½Óͼ¡£ ´ð£ºÓ²¼þÁ¬½ÓͼÈçÏ£º
D7~D0 D7~D0 S2 WR IOWC S1 RD IORC S0 INTA 8253 8259 1Hz 8288 IR INTR OUT2 8086CPU CLK0 A9 »òÃÅ 5MHz OUT0 G2A Y0 A8 7432 GATE0 74LS138 A10 +5V G2B 7400 A6 GATE2 G1 A7 CLK2 C Y5 A5 CS B Y6 A4 A Y7 A3 A1 A2 A0 A1
8253µÄ³õʼ»¯³ÌÐò¶ÎÈçÏ£º
INIT8253: MOV DX, 04B6H £»¿ØÖÆ¿Ú
MOV AL, 37H £»¼ÆÊýÆ÷0·½Ê½3 OUT DX, AL
MOV DX, 04B0H £»¼ÆÊýÆ÷0
MOV AX, 5000H £»¼ÆÊýÖµ=5MHz/1kHz=5000 OUT DX, AL