΢»úÔ­Àí»Æ±ù°æ--×÷Òµ´ð°¸

17£®ADC0809ºÍ8255AÁ¬½ÓÈçͼ8.81Ëùʾ¡£8255AµÄA¿Ú¹¤×÷ÓÚ·½Ê½1ÊäÈë¡£µ±ADC0809ת»»½áÊøÊ±£¬EOCµÄÉÏÉýÑØ´¥·¢µ¥ÎÈ̬µç·DW£¬DWÊä³öµÄ¸ºÂö³å×÷ΪѡͨÂö³å£¬½«ADC0809µÄÊä³öÊý¾ÝËø´æ½øA¿Ú¡£ÓÃÖжϷ½Ê½ÒÀ´Î½«IN7¡«IN0²ÉÑùÒ»±é£¬·Åµ½BUFFER¿ªÊ¼µÄÊý¾Ý»º³åÇø£¬ÊÔ±à³Ì¡£Éè8255A¿ÚµØÖ·Îª200H¡«203H£¬8259µÄµØÖ·Îª020H¡¢021H£¬IRQ2ÖжÏÀàÐͺÅΪ0AH£¬8259Òѳõʼ»¯¡£

ͼ8.81 ½â£º

8255µÄPC7Ϊ1Êä³öÆô¶¯Ðźţ¬PC0¡«PC2ʵÏÖͨµÀÑ¡Ôñ£¬A/Dת»»½áÊøÐźſɴÓPC4»ñµÃ£¬PC3Ϊ1Êä³öÖжϡ£ £»Ö÷³ÌÐò

STACK SEGMENT STACK

STA DB 20 DUP£¨£¿£© TOP LABEL WORD STACK ENDS DATA SEGMENT

BUFFER DB 8 DUP£¨£¿£© DATA ENDS CODE SEGMENT

ASSUME CS£ºCODE£¬DS£ºDATA£¬SS£ºSTACK START£º MOV AX£¬DATA MOV DS£¬AX MOV AX£¬STACK MOV SS£¬AX

MOV SP£¬OFFSET TOP

PUSH DS £»ÖжÏÏòÁ¿ËÍÖжÏÏòÁ¿±í MOV AX£¬SEG ADINT MOV DS£¬AX

MOV DX£¬OFFSET ADINT MOV AL£¬0AH MOV AH£¬25H INT 21H POP DS

MOV DX£¬021H £»¿ª·ÅIRQ2ÖÐ¶Ï IN AL£¬DX

AND AL£¬1111 10llB OUT DX£¬AL

MOV DI£¬OFFSET BUFFER £»»º³åÇøÆðʼµØÖ·ËÍDI STD £»DFÖÃ1

STI £»¿ªÖÐ¶Ï MOV CX£¬8 MOV BL£¬90H

NEXT£ºMOV DX£¬202H

MOV AL£¬BL

OUT DX£¬AL £»Æô¶¯0809 AND AL£¬7FH OUT DX£¬AL

WAIT£ºIN AL£¬DX TEST AL£¬10H

JNZ WAIT £»¼ì²âPC4״̬£¬·Ç0£¬A/Dת»»Ã»½áÊø MOV AL£¬07H MOV DX£¬203H

OUT DX£¬AL £»PC3ÖÃ1£¬Êä³öÖÐ¶Ï HLT

INC BL LOOP NEXT

CLI £»²É¼¯Íê8¿Ú£¬½áÊø MOV AH£¬4CH INT 2IH £»ÖжϷþÎñ³ÌÐò

ADINT PROC NEAR

PUSH DX MOV DX£¬200

IN AL£¬DX £»¶Áȡת»»½á¹û STOSB £»ËÍÖ¸¶¨ÄÚ´æµ¥Ôª MOV DX£¬20H £»·¢ÖжϽáÊøÃüÁî MOV AL£¬20H OUT DX£¬AL POP DX

IRET

ADINT ENDP CODE ENDS

END START

18£®ADCµÄÒýÏßͼ¼°¹¤×÷ʱÐòÈçͼ8.82Ëùʾ¡£ÊÔ½«´ËADCÓë8255ÏàÁ¬½Ó£¬²¢±àд°üÀ¨³õʼ»¯³ÌÐòÔÚÄڵġ¢±ä»»Ò»´ÎÊý¾Ý²¢½«Êý¾Ý·ÅÔÚDATAÖеijÌÐò¡£

ͼ8.82

19£® ÊÔÀûÓÃ8255A¡¢ADC0809Éè¼ÆÒ» IBM PC»ú A£¯Dת»»½Ó¿Ú¿¨£¬8255AµÄµØÖ·Îª02C0H¡«02C3H£¬ÓÉϵͳ°åÉϵÄ8253¶¨Ê±Æ÷0¿ØÖÆÃ¿¸ô5Ãë²ÉÑùÒ»±éADC0809µÄ8·ģÄâÊäÈ룬²¢½«²É¼¯µÄÊý×ÖÁ¿ÏÔʾÓÚCRTÆÁÄ»ÉÏ¡£ ½â£º

20£®¼òÊö82380DMA¿ØÖÆÆ÷Óë8237µÄ¼æÈÝÐÔ¡£

21£®82380DMA¿ØÖÆÆ÷ÖУ¬Èç¹ûÉèÖÃΪȫѭ»·ÓÅÏȼ¶£¬Í¨µÀ2×îµÍÓÅÏȼ¶£¬Í¨µÀ4×îµÍÓÅÏȼ¶¡£Ôò¿ªÊ¼Ê±¸÷ͨµÀµÄÓÅÏÈ˳ÐòÊÇÔõÑùÅÅÁеģ¿ÈôͨµÀ2Íê³ÉDMA·þÎñºó£¬¸÷ͨµÀµÄÓÅÏÈ˳ÐòÓÖÊÇÈçºÎÅÅÁеģ¿

22£®¼òÊö82380ÖжϿØÖÆÆ÷PICµÄ¹¦ÄÜ¡£

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)