精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>嵌入式開發>80C51的三種復位技術講解資料下載

80C51的三種復位技術講解資料下載

2021-04-08 | pdf | 154.27KB | 次下載 | 2積分

資料介紹

??標準80C51片內現有的復位邏輯比較簡單,只有通過一條復位引腳RST進行外部擴展。技術手冊中給出了上電復位(POR,power on reset)和人工復位(MRST,manual reset)電路的接線方法;借助于一只專用外圍芯片,如MAX813L或DS1323等,來擴充欠壓復位(LVR,low voltage reset)和看門狗復位(WDR,watch dog timer reset)也有文章介紹。 ??本文將介紹三種非常規擴展復位方式:軟件復位(SWR,software reset)、軟硬件復位(SHR,software and hardware reset)和非法地址復位(IAR,illegal address reset)。 ? ??軟件陷阱技術及其改良方法 ? ??軟件陷阱(software trap)是一種捕捉程序“跑飛”的編程方法。通常可以在程序中設置軟件陷阱,引導程序失控的單片機跳轉到一個指定的地址去執行,最終回復到正常軌道上來。軟件陷阱可以設置在用戶程序的空隙處或者轉移指令之后,還可以利用一系列的陷阱指令來填充程序存儲器的空白區。實現軟件陷阱功能的指令是一個“5字節指令串”,通常包含2條單字節NOP指令和1條3字節跳轉指令。 ??NOP ;利用空操作指令 ??NOP ;來增加捕捉有效性 ??LJMP SWRST;無條件跳轉到指定地址去 ??其中“SWRST”可以是一段“軟件復位程序”的入口地址標號,也可以是復位矢量“0000H”,即主程序入口地址。 ??如果SWRST等于復位矢量0000H,則會把捕捉到的跑飛程序引導到初始化程序入口地址去執行,從而達到回復到正常軌道的目的。這種處理方法只適合中斷功能沒有被啟用的場合。可以設想,假如是在(低級或高級)中斷服務程序中跑飛的,這時即使把程序拉回到起點,而中斷激活觸發器不能夠被清除,會影響以后的中斷請求無法被 CPU響應。 ??如果SWRST等于“軟件復位程序”的入口地址,則會引發一次“軟件復位”。關于軟件復位程序的設計方法,隨后介紹。 ??總之,這種方法的指導思想是指,把未使用的ROM空間用跳轉引導指令填滿,作為軟件“陷阱”,以捕獲“飛掉”的程序,并強行將捕獲到的跑飛程序引向一個特定的地址,在那里由一段專門處理錯誤的程序進行處理,以恢復系統的正常運行。為提高跑飛程序的捕獲率,通常還要在引導指令之前放置上幾條空操作指令 NOP。理由是,8051的指令編碼采用的是不等長方式,長度分別為1~3字節,而程序跑飛又是通過非法隨機改變PC值形成的。假若跑飛后的PC值落到3 字節指令LJMP的中間,就會把操作數當作操作碼來執行,將會產生不可預知的結果。為了提高捕捉的有效性,就在LJMP指令之前至少填充2條單字節的 NOP指令。 ??如果把“5字節指令串”改換成如下作者新設計的“4字節指令串”,陷阱指令將會更加有效。理由是,該指令對應的目標碼為“00 20 00 20H”,這段碼無論重復多少次都是等同的。另外,應該在程序存儲器0020H開始的3字節中再放置一條跳轉到“軟件復位程序”真正入口的中轉指令 LJMP SWRST。經過核查,0020H~0022H字節恰好位于定時器T1中斷矢量區尾部和串口中斷矢量之前。 ??SWRST0 EQU 0020H;定義“軟件復位程序”的間接入口地址為“0020H” ??NOP ;填充一條單字節的空操作指令,機器碼是“00H” ??LJMP SWRST0 ;無條件跳轉到指定地址去。對應的機器碼是“20 00 20H” ? ??軟件復位技術 ? ??軟件復位是一種新技術,目前有越來越多的新型單片機配備了該功能。例如Philips公司的P87LPC700和P89LPC900系列、TI- BB公司的MSC1200系列和SunPlus公司的SPMC65系列等,內部都設計了專門用于實現軟件復位的控制寄存器或者控制位。 ??軟件復位是在利用軟件陷阱技術或軟件看門狗技術時,必需配套實施的一項后續處理工作。所謂“軟件復位”是一種由用戶軟件控制的復位活動,就是利用一系列指令來模擬硬件復位所實現的各種操作內容,并且重新從頭開始執行用戶程序。 ??其中的操作內容應該包含:(1)對于標準80C51的21個特殊功能寄存器SFR的復位操作,利用MOV指令很容易實現。全部復位可能不是必需的,只管那些在用戶程序中用到的SFR即可,可以由用戶自己定制。 ??2)對于無統一編址的程序計時器PC的復位,利用一條跳轉指令即可。(3)中斷激活觸發器的復位既容易被人們忽略,也不容易實現。理由是它們對于用戶程序是不可見的,無法直接讀寫其內容。有的編程人員采用LJMP 0000H(機器碼為20 00 00H)作為軟件陷阱,認為直接跳轉到復位矢量就完成了軟件復位,就是這類失誤案例的典型代表。 ??清除中斷激活觸發器有何必要呢?程序的跑飛是隨機發生的,其起飛點完全可能發生在低級或高級中斷服務子程序中,這時的中斷激活觸發器已經被置位。如果在程序回復之后沒有及時清除它們,將阻止以后出現的所有的同級或低級中斷請求。 ? ?? ??圖1 中斷激活觸發器示意圖 ? ??中斷激活觸發器包含高權組和低權組兩個觸發器,電路組成如圖1所示,該圖是根據作者的理解和經驗繪制的。電路中包括1個邏輯或門G1、兩個S-R觸發器FF1和FF2。當CPU響應低級中斷請求之后,FF1被置位,其Q = 0,封鎖“低權組”不再受理新的低級中斷請求;當CPU響應高級中斷請求之后,因為G1的作用而使FF1和FF2同時被置位,FF1的Q = 0封鎖“低權組”,FF2的Q = 0封鎖“高權組”,不再受理新的高級和低級中斷請求。 ??如何設計“軟件復位程序”呢?其編寫方法如下。 ??SWRST: ;定義軟件復位程序的實際入口地址 ??CLR EA ;首先關閉中斷源總使能位 ??SETB F0 ;設置一個軟件復位標志位 ??MOV P0,#0FFH ;設定通用端口P0為高阻輸入狀態 ??MOV P1,#0FFH ;設定通用端口P1為高阻輸入狀態 ??MOV P2,#0FFH ;設定通用端口P2為高阻輸入狀態 ??MOV P3,#0FFH ;設定通用端口P3為高阻輸入狀態 ??MOV PSW,#00H ;設定程序狀態字寄存器為原始值 ??…… ;(據實際需要還可初始化其他SFR) ??MOV DPTR,#SWR0 ;為RETI準備彈出地址,而又不想改變執行順序 ??PUSH DPL ;壓棧低字節,在先 ??PUSH DPH ;壓棧高字節,在后 ??RETI ;中斷返回指令,清除高級中斷激活觸發器 ??SWR0: CLR A ;準備復位地址 ??PUSH ACC ;壓棧低字節00H ??PUSH ACC ;壓棧高字節00H ??RETI ;清除低級中斷激活觸發器,并跳到0000H
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費
  3. 2開關電源基礎知識
  4. 5.73 MB  |  6次下載  |  免費
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設計
  8. 0.60 MB  |  3次下載  |  免費
  9. 5基于FPGA的光纖通信系統的設計與實現
  10. 0.61 MB  |  2次下載  |  免費
  11. 6基于FPGA的C8051F單片機開發板設計
  12. 0.70 MB  |  2次下載  |  免費
  13. 751單片機窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費
  15. 8基于51單片機的RGB調色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21548次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537796次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191185次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183278次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費