AT89S52單片機(jī)并行I/O端口
單片機(jī)I/O端口是數(shù)據(jù)輸入緩沖、數(shù)據(jù)輸出驅(qū)動及鎖存多項(xiàng)功能I/O電路,是單片機(jī)對外部實(shí)現(xiàn)控制和信息交換的必經(jīng)之路。AT89S52單片機(jī)I/O端口有串行和并行之分,有P0、P1、P2和P3四個(gè)8位并行I/O端口,共占32根引腳,每一個(gè)I/O端口都能獨(dú)立地用作輸入或輸出;有1個(gè)串行I/O端口,一次只能傳送一位二進(jìn)制信息。
1.并行I/O端口
P0口為三態(tài)雙向口,P1、P2、P3口為準(zhǔn)雙向口。
(1)P0端口
P0口字節(jié)地址80H,位地址80H~87H。P0口除作為準(zhǔn)雙向通用I/O接口使用外,還有更重要的兩種功能:分時(shí)復(fù)用為地址總線和數(shù)據(jù)總線。P0口輸出時(shí)能驅(qū)動8個(gè)LSTTL負(fù)載,即輸出電流不小于800μA。P0口位結(jié)構(gòu)如圖1所示。
圖1 P0口位結(jié)構(gòu) 當(dāng)P0口用作輸出口使用時(shí),在驅(qū)動NMOS電路時(shí)應(yīng)外接上拉電阻;輸入操作有讀引腳和讀鎖存器之分。
(2)P1端口
P1口字節(jié)地址90H,位地址90H~97H。P1口只有作為通用輸入/輸出接口的功能。P0口位結(jié)構(gòu)如圖2所示。
圖2 P1口位結(jié)構(gòu) AT89S52的P1.0和P1.1是多功能引腳,P1.0可作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)觸發(fā)輸入端T2,P1.1可作定時(shí)器/計(jì)數(shù)器2的外部控制輸入端T2EX。
(3)P2端口
P2口字節(jié)地址A0H,位地址A0H~A7H。P2口是一個(gè)8位準(zhǔn)雙向I/O口,具有兩種功能。一是作通用I/O口用,與P1口相同。二是作系統(tǒng)擴(kuò)展外部存儲器的高8位地址總線,輸出高8位地址,與P0口一起組成16位地址總線。P2口位結(jié)構(gòu)如圖3所示,
圖3 P2口位結(jié)構(gòu) (4)P3端口
P3口字節(jié)地址B0H,位地址B0H~B7H。P3口也是一個(gè)8位準(zhǔn)雙向I/O口,既可以字節(jié)操作,也可以位操作;既可以8位口操作,也可以逐位定義口線為輸入線或輸出線;既可以讀引腳,也可以讀鎖存器,實(shí)現(xiàn)“讀一修改一輸出”操作。P3口的位結(jié)構(gòu)如圖4。
圖4 P3口位結(jié)構(gòu)
P3口除具有與P1口同樣的功能外,還具有第二功能,如表1所示
表1 P3口的第二功能 2.串行I/O端口
AT89S52有一個(gè)全雙工的可編程串行I/O端口。這個(gè)串行I/O端口既可以在程序控制下將CPU的8位并行數(shù)據(jù)變成串行數(shù)據(jù)一位一位地從發(fā)送數(shù)據(jù)線TXD發(fā)送出去,也可以把串行接收到的數(shù)據(jù)變成八位并行數(shù)據(jù)送給CPU,而且這種串行發(fā)送和串行接收可以單獨(dú)進(jìn)行,也可以同時(shí)進(jìn)行。
AT89S52串行發(fā)送和串行接收利用了P3口的第二功能,即利用P3.1 引腳作為串行數(shù)據(jù)的發(fā)送線TXD和P3.0引腳作為串行數(shù)據(jù)的接收線RXD。
編輯:admin 最后修改時(shí)間:2018-05-08