日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

单片机学习问题集

發布時間:2025/7/14 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单片机学习问题集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

單片機

  • 單片機的最小系統?內部的主要結構?

    答:最小系統:電源、晶振(為系統提供基本的時鐘信號)、復位電路;內部結構:ROM/RAM、計時器、中斷、I/O串并行口、總線擴展控制。

  • RAMROM的區別?

    答:ROM(只讀存儲器):它的信息一次寫入后只能被讀出,而不能被操作者修改或者刪除。一般用于存放固定的程序或數據表格。但是,“只讀”這個概念有時候可以被一些新特性的器件顛覆。

    RAM(隨機存儲器):它就是我們平時說的內存,主要用來存放各種現場的輸入/輸出數據、中間計算結果,以及與外部存儲器交換信息,或者作堆棧(特點:先進后出,后進先出)用。它的存儲單元根據具體需要可以讀出或者改寫。

    兩者區別:RAM只能用于暫時存放程序與數據。一旦電源關閉或發生斷電,RAM中的數據就會丟失。而ROM中的數據在電源關閉或者斷電后仍然會保留下來。

    簡而言之:相同點它們都是用來存儲數據的

    ??????????不同點存儲數據的方式與數據能不能在二次加工不同

  • 單片機I/O口有什么作用?I/0口的驅動能力?上拉電阻與下拉電阻的作用?

    答:I/O口最主要的功能用來與外部器件實現數據信息的交互、速度匹配、數據傳送方式和增強單片機的負載能力。它在兩者之間扮演橋梁的作用,單片機擁有著串行與并行接口。每個種類的單片機的不同并行口也有著各自不同的功能。

    單片機輸出低電平時,將允許外部器件,向單片機引腳內灌入電流,這個電流,稱為“灌電流”,外部電路稱為“灌電流負載”。

    ??? 單片機輸出高電平時,則允許外部器件,從單片機的引腳拉出電流,這個電流,稱為“拉電流”,外部電路稱為“拉電流負載”。

    單片機輸出驅動能力的問題:每個單個的引腳,輸出低電平的時候,允許外部電路,向引腳灌入的最大電流為 10 mA;每個 8 位的接口(P1、P2 以及 P3),允許向引腳灌入的總電流最大為 15 mA,而 P0 的能力強一些,允許向引腳灌入的最大總電流為26 mA;全部的四個接口所允許的灌電流之和,最大為 71 mA。而當這些引腳“輸出高電平”的時候,單片機的“拉電流”能力呢?可以說是太差了,竟然不到 1 mA。

    結論就是:單片機輸出低電平的時候,驅動能力尚可,而輸出高電平的時候,就沒有輸出電流的能力。

    綜上所述:灌電流負載,是合理的;而“拉電流負載”和“上拉電阻”會產生很大的無效電流,并且功耗大。

    設計單片機的負載電路,應該采用“灌電流負載”的電路形式,以避免無謂的電流消耗。

    在數字電路中,只有二種狀態,要么是高電平,要么是低電平,在通電初期,這些輸出狀態是不確定的,為了使電路確定狀態,必需使用上拉電阻或下拉電阻,使一個原來不確定電平變高的叫上拉電阻,否則就是下拉電阻,上拉電阻就是從電源上接一只電阻到這個狀態口上就可以了,(就是把高的電壓加到這個點上去,這個點的電位就高了)下拉電阻的接法,從這個狀態口接一只電阻到負極(或數字接地),因電路形式與類別不同,當輸入端有信號,這種變化會反應到輸出口,從輸出口得到了一個狀態,本來應該完成任務了,但這會兒輸入口已沒信號了,可輸出端還是這個狀態(這個人習慣不好,開門后總是不關門,加一只彈簧,(電阻)讓它自己關門,)這時候也要用到上下拉電阻,這里有復位的作用。

  • 常見的時鐘電路有哪些?為什么要使用PLL?

  • 答:先了解一下什么是時鐘電路?

    時鐘電路就是產生像時鐘一樣準確運動的振蕩電路,任何工作都按時間順序。用于產生這個時間的電路就是時鐘電路。

    ?? 組成:晶體振蕩器、晶震控制芯片和電容組成。

    現在流行的串行時鐘電路有:DS1302、DS1307PCF8485

    它們的特點:接口簡單、價格低廉、使用方便。

    DS1302:具有涓細電流充電能力的電路,主要特點:采用串行數據傳輸,可為掉電保護電源提供可編程的充電功能,并且可以關閉充電功能。采用普通32.768KHz晶振。

    PLLPhaseLocked Loop:鎖相環電路。用來統一整合時脈訊號,使高頻器件正常工作。如:內存的存取資料等。PLL用于振蕩器中的反饋技術。許多電子設備要正常工作,通常需要外部的輸入信號與內部的振蕩信號同步。一般的晶振由于工藝與成本原因,做不到很高的頻率,而在需要高頻應用時,有相應的器件VCO,實現轉成高頻,但不穩定,故利用鎖相環路就可以實現穩定且高頻的時脈沖訊號。

    什么是時脈:指同步電路中時鐘的基礎頻率,它以(若千次周期每秒)來度量,單位是(Hz

    總之:PLL可以同步頻率,相位正交。倍頻、變頻。

  • 單片機的尋址方式有哪些?

    答:80C51有七種尋址方式:

  • 1、立即尋址,尋址空間為ROM

    2、直接尋址,尋址空間為片內RAM的低128B和特殊功能寄存器;

    3、寄存器尋址,尋址空間為AB、DPTR、CY、通用工作寄存器等;

    4、寄存器間接尋址,片內RAM128B、片外RAM

    5、相對尋址,尋址空間為ROM

    6、變址尋址,尋址空間為ROM

    7、位尋址,尋址空間為片內RAM128B的位尋址區的128個位,其字節地址為20H~2FH;以及部分可以位尋址的特殊功能寄存器。

    ?

    參考AT89C51單片機能直接認識和執行的機器指令有255條,有7種尋址方式,即立即尋址、直接尋址、寄存器尋址、寄存器間接尋址、變址尋址、相對尋址和位尋址。

    ?

    1. 直接尋址:

    指令中直接給出參與操作的數據的地址,該地址一般用direct表示。

    匯編指令:MOV A,direct

    該指令的功能是將片內RAM地址direct單元中的內容(參與操作的數據)傳送到累加器A中,雙字節指令。

    ?

    2. 立即尋址:

    指令中直接給出參與操作的數據,稱立即數,用data表示。在匯編語言中,為標明立即數,為data加前綴”#”。立即數可以是8位和16位二進制數,分別用#data#data16表示。

    匯編語言指令:MOV A,#data

    該指令將立即數data傳送到累加器A中,雙字節指令。

    ?

    3. 寄存器尋址:

    參與操作的數據存放在寄存器中,匯編指令中直接以寄存器名來表示參與操作的數據地址,寄存器包括工作寄存器R0R7、累加器A、AB、數據指針DPTR和位運算寄存器C。

    匯編語言指令:MOV A,Rn ;n=0~7

    該指令將Rn中的內容傳送到累加器A中,單字節指令。

    ?

    4. 寄存器間接尋址:

    寄存器間接尋址為二次尋址,第一次尋址得到寄存器的內容為(Ri)(DPTR),第二次尋址是將第一次尋址得到的寄存器內容作為地址,并在其中存、取參與操作的數據。匯編語言中,寄存器前綴@是寄存器間接尋址的標志,有@Ri@DPTR等。

    匯編語言指令:MOV A,@Ri ;i=0、1

    該指令是將Ri中的內容作為地址,再將該地址中的內容傳送到累加器A中,單字節指令。

    ?

    5. 變址尋址:

    間接尋址由兩個寄存器提供。若由A、PC提供,在匯編語言指令中尋址地址表示為@A+PC;若由ADPTR提供,在匯編語言指令中尋址地址為@A+DPTR。其中,PCDPTR被稱為基址寄存器,A被稱為變址寄存器,基址與變址相加為16位無符號加法。若變址寄存器A中內容加基址寄存器DPTR(PC)中內容時,低8位有進位,則該進位直接加到高位,不影響進位標志。因變址尋址指令多用于查表,故常稱為查表指令。

    匯編語言指令:MOVC A,@A+DPTR

    該指令將DPTR中的內容加上A中的內容作為地址,再將該地址中的內容傳送到累加器A中,單字節指令。

    ?

    6. 相對尋址:

    相對尋址是以相對尋址指令的下一條指令的程序計數器PC的內容為基值,加上指令機器代碼中的“相對地址”,形成新的PC值(要轉移的指令地址)的尋址方式。指令機器代碼中“相對地址”指的是用一個帶符號的8位二進制補碼表示的偏移字節數,其取值范圍為-128+127,負數表示向后轉移,正數表示向前轉移。

    (PC)表示該指令在ROM中的首地址,該指令字節數為2,執行時分兩步操作:(PC)(PC)+2(PC)(PC)+相對地址。第一步完成后,PC中的值為該指令的下一條指令的首地址;第二步完成后,PC中的內容(PC)為轉移的目標地址。所以,轉移的目標地址范圍是該相對尋址指令的下一條指令首址加上-128~—+127字節的地址。

    匯編語言指令:SJMP rel

    匯編語言相對尋址指令中的”rel”往往是一個標號地址,表示ROM中某轉移目標地址。匯編軟件對該匯編語言指令進行匯編時,自動算出“相對地址”并填入機器代碼中,應將”rel”理解為“帶有相對意義的轉移目標地址”。

    Rel=(PC)+相對尋址指令字節數+相對地址

    其中,(PC)為該指令所在ROM中的首地址。

    ?

    7. 位尋址:

    參與操作的數據為“位”,而不是字節,是對片內數據存儲器RAMSFR中可位尋址單元的位進行操作的尋址方式。

    匯編語言指令:ANL C,bit

    該指令將bit(位地址)中的內容(01)與C中的內容進行與操作,再將結果傳送到PSW中的進位標志C中。

  • 什么是時鐘周期?機器周期?指令周期?它們之間的關系?

    答:1、時鐘周期又叫做振蕩周期;單片機內部時鐘電路產生(或外部時鐘電路送入)的信號周期,單片機的時序信號是以時鐘周期信號為基礎而形成的,在它的基礎上形成了機器周期、指令周期和各種時序信號。定義為時鐘脈沖的倒數(可以這樣理解:時鐘周期就是單片機外接晶振的倒數,例如:12M的晶振,它的時鐘周期就是1/12us),是計算機中最基本的、最小的時間單位。在一個時鐘周期內,CPU僅完成一個最基本的動作。

    2、計算機中,為了便于管理,常把一條指令的執行過程劃分為若干個階段,每一個階段完成一項工作。例如:取指令、存儲器讀、存儲器寫等,這每一項工作稱為一個基本操作。完成一項基本操作所需要的時間成為機器周期。一般情況,一個機器周期由若干個S周期(狀態周期)組成。機器周期是單片機的基本操作周期,每個機器周期包含S1、S2、……S6這6個狀態,每個狀態包含兩拍P1和P2,每個拍為一個時鐘周期(振蕩周期)。因此,一個機器周期包含12個時鐘周期。依次可表示為S1P1、S1P2、S2P1、S2P2……、S6P1、S6P2。

    3指令周期:計算機從取一條指令開始,到執行完該指令所需要的時間稱為指令周期。不同的指令,指令長度不同,指令周期也不一樣。但指令周期以機器周期為單位,指令不同,所需的機器指令也不同。

    51單片機指令根據指令長度與執行周期分為:

    1 單字節單周期指令

    2 單字節雙周期指令

    3 雙字節單周期指令

    4 雙字節雙周期指令

    5 三字節雙周期指令

    6 一字節四周期指令

    總結:時鐘周期是最小單位,機器周期需要1個或者多個時鐘周期,指令周期需要1個或者多個機器周期;機器周期是指完成一個基本操作的時間。指令周期是CPU的關鍵指標,指取出并執行一條指令的時間。一般以機器周期為單位,分單指令執行周期、雙指令執行周期等。機器周期是完成一個基本操作的時間單元。時鐘周期是CPU的晶振的工作頻率的倒數。

  • 單片機有哪些接口,各模塊有哪些特性及應用環境?

    答:接口電路——用于銜接外設與總線,實現存儲空間擴展、I/O口線擴展、類型轉換(電平轉換、串并轉換、A/D轉換)、功能模塊、通信擴展、總線擴展等。

    外圍設備——工作設備,連接在接口電路上,主要有輸出設備和輸入設備。

    ?

    ?

    ?

    ?

    ?

    ?

    ?

  • 看門狗相關問題:

  • 看門狗的原理?

    答:工作原理:在系統運行以后就啟動看門狗計數器,此時看門狗就開始自動計時,如果達到一定的時間還不去給它進行清零,看門狗計數器就會溢出從而引起看門狗中斷,造成系統的復位。

    為什么會溢出呢?

    ???因為看門狗是一個計數器,而計數器位數有限。能夠裝的數值也就有限(比如8位的最多裝256個數,16位的最多裝65536個數),從開啟看門狗那刻起,它就開始不停的數機器周期,數一個機器周期就計數器加1,加到計數器盛不下了(這就是溢出)就產生一個復位信號,重啟系統。

  • 看門狗分為軟件看門狗和硬件看門狗,在什么情況下軟件看門狗失效?

    答:硬件看門狗是利用一個定時器電路,其定時輸出連接到電路的復位端,程序在一定時間范圍內對定時器清零,因此程序正常工作時,定時器總不能溢出,也就不能產生復位信號。如果程序出現故障,不在定時周期內復位看門狗,就使得看門狗定時器溢出產生復位信號并重啟系統。

    ??? 軟件看門狗原理上一樣,只是將硬件電路上的定時器用處理器的內部定時器代替,這樣可以簡化硬件電路設計,但是在可靠性方面不如硬件定時器。

    1、系統內部定時器自身發生故障看門狗就會失效(當然可以通過雙定時器相互監視,成本高);

    2、中斷系統故障導致定時器中斷失效。

    3、整個程序死機。主程序出現異常。

  • 什么時候喂狗?怎么喂狗?喂狗的注意事項?

    答:在實際的單片機應用系統中,到底選用哪種型號的看門狗,采用何種喂狗方式和看門狗連接方式以及在編程中喂狗命令應該放在程序中什么位置,這要根據現場干擾源的特點、已采用的干擾措施、單片機硬件資源和軟件結構特點以及對單片機系統的可靠性等具體情況而定。

  • 看門狗一般應用到程序的那些位置?

    答: 一些重要的程序,必須讓它一直跑著;而且還要時時關心它的狀態——不能讓它出現死鎖現象。(當然,如果一個主程序會出現死鎖,肯定是設計或者編程上的失誤。首要做的事是Debug。)但如果時間緊迫可以用軟件看門狗,暫時應急。

    ?

    喂狗命令放置位置:

  • 定時中斷服務子程序中;

  • 主程序中.

  • 復位相關問題:

  • 復位時單片機有什么動作?

    答:主要做的就是初始化每個寄存器,包括最重要的PC指針,不包括RAM,然后單片機從復位地址開始執行程序。

    必須使RST引腳(9)加上持續兩個機器周期(即24個振蕩周期)的高電平。單片機就執行復位操作。如果RST持續為高電平,單片機就處于循環復位狀態。

  • 單片機有哪些復位源,什么情況下會導致各個復位源

    答:

    6個復位源

    TM4C123GH6PM微控制器有6個復位源:

    1)上電復位(POR);

    2)外部復位輸入引腳有效(RST);

    3)掉電檢測可以用于由以下任一事件引起:①? 低于BOR0,觸發值是BOR0的?最高電壓值;②? 低于BOR1,觸發值是BOR1的最高? 電壓值。

    4)軟件啟動復位(利用軟件復位寄存器);

    5)違反看門狗復位條件;

    6)MOSC故障。

    ?

    STM8S共有9個復位源:

    NRST引腳產生的外部復位

    上電復位(POR)

    掉電復位(BOR)

    獨立看門狗復位

    窗口看門狗復位

    軟件復位

    SWIM復位

    非法操作碼復位

    EMS復位:當一些關鍵的寄存器被破壞或錯誤加載時產生的復位

    所有的復位源最終都作用于NRST管腳,并在復位過程中保持低電平。復位入口向量在內存映射中位于固定的地址6000h。?

  • 復位的兩種啟動方式?

    答:1、上電復位:要求接通電源后,自動實現復位操作。

    ??? 2、按鈕復位:要求接通電源后,單片機自動復位,并且在單片機運行期間,使用開關也可以實現復位。

  • 復位存在哪些問題?

    答:采用上電復位:復位信號上電過程中有掉電現象,可能會造成邏輯方面的錯誤導致相關芯片復位時間不夠、二次復位等、從而不能夠正常工作起來。原因:產生的復位信號給了幾個芯片用,導致這個復位信號的負載壓力比較大,驅動能力不夠從而往下調電,此現象常常出現在RC復位上。

    復位信號上電前有毛刺與復位信號上電時有毛刺,可能會造成邏輯方面的錯誤導致相關芯片復位時間不夠。方案:加大上拉電阻的阻值。

  • 復位電路有哪些?那種比較好?

    答:單片機復位電路主要有四種類型:

    (1)微分型復位電路:

    (2)積分型復位電路:

    (3)比較器型復位電路:

    比較器型復位電路的基本原理。上電復位時,由于組成了一個RC低通網絡,所以比較器的正相輸入端的電壓比負相端輸入電壓延遲一定時間.而比較器的負相端網絡的時間常數遠遠小于正相端RC網絡的時間常數,因此在正端電壓還沒有超過負端電壓時,比較器輸出低電平,經反相器后產生高電平.復位脈沖的寬度主要取決于正常電壓上升的速度.由于負端電壓放電回路時間常數較大,因此對電源電壓的波動不敏感.但是容易產生以下二種不利現象:

    1)電源二次開關間隔太短時,復位不可靠:

    2)當電源電壓中有浪涌現象時,可能在浪涌消失后不能產生復位脈沖。

    為此,將改進比較器重定電路,可以利用數字邏輯的方法和比較器配合,設計的比較器重定電路。此電路稍加改進即可作為上電復位和看門狗復位電路共同復位的電路,大大提高了復位的可靠性。

    (4)看門狗型復位電路.

    看門狗型復位電路主要利用CPU正常工作時,定時復位計數器,使得計數器的值不超過某一設定的值;當CPU不能正常工作時,由于計數器不能被復位,因此其計數會超過某一值,從而產生復位脈沖,使得CPU恢復正常工作狀態。此復位電路的可靠性主要取決于軟件設計,即將定時向復位電路發出脈沖的程序放在何處是最優的設計。一般設計,將此段程序放在定時器中斷服務子程序中。然而,有時這種設計仍然會引起程序走飛或工作不正常。原因主要是:當程序"走飛"發生時,定時器初始化以及開中斷之后的話,這種"走飛"情況就有可能不能由Watchdog復位電路校正回來.因為定時器中斷一真在產生,即使程序不正常,Watchdog也能被正常復位.為此提出定時器加預設的設計方法.即在初始化時壓入堆棧一個地址,在此地址內執行的是一條關中斷和一條死循環語句.在所有不被程序代碼占用的地址盡可能地用子程序返回指令RET代替.這樣,當程序走飛后,其進入陷阱的可能性將大大增加.而一旦進入陷阱,定時器停止工作并且關閉中斷,從而使Watchdog復位電路會產生一個復位脈沖將CPU復位.當然這種技術用于實時性較強的控制或處理軟件中有一定的困難。

    由此可見,四種復位電路中,看門狗型復位電路較其他三中復位電路更加適合。

  • 堆棧相關問題:

  • 堆棧的原理?過程怎么操作?

    答:單片機RAM中,常常會指定一個專門的區域來存放某些特別的數據,它遵循先進后出、后進先出的原則。這個RAM區就是堆棧。堆棧是一種數據結構(數據項按序排列:堆,順序隨意。棧,后進先出)。使用一個稱作堆棧指針的專用寄存器指示前的操作位置,堆棧指針總是指向棧頂。

    ??? 操作過程:

    1 堆棧的建立(初始化)

    2 參數入棧(push)

    3 參數出棧(pop)(后進先出)

  • 堆棧應用在什么地方?存在什么問題?怎么解決?

    答:在80C51單片機中,堆棧在子程序調用和中斷時會把斷點地址自動進棧和出棧。進棧和出棧的指令(PUSH、POP)操作可用于保護現場和恢復現場。由于子程序調用和中斷都允許嵌套,并可以多級嵌套,而現場的保護也往往使用堆棧,所以一定要注意給堆棧以一定的深度,以免造成堆棧內容的破壞而引起程序執行的“跑飛”。

    ?

    堆棧指針SP在80C51中存放當前的堆棧棧頂所指存儲單元地址的一個8位寄存器。80C51單片機的堆棧是向上生成的,即進棧時SP的內容是增加的;出棧時SP的內容是減少的。

    系統復位后。80C51的SP內容為07H。若不重新定義,則以07H為棧底,壓棧的內容從08H單元開始存放。但工作寄存器R0~R7有4組,占有內部RAM地址為00H~1FH,位尋址區占有內部RAM地址為20H~2FH。若程序中使用了工作寄存器1~3組或位尋址區,則必須通過軟件對SP的內容重新定義,使堆棧區設定在片內數據RAM區中的某一區域內(如30H),堆棧深度不能超過片內RAM空間。

    ?

  • 學習堆棧的作用?

    答:在片內RAM中,常常要指定一個專門的區域來存放某些特別的數據,它遵循順序存取和后進先出(LIFO/FILO)的原則,這個RAM區叫堆棧。

    1.子程序調用和中斷服務時CPU自動將當前PC值壓棧保存,返回時自動將PC值彈棧。

    2.保護現場/恢復現場

    3.數據傳輸

    ?

    也就是說,堆棧是進入中斷的時候用到的,單片機一旦遇到中斷請求,就會去處理中斷,處理完后再回來處理主程序,這樣就涉及到了一個問題,單片機要保存中斷之前的信息,以便處理完后能夠回到主程序中,單片機會在響應中斷前,把單片機現在的指針地址(也就是處理完要返回的地址),以及一些必要的數據壓入堆棧(沒有這些數據,單片機處理完中斷后就無法確定主程序的狀態)。

    ?

  • 中斷相關問題:

  • 中斷的響應過程?優先級?

    答:1、響應過程:

    1)根據響應的中斷源的中斷優先級,使相應的優先級狀態觸發器置1;

    2 執行硬件中斷服務子程序調用,并把當前程序計數器PC的內容壓入堆棧,保護斷點,尋找中斷源。

    3 清除相應的中斷請求標志位(串行口中斷請求標志RI和TI除外);

    4 把被響應的中斷源所對應的中斷服務程序的入口地址(中斷矢量)送入PC,從而轉入相應的中斷服務程序。

    5 中斷返回,程序返回斷點處進行執行。

    2、優先級:中斷的優先級有兩個:查詢優先級與執行優先級

    查詢優先級:查詢優先級是不可以更改和設置的

    1)系統默認的優先級(邏輯上):

    外部中斷0 > 定時器中斷0 > 外部中斷1 > 定時器中斷1 > 串行中斷

    2)由IP寄存器來決定優先級。當IP對應位置為1時,該中斷級別提高。同為1是按默認級別

  • 中斷嵌套的好處與壞處?

    答:中斷嵌套:CPU在處理級別較低的中斷過程中,出現了級別較高的中斷請求。CPU停止執行低級別中斷,執行高級別的中斷處理程序后,再接著執行低級別的未被處理完的中斷程序。

    使用中斷嵌套可以使高優先級別的中斷得到及時的響應和處理。

    1 CPU與外部設備并行工作

    2 能夠處理例外事件

    3 實現實時處理

    4 實現人機聯系

    5 實現用戶程序與操作系統的聯系

    6 實現多道程序并行執行

    7 在多處理機系統中,實現處理機之間的聯系

    壞處:高級別的中斷一直持續的話會影響低級別中斷的處理。

  • 中斷向量表的理解

    答:中斷源的識別標志,可用來形成相應的中斷服務程序的入口地址或存放中斷服務程序的首地址稱為中斷向量。把所有的中斷向量集中起來,按中斷類型號從小到大的順序存放到存儲器的某一區域內,這個存放中斷向量的存儲區叫做中斷向量表,即中斷服務程序入口地址表。

  • 中斷在單片機中起到什么作用?

    答:中斷能實現快速的CPU與慢速的外設同步工作,實現數據傳送、故障檢測與處理、人機聯系、多機系統、多道程序分時操作、實時信息處理等。

  • ?

    其它

  • 什么是臨界段,哪些情況下會存在臨界段的問題,如何進行臨界段保護。

    答:1.臨界段代碼,也叫臨界區,是指那些必須完整連續運行,不可被打斷的代碼段。

    2.讀取或者修改變量(特別是用于任務間通信的全局變量)的代碼,一般來說這是最常見的臨界代碼。

    ②調用公共函數的代碼,特別是不可重入的函數,如果多個任務都訪問這個函數,結果是可想而知的。總之,對于臨界段要做到執行時間越短越好,否則會影響系統的實時性。

    3.中斷處理程序和任務都會訪問的臨界段代碼,需要使用關中斷的方法加以保護;僅由任務訪問的臨界段代碼,可以通過給調度器上鎖的方法來保護。

  • 什么是可重入型函數,使用時需要注意哪些問題

    答:可重入函數

  • 不為連續的調用持有靜態數據。

  • 不返回指向靜態數據的指針;所有數據都由函數的調用者提供。

  • 使用本地數據,或者通過制作全局數據的本地拷貝來保護全局數據。

  • 如果必須訪問全局變量,記住利用互斥信號量來保護全局變量。

    絕不調用任何不可重入函數。

    ?

    注意事項:

    1 :編寫可重入函數時,應注意局部變量的使用(如編寫C/C++ 語言的可重入函數時,應使用auto 即缺省態局部變量或寄存器變量)

    說明:編寫C/C++語言的可重入函數時,不應使用static局部變量,否則必須經過特殊處理,才能使函數具有可重入性。

    2 :編寫可重入函數時,若使用全局變量,則應通過關中斷、信號量(即P 、V 操作)等手段對其加以保護

    說明:若對所使用的全局變量不加以保護,則此函數就不具有可重入性,即當多個進程調用此函數時,很有可能使有關全局變量變為不可知狀態。

  • 專用詞匯解釋:

    VCCC=circuit 表示電路的意思, 即接入電路的電壓;

    VDDD=device 表示器件的意思, 即器件?? 內部的工作電壓;

    對于數字電路來說,VCC是電路的供電電壓,VDD是芯片的工作電壓(通常Vcc>Vdd),VSS是接地點;有些IC既有VDD引腳又有VCC引腳,說明這種器件自身帶有電壓轉換功能。

    VEE:發射極電源電壓, Emitter Voltage, 一般用于 ECL 電路的負電源電壓.

    VSSS=series 表示公共連接的意思,通常是指電路公共接地端電壓。

    VPP:不同芯片對Vpp的定義稍有不同,比如電壓峰峰值,單片機中Vpp多數定義為編程電壓

    在場效應管(或COMS器件)中,VDD為漏極,VSS為源極,VDD和VSS指的是元件引腳,而不表示供電電壓。一般來說VCC=模擬電源,VDD=數字電源,VSS=數字地,VEE=負電源

    ?

    ?

  • 轉載于:https://www.cnblogs.com/ttxs-cn/p/8631543.html

    總結

    以上是生活随笔為你收集整理的单片机学习问题集的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。