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

          新聞中心

          C51軟復(fù)位分析

          作者: 時間:2012-07-04 來源:網(wǎng)絡(luò) 收藏


          單片機復(fù)位的更好方法

          帖子中匯編語言解釋如下:

          clra//清除ACC=0

          pushacc//壓0到堆?!?位

          pushacc//再壓0到堆棧——再8位

          reti//返回到0地址,從而執(zhí)行。

          帖子作者的這種復(fù)位方法比較麻煩,更加簡單的復(fù)位寫法是(摘自《C缺陷與陷阱》):

          (*(void(*)())0)();

          本句的分析方法同上,但更加精煉,沒有多余的匯編語句。



          上述復(fù)位的方法可稱為軟件復(fù)位。

          軟件復(fù)位跟真正上電復(fù)位有很大差別:上電復(fù)位時大部分寄存器都有確定的復(fù)位值;軟件
          復(fù)位則只相當于從0地址開始執(zhí)行而已,寄存器不會變?yōu)榇_定的復(fù)位值。

          如果用戶要編程實現(xiàn)上電復(fù)位這種情況,在程序中不要踢看門狗即可。大部分單片機都有
          看門狗吧。

          附錄

          筆者精于DSPC24xx,但不太懂;讀者應(yīng)能從函數(shù)指針的定義和引用中看出來,C語言的
          設(shè)計哲學(xué)是使用形式和定義形式一致,雖然這一點飽受質(zhì)疑。

          如果你覺得雞蛋好吃時,不必認識那只母雞;但如果你覺得本文不錯,請來筆者網(wǎng)站坐坐
          吧www.1piao.com/wlg.asp。

          2004年7月看到這個有意思的帖子,也干了一件蠢事——買了飛利浦的一款拍照手機,屏幕
          有強烈閃爍感,飛利浦拒換,服務(wù)意識真是不敢恭維。

          可來信免費轉(zhuǎn)載本文,請保持整篇文章的完整性,包括本句。


          ----------------2---------------


          匯編中的ORG0X0000H在中如何實現(xiàn).
          一般是在連接定位模塊中來進行地址分配
          1、選擇"optionsfotarget"
          2、選擇“BL51Locate”
          3、在code欄填入?PR?MAIN?SS(0x800)

          其中MAIN是你要定位的函數(shù)名,SS是函數(shù)所在的文件名,要是有多個函數(shù)需要定位,則在中間加
          逗號。

          功能強大的時鐘中斷
            在單片機程序設(shè)計中,設(shè)置一個好的時鐘中斷,將能使一個CPU發(fā)揮兩個CPU的功效,大大方
          便和簡化程序的編制,提高系統(tǒng)的效率與可***作性。我們可以把一些例行的及需要定時執(zhí)行的程
          序放在時鐘中斷中,還可以利用時鐘中斷協(xié)助主程序完成定時、延時等***作。
            下面以6MHz時鐘的AT89系統(tǒng)為例,說明時鐘中斷的應(yīng)用。
            定時器初值與中斷周期 時鐘中斷無需過于頻繁,一般取20mS(50Hz)即可。如需要百分之一
          秒的時基信號,可取10mS(100Hz)。這里取20mS,用定時器T0工作于16位定時器方式(方式1)。


          關(guān)鍵詞: C51 軟復(fù)位分析

          評論


          相關(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); })();