官术网_书友最值得收藏!

1.3.1 單片機系統的工作電路

1.振蕩電路

單片機內部的高增益反相放大器與單片機XTAL1、XTAL2引腳外接的晶體構成一個振蕩電路,為CPU提供時鐘脈沖,如圖1-11所示。XTAL1為振蕩電路輸入端,XTAL2為振蕩電路輸出端,同時XTAL2還是內部時鐘發生器的輸入端。片內時鐘發生器對振蕩脈沖進行二分頻,為控制器提供一個兩相的時鐘信號,產生CPU的操作時序。MCS-51系列單片機時鐘電路中常用6MHz、12MHz、11.0592MHz的石英晶體。電容C1和C2為石英晶體振蕩器的負載電容,對振蕩頻率有微調作用,容量范圍是5~30pF。在設計印制電路板時,晶振和電容應盡量靠近單片機芯片,以減少寄生電容以及干擾。

圖1-11 MCS-51系列單片機的時鐘電路

2.復位電路

單片機復位能使CPU和系統中的其他功能單元處在一個特定的初始狀態,并從這個狀態開始工作。復位后PC為0000H,單片機從ROM的第一個單元取指令。在實際應用中,MCS-51系列單片機在剛接上電源或發生故障時都要復位,所以要掌握單片機的復位電路和復位后的狀態。

在復位引腳RST端加上兩個機器周期(即24個振蕩周期)的高電平脈沖即可讓單片機進行復位操作,完成對CPU的初始化處理。如果單片機的時鐘頻率為12MHz,每個機器周期即為1μs,讓RST引腳保持2μs以上的高電平就能完成復位。復位操作是單片機系統正常運行前必須進行的一個環節。如果RST持續為高電平,單片機就處于循環復位狀態,無法執行用戶程序。

在實際應用中,復位操作通常有上電自動復位、手動復位和看門狗復位3種方式。上電自動復位要求在接通電源后,由電路自動實現復位操作。常用的上電自動復位電路圖如圖1-12a所示,其中電容和電阻對+5V電源構成微分電路。系統上電后,單片機的RST端會得到一個時間很短的高電平脈沖。在實際應用系統中,一般還要用按鍵進行手動復位,如圖1-12b所示,其中電容為4.7~10μF的電解電容,電阻取1~10kΩ。

圖1-12 單片機復位電路

看門狗(Watchdog Timer, WDT)是監視定時器的俗稱,部分增強型的MCS-51單片機中集成有WDT。WDT復位是一種程序檢測復位方式,可采用編程方法產生復位操作。單片機復位以后,片內RAM狀態不受影響,P0~P3口輸出高電平,SP為07H,PC被清0,相關特殊功能寄存器的復位狀態都被初始化,具體狀態見表1-6。

表1-6 特殊功能寄存器復位狀態表

3.節拍、狀態、機器周期和指令周期

MCS-51系列單片機的工作時序單位有4個,從小到大依次是節拍、狀態、機器周期和指令周期。

(1)節拍與狀態

晶體振蕩信號的一個周期稱為節拍,用P表示。振蕩脈沖經過二分頻后,就是單片機的狀態周期,用S表示,即一個狀態包含兩個節拍,前半周期為節拍1,記作P1,后半周期為節拍2,記作P2,如圖1-13所示。CPU以P1、P2為基本節拍,控制單片機的各個部分協調工作。

圖1-13 MCS-51系列單片機的指令時序圖

(2)機器周期

MCS-51系列單片機采用定時控制方式,具有固定的機器周期。一個機器周期的寬度為6個狀態,依次為S1~S6。一個狀態包括兩個節拍,一個機器周期共有12個節拍,分別記為S1P1,S1P2,…,S6P2。實際上,一個機器周期由12個振蕩周期組成,機器周期是振蕩脈沖信號的十二分頻。

外接的石英晶體頻率為12MHz時,一個機器周期為1μs;石英晶體頻率為6MHz時,一個機器周期為2μs。

(3)指令周期

單片機執行一條指令所需要的時間稱為指令周期。指令周期是單片機最大的工作時序單位,不同的指令所需要的機器周期數也不相同。如果單片機執行一條指令需要一個機器周期,這條指令就是單周期指令,如簡單的數據傳送指令;如果一條指令執行時需要兩個機器周期,則稱為雙周期指令,如加減運算指令。單片機的運算速度與程序執行所需的指令周期有關,占用機器周期數越少的指令則運行速度越快。在MCS-51系列單片機的111條匯編指令中,共有單周期指令、雙周期指令和四周期指令3種。四周期指令只有乘法指令和除法指令兩條,其余均為單周期指令和雙周期指令。

單片機執行單周期指令的時序如圖1-13a和b所示,其中圖1-13a為單字節單周期指令,圖1-13b為雙字節單周期指令。單字節和雙字節指令都在S1P1期間由CPU讀取指令,將指令碼讀入指令寄存器,同時PC自動加1。在S4P2期間,單字節指令讀取的下一條指令被丟棄,PC值仍加1;如果是雙字節指令,CPU在S4P2期間讀取指令的第二個字節,同時PC自動加1。兩種指令都在S6P2結束時完成。

單片機執行單字節雙周期指令的時序如圖1-13c所示。雙周期指令在兩個機器周期內產生4次讀操作碼操作,第1次讀取操作碼,PC自動加1,后3次讀取都無效,自動丟棄,PC的值不變化。

主站蜘蛛池模板: 徐州市| 安国市| 长沙市| 湘阴县| 牙克石市| 滁州市| 景泰县| 耒阳市| 绵阳市| 马龙县| 阜康市| 大同市| 上饶市| 新宁县| 广水市| 龙胜| 凉城县| 张家港市| 凤台县| 涟水县| 调兵山市| 清新县| 绵竹市| 吉水县| 靖江市| 南皮县| 丘北县| 黔西县| 九龙坡区| 陆良县| 乌海市| 丰台区| 吉隆县| 渑池县| 阿鲁科尔沁旗| 卓尼县| 谷城县| 黄冈市| 论坛| 平南县| 城步|