<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 20天89C51單片機(jī)總結(jié)

          20天89C51單片機(jī)總結(jié)

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

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

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

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

          例如下面的循環(huán)-跳轉(zhuǎ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è)程序就是執(zhí)行片內(nèi)傳送功能的。

          說(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為偏移量的分支轉(zhuǎn)移,因?yàn)锳JMP為雙字節(jié)指令所以要執(zhí)行RL A。

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

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

          通過(guò)對(duì)中斷中斷標(biāo)志位的設(shè)置區(qū)執(zhí)行中斷請(qǐng)求。中斷有5個(gè)入口地址 03H 0BH 13H 1BH 23H.

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

          SETB PX1

          STEB EX1

          STEB EA

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

          下面是定時(shí)器,定時(shí)器在單片機(jī)的運(yùn)用是非常高的。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種模式的傳輸,其中波特率的設(shè)置尤為重要。

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

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



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();