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

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

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