單片機(jī)(Microcontroller Unit, MCU)是一種集成了微處理器、存儲器和各種輸入輸出接口的芯片,具有控制、數(shù)據(jù)處理和通信等多種功能?。單片機(jī)通過編程實(shí)現(xiàn)各種控制邏輯,廣泛應(yīng)用于各種電子設(shè)備中,包括家電控制、工業(yè)自動化、數(shù)據(jù)處理、通信設(shè)備、醫(yī)療設(shè)備等領(lǐng)域。?1單片機(jī)的具體應(yīng)用領(lǐng)域
?家電控制?:如智能冰箱、空調(diào)、洗衣機(jī)等,通過單片機(jī)控制溫度、濕度等參數(shù)。
?工業(yè)自動化?:如生產(chǎn)線上的機(jī)器人控制、數(shù)據(jù)采集系統(tǒng)、過程控制等。
?數(shù)據(jù)處理?:單片機(jī)可以讀取傳感器數(shù)據(jù),進(jìn)行濾波、計(jì)算和存儲,用于環(huán)境監(jiān)測、醫(yī)療設(shè)備等。
?通信設(shè)備?:通過UART、SPI、I2C、CAN等通信協(xié)議,實(shí)現(xiàn)設(shè)備間的數(shù)據(jù)通信,如智能門鎖、分布式控制系統(tǒng)等。
?醫(yī)療設(shè)備?:如心電圖機(jī)、血糖儀等,通過讀取傳感器數(shù)據(jù),進(jìn)行校準(zhǔn)和計(jì)算,顯示結(jié)果。
?其他領(lǐng)域?:如智能玩具、辦公自動化設(shè)備、商業(yè)營銷設(shè)備等。
單片機(jī)的工作原理和編程語言
單片機(jī)是一種通過編程控制的微處理器,編程時可以選擇C語言或匯編語言。C語言因其學(xué)習(xí)快、容易理解而被推薦使用。單片機(jī)通過編寫程序控制各個引腳輸出不同的電平,進(jìn)而控制外圍電路的電氣狀態(tài),實(shí)現(xiàn)各種功能。
單片機(jī)的歷史背景和發(fā)展趨勢
單片機(jī)自20世紀(jì)70年代末問世以來,經(jīng)歷了多次技術(shù)革新。隨著集成電路技術(shù)的發(fā)展,單片機(jī)的集成度越來越高,功能越來越強(qiáng)大。未來,隨著物聯(lián)網(wǎng)和人工智能的發(fā)展,單片機(jī)將在更多領(lǐng)域發(fā)揮重要作用,特別是在智能家居、工業(yè)4.0和智慧城市等領(lǐng)域。
”STM32內(nèi)部自帶了一個可編程電壓檢測器(PVD),對VDD的電壓進(jìn)行監(jiān)控可以通過電源控制寄存器PLS[ 2:0 ]位來設(shè)置監(jiān)控電壓的閥值,這樣通過與VDD電壓比較達(dá)到了監(jiān)控電壓的目的。
電源控制狀態(tài)寄存器(PWR_CSR)中的PVDO用來表明VDD是高于還是低于PVD的電壓閥值。當(dāng)VDD下降到PVD閥值以下或VDD上升到PVD閥值之上時,通過外部中斷16線上升或下降邊沿觸發(fā)設(shè)置,產(chǎn)生PVD中斷。在中斷處理函數(shù)中做相應(yīng)的保護(hù)措施。
具體由以下圖片和表格所示。

圖1:閥值與PVD輸出關(guān)系

表:具體寄存器參數(shù)
下面對上面的圖片和表格中的數(shù)據(jù)做一個簡要的解釋:
(1)
PVD = Programmable Votage Detector 可編程電壓監(jiān)測器
它的作用是監(jiān)視供電電壓,在供電電壓下降到給定的閥值以下時,產(chǎn)生一個中斷,通知軟件做緊急處理。在給出表格的上半部分就是可編程的監(jiān)視閥值數(shù)據(jù)。當(dāng)供電電壓又恢復(fù)到給定的閥值以上時,也會產(chǎn)生一個中斷,通知軟件供電恢復(fù)。
供電下降的閥值與供電上升的PVD閥值有一個固定的差值,這就是表中的VPVDhyst(PVD遲滯)這個參數(shù),通過列出的PVD閥值數(shù)據(jù)可以看到這個差別。引入這個差值的目的是為了防止電壓在閥值上下小幅抖動,而頻繁地產(chǎn)生中斷。
(2)
POR = Power On Reset 上電復(fù)位;
PDR = Power Down Reset 掉電復(fù)位。
POR的功能是在VDD電壓由低向高上升越過規(guī)定的閥值之前,保持芯片復(fù)位,當(dāng)越過這個閥值后的一小段時間后(圖中的"滯后時間"或表中的"復(fù)位遲滯"),結(jié)束復(fù)位并取復(fù)位向量,開始執(zhí)行指令。這個閥值就是表中倒數(shù)第4行(min=1.8,typ=1.88,max=1.96)。
PDR的功能是在VDD電壓由高向低下降越過規(guī)定的閥值后,將在芯片內(nèi)部產(chǎn)生復(fù)位,這個閥值就是表中倒數(shù)第3行(min=1.84,typ=1.92,max=2.0)。
(3)
當(dāng)可以看到POR比PDR大了0.04V,這就是表中倒數(shù)第2行,VPDRhyst(PDR遲滯)=40mV。
(4)
當(dāng)VDD上升越過POR閥值時,內(nèi)部并不馬上結(jié)束復(fù)位,而是等待一小段時間(Reset temporization),這就是表中的最后一行TRSTTEMPO,它的典型數(shù)值是2.5ms。
這個滯后時間是為了等待供電電壓能夠升高到最低可靠工作電壓以上,我們看到POR閥值最小只有1.8V,最大也只有1.96V,都低于數(shù)據(jù)手冊中給出的最低可靠工作電壓2.0V,所以這個滯后時間是十分必要的,如果供電電壓上升緩慢,尤其是從1.8V升到2.0V以上超過1~2.5ms,則很可能造成上電復(fù)位后MCU不能正常工作的情況。
(5)
BOR,即Brown-out reset,欠壓復(fù)位。
主要用于單片機(jī)因?yàn)殡娫措妷汗╇娭须妷翰▌踊蛘哂休^大負(fù)載造成過流??梢栽O(shè)置一個電壓閾值,當(dāng)電壓低于閾值時單片機(jī)產(chǎn)生中斷,高于閾值時也產(chǎn)生中斷,另外還有機(jī)制使閾值允許在某個范圍內(nèi)波動,避免電壓在閾值附近波動時造成連續(xù)中斷。