單片機(jī)是怎么工作的?
我們大概的了解了單片機(jī)的結(jié)構(gòu)、特點(diǎn),下面我們主要講解單片機(jī)如何工作,有那些工作方式。
單片機(jī)共有復(fù)位、程序執(zhí)行、低功耗和編程與加密四種工作方式,下面分別加以介紹。
1.復(fù)位方式
(1)為什么要復(fù)位
大家知道,單片機(jī)執(zhí)行程序時(shí)總是從地址0000H 開始的,所以在進(jìn)入系統(tǒng)時(shí)必須對(duì)CPU 進(jìn)行復(fù)位,也叫初始化;另外由于程序運(yùn)行中的錯(cuò)誤或操作失誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為了擺脫這種狀態(tài),也需要進(jìn)行復(fù)位,就象電腦死機(jī)了要重新啟動(dòng)一樣。
(2)復(fù)位的原理
單片機(jī)復(fù)位的方法其實(shí)很簡(jiǎn)單,只要在RST 引腳(9 腳)上加一個(gè)持續(xù)時(shí)間為24 個(gè)振蕩周期(即兩個(gè)機(jī)器周期)的高電平就可以了。如果晶振為12M,計(jì)算一下這個(gè)持續(xù)脈沖需要多長(zhǎng)時(shí)間?
(3)如何進(jìn)行復(fù)位
復(fù)位操作有上電自動(dòng)復(fù)位、按鍵復(fù)位和外部脈沖復(fù)位3 種方法,上電自動(dòng)復(fù)位是通過外部復(fù)位電路的電容充電來實(shí)現(xiàn)的,當(dāng)電源剛接通時(shí)電容C 對(duì)下拉電阻開始充電,由于電容兩邊的電壓不能突變,所以RTS 端維持高電平,只要這個(gè)充電時(shí)間不超過1ms,就可以實(shí)現(xiàn)對(duì)單片機(jī)的自動(dòng)上電復(fù)位,即接通電源就完成了系統(tǒng)的初始化,在實(shí)際的工程應(yīng)用中,如果沒有特殊要求,一般都采用這種復(fù)位方式;按鍵復(fù)位的電路如圖2 所示,它其實(shí)就是在上電復(fù)位的基礎(chǔ)上加了R2 和SA,這種電路一般用在需要經(jīng)常復(fù)位的系統(tǒng)中;外部脈沖復(fù)位的電路如圖3 所示,外部復(fù)位通常用于要求比較高的系統(tǒng),比如希望系統(tǒng)死鎖后能自動(dòng)復(fù)位。外部復(fù)位是由專門的集成電路來實(shí)現(xiàn)的,也就是我們通常俗稱的“看門狗”電路,這種電路有很多,它們不但能完成對(duì)單片機(jī)的自動(dòng)復(fù)位功能,而且還有管理電源、用作外部存儲(chǔ)器等功能,比如X25045,MAX813L 等等就是比較常用的此類芯片,
現(xiàn)在讓我們先來看看單片機(jī)復(fù)位后,它的內(nèi)部會(huì)有些什么變化呢?看下面的表:
(4)復(fù)位后的狀態(tài)
這就是單片機(jī)復(fù)位后內(nèi)部系統(tǒng)的狀。
2.程序執(zhí)行方式
程序執(zhí)行是單片機(jī)的基本工作方式,由于復(fù)位后PC=0000 ,所以程序就從地址0000H 開始執(zhí)行,此時(shí)單片機(jī)就根據(jù)指令的要求完成一系列的操作控制,比如前面講的讓LED 燈閃爍起來,不過在實(shí)際使用中,程序并不會(huì)從0000H 開始執(zhí)行,而總是安排一條跳轉(zhuǎn)指令,比如LJMP START ,為什么要這樣安排,我們講到中斷時(shí)再來解釋。
3. 低功耗操作方式
在以電池供電的系統(tǒng)中,有時(shí)為了降低電池的功耗,在程序不運(yùn)行時(shí)就要采用低功耗方式,低功耗方式有兩種—待機(jī)方式和掉電方式。
低功耗方式是由電源控制寄存器PCON (上一課我們提到過的)來控制的。電源控制寄存器是一個(gè)逐位定義的8 位寄存器,其格式如下,
其中:SMOD 為波特率倍增位,在串行通訊時(shí)用;GF1 為通用標(biāo)志位1;GF0 為通用標(biāo)志位0;PD 為掉電方式位,PD=1,進(jìn)入掉電方式;IDL 為待機(jī)方式位,IDL=1 ,進(jìn)入待機(jī)方式。也就是說只要執(zhí)行一條指令讓PD 位或IDL 位為1 就可以了。那么單片機(jī)是如何進(jìn)入或退出掉電工作方式和待機(jī)工作方式的。
1 .待機(jī)方式
2 .進(jìn)入待機(jī)方式
當(dāng)使用指令使PCON 寄存器的IDL=1 ,則進(jìn)入待機(jī)工作方式。此時(shí)CPU 停止工作,但時(shí)鐘信號(hào)仍提供給RAM,定時(shí)器,中斷系統(tǒng)和串行口;同時(shí)堆棧指針SP,程序計(jì)數(shù)器PC,程序狀態(tài)字PSW,累加器ACC 以及全部的通用寄存器都被凍結(jié)起來;單片機(jī)的消耗電流從24mA 降為3.7mA,這樣就可以節(jié)省電源的消耗。
② 退出待機(jī)方式
退出待機(jī)方式可以采用引入中斷的方法,在中斷程序中安排一條RETI 的指令就可以了,什么是中斷,我們現(xiàn)在還不知道,當(dāng)然這沒關(guān)系。其實(shí)待機(jī)方式和我們使用電腦時(shí)的睡眠方式有異曲同工之妙。
(2)掉電方式
①進(jìn)入待機(jī)方式
當(dāng)使用指令使PCON 寄存器的PD=1 ,則進(jìn)入掉電工作方式,此時(shí)單片機(jī)的一切工作都停止,只有內(nèi)部RAM 的數(shù)據(jù)被保持下來;掉電方式下電源可以降到2V,耗電僅50uA 。此時(shí)就相當(dāng)于把顯示器和硬盤也關(guān)閉了。
② 退出待機(jī)方式
退出掉電工作方式的唯一方法是復(fù)位,不過應(yīng)在電源電壓恢復(fù)到正常值后再進(jìn)行復(fù)位,復(fù)位時(shí)間要大于10mS ,在進(jìn)入掉電方式前,電源電壓是不能降下來的,因此可靠的單片機(jī)電路最好要有電源檢測(cè)電路。顯然掉電方式和待機(jī)方式是兩種不同的低功耗工作方式,前者可以在無外部事件觸發(fā)時(shí)降低電源的消耗,而后者則在程序停止運(yùn)行時(shí)才使用。關(guān)于單片機(jī)的低功耗的方式就簡(jiǎn)單的講這些,更詳細(xì)的內(nèi)容也留到下冊(cè)再講解,因?yàn)槟嵌际谴笪r們的作品。
4. 編程和加密方式
單片機(jī)的編程與加密是由專門的設(shè)備來完成的,這種設(shè)備稱為編程器或燒錄器,類似的產(chǎn)品有很多,功能也不盡相同。本站的XL2000是集燒錄、試驗(yàn)、編程、仿真一體化的產(chǎn)品
編輯:admin 最后修改時(shí)間:2018-05-18