<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è) > 嵌入式系統 > 設計應用 > PIC單片機人機接口模塊元器件選擇分析

PIC單片機人機接口模塊元器件選擇分析

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

總線(xiàn)結構采取數據線(xiàn)(8位)和指令線(xiàn)(2位)獨立分離的哈佛(Harvard)結構,這樣可使的指令速度得到提高。當一條指令在A(yíng)LU中執行時(shí),下一條指令己經(jīng)被取出放到指令寄存器等待執行了。算術(shù)邏輯單元ALU和工作寄存器(W)承擔算術(shù)邏輯操作任務(wù)。

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

  16C5X提供二級堆棧(Stack),所以子程序調用只有兩層,使用時(shí)一定要注意這點(diǎn),否則程序運行時(shí)將失去控制。IGC5X內部有384bit~2KB的只讀程序存儲器,下面介紹其結構和堆棧,PICIGC5X程序存儲器結構如圖3所示。

  圖3 PIC16C5X程序存儲器結構

  從圖3可以看出,PIC程序存儲器采用分頁(yè)結構,每頁(yè)長(cháng)0.5KB,因此PIC16C52程序存儲器在1頁(yè)之內,而PIC16C54和PICISC55程序存儲器容量為1頁(yè),PICI6C56和PICI6C57的容量則分別為2頁(yè)和4頁(yè)。頁(yè)面地址由狀態(tài)寄存器B的第5位和第6位(PA0、PA1)確定。

  程序轉移時(shí),在本頁(yè)內可直接進(jìn)行,在需跨頁(yè)跳轉時(shí)(GOTO、CALL指令),則必須根據將要跳轉去的頁(yè)面,把f3中的PA0、PA1位置成相應的值。

 ?。?)相關(guān)指令。

  堆棧PICIGC5X設有兩層堆棧,堆棧1和堆棧2,供子程序調用。涉及堆棧操作的指令有兩條。

 ?、貱ALL。

  在主程序中第一次執行CALL指令時(shí),將PC值加1后推入堆棧1,堆棧1原有的內容則被推入堆棧2中。這時(shí)子程序中還可再做一次子程序嵌套,即再執行一次CALL指令。如果子程序調用多于二層時(shí),堆棧中只存放最近的兩個(gè)返回地址。

  當執行一條CALL指令時(shí),狀態(tài)寄存器F3中將頁(yè)面尋址位PA1、PA0置入PC的最高兩位(第11位和第10位),而PC的第9位總是被置為0,如圖4所示。

圖4 PC值對應圖

  這意味著(zhù)在PIC16C5X中,子程序起始地址只能放在每個(gè)程序存儲頁(yè)面的上半頁(yè),即低地址的那一半(000~0FF、200~2FF、400~4FF、600~6FF)。

  調用子程序前必須先把F3中的PA0、PA1設置成該子程序所在的頁(yè)面地址,返回后再將其恢復成當前的頁(yè)面值,但如果這時(shí)子程序是在同一頁(yè)面,則可省去這一過(guò)程。

 ?、赗ETLW。

  該指令把堆棧1的值寫(xiě)入PC,同時(shí)還把堆棧2的值拷貝到堆棧1去。子程序總是返回到調用它時(shí)所在的位置,不管它處在什么頁(yè)面,也不管F3寄存器中的PA0、PA1此時(shí)指在什么頁(yè)面。

  但是執行RETLW(子程序返回)指令并不會(huì )改變F3中PA0、PA1的值,所以當從一次跨頁(yè)面的子程序調用返回時(shí),不要忘了恢復F3中原先PA0和PA1值。

  由于堆棧和PC的寬度是相同的,所以可以在程序的任何位置執行一條CALL指令來(lái)調用子程序。但是對于跨頁(yè)面的調用,要小心處理B中的頁(yè)面地址位PA0和PA1。


上一頁(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>