日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀] 編者按:為了幫助具有PIC單片機匯編語言知識的技術(shù)人員或工程師,快速掌握利用C語言編寫PIC單片機程序的方法,本刊特推出《PIC單片機C語言程序設(shè)計》系列連載文章。丈中給出的C語言程序?qū)嵗?,均是可?zhí)

編者按:為了幫助具有PIC單片機匯編語言知識的技術(shù)人員或工程師,快速掌握利用C語言編寫PIC單片機程序的方法,本刊特推出《PIC單片機C語言程序設(shè)計》系列連載文章。丈中給出的C語言程序?qū)嵗?,均是可?zhí)行的,讀者可以放心引用。

  一、匯編語言與C語言

  早期的單片機程序多采用匯編語言編寫。用匯編語言編程,直接、簡捷,可有效地訪問和控制各種硬件設(shè)備,如存儲器、I/O口等,目標(biāo)代碼簡短、占用內(nèi)存少、執(zhí)行速度快、語句效率高。然而,由于匯編語言是面向機器的語言,不同廠家或同廠家不同系列的單片機。其匯編語言指令系統(tǒng)往往互不相同,即通常所說的“不兼容”。這就出現(xiàn)了精通51單片機匯編語言的人不能直接編寫PIC或其他單片機的匯編語言源程序,反之亦然的現(xiàn)象,以及產(chǎn)品升級換代和不同單片機問程序移植難的問題。而且,由于匯編語言是采用助記符的低級語言,可讀性較差,當(dāng)源程序功能多、程序長時,即使加了注釋,閱讀自己編寫的程序也會感到困難,更不用說修改程序和增加功能了。

  目前,單片機的應(yīng)用越來越廣,各半導(dǎo)體生產(chǎn)廠家不斷推出各種高、中、低檔單片機系列,以適應(yīng)市場的需求。而客戶對單片機系統(tǒng)的設(shè)計人員的基本要求,就是要選擇能夠滿足產(chǎn)品性能和成本要求的單片機,并以最快的速度開發(fā)出完全滿足市場需求的智能化產(chǎn)品。用匯編語言編程顯然無法達到要求。

  用C語言開發(fā)單片機系統(tǒng)軟件的最大好處,是代碼效率高、軟件調(diào)試直觀、維護升級方便、代碼的重復(fù)利用率高、便于跨平臺的代碼移植等。因此,C語言在單片機系統(tǒng)設(shè)計中得到越來越廣泛的運用。

  C語言是一種高級語言,具有低級語言的特點,原來用各種匯編語言編寫的單片機程序,均可用C語言程序代換。

  二、C語言的特點

  C語言的特點可歸納如下。

  1.語言簡潔

  C是一種小型語言,共有32個關(guān)鍵字,9種控制語句,表示方法簡單,只需用規(guī)范的方法。就可以構(gòu)造出功能很強的數(shù)據(jù)類型、語句和程序結(jié)構(gòu)。如用++表示加1;一一表示減1;運算符省寫等。

  2.表達方式靈活實用

  C語言提供多種運算符和表達式值的方法,對問題的表達可通過多種途徑獲得,其程序設(shè)計更主動、靈活。它語法限制不太嚴格,程序設(shè)計自由度大,如對整型量與字符型數(shù)據(jù)及邏輯型數(shù)據(jù)可以通用等。

  3. 表達力強

  C語言有豐富的數(shù)據(jù)結(jié)構(gòu)和運算符。包含了各種數(shù)據(jù)結(jié)構(gòu),如整型、數(shù)據(jù)類型、指針類型和聯(lián)合類型等,用來實現(xiàn)各種數(shù)據(jù)結(jié)構(gòu)的運算。C語言的運算符有34種,范圍很寬,靈活使用各種運算符可以實現(xiàn)難度極大的運算。

  C語言能直接訪問硬件的物理地址,能進行位(bit)操作。兼有高級語言和低級語言的許多優(yōu)點。

  它既可用來編寫系統(tǒng)軟件,又可用來開發(fā)應(yīng)用軟件,已成為一種通用程序設(shè)計語言。

  4.C語言生成的目標(biāo)代碼質(zhì)量高

  C語言描述問題比匯編語言迅速,工作量小、可讀性好,易于調(diào)試、修改和移植,而代碼質(zhì)量與匯編語言相當(dāng)。

  5.結(jié)構(gòu)化程序設(shè)計

  C語言是一種結(jié)構(gòu)化語言,提供編寫結(jié)構(gòu)化程序所需的控制流的結(jié)構(gòu)語句,如for、while、do…while、lf…else等;用函數(shù)作為程序設(shè)計的基本單位,以實現(xiàn)程序的模塊化;其源文件還可分割為多個源文件,以分別對各源文件進行編譯,再連接生成可執(zhí)行的目標(biāo)碼(hex)文件。

  6.可移植性

  匯編語言是不可移植的。而C語言在不同機器上的C編譯程序,86%的代碼是公共的,所以C語言的編譯程序便于移植。在一個環(huán)境上用C語言編寫的程序,不改動或稍加改動,就可移植到另一個完全不同的環(huán)境中運行。

  三、學(xué)習(xí)方法

  用PIC單片機開發(fā)電子產(chǎn)品和用C語言編程,最主要的是要堅持學(xué)習(xí),不能中斷。應(yīng)通過各種實例程序來學(xué)習(xí)C語言的語法規(guī)則。要熟練掌握C語言的數(shù)據(jù)類型表達方法、各種運算符、各種語句結(jié)構(gòu)。

  最好能背誦。要學(xué)會用C函數(shù)實現(xiàn)所需功能的方法。實際上,每個C函數(shù)都相當(dāng)于一個功能模塊,一個C函數(shù)便可實現(xiàn)一種功能。

  此外,用C語言開發(fā)PIC單片機應(yīng)用產(chǎn)品,必須具有PIC單片機匯編語言知識。如果你已經(jīng)掌握了用匯編語言編寫PIC單片機源程序的方法,最好將編寫成功的PIC單片機匯編語言源程序,逐個用C語言源文件代換,從中體會C語言的優(yōu)越性。

  四、簡單的C 語言程序

  為了幫助讀者進入C語言編程環(huán)境,要給大家介紹一個簡單的C語言程序。

  下面扼要介紹該程序所用到的C語言基本知識。更多的知識則在后文詳細介紹。

  1.主函數(shù)main( )

  C語言程序一般由若干個函數(shù)組成。函數(shù)是完成某個功能的算法的程序段,是C語言的基本組成單位。組成一個程序的若干函數(shù),可以保存在一個或幾個源程序文件中,這些文件都以。C為擴展名(匯編語言以ASM為擴展名)。一個程序必須有且只能有一個名為main的函數(shù),即是主函數(shù)main( )程序運行時,總是從主函數(shù)main( )開始執(zhí)行的。

  2.C語言函數(shù)

  C語言程序的基本單位是函數(shù)。C語言程序必須有且只能有一個名為main的主函數(shù)。主函數(shù)可以調(diào)用其他函數(shù),其他函數(shù)也可相互調(diào)用。被調(diào)用的函數(shù)可以是系統(tǒng)提供的庫函數(shù),也可以是程序設(shè)計者自己編寫的函數(shù)——對于MCU (如PIC單片機),所用的大多是自己編寫的函數(shù)。一個函數(shù)由函數(shù)頭和函數(shù)體兩部分組成,每個函數(shù)的形式都相同。

 ?。?)函數(shù)頭由函數(shù)名(自定義名)、函數(shù)標(biāo)志——( ),即一對圓括號,以及參數(shù)表,又稱函數(shù)形式參數(shù)名和參數(shù)說明(定義形式參數(shù)類型)組成。

  前兩項必須有,如主函數(shù)main( ),后兩項為即可選項。注意:函數(shù)名可包括函數(shù)類型和函數(shù)名字等。

 ?。?)函數(shù)體由一對花括號:{}括起來,括號內(nèi)由若干語句組成。這些語句有兩種類型:一類是說明語句,又稱變量定義,其作用是定義函數(shù)中用到的變量;另一類是執(zhí)行語句,又稱函數(shù)功能的執(zhí)行部分。

  用于完成一定的功能,即算法處理。注意:有的函數(shù)沒有變量定義部分,但有若干執(zhí)行語句。而在特定的情況下,則既無聲明部分,也無執(zhí)行部分,如:

  Dump( )

  {}

  這是一個空函數(shù)。什么也不做,它也是合法的函數(shù)。

  再有,每個語句和數(shù)據(jù)定義的最后,必須有一個分號“;”(#define……的不加分號)。分號是C語言環(huán)境首先接觸到的基本符號,在以后的文章中我們還會深入介紹這些符號的用途。

(3)賦值運算符賦值號“=”,即賦值運算符。

  賦值運算符有三種表達形式,這里先介紹一種簡單的賦值運算符。

  格式:變量=表達式。

  功能:先計算出表達式值(有些表達式已有結(jié)果,勿需計算),并將該值賦給等式左端的變量。賦值運算符是按照“自右而左”的順序進行作業(yè)的。例如:

  PORTB=0X0 3

  TRISB=0×0 0

  TRISA=0X0 F (0X代表十六進制)

  分別執(zhí)行以下操作:把等式右邊的0X0 3送給等式左邊的端口寄存器PORTB口,即B口低兩位為高電平,其余6位為低電平;把0X0 0送給方向寄存器TRISB,即設(shè)置B口為輸出;把0×0 F送給方向寄存器TRISA,即設(shè)置A 口低四位為輸入,高四位為輸出。

  3.PIC16F84A點燈電路和C語言程序

  下面以控制PIC16F84A單片機端口寄存器PORTB口外接的8只LED任一位的亮滅為例,介紹相關(guān)C語言程序的編寫。電路如圖1所示。

  筆者使用的是MPLAB tDE V7 40集成開發(fā)環(huán)境及PICC編譯器,所生成的C語言源程序又稱源文件。

  在編寫C的源程序時,需要定義硬件的標(biāo)志頭文件(也稱包含頭文件或頭文件)。因為用戶經(jīng)常使用的標(biāo)準寄存器地址和其位地址都被定義在Pic h標(biāo)志頭文件中,按C語言編譯器編譯源程序的語法規(guī)則,在編寫C語言程序時,必須使用#include語句,把這個pic.h頭文件包含到自己的源程序中。即對于PIC中級產(chǎn)品的單片機,C語言程序的開頭是固定格式#include。編譯器在編譯處理#include語句時,會把pic.h的內(nèi)容。復(fù)制到你的源程序中,這樣PICC才認為用戶使用的標(biāo)準寄存器的端口地址和端1:3的位地址已經(jīng)被定義,源程序就會合法地使用這些標(biāo)準寄存器及其對應(yīng)的位。關(guān)于MPLAP IDE V7.4和picc編譯器,在后文還會詳細介紹。

4.PIC單片機端口寄存器的位定義

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

在單片機的世界里,“字節(jié)”(Byte)是一個貫穿始終的核心概念。從存儲數(shù)據(jù)到執(zhí)行指令,從變量定義到外設(shè)通信,字節(jié)無處不在。很多初學(xué)者在學(xué)習(xí)單片機時,往往更關(guān)注復(fù)雜的程序邏輯和外設(shè)驅(qū)動,卻忽略了字節(jié)這個基礎(chǔ)知識點,導(dǎo)致在后...

關(guān)鍵字: 單片機 字節(jié)

在單片機的數(shù)字邏輯中,我們通常最關(guān)注的是高電平和低電平兩種狀態(tài),它們構(gòu)成了二進制數(shù)字世界的基礎(chǔ)。然而,除了這兩種狀態(tài)之外,還有一種至關(guān)重要但常常被忽視的狀態(tài)——高阻態(tài)(High Impedance State)。高阻態(tài)就...

關(guān)鍵字: 單片機 高阻態(tài)

對于PIC入門者來說,不需要盲目追求高端開發(fā)板,一塊功能均衡、資料豐富的入門款就能滿足需求。比如Microchip官方推出的PIC16F84A開發(fā)板,它搭載經(jīng)典的8位PIC內(nèi)核,引腳布局清晰,自帶LED、按鍵等基礎(chǔ)外設(shè),...

關(guān)鍵字: PIC 單片機

該低功耗器件支持5V運行,在實現(xiàn)高性能的同時,能有效保障系統(tǒng)簡潔性與成本效益

關(guān)鍵字: MCU 單片機 工業(yè)自動化

CH558T 采用 BASIC-52 系統(tǒng),并具備藍牙連接功能。CH558T 的運行頻率為 48 MHz,擁有 4KB 的 xRAM,足以滿足常規(guī)應(yīng)用需求。

關(guān)鍵字: 單片機 BASIC-52 系統(tǒng) CH558T

RGB顯示屏憑借高分辨率、真彩色顯示優(yōu)勢,在工業(yè)控制、智能終端、消費電子等領(lǐng)域應(yīng)用廣泛。裸屏RGB顯示屏無內(nèi)置驅(qū)動電路,需搭配專用LCD驅(qū)動芯片才能與單片機協(xié)同工作,其核心作用是將單片機輸出的圖像數(shù)據(jù)轉(zhuǎn)換為屏幕可識別的R...

關(guān)鍵字: 顯示屏 驅(qū)動芯片 單片機

在嵌入式系統(tǒng)開發(fā)中,單片機(MCU)作為控制核心,廣泛應(yīng)用于工業(yè)自動化、智能家居等領(lǐng)域。然而,當(dāng)需要控制繼電器或電磁閥等大功率負載時,直接連接單片機引腳往往會導(dǎo)致系統(tǒng)故障甚至硬件損壞。

關(guān)鍵字: 單片機 MCU

在嵌入式系統(tǒng)領(lǐng)域,單片機作為核心控制單元,其軟硬件結(jié)合機制是理解電子設(shè)備運行邏輯的關(guān)鍵。

關(guān)鍵字: 單片機 CPU?

物聯(lián)網(wǎng)與智能控制蓬勃發(fā)展,溫度傳感器作為感知環(huán)境溫度變化的關(guān)鍵元件,廣泛應(yīng)用于工業(yè)生產(chǎn)、智能家居、醫(yī)療設(shè)備等眾多領(lǐng)域。而單片機憑借其強大的控制能力和靈活的編程特性,成為處理溫度傳感器數(shù)據(jù)的理想平臺。下面將深入剖析單片機程...

關(guān)鍵字: 單片機 溫度傳感器

在醫(yī)療科技飛速發(fā)展的當(dāng)下,便攜式醫(yī)療設(shè)備以其便捷、高效的特點,逐漸成為人們?nèi)粘=】倒芾淼闹匾ぞ?。其中,便攜式心率監(jiān)測儀憑借其實時監(jiān)測心率、為健康狀況提供關(guān)鍵數(shù)據(jù)的功能,受到了廣泛關(guān)注。而單片機程序開發(fā)作為便攜式心率監(jiān)測...

關(guān)鍵字: 單片機 醫(yī)療設(shè)備
關(guān)閉