<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è) > 嵌入式系統 > 設計應用 > 20天89C51單片機總結

20天89C51單片機總結

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

看了怎么久的單片機做個(gè)總結。其實(shí)就芯片來(lái)說(shuō)單片機沒(méi)想象的那么復雜!就40個(gè)引腳。其中P0~P3口占了32個(gè)。一個(gè)接地一個(gè)接電源,兩個(gè)振蕩引腳。一個(gè)EA引腳ROM的起始地址選擇端。一個(gè)ALE/Vpp片外地址鎖存器充許引腳/線(xiàn)編程電源輸入端。PSEN片外ROM充許使能端。當然還有個(gè)復位REST引腳。其中P3口全部都有第2功能復用:定時(shí) 中斷 串行口中斷。當P0~P3端口寫(xiě)#FFH時(shí)片內鎖存器置1這是單口為雙向輸入 輸出口。這是從芯片外圍看。

從芯片的內部看的話(huà)主要的就兩個(gè)獨立的存儲器 ROM,RAM 一個(gè)為程序指示,一個(gè)為數據處理和存放。編程時(shí)通過(guò)尋址方式區別ROM,RAM。他們都為64KB的容量。ROM的片內為4KB存儲空間。由EA指示是從片外執行程序還是從片內執行。RAM片內為256字節即FFH分4個(gè)部分。00H~1FH為工作寄存器組。20H~2FH為為尋址空間。30H~7FH為用戶(hù)RAM區。80H~FFH為特殊寄存器區。有22個(gè)SFR(這里就不在介紹了)。

說(shuō)說(shuō)指令系統吧。MOV ,MOVX, MOVC3個(gè)傳送指令其中片外存儲器是不能直接傳送的。3個(gè)調用指令AJMP,LJMP,SJMP.分別用于不同的調用范圍。邏輯算術(shù)指令ANL ,ORL ,XRL.還有加 ADD,減SUBB,乘MUL,除DIV。還有很多的指令如交換,跳轉,循環(huán),位尋址,布爾處理指令等。

例如下面的循環(huán)-跳轉指令

MOV R0,#00H
MOV R1,#AAH
MOV R7#0BH
loop: MOV A ,@R0
MOV @R1,A
INC R0
INC R1
DJNZ R7,loop
END

這個(gè)程序就是執行片內傳送功能的。

說(shuō)說(shuō)程序的一般流程吧。分為順序,分支,循環(huán),還有組合嵌套。上面的例題就是循環(huán)的一種。

寫(xiě)個(gè)分支程序的例題

MOV A,R1
RL A
MOV DPTR,#data
JMP @A +DPTR
data: AJMP KK1
AJMP KK2
.
.
AJMP KKn

這個(gè)指令就是以 data為首地址 R1為偏移量的分支轉移,因為AJMP為雙字節指令所以要執行RL A。

下面在說(shuō)下中斷跟定時(shí)吧。

中斷涉及的寄存器由 TCON , IE, IP,SCOM.

通過(guò)對中斷中斷標志位的設置區執行中斷請求。中斷有5個(gè)入口地址 03H 0BH 13H 1BH 23H.

例如外部中斷一的入口在默認模式下設置為最高優(yōu)先級

SETB PX1

STEB EX1

STEB EA

非常簡(jiǎn)單,有點(diǎn)像闖關(guān)游戲每個(gè)環(huán)節都完成才能執行中斷。

下面是定時(shí)器,定時(shí)器在單片機的運用是非常高的。4種工作模式0 , 1 ,2 ,3。

我就用典型的定時(shí)器0模式2在12MHZ的程序編寫(xiě)一個(gè)正弦波輸出XXMS在P1.0。初值就用KKH代替吧。

MOV P1 ,#FFH
MAIN: MOV TMOD , #02H
MOV TH0 ,#KKH
MOV LHO ,#KKH
STEB ET0
STEB TRO
STEB EA
AJMP $


中斷程序 TIME0: CLR TF0
CPL P1.0
RETI.

還有了。有4種模式的傳輸,其中波特率的設置尤為重要。

涉及寄存器有 TCOM TDOM SCOM SDOM PCON.

其實(shí)還可以用軟件模擬總線(xiàn)接口。如SPI I2C等還有按鍵的程序設置外部的擴展實(shí)在太多了。以后有時(shí)間在編寫(xiě)發(fā)上來(lái)。



評論


相關(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>