日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

单片机原理与应用以及C51编程技术——硬件体系结构梳理

發布時間:2024/8/1 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单片机原理与应用以及C51编程技术——硬件体系结构梳理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、單片機的結構原理
    • 1.1 主要性能和特點
    • 1.2 內部框圖
    • 1.3 CPU
      • 1.3.1 運算器
      • 1.3.2 控制器
    • 1.4 幾個主要的特殊功能寄存器SFR說明
      • 1.4.1 程序指針PC
      • 1.4.2 累加器A
      • 1.4.3 寄存器B
      • 1.4.4 數據指針DPTR
      • 1.4.5 程序狀態字PSW
        • 介紹
        • 例子
      • 1.4.6 堆棧指針SP
        • 堆棧的介紹
        • 堆棧的作用
        • 堆棧操作的兩種方式
  • 二、單片機的存儲器結構
    • 2.1 程序存儲器ROM(片內、片外)
      • 2.1.1 程序存儲器六個特殊的單元
      • 2.1.2 外部程序存儲器
    • 2.2 數據存儲器RAM
      • 2.2.1 AT89 片內、片外數據存儲器示意圖
      • 2.2.2 片內RAM低128B 字節功能分配圖
        • 工作寄存區區結構圖(0區)
        • 片內RAM中具有雙重功能的存儲結構圖
        • RAM的20H~2FH的存儲特點(位尋址區)
      • 2.2.3 特殊功能寄存器SFR
    • 2.3 外部數據存儲器
    • 2.4 小結
  • 三、單片機的引腳功能
    • 3.1 51單片機的外形和邏輯符號
    • 3.2 51單片機的引腳定義
      • 3.2.1 主電源引腳
      • 3.2.2 外接晶體引腳
      • 3.2.3 控制與電源復用引腳
        • RST / V pd(9腳)
        • ALE/PROG(30腳)
        • /PSEN(29腳)
        • /EA / Vdd (31腳)
  • 四、單片機的I/O口
    • 4.1 P0
    • 4.2 P1
    • 4.3 P2
    • 4.4 P3
      • 4.4.1 小結
    • 4.5 片外總線結構
      • 4.5.1 地址總線(AB)
      • 4.5.2 數據總線(DB)
      • 4.5.3 控制總線(CB)
    • 4.6 小結
  • 五、單片機內部看門狗定時器
    • 看門狗定時器(WDT)簡介
  • 六、單片機復位工作方式
    • 6.1 介紹
    • 6.2 兩種上電復位電路
      • 6.2.1 上電復位電路
      • 6.2.2 上電復位及按鈕復位
    • 6.3 復位的初始狀態
  • 七、單片機低功耗方式
    • 7.1 介紹
    • 7.2 空閑工作方式
    • 7.3 掉電工作方式
  • 八、單片機的時序
    • 8.1 介紹
    • 8.2 基本時序
      • 8.2.1 時鐘周期
      • 8.2.2 狀態周期
      • 8.2.3 機器周期
      • 8.2.4 指令周期

一、單片機的結構原理

