新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 第3節:單片機一個最重要的特性

        第3節:單片機一個最重要的特性

        作者: 時間:2016-11-22 來源:網絡 收藏
        從業十年,教你單片機入門基礎 第3講:

        “道生一,一生二,二生三,三生萬物。”《道德經》認為,世間萬物,繽紛多彩,它們都起源自一個東西,這個“一”的東西就是“道”。電子世界也存在“一”這個東西,這個“一”繁衍出手機,電腦,電視機,機器人等豐富多彩的電子世界。這個“一”就是單片機一個最重要的特性:程序下載進單片機的內存后,可以識別管腳上的高低電平信號,管腳也可以輸出不同時間長度的高低電平。下面我把這句話的5個重要關健詞提取出來,詳細解讀它的含義。

        本文引用地址:http://www.104case.com/article/201611/319813.htm

        程序。有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毫秒。

        下節預告,平臺軟件和編譯器軟件的簡介。



        關鍵詞: 單片機特

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 西青区| 昆明市| 富裕县| 汶川县| 新安县| 元朗区| 日照市| 高雄市| 南澳县| 攀枝花市| 岱山县| 商城县| 泗水县| 横山县| 翼城县| 余姚市| 岱山县| 淮北市| 铁岭县| 廊坊市| 台东县| 神木县| 乐至县| 泰和县| 阜阳市| 兴海县| 南华县| 辉县市| 岚皋县| 商河县| 定边县| 东辽县| 衡东县| 临泽县| 鄢陵县| 增城市| 伽师县| 三门县| 合肥市| 信宜市| 田东县|