<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > AT89C51單片機高速串行輸出口設計

AT89C51單片機高速串行輸出口設計

作者: 時(shí)間:2012-04-05 來(lái)源:網(wǎng)絡(luò ) 收藏

(與MCS-51兼容)口在方式0工作狀態(tài)下,使用移位寄存器芯片可以擴展多個(gè)8位并行I/O口。在LED點(diǎn)陣顯示屏應用系統中,一般都采用數據同步移位輸出方式,并使用移位寄存器芯片(如74LS595)擴展并行I/O口驅動(dòng)LED點(diǎn)陣顯示。LED 點(diǎn)陣顯示采用掃描方式,為不產(chǎn)生閃爍感,每秒需要傳送50屏點(diǎn)陣顯示數據,因此有大量的數據要通過(guò)同步移位的方式送到顯示驅動(dòng)電路部分,這就要求能夠快速地輸出數據。口在方式0工作狀態(tài)下,數據以fosc/12的波特率輸出,1個(gè)字節數據寫(xiě)入SBUF后,需檢查中斷標志位 TI是否為“1”并清“0”TI或延時(shí)幾個(gè)機器周期后才能繼續寫(xiě)入了一個(gè)數據,輸出速度慢。在LED點(diǎn)陣顯示屏應用系統中,系統與PC機之間的通訊需要使用單片機的口,顯示數據的同步移位輸只有另外擴展。本文介紹的串行同步移位輸(以下簡(jiǎn)稱(chēng)擴展串行口)電路,采用模塊化,給出基于 TTL和PLD兩種電路的實(shí)現方案,波特率提高到fosc,數據輸出不需要等待或延時(shí)。

本文引用地址:http://dyxdggzs.com/article/171685.htm

一、擴展串行口與單片機的連接

擴展串行口電路框圖如圖1所示。與并行存儲器芯片類(lèi)似,擴展串行口被視為一個(gè)外部RAM地址單元,直接掛接在的外部數據總線(xiàn)上,D0~D7為數據線(xiàn),CE為片選信號,WE為寫(xiě)脈沖信號,也是擴展串行口的輸出控制信號。AT89C51 外接晶體振蕩器的振蕩信號經(jīng)二個(gè)與非門(mén)整形后為擴展串行口提供時(shí)鐘脈沖XTAL2。DAT和CLK分別是擴展串行口的數據輸出端和同步移位脈沖輸出端。

29.gif

二、操作指令

假設AT89C51分配給擴展串行口的地址是0000H,使用MOVX@DPTR,A或MOVX@R0,A指令將數據寫(xiě)入擴展串行口并移位數據。下面的程序段將內部RAM數據區首址為30H的32字節數據送擴展串行口同步移位輸出:
MOV P2,#00H ;設置擴展串行口地址高8位
MOV R1,#30H ;設置內部RAM數據區首址
MOV R7,#32 ;輸出字節個(gè)數
LOOP:MOV A,@R1 ;從內部RAM數據區讀入1字節
INC R1 ;指向內部RAM數據區下一個(gè)地址單元
MOVX @R0,A ;數據送擴展串行口輸出
DJNZ R7,LOOP ;32字節未送完繼續
RET

三、基于TTL電路的方案和工作原理

30.gif

圖2是用TTL電路實(shí)現的擴展串行口電路。74LS74是有預置、清零功能的雙上升沿D觸發(fā)器,D1~D5構成8脈沖發(fā)生器(計數器原理),74LS165是8位并行輸入串行輸出移位寄存器。CPU執行MOVX@R0,A(或MOVX @DPTR,A)指令時(shí),數據被鎖存在74LS165中。產(chǎn)生8脈沖信號的時(shí)序如圖3所示。圖3中,Q0~Q5分別是6個(gè)D觸發(fā)器的輸出端,擴展串行口片選有效(CE=0),寫(xiě)脈沖WE到來(lái)時(shí),WR=0,在時(shí)鐘脈沖XTAL2的上升沿觸發(fā)器D0的輸出Q0=0,Q0復位Q5,使Q5=1;寫(xiě)脈沖結束后,WR=1,則WR·Q5=1,計數器的復位端無(wú)效,計數器開(kāi)始計數,同時(shí)在Q1端輸出方波脈沖;第8個(gè)脈沖結束后,Q5=1,則WR·Q5=0,計數器被復位,停止計數,等待下一個(gè)寫(xiě)脈沖。Q1端輸出的8個(gè)脈沖作為同步移位脈沖接74LS165的CLK2(15腳),同時(shí)也是擴展串行輸的同步移位脈沖輸出信號:由MOVX指令鎖存在74LS165中的數據在同步移位脈沖(CLK)的作用下,從擴展串行輸出口的數據端(DAT)輸出。

31.gif

32.gif

51單片機相關(guān)文章:51單片機教程



上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>