單片機重要特性含義解讀
單片機重要特性含義解讀
程序下載進單片機的內存後,可以識別管腳上的高低電平信號,管腳也可以輸出不同時間長度的高低電平。下麵我把這句話的5個重要關健詞提取出來,詳細解讀它的含義。
程序。有3種,C程序,彙編程序,機器程序。能下載進單片機的隻有機器程序,C程序和彙編程序都不能直接下載進單片機,所以C程序和彙編程序最終要經過專用編譯軟件翻譯成機器程序後,才能下載進單片機執行。程序就是語言,語言就是用來交流的,交流就必須存在兩個對象,這兩個對象分別是程序員和單片機。程序員用C語言或者彙編語言,單片機隻用機器語言,他們兩者交流就必需一個翻譯家,這個翻譯家就是編譯軟件,俗稱編譯器,它專門把C語言或者彙編語言翻譯成單片機能識別的機器語言。現在單片機開發的主流是用C語言,我本人出來工作後就從來沒有用過彙編語言,所以我的觀點是,C語言是必修課,彙編語言是選修課;C語言是白話文簡單易懂,彙編語言是文言文繁瑣難讀。當然彙編也有它的優點和不可替代的場合,彙編的翻譯效率高,往往是一句彙編語言對應一句機器語言,而一句C語言有可能對應幾句機器語言,所以很多嵌入式係統某段要求簡潔高效的源代碼都是用彙編來寫的,也有少數一些很便宜的單片機不提供C編譯器,隻能用彙編語言開發。所以要不要學彙編,我的建議是最好根據個人的工作需求來決定。
內存。既然程序可下載進單片機,那麼單片機必然有一個存儲程序的內存。單片機內存包括ROM和RAM兩部分。ROM的優點是掉電後存儲的內容不會丟失,缺點是除非在燒錄(下載)過程中,否則上電後它存儲的內容也不能更改。並且,雖然ROM在燒錄(下載)過程中可以更改內容,但是更改的次數有限製,也就是燒錄(下載)的次數有限製,一般最大次數是10萬次,當然這裏所說ROM是指FLASH的單片機,如果是OTP的單片機,那麼最大次數是1次。而RAM恰好反過來,RAM的優點是上電後存儲的內容可以被程序指令隨時更改,而且還沒有更改次數限製,缺點是掉電後內容會丟失。正因為ROM和RAM各有特點,所以它們的分工有所不同。程序包括指令和數據兩部分。指令是指程序中的判斷,跳轉,賦值等指令,這些內容是程序燒錄進單片機時就固定下來的,不可更改的,所以存儲在ROM中。數據也分兩種,程序指令可更改的數據和程序指令不可更改的數據。程序指令可更改的數據存儲在RAM中,程序指令不可更改的數據存儲在ROM中。那麼誰在幕後進行這些分類存儲?是編譯器軟件和下載器(燒錄器)。編譯器除了把C語言翻譯成機器語言之外,還幫我們分好了類,分配好了存儲的地址和位置,下載器(燒錄器)再根據這些信息把程序存儲到內存中。
管腳。它是單片機與外部電路進行能量和信息交互的橋梁。有電源,複位,晶振和IO口這4種類型管腳。第一種電源管腳。是給單片機內部電路供電的接口。單片機有兩種常用的供電電壓,一般不是3.3V就是5V,有的單片機兩種電壓都兼容。第二種複位管腳。單片機上電後需要外部電路給它一個瞬間高電平或者低電平的複位信號,才能啟動工作。這類外部的複位電路通常是用電容和電阻組成的充電電路來實現,也有一些係統是用專門的複位芯片來實現。第三種晶振管腳。任何單片機想要工作必須要有晶振。單片機執行程序指令是按一個節拍一個節拍來執行的。而晶振產生固定頻率的脈衝就是這個節拍的基礎源泉。所以把晶振比喻成單片機的心髒是非常恰當的。當然,現在很多單片機都把晶振集成到內部了,不用再外接晶振。第四種IO口管腳。這是跟我們編寫程序關聯最密切的管腳。前麵提到的電源,複位,晶振這3種管腳是為了讓單片機能工作,俗稱單片機工作的三要素。而單片機工作的具體內容就是通過IO口管腳來體現的。比如,IO口能識別按健的輸入,也能驅動繼電器的開關,也能跟外圍器件進行通信。
電平。單片機IO口管腳檢測到的電壓低於或等於0.8V時是低電平,程序裏讀取到的是0數字。檢測到的電壓高於或等於2.4V時是高電平,程序裏讀取到的是1數字,當然IO口輸入的最大電壓不能超過單片機的供電電壓。單片機輸出的低電平是0V,單片機輸出的高電平等於它的供電電壓值。
時間。時間是單片機程序必不可少的一個元素。跟外圍芯片通信的時序節拍需要時間,驅動發光二極管閃爍需要時間,工控自動化的某些延時需要時間。單片機的時間來源自兩方麵。第一方麵源自指令的周期時間。單片機是根據節拍來執行程序指令的,所以每執行一條指令都要消耗一點時間,隻要讓程序執行一些無實際意義的指令,並且通過調整所執行指令的條數就可以得到所需要的時間長度。第二方麵源自單片機內部自帶的定時器。假如設置定時器每20毫秒產生一次中斷,現在要獲取10秒鍾的時間,隻需程序統記500次定時中斷就可以了,因為1秒等於1000毫秒。
初學單片機從51入門的好處 | |
51單片機是一款已經出現很久的單片機,它的出現可以說是劃時代的。同時期出現的其它單片機都已經逐漸退出曆史的舞台,而它卻依舊出現在某些專業的教材上。從這點來看,它依舊有其學習的意義。下麵說說初學單片機從51入門的好處。 51單片機的學習資源非常多... |
如何使用C語言控製硬件 | |
C語言的應用編程在單片機的領域占了很大一部分,使用的比較多的51單片機和STM32單片機都可以使用MDK軟件編寫固件。 單片機燒寫了固件後可以點亮LED燈,可以驅動ADC檢測電壓,也可以驅動蜂鳴器發聲,這就是簡單地控製硬件。稍微複雜一點的,可以驅動NRF2401進... |
c語言怎麼讀取一個變量的二進製文件內容 | |
C語言是一種高級語言,很多設置都為了符合我們程序員的理解做了相應的調整。機器對於變量的理解是基於電路,也就是所謂的高低電平。也是因為這個出現了一個二進製。 而人類的計數更喜歡使用十進製,有專家說是因為是人類當初計數使用的手指,這樣十進製比較... |
單片機為啥叫單片機 | |
1、MCU 我一般在工作計劃和原理圖的說明上,就直接將STM32或者STC89的單片機,標注為MCU。 無論是理解為Micro CPU,還是Microcontroller Unit,我認為都行,也沒有仔細去區分去過。自從32位單片機出來後,一些單片機設計的係統確實是具備部分電腦的功能。 你... |
16位單片機低端打不過8位高端打不過32位怎 | |
有時間去了解一下TI的MPS係列的單片機,它的低功耗和8位的51還有32位的STM32還是有一定的區別度的。 就比如MSP430係列,一些醫療的應用也少不了它,其各種低功耗的應用和例子一抓一大把。 也許從價格上來說,感覺,8位的便宜好買;從性能上來說,感覺,32位的... |
- 單片機和嵌入式哪個好
- 單片機重要特性含義解讀
- 單片機三總線結構及時序分析
- 單片機沒有PWM外設也可以做可調占空比
- 開源硬件arduino是什麼
- 標誌寄存器中的狀態標誌和控製標誌
- at89c51和stc12c5a60s2的引腳的區別
- 學習51單片機要用到哪些硬件工具
- 單片機定時的時間怎麼改變
- 單片機自動斷電或關機電路圖講解
- 串口的波特率如何計算?串口通信波特率計
- 單片機波特率計算公式和方法
- 51單片機ram區域劃分
- spi時序圖怎麼看?spi時序圖閱讀方法
- 51單片機怎麼顯示出數字的?單片機數碼管
- 51單片機有幾個中斷源_52單片機中斷源
- 嵌入式係統的評價方法
- AT89C51單片機為核心的時鍾電路的程序設
- stm32學到什麼程度叫精通
- 用STM32隻會庫函數不會用寄存器有影響嗎