<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è) > 嵌入式系統 > 設計應用 > P89C51RD2的Boot ROM與ISP功能的實(shí)現

P89C51RD2的Boot ROM與ISP功能的實(shí)現

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

3.1.2 tp對應的計數值

首先看一下在 中是如何計算一個(gè)位所對應的計數值的。以下為 從地址FC00H ~FC17H之間的源代碼及反匯編程序:

源代碼 反匯編程序
FC00 75 89 02 MOV TMOD,#02H ;T1工作模式2,定時(shí)器
FC03 75 C8 30 MOV T2CON,#30H ;T2工作為串行口波特
;率發(fā)生器
FC06 E4 CLR A
FC07 F5 CD MOV TH2,A
FC09 F5 CC MOV TL2,A ;T2=0000H
FC0B 30 B0 FD JNB P3.0,$ ;若P3.0=0,則等待,
;直到其變?yōu)?
FC0E 20 B0 FD JB P3.0,$ ;若P3.0=1,則等待,
;直到下降沿到來(lái)
FC11 D2 CA SETB TR2 ;啟動(dòng)T2定時(shí)器
FC13 30 B0 FD JNB P3.0,$ ;若P3.0=0,則等待,
;直到上升沿到來(lái)
FC16 C2 CA CLR TR2 ;關(guān)閉T2定時(shí)器,此時(shí)
;T2中的數值為tp

首先將T2清0,然后測下降沿,測到下降沿后,開(kāi)始置TR2=1,T2開(kāi)始計數,等測到上升沿后,置TR2=0,停止計數,則此時(shí)T2中為傳送 1bit(低電平)的計數值。以波特率2400 bps為例,則傳送1bit所用的時(shí)間為1/2400 s,即416.67μs。主頻為11.0592 MHz,再由PHILIPS公司的數據手冊可知,當T2工作于波特率發(fā)生器模式時(shí),OSC未經(jīng)分頻直接進(jìn)入T2計數器,由此可得在tp時(shí)間內T2的理論計數值為:(T2)=0.000 416 67×110 592 00= 4608(十進(jìn)制)=1200H。在這里,特別要強調的是:該數只是一個(gè)理論值。對波特率為2400 bps時(shí)的實(shí)際值進(jìn)行測試,發(fā)現實(shí)測值為11FAH左右。不管怎樣測,實(shí)測值總是小于理論值6個(gè)數左右。這個(gè)數據為下面的波特率計算提供了重要依據。

3.1.3 波特率的計算

程序中對波特率的計算頗有特色,下面是地址FC18H~FC36H之間的源代碼和反匯編程序:

源代碼 反匯編程序
FC18 E5 CC MOV A,TL2
FC1A C4 SWAP A
FC1B 54 0F ANL A,#0FH ;取TL2高4位
FC1D F8 MOV R0,A
FC1E E5 CD MOV A,TH2
FC20 C4 SWAP A
FC21 54 F0 ANL A,#0F0H;取TH2低4位
FC23 48 ORL A,R0
FC24 F8 MOV R0,A ;組合后送入R0
FC25 E5 CD MOV A,TH2
FC27 C4 SWAP A
FC28 54 0F ANL A,#0FH ;取TH2高4位
FC2A F9 MOV R1,A
FC2B E8 MOV A,R0 ;以上程序T2中數據除以
;16,送R1和R0保存
FC2C F4 CPL A ;低位取反
FC2D F5 CC MOV TL2,A
FC2F F5 CA MOV RCAP2L,A
FC31 E9 MOV A,R1
FC32 F4 CPL A ;高位取反
FC33 F5 CD MOV TH2,A
FC35 F5 CB MOV RCAP2H,A

上述程序就是將tp對應值轉換成波特率的程序,先來(lái)看一下波特率是怎樣定義的。定時(shí)器2工作在波特率發(fā)生器模式,外部時(shí)鐘信號由T2腳進(jìn)入,波特率為

46.jpg

所以程序中首先將T2中的計數值進(jìn)行處理,相當于右移4位,將低4位去掉,11FAH變?yōu)?11FH,對應式(1)中除以16,送R1和R0保存,然后將R1和R0中的值取反,其值為FEE0H。該值恰恰與根據式(1)計算出的數值相同。將該數值送T2和RCAP2,即得2400bps對應的賦值。



關(guān)鍵詞: 功能 實(shí)現 ISP ROM Boot P89C51RD2

評論


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