⑴ PIC單片機的各種中斷有沒有優先順序之分
pic低級一些的單片機內部只有8級硬體堆棧,所以為了節約資源就設了一個中斷入口地址,所以就不存在中斷優先順序的問題了,進入中斷入口以後就要用軟體查詢中斷標志位了,先查詢哪個哪個優先順序就最高,希望對你有幫助。
⑵ pic16f877a單片機在體1中的數據怎麼傳到體0里
這個看你的數據如何定義了,如果沒有使用#pragma 之類的偽指令就是結構體數組一類的const,用C程序開發無此必要。
⑶ 單片機中軟體堆棧與硬體椎棧的區別是什麼它們實現的功能是不是一樣的
軟堆棧是軟體自己控制的,硬堆棧是通過寄存器和pop push弄得
硬堆棧效率高,而且當你處理函數調用或者中斷時都會自動調用硬堆棧
為了防止你干擾硬堆棧,推薦自己實現軟堆棧,否則很容易導致程序在返回函數時跳飛
⑷ 為什麼會有軟堆棧和硬堆棧之分呢 為什麼還要區分這個呢
51系列可就是由軟體可任意把堆棧區設在內部RAM中你安排的地,並深度還可根據你的編程風格調一下深淺,這可能就是你這說的軟體堆棧吧,而PIC單片機可就不是這了,棧地址你沒算動,棧深度是死的,老八級,這可能就是你說的硬堆棧吧.呵呵!不管是你說的那種,這堆棧都是片內的隨機存貯器構成的.功能都是為了在發生突發事件要轉地處理時或調用時機器自動保存返回地址用的,當然,你也可用它來傳遞數據.,
我用的是ATMEGA8,我現在也是剛弄,對堆棧這一塊不是很熟悉!!不知道怎麼設置,我怕我寫的程序到時會堆棧益出.
硬體堆棧一般16個就夠了(子程序和中斷嵌套不超過4層),他這個是怎麼計算的?
⑸ pic單片機為什麼那麼少見知乎
市場競爭力的問題吧。
PIC的單片機,個人使用後,覺得它適合工控類產品。目前本人將它用於價格低廉的汽車電子產品上。個人了解,汽車行業,還是以飛思卡爾為主流單片機。(開發新產品,國內很多車廠的技術人員都會問我,你們使用的是不是飛思卡爾的(CPU))。所以在汽車行業上,microchip 的PIC爭不過飛思卡爾。(說個題外話:飛思卡爾被NXP收購,而microchip卻收購了Atmel 和 Micrel,有點顛覆)
51系列單片機,作為單片機起源,在現今的社會,更是大有泛濫之勢,價格低得難以想像。所以,教育行業、消費類產品(玩具、傢具等),被51單片機包圓。PIC根本搶不了這市場。
而另一個要命的是,PIC單片機編程軟體兼容性差,編譯器之間升級換代,根本就是不同的軟體。前面學會的都沒用,得重新學新的編程軟體。
另外PIC 的一些設計,確實不夠好:
像什麼 1<<16位編譯失敗啦、硬體堆棧層限制啦、除法運算1000周期啦……
⑹ pic12F675單片機製作一個打開關設備出現疑難問題!是不是堆棧層數超了的問題
進入if之後把定時器關掉,執行完再打開