1.1 主要性能和特點

  • 內部程序存儲器ROM :4K的flash程序存儲器;
  • 寄存器區:4個寄存器區,每個區有R0-R7八個工作寄存器;
  • 8位并行輸入輸出端口:P0、P1、P2和P3;
  • 定時/計數器:2個16位的定時/計數器 T0、T1;
  • 串型口:全雙工串行端口(RXD:接收端、TXD發送端);
  • 中斷系統:設有5個中斷源(T0、T1、Int0、Int1、ES);
  • 系統擴展能力:可外接64K的 ROM 和64K的 RAM;
  • 堆棧:設在RAM單元、位置可以浮動(通過指針SP來確定堆棧在RAM中的位置)系統復位時SP=07H;
  • 布爾處理機:配合布爾運算的指令進行各種邏輯運算;
  • 指令系統:111條指令。按功能可分為數據傳送、算術運算、邏輯運算、控制轉移和布爾操作5大類。
  • 1.2 內部框圖

    1.3 CPU

    CPU由運算器和控制器兩部分組成,主要完成取指令、指令譯瑪、發出各種操作所需的控制信號,使單片機各個部分協調工作。

    1.3.1 運算器

    運算器是以算術邏輯單元ALU為核心,加上累加器A、寄存器B、程序狀態字PSW及專門用于位操作的布爾處理機等組成的,它可以實現數據的算術運算、邏輯運算、位變量處理和數據傳送等操作。

    1.3.2 控制器

    控制器是單片機的控制中心,它包括定時和控制電路、指令寄存器、指令譯碼器、程序計數器PC、堆棧指針SP、數據指針DPTR以及信息傳送控制部件等。

    它先以振蕩信號為基準產生CPU的時序,從ROM中取出指令到指令寄存器,然后在指令譯碼器中對指令進行譯碼,產生指令執行所需的各種控制信號,送到單片機內部的各功能部件,指揮各功能部件產生相應的操作,完成指令對應的功能。

    1.4 幾個主要的特殊功能寄存器SFR說明

    1.4.1 程序指針PC

  • 為CPU指明將要執行的指令地址,(存放下一條指令的地址)。長度為16位,所以尋址范圍為0-65535(64K)。
  • 單片機在復位時PC=0000H,這就意味著一旦將單片機復位,CPU就從ROM的0000H單元執行程序。
  • 在物理上是獨立于SFR。
  • 1.4.2 累加器A

    最常用的寄存器。所有的算術運算指令所要使用的寄存器且運算結果都存放在A中。

    1.4.3 寄存器B

    乘、除法指令專用的寄存器,當然也可作為一般的工作寄存器使用。

    1.4.4 數據指針DPTR

  • 由兩個8位寄存器構成。高八位寄存器DPH和低八位寄存器DPL構成16位的寄存器DPTR。
  • DPTR主要用來存放外部數據存儲器RAM的地址,作為CPU訪問外部RAM的數據指針
  • CPU的查表指令使用DPTR提供ROM中表格的首地址;
  • 在MCS-51單片機中,CPU訪問外部RAM中的數據或ROM中的表格、常數必須借助DPTR做指針來實現數據的讀取訪問。
  • 1.4.5 程序狀態字PSW


    8位寄存器,表征程序執行的狀態信息。

    介紹

  • CY(PSW.7)進位標志:
    在加減法運算中,累加器A的最高位D7有進位,則CY=1,否則CY=0。同理,在減法運算中,如果A7有借位,則CY=1.因此CY往往作為無符號數運算是否有溢出的標志。
  • AC(PSW.6)輔助進位位:
    用來判斷加減法運算時,低四位是否向高四位進位或借位(既A3的進位或借位)。往往用來處理壓縮的BCD碼的運算處理。
  • F0(PSW.5) 用戶標志位:
    完全由用戶來定義和使用。
  • RS1,RS0工作寄存器區選擇位:
    補充:寄存器區:4個寄存器區,每個區有R0-R7八個工作寄存器;
    確定工作寄存器R0-R7在4個區中的位置(單片機在復位后RS1、RS0=00 — 選擇0區)??梢酝ㄟ^修改RS1,RS0的值來改變工作寄存器區的選擇。
  • OV(PSW.2)溢出標志位
    判斷有符號數運算時是否有溢出。
    OV的結果可以用一個算法來表示: OV=CP異或CS
    其中:CP為A7的進位,CS為A6的進位OV=1表明有溢出。
    百度解釋:溢出標志位:對于單字節的有符號數,若用最高位(b7)表示正、負號,則只有7位有效數位(b6~b0),能表示-128~+127之間的數。運算結果超出了這個數值范圍,就會發生溢出,此時OV=1,否則OV=0。
  • P(PSW.0)奇偶標志位:
    用來標志累加器A中運算后“1”的個數。
    當P=1時,表明A中1的個數為奇數個,反之為偶數個。
  • 例子

    1.4.6 堆棧指針SP

    SP 堆棧指針:8位寄存器,用來指示堆棧的位置,可由軟件修改。

    堆棧的介紹

    堆棧是一種按“先進后出”規律操作的存儲結構。不同類型的處理器其堆棧的設計各不相同:

    SP寄存器作為堆棧指針。這種結構的特點是充分的利用RAM的空間,使堆棧的空間得以擴大。但它也有一種“致命”的弱點:數據很容易與堆棧發生沖突,特別是初學編程者。
    為了避免上述問題的出現,編程者往往在程序的開始加上一條指令: MOV SP,60H 試分析為什么?

    百度解釋:
    單片機復位后SP的值一般要用一條指令賦值為60H,這只是個別人寫程序的愛好與習慣罷了,沒有任何規定必須是賦值60H,更沒有任何原因必須選60H。
    就單片機復位后,SP=07H,不用重新賦值也是可以的,否則,為什么當初設計者會這么設計呢。由于51單片機的堆棧是向上增長的,所以,為了避免堆棧區與用戶數據區互相影響,才將SP設置在60H以后,比較合理的是賦值為6FH,這樣堆棧區可用70H~7FH,預留有16個單元足夠,也不浪費。

    堆棧的作用

    ①保護程序的斷點地址(既返回地址);
    ②保護數據(也稱保護現場)。

    堆棧操作的兩種方式

    ①斷點地址的保護是靠執行子程序調用指令或發生中斷調用時,由硬件自動實現斷點地址的進棧保護;在子程序或中斷服務程序返回時有RET或RETI指令實現恢復斷點;
    ②而對于其它需要保護的數據都要由專用的指令PUSH或POP來實現進棧保護或恢復。

    二、單片機的存儲器結構

  • 程序存儲器ROM要掌握的要點是:6個特定的入口單元
  • 數據存儲器RAM要掌握的要點是:內部結構(包括寄存器區、堆棧區、位尋址區和特殊功能寄存器SFR區)。
    ① 內部集成了4K的程序存儲器ROM
    ② 內部具有256B的數據存儲器RAM
    ③ 可以外接64K的程序存儲器ROM和數據存儲器RAM。
  • 從物理結構的角度講,51單片機的存儲系統可以分為四個存儲空間:既片內ROM,RAM和片外ROM、RAM。
    從邏輯上講(既編程的角度),51單片機的存儲系統實際上分為三個存儲空間。
    1. 片內數據存儲器RAM;
    2. 片外數據存儲器RAM;
    3. 片內或外的程序存儲器ROM(由EA電平決定)。
    結構圖:

    2.1 程序存儲器ROM(片內、片外)

  • 程序存儲器ROM用于存放程序、常數或表格。

  • 在51單片機中,由引腳 /EA 上的電平選擇內、外ROM;
    EA=1時,CPU執行片內的4KROM中的程序;
    EA=0時,CPU選擇片外ROM中的程序。

  • 無論是使用片內還是使用片外ROM,程序的起始地址都是從ROM的0000H單元開始。

  • 盡管系統可以同時具備片內ROM和外部ROM,但是在一般正常使用情況下,通過/EA的設定來選擇其一(或者使用內部ROM,或者使用外部ROM)。

  • 如果EA=1(執行片內程序存儲器中程序時):
    如果程序計數器的指針PC值超過0FFFH(4K)時,單片機就要自動的轉向片外的ROM存儲器且從1000H單元開始執行程序(無法使用片外ROM的低4K空間)。

  • 2.1.1 程序存儲器六個特殊的單元

    0000H單元:復位時程序計數器PC所指向的單元,因此用來 存放程序中的第一條指令;
    0003H單元:外部中斷/INT0的矢量入口地址;
    000BH單元:定時器T0溢出中斷的矢量入口地址;
    0013H單元:外部中斷/INT1的矢量入口地址;
    001BH單元:定時器T1的溢出中斷矢量入口地址;
    0023H單元:串行口接收、傳送的中斷矢量入口地址。
    矢量入口單元:在編寫中斷程序時,寫入對應的“跳板指令”。

    因為在復位時,程序指針PC指向0000H

    2.1.2 外部程序存儲器

    當單片機使用外ROM存儲器時(擴展系統),必須設定/EA=0,此時單片機的端口功能就要發生相應的改變:
    ① P0、P2作為外部ROM的地址和數據總線;
    ② 使用引腳/psen信號來選通外部ROM的數據三態輸出。

    2.2 數據存儲器RAM

    無論在物理上還是邏輯上,系統中RAM 都可分為兩個獨立空間:內部和外部RAM。由不同的指令來訪問。

  • 訪問內部數據存儲單元時,使用 MOV 指令;
  • 訪問外部數據存儲器時,使用 MOVX 指令。
  • 內部RAM從功能上將256B空間分為二個不同的塊:

  • 低128B的RAM塊;
  • 高128B的SFR(Special Function Register )塊。
  • 在低128B的RAM存儲單元中又可劃分為:

  • 工作寄存器區;
  • 位尋址區;
  • 通用存儲數據的“便簽區”。
  • 高128B的專用寄存器區SFR中僅僅使用了21寄存器(51系列),其它107個單元不能使用。

    2.2.1 AT89 片內、片外數據存儲器示意圖

    2.2.2 片內RAM低128B 字節功能分配圖

    工作寄存區區結構圖(0區)

    片內RAM中具有雙重功能的存儲結構圖

    RAM的20H~2FH的存儲特點(位尋址區)

  • 20H~2FH本身是字節地址,因此這些單元可以按照常規存儲16個字節的數據。如:

    MOV 20H,A ;將累加器A中的數據送RAM的 20H單元(字節傳送操作)

  • 將20H~2FH中的16*8既128個bit分別定義其位地址00H~7FH(如圖),這樣CPU可以按位來訪問這些bit:

    MOV 20H,C ;將Cy中的布爾變量送20H位地 址中(位傳送)

  • 2.2.3 特殊功能寄存器SFR

    特殊功能寄存器 SFR (Special Function Register) 離散分布在256B字節中的高128B中。

  • 設定單片機內部各模塊的工作方式,存放相關模塊的狀態與標志。如定時器、串行口,并行端口和中斷設置等。
  • 盡管特殊功能寄存器與RAM在同一個單元中,但不能作為普通的RAM存儲單元來使用。
  • 在編程中根據需要,進行一些特定功能的設定,或者是從中查尋相關部件的狀態時,才能對其進行讀、寫操作。如中斷方式的設定、定時器工作模式的設定,查詢串行口發送或接收是否結束等等。





    具有位地址和位名稱的SFR才可以位尋址。
    位地址有以下4種表示形式:
    • 直接使用位地址表示
      例如:0D7H —— PSW最高位的位地址
    • 使用位名稱表示、
      例如:CY —— PSW最高位的位名稱
    • 使用SFR字節地址.位形式表示
      例如:0D7H.7 —— PSW字節地址.最高位
    • 使用SFR名稱. 位形式表示
      例如:PSW.7 —— PSW名稱.最高位

    位尋址:20H-2FH和能被8整除的SFR

    2.3 外部數據存儲器

    當單片機需要外加RAM存儲器時(擴展系統),必須使用專用的MOVX指令,此時單片機的端口功能就要發生相應的改變:
    ① P0、P2作為外部RAM的地址和數據總線;
    ② 使用MOVX指令進行讀寫操作。
    ③ MOVX指令在執行時,會自動地產生/RD或/WR信號對 外部RAM實現控制。

    指令通過P0、P2輸出DPTR中的16位地址信號。這里使用了16位的寄存器DPTR,其尋址范圍為64KB。
    此時: P0口做低8位地址總線和數據的“復用”總線;
    P2口做高8位地址總線。

    2.4 小結

    MCS-51單片機的存儲器的配置
    片內4K的程序存儲器ROM;
    片內256B的數據存儲器RAM;
    片外可以擴展64K的ROM和RAM.

  • 程序存儲器
    當引腳EA=1時, CPU從片內ROM的0000H單元運行程序;
    若引腳EA=0時, CPU從片外ROM的0000H單元運行程序。
    當引腳EA=1,且PC值大于0FFFH時, CPU會自動從內部ROM轉到片外ROM的1000H單元運行程序。

    無論是片內還是片外, ROM有六個單元是有特定意義的:

  • 0000H單元:上電,復位后的啟動地址;
  • 0003H單元:外部中斷INT0的入口地址;
  • 000BH單元:定時器T0的中斷入口地址;
  • 0013H單元:外部中斷INT1的入口地址;
  • 001BH單元:定時器T1的中斷入口地址;
  • 0023H單元:串行口中斷的入口地址。
  • 內部數據存儲器RAM
    低128B: 1,工作寄存器區;2,位尋址區;3,便箋區;
    高128B: 做特殊功能寄存器SFR用。
    注意:

  • SFR不同于一般的數據RAM,它不是用于存儲數據,而是用來控制和 表征單片機內部幾個邏輯部件的特征,狀態等重要信息。
  • 在使用RAM時,要注意字節地址和位地址的概念.
  • 訪問內部RAM的指令為 MOV 指令。
  • 外部數據存儲器

  • 在硬件具備的條件下,MCS-51單片機可以使用64KB的外部數據存儲器.如果要訪問外部數據存儲器RAM時,只能使用間址的尋址方式.
  • 間址寄存器有R0,R1或DPTR.前者尋址范圍為256KB(00H-FFH);后者為64KB(0000H-FFFFH).使用的指令是 MOVX。
  • 三、單片機的引腳功能

    3.1 51單片機的外形和邏輯符號

    3.2 51單片機的引腳定義

    3.2.1 主電源引腳

    主電源引腳:Vcc(+5V— 40腳)和 Vss (GND 20腳);

    3.2.2 外接晶體引腳

    外接晶體引腳:XTAL1(19腳)、XTAL2(18腳)
    兩腳之間接入一個晶體震蕩器,單片機就以此晶體的頻率開始工作(其頻率范圍為:0~24MHz)。
    頻率越高,單片機的工作速度就越快,但單片機的功耗就要增加,其產生的高次諧波也會對系統內部的模擬電路(如ADC)產生嚴重的干擾。

    3.2.3 控制與電源復用引腳

    RST / V pd(9腳)

    RST / V pd(9腳):復位信號輸入,高電平有效。

    • 復位操作可以確保CPU從程序的開始端運行程序;
    • 微處理器在“上電”時必須對其施行“復位”操作,以避免電源從0V至5V時電源的過度性造成系統“混亂”。而MCS-51單片機不具備“上電復位”功能。因此,必須通過外部對此引腳施加一個(大于兩個時鐘周期的)高電平使單片機復位。


      在復位狀態下:
  • 程序指針PC=0000H;
  • 堆棧指針SP=07H;
  • SFR的內容全變為“0”;
  • P0~P3四個端口輸出“全1”(FFH);
  • RAM內容不變。
  • 【思考題】PC=0000H 意味著什么?
    意味著程序從頭開始執行
    Vpd 功能:當單片機掉電時,此引腳可以接入備用電源向單片機內部的RAM供電,防止RAM中的數據丟失。

    ALE/PROG(30腳)

    以系統時鐘 fosc 的1/6的頻率,周期性輸出方波脈沖。

  • 系統擴展時,作為外部存儲器低八位地址的鎖存信號;
  • 可為系統提供一個頻率為 fosc/6 的方波信號;
  • EPROM型單片機編程時編程輸入脈沖(第二功能)。
  • /PSEN(29腳)

    /PSEN(29腳):外部程序程序存儲器的選通輸出信號。

    • 當單片機使用外部程序存儲器時,此腳在一個機器周期內產生兩次負脈沖,作為外部程序存儲器ROM的選通信號;
    • 訪問外部數據存儲器 RAM 時,此信號無效。

    /EA / Vdd (31腳)

    /EA / Vdd (31腳):程序存儲器的選擇控制端
    CPU 執行片內ROM還是外部ROM中的程序,由硬件設計者通過對EA引腳的設置來決定:
    /EA=“1” 時:單片機使用內部的程序存儲器ROM;
    /EA=“0” 時:單片機使用外部的程序存儲器ROM。
    【注意】:如果EA=1既使用單片機內部的程序存儲器時,如果程序計數器PC的值超過0FFFH時,單片機將自動轉向外部程序存儲器1000H開始的單元。
    對于EPROM型的單片機,此腳還是用于寫程序時,加入21伏的編程電壓。

    四、單片機的I/O口

    4.1 P0

    P0.0 - P0.7: P0端口線(39-32腳)
    輸出能力最強的端口,可帶動8個TTL負載;

    • 具有兩種工作方式:
      ①普通的I/O方式;
      ②系統擴展時的總線方式。
    • 當處于I/O方式時:端口內部輸出電路呈“開路結構”,所以當驅動MOS負載時,應接一個10K左右的上拉電阻,否則無法輸出高電平。
    • 當處于擴展方式時:P0口成為外部存儲器提供低八位地址和數據的“復用總線” (此時不能作為通用的I/O端口)。

    4.2 P1

    P1.0 - P1.7: P1端口線(1 – 8腳):

    • 負載能力4個TTL負載。
    • MCS-51單片機中唯一“功能單一”的I/O端口。在系統設計中只能設計為“通用的I/O端口”;

    4.3 P2

    P2.0 – P2.7: P2端口線(21 – 28腳):

    • 同P0端口類似:具有兩種工作方式:
      ①普通的I/O方式;
      ②系統擴展時的總線方式(高八位地址總線)。

    4.4 P3

    P3.0 – P3.7 P3端口線 (10 – 17腳):

    • P3口的引腳具有兩種用途:
      ①做通用的I/O端口,負載能力為4個TTL ;
      ②引腳具有第二功能。

    4.4.1 小結

    【注意】: 在系統設計中,P3端口原則上不作I/O端口,而是盡量保留其第二功能;

    如:串行通信中所使用的發送TXD、接收RXD以及外部中斷的兩個輸入信號INT0、INT1等。

    **這種方法利于系統設計中最大限度的調用MCS-51單片機的內部硬件資源,以簡化外部電路的設計。**

    4.5 片外總線結構

    4.5.1 地址總線(AB)

    地址總線的寬度是16位,因此可以尋址的范圍是64?KB。采用分時復用技術,可以對外部64?KB的數據存儲器或程序存儲器直接尋址。它由P0口提供16位地址總線的低8位(A0~A7),由P2口提供地址總線的高8位(A8~A15)。

    4.5.2 數據總線(DB)

    數據總線的寬度是8位,它由P0口提供。

    4.5.3 控制總線(CB)

    控制總線由P3口的第二功能(RXD、TXD、INT0、INT1、T0、T1、RD、WR)和4根獨立的控制線(RST、EA、ALE、PSEN)組成。

    4.6 小結

  • MCS-51單片機的四個端口其功能在芯片設計中各不相同,所以其內部結構和特點也不一樣;
  • P0~P3四個端口都可以作為普通的具有雙向傳輸功能的I/O端口;
  • 當系統硬件設計中如果采用外部存儲器(ROM或RAM)擴展方式時,P0、P2端口變為系統總線。在此時P0、P2不能再做I/O端口。
  • P3口在系統設計上,盡可能的保留其第二功能,以可充分利用單片機的內部系統資源。
  • 對程序存儲器ROM的使用選擇取決于引腳EA的設定:EA=1使用片內4K的ROM;EA=0時使用外部ROM。
  • 一個微處理器在上電時,必須進行“復位”操作,而MCS-51單片機不具備“上電復位”功能,所以必須外加一個上電復位電路,其復位時間大于2個機器周期即可;
  • 單片機的工作頻率 fosc 取決于外接晶體的振蕩頻率。如何選擇晶體的振蕩頻率不單純考慮系統的工作速度,還要考慮到系統的功耗、工作的穩定向和可靠性,而這些都與外接晶體的振蕩頻率有著直接的關系;
  • 五、單片機內部看門狗定時器

    看門狗定時器(WDT)簡介

    WDT是為了解決CPU運行時可能進入混亂或死循環而設置的,AT89S51的WDT由一個14bit計數器和看門狗復位SFR(WDTRST)構成。**外部復位時,WDT默認為關閉狀態,要打開WDT,用戶必須順序將01EH和0E1H寫到WDTRST寄存器(SFR地址為0A6H)中。**當啟動WDT后,它會隨晶體振蕩器在每個機器周期計數,除硬件復位或WDT溢出復位外沒有其它方法關閉WDT。WDT溢出將使RST引腳輸出**高電平的復位脈沖**,復位脈沖持續時間**98個時鐘周期**

    六、單片機復位工作方式

    6.1 介紹

    復位:將單片機系統置成特定初始狀態的操作,復位后程序從頭(0000H單元)開始執行程序。
    系統剛接通電源或重新啟動時均進入復位狀態。
    當系統處于正常工作狀態時,如果RST引腳上有一個高電平并維持2個機器周期(24個振蕩周期)以上,則CPU就可以實現可靠復位,如圖2-17所示,其中TCY為機器周期,等于12個時鐘周期。各寄存器和程序計數器PC的狀態見表2-11所示。

    6.2 兩種上電復位電路

    6.2.1 上電復位電路


    上電復位電路:當接通電源的瞬間,RST端與VCC同電位,隨著電容上的電壓逐漸上升,RST端的電壓逐漸下降,于是在RST端便形成了一個正脈沖,只要該正脈沖的寬度持續兩個機器周期的高電平,就可實現系統自動復位。

    6.2.2 上電復位及按鈕復位


    上電復位和按鈕復位:(也稱為手動復位)的組合,當人工按下P按鈕后就可實現系統復位。單片機復位后,各寄存器和程序計數器PC的狀態見表2-11所示。

    6.3 復位的初始狀態

    七、單片機低功耗方式

    7.1 介紹

    AT89系列單片機提供了兩種省電工作方式:空閑方式和掉電方式。其目的是盡可能地降低系統的功耗。
    在空閑工作方式中(IDL=1),振蕩器繼續工作,時鐘脈沖輸出到中斷系統、串行口以及定時器模塊,但卻不提供給CPU。在掉電方式中(PD=1),振蕩器停止工作。
    兩種工作方式都是由SFR中的電源控制寄存器PCON的控制位來定義的,PCON寄存器的控制格式如圖2-19所示。

    SMOD:串行口波特率倍率控制位。
    GF0,GF1:通用標志位。
    PD:掉電方式控制位。PD=1,進入掉電工作方式。
    IDL:空閑方式控制位。IDL=1,進入空閑工作方式。
    PCON寄存器的復位值為0XXX000,PCON.4~PCON.6為保留位,用戶不要對它們進行寫操作。

    7.2 空閑工作方式

    當CPU執行完置IDL=1( ORL PCON,#01H,PCON.0=1)的指令后,系統進入了空閑工作方式。
    這時,內部時鐘不提供給CPU,而只供給中斷、串行口、定時器部分。CPU的內部狀態維持不變,即包括堆棧指針SP、程序計數器PC、程序狀態字PSW、累加器ACC等其他所有的內容保持不變,端口狀態也保持不變。ALE保持邏輯高電平。

    有兩種方法可以使系統退出空閑工作方式:
    1、**任何的中斷請求都可以由硬件將PCON.0(IDL)清0而中止空閑工作方式。**當執行完中斷服務程序返回時,從置空閑工作方式指令的下一條指令開始繼續執行程序。
    2、**硬件復位。**RST端的復位信號直接將PCON.0(IDL)清0,從而退出空閑狀態,CPU則從進入空閑方式的下一條指令開始重新執行程序。

    7.3 掉電工作方式

    當CPU執行一條置PCON.1位(PD)為1的指令后,系統進入掉電工作方式。
    在這種工作方式下,內部振蕩器停止工作。由于沒有振蕩時鐘,因此所有的功能部件都停止工作,但內部RAM區和特殊功能寄存器的內容被保留,而端口的輸出狀態值都保存在對應的SFR中,ALE和都為低電平。
    **退出掉電方式的惟一方法是硬件復位。**復位后將所有的特殊功能寄存器的內容初始化,但不改變內部RAM區的數據。
    而在準備退出掉電方式之前,**Vcc必須恢復到正常的工作電壓值,并維持一段時間(約10?ms),**使振蕩器重新啟動并穩定后,方可退出掉電方式。

    八、單片機的時序

    8.1 介紹

    單片機取出指令后要對指令進行譯碼產生各種操作信號,所謂時序,就是指各種操作信號的時間序列,它表明了指令執行中各種信號之間的相互關系。為達到同步協調工作的目的,各操作信號在時間上有嚴格的先后次序,這些次序就是CPU的時序。
    CPU執行指令的一系列動作都是在時序電路控制下一拍一拍進行的,為了便于對CPU時序進行分析,人們按指令的執行過程規定了幾種周期,即時鐘周期、狀態周期、機器周期和指令周期,也稱為時序定時單位。

    8.2 基本時序

    8.2.1 時鐘周期

    也稱為振蕩周期,定義為時鐘脈沖頻率(fosc)的倒數,是計算機中最基本的、最小的時間單位。
    在一個時鐘周期內,中央處理器CPU僅完成一個最基本的動作。一個振蕩周期也稱為一個節拍,用P表示,通常稱為P節拍,如圖2.20所示。

    8.2.2 狀態周期

    時鐘周期經2分頻后成為內部的時鐘信號,用作單片機內部各功能部件按序協調工作的控制信號,稱為狀態周期,用S表示。
    **一個狀態周期包含兩個時鐘周期,前半狀態周期相應的時鐘周期定義為P1,后半周期對應的時鐘周期定義為P2。**一般情況下,CPU中的算術邏輯運算在P1有效期間完成,在P2有效期間進行內部寄存器間的信息傳送。

    8.2.3 機器周期

    機器周期:完成一個基本操作所需要的時間稱為機器周期。
    51單片機有固定的機器周期,規定一個機器周期有6個狀態,分別表示為S1~S6,而一個狀態包含兩個時鐘周期,那么一個機器周期就有12個時鐘周期,可以表示為S1P1, S1P2, …, S6P1, S6P2,一個機器周期共包含12個振蕩脈沖,即機器周期就是振蕩脈沖的12分頻。

    8.2.4 指令周期

    指令周期:指CPU執行一條指令所需要的時間,一般由若干個機器周期組成,指令不同,所需要的機器周期數也不同。51系統中,一個指令周期通常含1~4個機器周期。大多數指令是單字節單周期指令,還有一些指令是單字節雙周期指令和雙字節雙周期指令,而乘法指令MUL和除法指令DIV都是單字節四周期指令(參見附錄B)。

    總結

    以上是生活随笔為你收集整理的单片机原理与应用以及C51编程技术——硬件体系结构梳理的全部內容,希望文章能夠幫你解決所遇到的問題。

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