ARM處理器的工作模式 ARM處理器狀態 ARM微處理器的工作狀態一般有兩種,并可在兩種狀態之間切換:第一種為ARM狀態,此時處理器執行32位的字對齊的ARM指令;第二種為Thumb狀態,此時處理器執行16位的、半字對齊的Thumb指令。在程序的執行過程中,微處理器可以隨時在兩種工作狀態之間切換,并且,處理器工作狀態的轉變并不影響處理器的工作模式和相應寄存器中的內容。但ARM微處理器在開始執行代碼時,應該處于ARM狀態。 ARM處理器狀態 進入Thumb狀態:當操作數寄存器的狀態位(位0)為1時,可以采用執行BX指令的方法,使微處理器從ARM狀態切換到Thumb狀態。此外,當處理器處于Thumb狀態時發生異常(如IRQ、FIQ、Undef、Abort、SWI等),則異常處理返回時,自動切換到Thumb狀態。 進入ARM狀態:當操作數寄存器的狀態位為0時,執行BX指令時可以使微處理器從Thumb狀態切換到ARM狀態。此外,在處理器進行異常處理時,把PC指針放入異常模式鏈接寄存器中,并從異常向量地址開始執行程序,也可以使處理器切換到ARM狀態。ARM處理器模式 ARM微處理器支持7種運行模式,分別為:用戶模式(usr):ARM處理器正常的程序執行狀態。快速中斷模式(fiq):用于高速數據傳輸或通道處理。外部中斷模式(irq):用于通用的中斷處理。管理模式(svc):操作系統使用的保護模式。數據訪問終止模式(abt):當數據或指令預取終止時進入該模式,可用于虛擬存儲及存儲保護。系統模式(sys):運行具有特權的操作系統任務。定義指令中止模式(und):當未定義的指令執行時進入該模式,可用于支持硬件協處理器的軟件仿真。ARM處理器模式 ARM微處理器的運行模式可以通過軟件改變,也可以通過外部中斷或異常處理改變。大多數的應用程序運行在用戶模式下,當處理器運行在用戶模式下時,某些被保護的系統資源是不能被訪問的。 除用戶模式以外,其余的所有6種模式稱之為非用戶模式,或特權模式;其中除去用戶模式和系統模式以外的5種又稱為異常模式,常用于處理中斷或異常,以及需要訪問受保護的系統資源等情況。ARM寄存器 ARM處理器共有37個寄存器。其中包括:31個通用寄存器,包括程序計數器(PC)在內。這些寄存器都是32位寄存器。以及6個32位狀態寄存器。 關于寄存器這里就不詳細介紹了,有興趣的人可以上網找找,很多這方面的資料。異常處理 當正常的程序執行流程發生暫時的停止時,稱之為異常,例如處理一個外部的中斷請求。在處理異常之前,當前處理器的狀態必須保留,這樣當異常處理完成之后,當前程序可以繼續執行。處理器允許多個異常同時發生,它們將會按固定的優先級進行處理。當一個異常出現以后,ARM微處理器會執行以下幾步操作:進入異常處理的基本步驟:將下一條指令的地址存入相應連接寄存器LR,以便程序在處理異常返回時能從正確的位置重新開始執行。將CPSR復制到相應的SPSR中。根據異常類型,強制設置CPSR的運行模式位。強制PC從相關的異常向量地址取下一條指令執行,從而跳轉到相應的異常處理程序處。如果異常發生時,處理器處于Thumb狀態,則當異常向量地址加載入PC時,處理器自動切換到ARM狀態。 ARM微處理器對異常的響應過程用偽碼可以描述為: R14_ = Return LinkSPSR_= CPSRCPSR[4:0] = Exception Mode NumberCPSR[5] = 0 ;當運行于 ARM 工作狀態時If == Reset or FIQ then;當響應 FIQ 異常時,禁止新的 FIQ 異常CPSR[6] = 1PSR[7] = 1PC = Exception Vector Address異常處理完畢之后,ARM微處理器會執行以下幾步操作從異常返回:將連接寄存器LR的值減去相應的偏移量后送到PC中。將SPSR復制回CPSR中。若在進入異常處理時設置了中斷禁止位,要在此清除。
上傳時間: 2013-11-15
上傳用戶:hanbeidang
本文設計并實現了一種采用單片射頻收發芯片 nRF905、DS1820、單片機AT89C51 和PC 機的無線數據采集系統。系統以溫度數據處理模塊、 溫度數據收發模塊和溫度數據采集模塊三大模塊。系統能夠實現溫度信息的采集、傳送和LED 顯示,并且在溫度達到最大值時,驅動蜂鳴器產生報警信號。并且溫度數據能遠端PC 機上顯示、保存、統計、可以遠程監控。本系統降低布線成本、易于維護、提高了可靠性。
上傳時間: 2013-10-22
上傳用戶:baiom
P89V51RD2看門狗的啟動和關閉通過WDTC寄存器的SWDT位實現,該位被置位啟動看門狗,該位被清零時關閉看門狗。要使能WDT復位,用戶必須將WDTC寄存器的WDRE位置1。當看門狗使能且發生溢出時,它將會在RST腳產生一個復位脈沖執行復位。為避免看門狗溢出產生復位,用戶需要定期執行“喂狗”操作。執行“喂狗”操作時,在向WDTD寫入重裝值后,必須立即執行看門狗定時器刷新(置位WDT)才能將數據成功寫入WDTD寄存器中,否則數據不能被寫入。
上傳時間: 2013-11-16
上傳用戶:Pzj
應用軟件根據BYPASS信號的值來決定是否使用PLL。如果使用PLL,那么它總是輸出一個200MHz的時鐘信號,并且聯合系統分頻器(SYSDIV)共同產生系統時鐘。饋送到PWM模塊的時鐘由系統時鐘提供。如果應用中需要較低的PWM時鐘,那么在時鐘信號到達PWM模塊前可以使用PWM分頻器(PWMDIV)先分頻。ADC時鐘使用一個時鐘源(source)為200MHz的常量分頻器,這就意味著如果要使ADC時鐘的工作頻率保持在14-18MHz范圍內,必須使能并使用PLL。
上傳時間: 2013-10-17
上傳用戶:hjshhyy
基于單片機的陶瓷窯多點溫度檢測系統:摘 要:系統以51單片機為核心,利用K型熱電偶作為傳感器,對陶瓷窯中多點溫度進行監控,通過串行通信,可供PC機上繪制溫度變化曲線圖的技術人員分析問題,并設計了新穎的冷端補償電路和通用查表法,本系統成本低,測溫精度高,可靠實用.關鍵詞:單片機;串行通信;冷端溫度補償;VB 在燒結陶瓷時,火候的控制對陶瓷的質量、色澤有直接的影響,進一步影響陶瓷成品的價格,而長期以來控制火候的工作就依靠工人師傅的經驗,本文設計了一種多點溫度實時監控系統,它能在Pc機上實時顯示測量點的溫度而且如果溫度超過設定的臨界值時,就發出信號報警,并且可以通過Pc機繪制同一個時刻不同點或者是不同時刻同一點的溫度變化曲線.這樣能有助于發現問題并解決問題,為節約成本和提高生產率、生產質量做出貢獻.
上傳時間: 2013-10-16
上傳用戶:lhuqi
看門狗定時器的工作原理:WDT 工作原理使能時,WDT 將遞增,直到溢出,或稱“超時”。除非處于休眠或空閑模式,WDT 超時會強制器件復位。為避免WDT 超時復位,用戶必須定期用PWRSAV 或CLRWDT 指令將看門狗定時器清零。如果WDT 在休眠或空閑模式下超時,器件將喚醒并從PWRSAV 指令執行處繼續執行代碼。在上述兩種情況下,WDTO 位(RCON<4>)都會置1,表示該器件復位或喚醒事件是由于WDT超時引起的。如果WDT 將CPU 從休眠或空閑模式喚醒,“休眠”狀態位(RCON<3>)或“空閑”狀態位(RCON<2>)也會置1,表示器件之前處于省電模式。9.2.1 使能和禁止WDT通過FWDTEN(CW1<7>)配置位可將WDT 使能或禁止。FWDTEN 配置位置1 時,使能WDT。這是已擦除器件的默認值。關于閃存配置字寄存器的更多詳細信息,請參見器件數據手冊。
上傳時間: 2014-01-20
上傳用戶:mikesering
一:微電腦設計11.1:微電腦基本結構11.2:單芯片微電腦21.3:單芯片微電腦種類3二:MCS51架構介紹62.1:接腳說明62.2:內部構造圖72.3:系統時序82.4:內存結構92.5:系統重制142.6:中斷結構15三:LCD簡介243.1:簡介243.2:內部結構263.3:模塊指令29圖1-1 微電腦基本結構1表1-1 MCS-51 單芯片比較.5圖2-1 MCS-51 接腳圖.6圖2-2 內部結構方塊圖8圖2-3 MCS-51 指令執行時序.9圖2-4 MCS-51 內部數據存儲器.10圖2-5 MCS-51 程序內存結構圖.10圖2-6 MCS-51內部數據存儲器結構11圖2-7 特殊功能緩存器12表2-1 特殊功能緩存器(SFC)初值設定.13圖2-8 數據存儲器結構圖13表2-2 SFR重置設定值.15表2-3 中斷向量17圖2-9 中斷結構方塊圖18表2-4 中斷致能緩存器IE19表2-5 中斷優先權緩存器(IP) .20表2-6 中斷源優先權順序21表2-7 計時/計數控制緩存器TCON.21表2-8 計時/計數模式設定.23圖3-1 LCD 的接口電路方圖24表3-1 LCD 接腳說明25表3-2 控制腳功能25表3-3 LCD 模塊地址對映26表3-4 字符產生器與字型碼對映27表3-5 LCD 內字型表28表3-6 LCD 控制指令表32圖3-2 初始化流程圖33表4-1 功能說明34圖4-1 電路圖35圖4-2 程序流程圖36此篇專題主要研究是利用8051芯片制作出電子鐘,利用LCD當作顯示介面,并且設置有鬧鈴功能,是很可以融入生活的小家電。關鍵詞: AT89C51,LCD,電子鍾,數字鐘,鬧鈴。四:電子鐘344.1:相關知識344.2:功能說明344.3`:流程圖36五:心得感想41六:程序代碼42附錄:MCS51指令集.54參考數據60
上傳時間: 2013-10-11
上傳用戶:butterfly2013
單片機軟件濾波的幾種方法:假定從AD中讀取數據的子程序為:unsigned int get_ad();1、限幅濾波法(又稱程序判斷濾波法)A、方法:根據經驗判斷,確定兩次采樣允許的最大偏差值(設為A)。每次檢測到新值時判斷:如果本次值與上次值之差<=A,則本次值有效;如果本次值與上次值之差>A,則本次值無效,放棄本次值,用上次值代替本次值。B、優點:能有效克服因偶然因素引起的脈沖干擾C、缺點:無法抑制那種周期性的干擾,平滑度差D、軟件實現://=======================//值A可根據實際情況調整,value為有效值,new_value為當前采樣值//濾波程序返回有效的實際值
上傳時間: 2013-10-20
上傳用戶:xiaojie
該文介紹89C51 單片機在直流電機轉速控制系統中的應用、實現方法、硬件結構等。本系統采用霍爾元器件測量電動機的轉速,用89C51 單片機對直流電機的轉速進行控制,用DAC0832 芯片實現輸出模擬電壓值來控制直流電動機的轉速。直流電動機具有良好的起動、制動性能,宜于在大范圍內平滑調速,在許多需要調速或快速正反向的電力拖動領域中得到了廣泛的應用。從控制的角度來看,直流調速還是交流拖動系統的基礎[4]。早期直流電動機的控制均以模擬電路為基礎,采用運算放大器、非線性集成電路以及少量的數字電路組成,控制系統的硬件部分非常復雜,功能單一,而且系統非常不靈活、調試困難,阻礙了直流電動機控制技術的發展和應用范圍的推廣。隨著單片機技術的日新月異,使得許多控制功能及算法可以采用軟件技術來完成,為直流電動機的控制提供了更大的靈活性,并使系統能達到更高的性能。采用單片機構成控制系統,可以節約人力資源和降低系統成本,從而有效的提高工作效率[1]。
上傳時間: 2013-12-29
上傳用戶:rishian
計算機的指令系統是表征計算機性能的重要指標,每種計算機都有自己的指令系統。MCS—51單片機的指令系統是一個具有255種代碼的集合,絕大多數指令包含兩個基本部分:操作碼和操作數。操作碼表明指令要執行的操作的性質;操作數說明參與操作的數據或數據所存放的地址。MCS—51指令系統中所有程序指令是以機器語言形式表示,可分為單字節、雙字節、三字節3種格式。用二進制編碼表示的機器語言由于閱讀困難,且難以記憶。因此在微機控制系統中采用匯編語言指令來編寫程序。本章介紹MCS—51指令系統就是以匯編語言來描述的。 一條匯編語言指令中最多包含4個區段,如下所示: 標號: 操作碼目的操作數,源源操作數;注釋 標號與操作碼之間“:”隔開; 操作碼與操作數之間用“空格”隔開; 目的操作數和源源操作數之間有“,”分隔; 操作數與注釋之間用“;”隔開。 標號是由用戶定義的符號組成,必須用英文大寫字母開始。標號可有可無,若一條指令中有標號,標號代表該指令所存放的第一個字節存儲單元的地址,故標號又稱為符號地址,在匯編時,把該地址賦值給標號。 操作碼是指令的功能部分,不能缺省。MCS—51指令系統中共有42種助記符,代表了33種不同的功能。例如MOV是數據傳送的助記符。 操作數是指令要操作的數據信息。根據指令的不同功能,操作數的個數有3、2、1或沒有操作數。例如MOV A,#20H,包含了兩個操作數A和#20H,它們之間用“,”隔開。注釋可有可無,加入注釋主要為了便于閱讀,程序設計者對指令或程序段作簡要的功能說明,在閱讀程序或調試程序時將會帶來很多方便。
上傳時間: 2013-11-04
上傳用戶:kr770906