第九章 单片机 i/o 接口扩展及应用

Click here to load reader

Upload: fayre

Post on 18-Jan-2016

217 views

Category:

Documents


0 download

DESCRIPTION

第九章 单片机 I/O 接口扩展及应用. 本章要点: n I/O 接口的作用和功能及 I/O 接口的扩展方法 n 8255A 芯片的工作原理,使用 8255A 进行并口扩展的方法 n 8155 芯片的工作原理,使用 8155 进行并口扩展的方法 n 键盘的种类与接口技术 n LED 显示器的原理与接口技术 n LCD 显示器的原理与接口技术. 9.1 概述 1. 为什么要扩展 I/O 接口 - PowerPoint PPT Presentation

TRANSCRIPT

  • I/O n I/OI/On 8255A8255An 81558155n n LEDn LCD

  • 9.1 1.I/O /I/OCPU//

  • MCS5l4I/OP0~P3ROM/PROM8051/87514I/O/8031P0P22//I/OI/O

  • 2.CPUCPUI/O1CPUI/OCPUI/OCPUMCS-51

  • 2I/O I/OCPUI/OI/OZ80

  • 3. I/OI/OI/OI/OI/OTTLCMOS74373244I/O8255A8155I/O

  • 9.1.1 CPUCPU9-19-2

  • 9-1 9-2

  • CPU9-3FFH8031P1CPUP1.0BUSY=1CPUBUSY=0

  • MOV ADATALOOPJB P1.0 LOOP MOV R0#0FFH MOVX R0ACPUCPUCPU

  • 9.1.2 CPUCPUCPUCPU9-4

    9-4 CPU

  • PUSH AMOV ADATAMOV R0#0FFH MOVX R0APOP ARETICPUCPUCPUCPUCPUCPUCPU

  • 9.1.3 CPUCPUDMACPUCPUDMACPUDMADMA9-5

  • 9-5 DMADMA1CPU2CPUDMADMA345DMA6DMACPUCPUDMA9-6

  • 9-6 DMAMCS51DMAZ80CPU

  • 9.2 I/O P0P3TTLCMOSI/OP0P09.2.1 74LS24449-7 1A11A42A12A41Y11Y42Y12Y41G2G4 74LS2449-881Y11Y42Y12Y481A11A42A12A4CPU

  • 74LS2448 3,824HLZG0 >G1

  • 7FFFHMOV DPTR, #7FFFHMOVX A, @DPTR

  • 9.2.2 74LS37774LS37789-9OE074LS377CLKD0D7OE1CLK09-108D7D08Q7Q0I/OCLKMOVX RiAA74LS377

  • CkDQ1XXQ0 0 110 00X0XQ0

  • P2.574LS377DFFFHMOV DPTR #0DFFFHMOVX @DPTRA

    GCkDQ1XXQ0 0 110 00X0XQ0

  • 9.3 8255A9.3.1 I/OCPU8255AI/O8155RAMI/O8279/78/825082518237DMA8253/82959.3.2 8255A18255A

  • 8255A9-11

  • 1I/OABC 8255A884PAPBPC PA88PB88PC88PAPBPCPAPB2AB CPU8255AAPAPC47BPBPC03

  • 3 8255ACPUCPU8255AD0D7CPU4 A0A1CS8255ARDWR8255ACPUCPU8255ACPU8255APAPBPC

  • 28255A8255A9-121 D0D72PA0PA7A3PB0PB7B4PC0PC3C5PC4PC7C6A1A0A1A000AA1A001BA1A010CA1A0117RD RD0CPUABC8WR WR0CPUABC9CSCS010RESET

  • 38255AMCS518255AMCS519-139-13 8255AMCS511 8255AD0D7MCS51P0.0P0.72 8255A RESETMCS51RESETMCS518255A3 8255AWRRDMCS51WRRD4 8255AMCS51P2.78255A5 8255A A1A074LS373Q1Q08255A4

  • 6 8255AABCI/O9-13 8255AABC1A7FFCHB7FFDHC7FFEH7FFFH9.3.3 8255AI/O10 ABCC

  • 18AB4C2340MCS-51MOVX ADPTRMOVX DPTRA0ABC

  • 21 ABCACBC1I/O283341130C551C

  • 9-14 8255A1A

    11 9-14 8255A1A1 Strobe input AC4PC4AABC2PC2BB

  • IBFInput Buffer Full IBFCPURDCPUIBF0AC5PC5AIBFABClPC1BIBFB

  • INTRInterrupt Request CPUABINTEAINTEB A(PC4) BPC2 IBF11INTEINTRCPUCPUIBF0

  • 21 9-158255A1B1 OBFOutput Buffer Full OBFCPUCPUWRWROBFAC7PC7AOBFABC1PC1BOBFB

  • ACKAcknowledge ACK8255A8OBFAC6PC6AACKABC2PC2BACKB

  • INTR CPUAINTEAPC6ACKABINTEBPC2ACKBACKOBF1INTRINTRCPUCPUAC3PC3AINTRABC0PC0BINTRB

  • 12A28A5C345A32 AC5APC0PC2PB08I/O9-168255A2

  • INTR CPUCPC3 OBF CPUACPC7 ACK ACKAACKCPC6INTEl PC6/ STB 8255ACPC4INTE2 PC4/IBF CPUIBFCPC5

  • 9.3.4 8255A8255AC1.9-19-1 D71D6D500A0D6D501A1 D6D510A2D40AD41AD30C4D31D20B0D21B1D10BD1BD00C4D01

  • 7FFFHMOVDPTR7FFFHMOVA95H10010101MOVX DPTRA7FFFH8255AA0B1C442.CC9-2C10

  • 2.CC9-2C109-2 C

    D70CD3D2D1PC2D3D2D1010D0D01D00PC71MOVDPTR7FFFHMOVA0FHMOVDPTRA00001111

    D7D6 D5 D4D3 D2 D1D00000PC0=1=0001PC1010PC2011PC3100PC4101PC5110PC6111PC7

  • D70CD3D2D1PC2D3D2D1010D0D01D00PC71MOVDPTR7FFFHMOVA0FHMOVDPTRA00001111

  • CAB19-3A1D3D2D1100PC41D0109H9-3 1

  • 9.4 81559.4.1 815581552568RAM86I/O14MCS-51181559-17 8155

  • 2568RAM2I/O1A8I/OPA7PA02B8I/OPB7PB03C6I/OPC5PC048583/l 4/8155405V 1RAM

  • 8155RE5ET RESET5s8155ABC/ALE ALEAD0AD78IO/I/O/RAM8155AD0AD7 /88155RAMI/OAD0AD7ALE8l55ALEAD0AD7IO/ I/ORAMIO/1AD0AD78155 I/OI/OIO/0AD0AD78155RAMRAM

  • ALE815500AD0AD7RAMIO/0I/OIO/1AD0AD7CPUAD0AD78155RAMI/OPA0PA7 AI/O8PB0PB7 BI/O8PC0PC5 CI/O6T/IN T/OUT

  • VCC 5VVSS 28155AB//CAB9.4.2 8155MCS-518155256BRAMI/O/9-18805181559-18 8155MCS51 18155/AD0AD7MCS-51/P0.0P0.7

  • 9-18 8155MCS51

  • 28155 RESETALERDWRMCS513MCS-51P2.78155 81554MCS-51P2.08155 IO/8155 I/ORAMRAM81RAM7E00H7EFFHRAM800HFFHI/O7F00H80A7F01HB7F02HC7F03H/87F04H/87F05H

  • 9.4.3 8155/19-19 8155 8155CPU

  • 9-198155D0AD1BD3D2ABC0 0 1ALT1AB/C1 1 2ALT2AB/C0 1 3ALT3A/B/PC0AINTRAPC1ABFAPC2AAPC3~PC5l 0 4ALT4AB/PC0~PC2A3PC3BINTRBPC4BBFBPC3BBC3BC3A

  • D4AD5BD7D60 0 /0 1 /1 0 1 1 29-20 8155 81558155 I/OCPU815500H/CPU00H00H9-20 8155

  • D0INTRA AD1BFA A/10A10ACPU10D2INTEA AlAD3INTRBBD4BFBB/10D5INTRBB1BD6TIMER1/

  • D79.4.4 8155/18155815529-19 815502815514T/IN10T/OUT8l55

  • 9-21 8155 A2A1A01008TLA2A1A010l8THTH6TL1413FFFH16383TH249-214116595:421

  • 9.4.5 8155 815518155RAMMCS-518155256B RAMRAMMOVXIO/=09-18P2.0=016A808155 I/O9-1CPU8155 RAM30H88HMOV DPTR#0030HRAMDPTRMOV A#88HAMOVX @DPTRARAM30H

  • 28155ABCALT18155D3D200D0D1AB8155ABCALT28155D3D211D0D1AB9-29-188155 AB2CMOV DPTR#7F00H81550MOV A#0EHALT2

  • MOVX @DPTRAINC DPTRAMOVX A@DPTRAINC DPTRBMOVX @DPTRABCLR CRRC A2INC DPTRCMOVX @DPTRAC

  • 381551ALT3 ABC3A38155D3D20181559-49-4 ALT3

    2 ALT4 ABC3AC3B8155D3D21081559-5

  • 9-38155 B8031RAM 40HAPC18031P1.0MOV DPTR#7F00H8155MOV A#29HABALT4SETB IT0MOV IE#81HSJMP $MOV DPTR#7F02H8155 BMOVX A@DPTRBMOV 40HAWAITJNB P1.0 WAITAMOV DPTR#7F01H8155 AMOVX @DPTRARETI

  • 4.//TLTH29-49-188155 TIN1008155 TOUT

  • MOV DPTR#7F00H8155MOV A#0C0HMOVX @DPTRAMOV DPTR#7F04H81558MOV A#64H100MOVX @DPTRA8INC DPTR81558MOV A#80HMOVX @DPTRA

  • 9.5 8279 /9.5.1 82798279IntelI/O8279MCS511827982799-221I/O DB7~0CPU82799-22 8279 2

  • 8279NN2~31100KHz500ns3 4SL3SL04/1616LED3/88RL0~RL788SL3SL04LED48

  • 4 RL7RL0FIFO RAM5FIFO/RAM FIFO/RAM88RAMFIFO RAMFIFOFIFO RAMRAMFIFO RAMIRQ=1CPUIRQCPU6RAM 827916CPU8279CPU/RAM

  • 282799-23 82798279409-231D7D0CPU8279/2CLK82793RESETRESETl8279116823N31408279CPU5A0/A01CPU8279CPU8279A006

  • 7IRQFIFO/RAMIRQCPURAMIRQRAMIRQIRQ8SL3SL0411619RL7RL010SHIFT 11CNTL/STB/12OUTA3OUTA0OUTB3OUTB0 AB488OUTA3OUTB013

  • 3827982793 18279N FIFO RAMN FIFO RAM

  • 28279RAMRAM 1 13RAMCPUIRQl19.5.2 82791.82798279827981 9-

  • DDD4D3DD 00 801 1610 811 16KKKD2D1D0KKK 000 001 010 N011 N100 101 110 111

  • 2 82799-7 9-7

    PPPPPD4D0231100kHzCLK2MHZPPPPP10100B203FIFO/RAM FIFO/RAM9-8

  • AID41A10CPUAAAAI1CPUAAA1AAAD2DlD0FIFO/RAMFIFO/RAMRAMAIAAA4RAM RAMRAM9-9 9-9 RAM

    AID41AI1CPU1AAAAD3D0RAMRAMCPURAM 5RAM RAMRAM9-10

  • AID41AI11AAAAD3D0RAMRAMCPURAM 6/ RAMRAM9-11 9-11 /

    4OUTA0OUTA3OUTB0OUTB344ABIWAD3IWBD2ABRAMIWA1IWB1ABRAMCPURAMABBLABLBABBLA1BLB1ABBLA0BLB0

  • 7 FIFO/RAMRAM9-12 9-12

  • CD CD CDD4D3D2 RAMCD CD CD 1 0 RAM01 1 0 RAM20H1 1 1 RAM10 CA1D3D2CFD1FIPO RAMCFD11FIFO RAMIRQRAM0CAD0CAD01FIFO RAMRAMD3D2RAM100sCPURAM8/ 9-13

  • 1E1IRQ2NE182798279FIFOS/E1FIFO RAM8827982790A012.FIFO RAM9-13

  • D7DUD71RAMRAMD6S/E/8279S/ElRAM8279NS/E=1D5OFIFO RAMD5O18D4UFIFO RAMD4U1FIFO RAMD3FFIFO RAMD3F1FIFO RAM8D2D1D0N N NFIFO RAM

  • 9.6 9.6.1

  • 5ms10 mst2P1.nt0t4P1.nCPURC

  • 2

    I/OI/O9-265630012299-26015160F16MON17EXEC

  • 18155C0PC5PC0000000PB4PB0PB4PB01111110PB4PB0121020 ms9-268155C68155 3019-268155 C

  • 0PB0PB4PB0PB41010PB0PB4000PC5PC011110lPB4PB01110101011116116107H9-27 4CPU

  • 9-27 3CPUCPUCPU10msCPUCPUCPUCPUCPUCPU

  • 9-28 9-284480518051P14P1.0P1.3P1.4P1.7P1.3P1.00000CPUCPURETI9.6.2 8155I/O81559-298155I/O

  • 9-29 8155I/O 9-29PC0PC745VPA0PA7CPUA0PC0PC31PC0PC3

  • PA0PA00PC0PC31PA00PC0PC3lPA1PA79.6.3 82799-30827980318279DB0DB78031P0A074LS373CLKALEIRQ8031P2.7

  • 8279CPURL0RL7RLORL7 9-30 8279I/O

    8279SL2SL074LSl3889-3064RL0RL7SHIFTCNTLSTR64644256

  • 1SL2SL074LSl380SL2SL0000007RL0RL70SL2SL0RL0RL7SL2SL074LSl38RL0RL710.3ms1827982798279/MOV DPTR#7FFFH/DPTRMOV A#0D1HAMOVX @DPTRAWAITMOVX [email protected]#34HMOVX@DPTRAMOVXA#00H/AMOVX@DPTRA

  • 28279PUSHPSWMOVA#40HFIFO RAMMOV A#7FFFH/MOVX@DPTRAMOVDPTR#7EFFHDPTRMOVXA@DPTRALJMPKEY1KEY1POPPSWRETIKEY1

  • 9.6.4 LEDLight Erniting Diode LED1LED9-31 LEDLED8789-31a09AF

  • 9-31 LED

  • LED9-31b9-31cLED1LED081bc2abged9-69-6

    7abc0000011107H711111000F8H9-7

  • 9-32 MC14495LED2LEDLEDLEDLEDLED

  • 1 MC14495LED9-32BCDLEDABCD0110B61110BEMC1449580319-33LED0011000BP1LED30000011BP1LED0I/O9-33 LED 2

  • 9-34LED81556LEDBLED8155 CLEDG8155/8000H

  • A8001HB8002H9-34 LED C8003H16BCDRAMLEDRAM20H~25H07H13H04H00H00H02H7.4002LED2004.7

  • 9-59-3461995.620H~25H6DISPMOV A#06H8155CBMOV DPTR#8000H8155MOVX @DPTRADISP1MOV R0#20HMOV R3#FEHMOV AR3LD0MOV DPTR#8003H8155 CMOVX @DPTRALEDMOV DPTR#8002H8155 BMIV A@R0AADD A#13HMOVC A@A+PCMOVX @DPTRAB

  • ACALL DELAY1INC R0MOV AR3LEDJNB ACC.5LD16LEDRL AMOV R3ALEDAJMP LD0LD1RET

    DATBDB 0C0H0F9H0A4H0B0H99HDB 92H82H0F8H80H90HDB 88H83H0C6H0A1H86HDB 8EH0FFH0CH89H7FH0BFHDELAYMOV R7#02HDELY1MOV R6#FFHDELY2DJNZ R6DELY2DJNZ R7DELY1RET

  • 9.6.5 LCDLCDXCRTLCD1LCD13V5V2LCD3LCD

  • 4LCD567LCD2LCDLCD90903LCD CPU14LCDICM7211AM

  • 9-35 ICM7211AM 9-35ICM7211AMICM7211AM8LCDBPLCDOSC16kHzOSCICM7211AMLCD284LCDDS1DS224BFFFH7FFFH

  • 3P MOV A 00101110BDS11DS20B0B314 MOV DPTR 7FFFH U2 MOVX DPTRA 2LCMRAMROMCPULCMLCM814040MDLS16265R1 MDLS16265B5716HD44780ROM19216057325l085745l0

  • 2MDLS16265BMCS-519-36

  • 9-36 MDLS16265B9.6.6 TPP16AMP16JASCIITPP16A 1TPP16ATPP16A12240ASCII3N41657560255

  • 719689BASICBASIC10Centronic2TPP16ATPP16AIntel 80392716EPROMEPSON MODEL 150III/O3TPP16ACentronic20Centronic9-8

  • DB7DB0BUSYo50ms9.6.7 MCS51

  • BUSY19-3780518255AACPC0PC79-378255AA8000H 0B8001H C8002H PC03PC478003H 88H8051RAM30H10ASCII

  • MOV A88HMOV DPTR8003HMOVX DPTRA8255AMOV R030HMOV R10AHLOOP0:MOV DPTR,#8002HCLOOP1:MOVX ADPTRCJB ACC.7LOOP1BUSY1MOV DPTR8000HAMOV A@R0RAMMOVX @DPTRA8255AAMOV DPTR8002HCMOV A00HMOVX @DPTRA0INC R0MOV A01H

  • MOVX @DPTRA1DJNZ R1LOOP02CPU9-38

  • 74LS37374LS138INT08051E0HRAM40H10MAINSETB IT0SETB EX0SETB PX0SETB EAMOV R040HRAMMOV R10E0HMOV R209H9MOV A@R0RAMMOVX @R1ALOOPSJMP LOOP

  • ORG 0003HLJMP PRINTPINTPUSH ACCPUSH PSWINC R0MOV A@R0MOVX @R1ADJNZ R2NEXTCLR EX0NEXTPOP PSWPOP ACCRETI

  • I/OI/O8255A815582798255A383CAB815528I/O6I/O14/256B SRAM4CAB8279I/O81558279LEDLCD

  • 9-1 I/O?9-2 P2I/O9-3 82559-4 82559-5 82559-6 8255 CAB19-7 82559-8 8255A0B0C4 0409-9 81559-10 8155

  • 9-11 8155??9-12 8155ABC/11ms9-13 815582559-14 MCS-51ALEfosc=6MHz8155 TIN8155 TOUT 10ms9-15 P2.1P2.08155IO/8155RAM 30H3FH8031RAM40H9-16 9308279FEFFHFFFFH19-17 9308279IRQ8031INT1?9-18LED9-19?9-20 9-219-228279LED9-23LED9-24