關于我們
書單推薦
新書推薦
|
MSP430單片機原理與應用
本書以MSP430F261x單片機為例, 全面而詳實地介紹了MSP430單片機結構組成、工作原理以及常用模塊的使用方法。內容組織上不貪大求全, 而是盡量做到把最常用、最能反映單片機精髓的知識講細、講精、講透, 以達到讓讀者觸類旁通的目的。
考慮到初學者的特點,實例先易后難,先單個功能、單個模塊地學習,逐步轉換成對整個系統(tǒng)的分析和設計。
秉承“理論學習是認識單片機的起點,設計單片機系統(tǒng)是*終落腳點”的理念,把*常用、*能反映單片機精髓的知識講細、講精、講透,以達到讓讀者觸類旁通的目的;通過實例并配合配合豐富有趣的習題練習使學生對單片機的理解硬件化或產品化。
前言
MSP430單片機是美國德州儀器(TexasInstruments,TI)于1996年開始推向市場的一種16位超低功耗單片機,它具有極低功耗、高性能、豐富的片上外設和通信接口等特點。由于將多個不同功能的模擬電路、數(shù)字電路模塊和微處理器集成在一個芯片上,所以又稱之為混合信號處理器。
MSP430單片機不但具有傳統(tǒng)單片機的特征,還具有一些片上系統(tǒng)的特點。因此,國內外很多高等院校已將MSP430系列單片機作為單片機相關課程的講授對象。
利用該單片機進行嵌入式系統(tǒng)教學具有以下特點。
1.結構簡單、資源豐富、使用方便
MSP430單片機使用的是16位RISCCPU,存儲結構上采用馮·諾依曼結構。各個片上外設均掛接在內部總線上,但外設與外設之間、外設與CPU之間都是獨立工作的,外設與CPU通過中斷機制聯(lián)系在一起。MSP430單片機內嵌有JTAG邏輯部件,便于下載和在線仿真。
MSP430單片機組織結構簡潔、便于理解,其核心部件主要包括時鐘系統(tǒng)、RISCCPU、Flash、RAM和相關I/O端口,其他片上外設都是對該類單片機自身的擴展和增強。
MSP430系列單片機種類豐富多樣。目前,MSP430單片機涵蓋F1xx、F2xx、G2xx、F4xx、F5xx、F6xx共6大系列,還有集成有無線收發(fā)功能的CC430系列等合計約有600種,能夠滿足大多數(shù)工程應用場合的需求。
2.有利于減少外圍電路設計
MSP430單片機中集成大量的片上外圍設備,例如看門狗、模擬比較器、定時器、串行通信接口、硬件乘法器、液晶驅動器、10位/12位ADC、16位ΣΔADC、DMA、I/O端口、基本定時器、實時時鐘和USB控制器等。充分利用這些片上外設,可以減少嵌入式系統(tǒng)外圍電路設計、簡化設計流程、節(jié)約成本、提高系統(tǒng)可靠性、縮小PCB和產品體積。
3.有利于開展更高層次的學習
MSP430單片機的內核是16位RISCCPU。在整個單片機系列中,屬于中端單片機。在高端32位單片機中,一般是采用RISC核,如CortexM系列單片機。在掌握了MSP430單片機原理及其開發(fā)技術后,再學習32位的高端單片機難度將大為降低。當然,在熟悉MSP430單片機的基礎上學習其他類型的單片機(如51單片機)會更加容易。
4.MSP430單片機的市場逐漸擴大
在美國德州儀器公司多年來不懈的努力下,MSP430單片機的市場份額在不斷增加,在16位單片機市場中獨占鰲頭。即便是在8位單片機市場中,也已對傳統(tǒng)的51單片機形成了強烈沖擊。
5.符合目前及未來節(jié)能降耗的要求
隨著世界能源危機日趨嚴重,迫切需要節(jié)能環(huán)保的產品。MSP430單片機與其他單片機相比在低功耗方面有著不可比擬的優(yōu)勢,推廣使用MSP430單片機符合“節(jié)能降耗”的時代主題。
盡管MSP430單片機具有眾多的技術優(yōu)勢,也是目前嵌入式系統(tǒng)應用開發(fā)所必需的,但是目前能夠用于MSP430單片機教學的圖書較少。盡管這些圖書在編寫上各有所長,但就課堂教學來說,仍存在一些不足:①有些圖書內容大多直接翻譯TI提供的用戶指南和數(shù)據(jù)手冊,并未做進一步加工或整合;②有些圖書完全工程化的講解方式對工程師或具有一定單片機基礎的人有參考價值,不適合初學者。因為這些圖書直接講述單片機的工程應用,對工作原理講解較少,讀者從這些書中獲取的信息,只是知其然,而不知其所以然,難以激發(fā)創(chuàng)新思維。
為此,我們在編寫過程中盡量彌補這些不足,同時融合了我們多年在嵌入式系統(tǒng)方面的科研積累與教學改革經驗,使得本書具有以下鮮明特色。
(1)在內容組織上打破了傳統(tǒng)的參考書式的講解方式,對各個知識點的內容重新劃分整合。然后再按照由淺入深、循序漸進的思路進行重新組織,使之容易被學生接受。
(2)在實例選擇上盡量做到先易后難、先部分后整體,考慮到初學者的特點,力求使實例做到簡單易懂。首先讓學生通過學習簡單的例子激發(fā)和培養(yǎng)學生的學習興趣和探索欲望,然后再逐步提高難度、提升水平。先是單個功能、單個模塊的學習,逐步轉換成對整個系統(tǒng)的分析和設計。
(3)秉承“理論學習是認識單片機的起點,設計單片機系統(tǒng)是最終落腳點”的理念。在理論講解的基礎上,通過實例讓學生對單片機的認識形象化,配合豐富有趣的習題練習使學生對于單片機的理解硬件化或產品化。
本書以MSP430F261x單片機為例,全面而翔實地介紹了MSP430單片機的結構組成、工作原理以及常用模塊的使用方法。內容組織上不貪大求全,而是盡量做到把最常用、最能反映單片機精髓的知識講細、講精、講透,以達到讓讀者觸類旁通的目的。在組織結構上,全書共分為12章,第1章介紹了與嵌入式系統(tǒng)相關的基本知識;第2章介紹了MSP430單片機的內部結構和外部組成,并簡要介紹了MSP430單片機尋址方式、指令系統(tǒng);第3章主要回顧了MSP430單片機C程序設計的相關知識;第4~11章分別講述了MSP430單片機的輸入輸出端口及常用接口設計、時鐘系統(tǒng)、定時器、模數(shù)轉換器、數(shù)模轉換器、通用串行通信接口、存儲器、DMA等常用片上模塊的工作原理及使用方法;第12章介紹了MSP430單片機應用系統(tǒng)設計基礎。
書中各章節(jié)的知識點都提供了簡單易懂的例程,本書所有例程均在IAREmbeddedWorkbenchForMSP430v5和TICCSv5中調試通過。每章附有大量習題供學生課下鞏固本章內容,部分習題可以訓練學生的創(chuàng)新思維能力。
總之,全書結構緊湊、布局合理,具有一定的通用性、系統(tǒng)性和實用性。內容敘述力求簡潔、凝練。力求做到深入淺出的理論講解、簡單易懂的實例設計、豐富有趣的習題練習、獨具匠心的知識體系。為了便于學習和閱讀TI公司提供的相關原始數(shù)據(jù)資料,本書使用的邏輯電路符號與公司官方資料中使用的符號保持一致。
在本書的編寫和出版過程中得到了蘭州大學信息科學與工程學院電路與系統(tǒng)研究所田毅、張燕、孫曉光、李劍、郭麗杰、楊澤坤、陳麗娜、張垚、趙繼鵬等研究生,以及蘭州大學信息科學與工程學院電子信息科學與技術專業(yè)和通信工程專業(yè)部分本科生的協(xié)助。感謝他們在資料搜集、書稿整理、程序調試、后期校稿等方面所做的工作。此外,書中例題參考了TI官方網站提供的大量例程,個別例題及部分內容也參考了互聯(lián)網上的有關資料,在此向這些資料的作者一并表示誠摯的感謝。
需要特別指出的是,本教材的出版得到了蘭州大學教材建設基金資助和蘭州大學信息科學與工程學院教材建設基金資助。感謝美國德州儀器公司大學計劃給予蘭州大學MSP430&CortexM單片機聯(lián)合實驗室的持續(xù)支持。
由于作者水平所限,書中難免存在部分疏漏和不妥之處,懇請廣大讀者批評指正!
編者2017年3月于蘭州大學
第1章緒論
1.1嵌入式系統(tǒng)概述
1.1.1嵌入式系統(tǒng)的定義
1.1.2嵌入式系統(tǒng)的構成
1.1.3嵌入式系統(tǒng)的特點
1.1.4嵌入式系統(tǒng)的發(fā)展
1.1.5嵌入式系統(tǒng)的應用
1.2嵌入式微處理器
1.2.1嵌入式處理器分類
1.2.2嵌入式處理器的體系結構
1.2.3常見嵌入式處理器
1.2.4嵌入式處理器的發(fā)展
1.3MSP430單片機
1.3.1典型特點
1.3.2命名規(guī)則
1.3.3產品系列概況
1.3.4應用場合
習題
第2章MSP430單片機結構組成
2.1內部結構
2.1.1中央處理器
2.1.2存儲空間組織結構
2.1.3單片機復位過程
2.2外部結構
2.2.1封裝類型
2.2.2引腳說明
2.2.3MSP430單片機最小系統(tǒng)
2.3指令系統(tǒng)
2.3.1指令集
2.3.2尋址方式
2.3.3指令周期
2.3.4指令集擴展
習題
第3章MSP430單片機C語言程序設計基礎
3.1單片機程序設計基礎
3.1.1程序流程圖
3.1.2單片機程序設計語言
3.1.3單片機程序設計的一般步驟
3.2MSP430單片機C語言程序設計
3.2.1數(shù)據(jù)類型與運算符
3.2.2常見程序結構
3.2.3數(shù)組
3.2.4函數(shù)
3.2.5指針類型
3.2.6預處理
3.2.7typedef定義類型
3.2.8規(guī)范化編程
3.3集成開發(fā)環(huán)境快速入門
3.3.1IAR EW430快速入門
3.3.2TI CCS快速入門
習題
第4章MSP430單片機中斷系統(tǒng)與輸入輸出接口
4.1中斷系統(tǒng)
4.1.1中斷系統(tǒng)基本概念
4.1.2中斷類型
4.1.3中斷響應過程
4.1.4中斷函數(shù)
4.2數(shù)字I/O端口
4.2.1控制寄存器
4.2.2內部結構
4.2.3電氣特性
4.3端口應用
4.3.1普通I/O端口
4.3.2外部中斷
4.3.3總線模擬
習題
第5章MSP430單片機時鐘系統(tǒng)與休眠模式
5.1時鐘系統(tǒng)
5.1.1時鐘系統(tǒng)結構
5.1.2時鐘失效處理
5.2休眠模式
5.2.1休眠模式與低功耗
5.2.2休眠喚醒與退出
5.2.3休眠模式的應用
習題
第6章MSP430單片機定時器
6.1定時器A
6.1.1定時計數(shù)部件
6.1.2捕獲/比較部件
6.2定時器B
6.2.1邏輯結構
6.2.2定時計數(shù)部件
6.2.3捕獲/比較部件
6.3看門狗
6.3.1邏輯結構
6.3.2定時模式
6.3.3看門狗模式
習題
第7章MSP430單片機常用接口設計
7.1LED顯示接口設計
7.1.1LED發(fā)光原理
7.1.2LED數(shù)碼管
7.1.3點陣LED
7.2LCD接口設計
7.2.1LCD顯示原理
7.2.2段式LCD
7.2.3點陣LCD
7.3鍵盤接口設計
7.3.1獨立式鍵盤
7.3.2矩陣式鍵盤
7.3.3觸摸按鍵
習題
第8章MSP430單片機模擬信號處理
8.1模擬信號處理概述
8.1.1自動控制系統(tǒng)
8.1.2單片機控制系統(tǒng)
8.1.3MSP430單片機集成的模擬設備
8.2模數(shù)轉換模塊
8.2.1模數(shù)轉換概述
8.2.2ADC12模塊
8.2.3ADC12工作過程
8.2.4轉換模式
8.3數(shù)模轉換模塊
8.3.1數(shù)模轉換概述
8.3.2DAC12模塊
8.3.3應用舉例
習題
第9章MSP430單片機異步串行通信
9.1異步串行通信概述
9.1.1串行通信基本概念
9.1.2常見異步串行通信
9.1.3MSP430的串行通信模塊
9.2異步串行通信
9.2.1UART工作原理
9.2.2多機通信模式
9.2.3帶有自動波特率檢測的UART
9.2.4紅外通信
9.2.5軟件模擬UART通信
習題
第10章MSP430單片機同步串行通信
10.1同步串行通信概述
10.1.1同步方式
10.1.2常見同步串行通信
10.2I2C通信
10.2.1I2C概述
10.2.2I2C邏輯結構
10.2.3中斷與初始化
10.2.4工作模式
10.2.5軟件模擬I2C通信
10.3SPI通信
10.3.1SPI總線及工作原理
10.3.2SPI模塊
10.3.3SPI連接方式
10.3.4軟件模擬SPI通信
習題
第11章MSP430單片機存儲系統(tǒng)
11.1存儲器概述
11.1.1半導體存儲器
11.1.2Flash存儲原理
11.1.3FRAM存儲原理
11.2MSP430單片機存儲系統(tǒng)
11.2.1地址空間劃分及訪問方式
11.2.2數(shù)據(jù)存儲器
11.2.3程序存儲器
11.3Flash控制器及應用
11.3.1Flash控制器
11.3.2Flash的操作
11.4MSP430單片機存儲器的擴展
11.4.1存儲器擴展
11.4.2SD卡的應用
11.5直接存儲器存取
11.5.1DMA模塊的結構與工作原理
11.5.2DMA傳輸模式
11.5.3DMA觸發(fā)源
習題
第12章MSP430單片機應用系統(tǒng)設計基礎
12.1單片機應用系統(tǒng)設計概述
12.1.1單片機應用系統(tǒng)設計一般步驟
12.1.2基于MSP430單片機的應用系統(tǒng)設計
12.2單片機應用系統(tǒng)的抗干擾與低功耗設計
12.2.1抗干擾技術
12.2.2低功耗設計技術
12.3嵌入式操作系統(tǒng)的應用
12.3.1嵌入式操作系統(tǒng)基礎
12.3.2μC/OS Ⅱ在MSP430單片機上的移植
12.3.3基于μC/OS Ⅱ的單片機系統(tǒng)開發(fā)
習題
附錄A中斷向量速查表
附錄B端口功能速查表
附錄C寄存器速查表
參考文獻
第3章
CHAPTER3
MSP430單片機C語言
程序設計基礎
3.1單片機程序設計基礎
3.1.1程序流程圖
在程序設計中,最重要的不是編寫代碼而是算法設計,這與建筑和機械制造很相似。例如,當要建設一棟高樓時,首先要做的是繪制高樓的結構圖以及施工圖,然后是現(xiàn)場施工。程序設計也是如此,當面對一個程序設計任務時,首先想要做的是先畫出整個任務實現(xiàn)的流程圖,然后再使用具體的程序設計語言進行代碼實現(xiàn)?梢,程序流程圖的繪制在整個程序設計中起著重要作用。實際上,繪制流程圖的過程就是思考和形成算法的過程。由于其直觀性,繪制過程本身又促進了思考。因此,程序流程圖是人們對解決問題的方法、思路或算法的一種描述方法。當人們看到一個優(yōu)秀的程序流程圖時,就能很快地把握住程序結構和處理思路,有利于程序糾錯和維護。
程序流程圖具有符號規(guī)范、畫法簡單、結構清晰、邏輯性強、便于描述、容易理解等優(yōu)點。繪制流程圖所需要的基本符號如圖3.1所示,它們分別是起始框、終止框、執(zhí)行框和判別框。其中,起始框和終止框是程序流程圖必備的;執(zhí)行框中注有必要文字說明以指示具體執(zhí)行了何種操作,該框所指的操作可大可小。在概要設計階段執(zhí)行框所描述的是一個大的功能模塊。在詳細設計階段則是指在實現(xiàn)某一特定功能時需要執(zhí)行的具體指令或語句。
圖3.1流程圖中基本符號
繪制程序框圖的規(guī)則:使用標準的框圖符號;框圖一般按從上到下、從左到右的方向畫;除判別框外,大多數(shù)程序框圖的符號只有一個進入點和一個退出點,而判別框是具有超過一個退出點的唯一符號。在繪制流程圖時要注意結構化程序設計中三種基本結構的流程圖標準畫法。盡量將復合條件轉為多個單一條件。流程線不要忘記畫箭頭,因為它是反映流程執(zhí)行的先后順序。如果不畫箭頭,就難以判斷執(zhí)行次序。
3.1.2單片機程序設計語言
目前主要的單片機程序設計語言是匯編語言和C語言。匯編語言是面向CPU的程序設計語言。由于匯編語言程序直接利用單片機指令集中的指令實現(xiàn)具體的算法功能,因此匯編語言與機器語言具有較好的一致性,可以訪問所有能夠被訪問的軟、硬件資源。匯編語言程序的目標代碼簡短,占用內存少,執(zhí)行速度快,是高效的程序設計語言。它經常與高級語言配合使用,以改善程序的執(zhí)行速度和效率,彌補高級語言在硬件控制方面的不足。匯編語言的缺點是不同處理器具有不同的匯編語言語法和編譯器,編譯好的程序無法在不同的處理器上執(zhí)行,缺乏可移植性。匯編語言程序的可讀性差、不易維護?傊,匯編語言程序編寫煩瑣、工作量大、開發(fā)效率很低,周期長且單調。目前處理器性能不斷提升、存儲資源越來越豐富,使得匯編語言目標代碼少、效率高的優(yōu)勢正在逐漸喪失。使用匯編語言從事嵌入式系統(tǒng)開發(fā)的人數(shù)總體呈下降趨勢。
C語言是一種既具有高級語言的特點,又具有部分匯編語言特點的程序設計語言。C語言也是一種結構化的程序設計語言,因為它提供了三種基本結構語句,而且提供了定義“函數(shù)”的功能。函數(shù)可以完成子程序的所有功能,是完成程序功能的基本構件。由于函數(shù)允許將一個程序中的多個任務被分別定義、編碼和單獨編譯,所以函數(shù)可以使程序模塊化。作為一種高級語言,C語言功能齊全、應用范圍大,已是目前最為流行的高級語言之一。但是C語言代碼的執(zhí)行效率比匯編語言要低。
在程序設計歷史上匯編語言曾是非常流行的語言之一。一方面,隨著硬件技術的進步,CPU性能不斷提高、儲存資源日益增大、成本逐漸降低;另一方面,隨著軟件規(guī)模的增長以及對開發(fā)進度和效率的苛刻要求,高級語言逐漸取代了匯編語言。但即便如此,高級語言也不可能完全替代匯編語言的作用。以Linux內核為例,盡管絕大部分內核代碼是用C語言編寫的,但在某些關鍵地方仍然使用了匯編代碼。因為這部分代碼與硬件的關系非常密切,即使是C語言也會顯得力不從心,而匯編語言則能夠很好地揚長避短,最大限度地發(fā)揮硬件的性能。
一般對于小程序來說,若是對硬件進行簡單的控制可以用匯編語言,若更多涉及邏輯設計方面的內容,則需要使用C語言。對于稍大一些的程序來說,C語言的優(yōu)勢就十分明顯了。就現(xiàn)代單片機程序設計來說,大多是以C語言為主,匯編語言為輔。即只有在那些對代碼大小和效率要求較高的場合才使用匯編語言。
3.1.3單片機程序設計的一般步驟
圖3.2單片機程序設計流程圖
人們在嵌入式系統(tǒng)產品開發(fā)過程中摸索出了程序設計的一般步驟,具體如圖3.2所示。該步驟對于基于單片機的產品設計與程序開發(fā)具有很好的借鑒作用。按此步驟進行產品開發(fā)可使設計者少走彎路,縮短開發(fā)周期,提高產品可靠性。
1.需求分析、明確任務
該階段要盡可能搞清楚用戶的全部需求信息,即對要完成的任務進行詳細的了解與分析。然后將具體的實際問題抽象轉化成計算機可以處理的問題。
2.算法設計
在明確任務之后,就需要將其轉化成計算機算法。算法就是在計算機上解決問題的方法與步驟。對于復雜的大型程序,算法設計又可分為概要設計和詳細設計兩個階段。對于比較小的軟件兩個可以同時做。詳細設計完成后算法設計也就基本完成了,接下來將設計好的算法轉化成使用具體程序設計語言編寫出的程序,進而實現(xiàn)在計算機上的求解。在設計算法時一般會采用或借鑒現(xiàn)有的一些計算方法和日常生活中解決問題的邏輯思維推理方法等。
繪制程序流程圖是在算法設計之初就開始的工作,在算法設計好之后,程序流程圖也就確定了。所以說算法設計的過程,也是繪制程序流程的過程。通過畫流程圖可以首先從圖上檢驗算法的正確性,減少出錯的可能,使得動手編寫程序時的思路更加清晰。
3.芯片選擇及合理分配單片機資源
等完成算法設計之后,就需要決定在何種硬件平臺上實現(xiàn)上述算法。在確定好主要芯片之后,就需要完成單片機系統(tǒng)的資源配置及分配,主要是單片機存儲空間和工作單元的合理分配和外圍設備的配置。在這個過程中,應充分利用不同型號單片機的特殊優(yōu)點以方便資源配置和系統(tǒng)設計。例如,合理、正確地對存儲空間進行分段和數(shù)據(jù)定義。由于MSP430單片機對16位數(shù)據(jù)處理效率最高,因此要充分利用這一特點。
4.代碼編寫
該步驟在單片機程序設計中是最為重要的一步。經過1~3步的準備,已完成了程序代碼編寫前的所有工作。編寫程序時要選擇好編寫語言,對于同一種算法,不同的程序設計語言會有不同的實現(xiàn)方法。編程能力的提高是一個循序漸進的過程。對于初學者來說,一方面,要多讀現(xiàn)有的程序,以學習別人的編程經驗;另一方面,還必須多動手,親自編寫程序,不要怕失敗,只有通過無數(shù)次失敗,才能從中積累自己的編程經驗。
5.程序調試
在源代碼編寫完畢之后,就要進行調試。通過調試的程序只能說明沒有語法錯誤,但不能排除沒有邏輯錯誤。所以能不能達到預期效果還必須用實際數(shù)據(jù)測試才可以。一般來說,這是一個反復測試的過程。對此,程序編寫人員,尤其是初學者一定要有充分的心理準備。只要有足夠的耐心,加上認真、細致的工作態(tài)度,就一定能找出其中的邏輯錯誤。事實上,即使是一個非常有經驗的程序員,也沒有百分之百的把握一次就成功。
6.性能評估
在程序調試完后,就需要將程序應用到產品上進行實際環(huán)境檢驗,其中包括功能檢驗、可靠性檢驗、極端環(huán)境下檢驗。凡經過檢驗符合要求了,整個程序設計工作就算結束了,接下來就是文檔整理與使用說明書的編寫工作了。若不符合要求,則需要重新開始,這是最壞的情況。一般而言,只要將任務需求分析做得足夠細,一般不會出現(xiàn)這種極端情況。
7.文檔整理與編寫
程序運行無誤,實際試運行正常,且經過了各種環(huán)境測試,但這并不意味著產品開發(fā)任務的結束。程序文檔的編寫也是程序設計的一個重要任務。其目的是為了便于修改和維護程序。程序文檔一般包括含有功能要求和指標程序的設計任務書、程序流程圖、存儲單元分配清單、源程序清單、應用系統(tǒng)資源分配、參量計算和設計、錯誤信息的定義、實際功能及指標測試結果說明、程序使用和維護說明書等。需要注意的是,部分程序文檔的編寫是與上述1~6步同時進行的。
3.2MSP430單片機C語言程序設計
目前支持MSP430單片機的C語言編譯器很多,國內主要使用的是IAR公司的IAREmbeddedWorkbenchforMSP430(EW430)和TI公司開發(fā)的CodeComposerStudio(CCS)。MSPGCC作為一種開源編譯器也具有一定的使用者。這些C編譯器功能比較強大,可以編譯出高效、緊湊的機器代碼。
MSP430單片機的C語言程序(以后簡稱C430)設計方法與標準C語言的基本上相同。但單片機的資源與PC相比,十分匱乏。為了更好地適應MSP430單片機的程序設計,C430對標準C語言進行了擴展。主要表現(xiàn)在數(shù)據(jù)類型及數(shù)據(jù)長度、關鍵字擴展以及由此引起的函數(shù)擴展等。需要說明的是,不同的C430編譯器對C語言的擴展不完全相同,例如,IAR公司的C編譯器與TI公司的C編譯器都對C語言的支持程度略有不同,大多數(shù)情況下,MSP430單片機的源程序可以在各個版本的C430編譯器上使用。
3.2.1數(shù)據(jù)類型與運算符
1.標識符與關鍵字
標識符是指常量、變量、語句標號、數(shù)組、文件名以及用戶自定義函數(shù)的名稱。C語言規(guī)定標識符只能由字母、數(shù)字、下畫線組成,并且只能由字母、下畫線開頭,所用字母區(qū)分大小寫。C語言中一些已被賦予特定含義的標識符被稱為關鍵字或保留字,關鍵字不能用作標識符,在C語言中的關鍵詞見表3.1。這些關鍵字將在后續(xù)章節(jié)中陸續(xù)介紹。
表3.1C語言中的32個關鍵詞
與數(shù)據(jù)類型相關的關鍵字(12個)
short聲明短整型變量或函數(shù)struct聲明結構體變量或函數(shù)
int聲明整型變量或函數(shù)union聲明共用數(shù)據(jù)類型
long聲明長整型變量或函數(shù)enum聲明枚舉類型
float聲明浮點型變量或函數(shù)void聲明函數(shù)無返回值或無參數(shù),聲明無類型指針
double聲明雙精度變量或函數(shù)unsigned聲明無符號類型變量或函數(shù)
char聲明字符型變量或函數(shù)signed聲明有符號類型變量或函數(shù)
續(xù)表
與變量有關的關鍵字(6個)
auto聲明自動變量extern聲明變量是在其他文件正聲明
const聲明只讀變量register聲明寄存器變量
static聲明靜態(tài)變量volatile說明變量在程序執(zhí)行中可被隱含地改變
與程序控制有關的關鍵字(12個)
if條件語句for一種循環(huán)語句
else條件語句否定分支(與if連用)do循環(huán)語句的循環(huán)體
switch用于開關語句while循環(huán)語句的循環(huán)條件
case開關語句分支continue結束當前循環(huán),開始下一輪循環(huán)
default開關語句中的“其他”分支break跳出當前循環(huán)
goto無條件跳轉語句return子程序返回語句(可以帶參數(shù),也可不帶參數(shù))
其他關鍵字(2個)
sizeof計算數(shù)據(jù)類型長度typedef用以給數(shù)據(jù)類型取別名
你還可能感興趣
我要評論
|