摘要:本文主要結(jié)合51單片機(jī)系統(tǒng)的硬件資源特點(diǎn),從指針結(jié)構(gòu)聲明,對(duì)于不同存儲(chǔ)區(qū)(片內(nèi)、片外數(shù)據(jù)存儲(chǔ)區(qū)和程序存儲(chǔ)區(qū))的指針尋址的實(shí)現(xiàn)等方面闡述了單片機(jī)C語言才勻針的應(yīng)用。關(guān)鍵詞:單片機(jī)C語言 指針
上傳時(shí)間: 2013-10-09
上傳用戶:libenshu01
學(xué)習(xí)單片機(jī)實(shí)在不是件易事,一來要購買高價(jià)格的編程器,仿真器,二來要學(xué)習(xí)編程語言,還有眾多種類的單片機(jī)選擇真是件讓人頭痛的事。在眾多單片機(jī)中51 架構(gòu)的芯片風(fēng)行很久,學(xué)習(xí)資料也相對(duì)很多,是初學(xué)的較好的選擇之一。51 的編程語言常用的有二種,一種是匯編語言,一種是C 語言。匯編語言的機(jī)器代碼生成效率很高但可讀性卻并不強(qiáng),復(fù)雜一點(diǎn)的程序就更是難讀懂,而C 語言在大多數(shù)情況下其機(jī)器代碼生成效率和匯編語言相當(dāng),但可讀性和可移植性卻遠(yuǎn)遠(yuǎn)超過匯編語言,而且C 語言還可以嵌入?yún)R編來解決高時(shí)效性的代碼編寫問題。對(duì)于開發(fā)周期來說,中大型的軟件編寫用C 語言的開發(fā)周期通常要小于匯編語言很多。綜合以上C 語言的優(yōu)點(diǎn),我在學(xué)習(xí)時(shí)選擇了C 語言。以后的教程也只是我在學(xué)習(xí)過程中的一些學(xué)習(xí)筆記和隨筆,在這里加以整理和修改,希望和大家一起分享,一起交流,一起學(xué)習(xí),一起進(jìn)步。
標(biāo)簽: Keil 51單片機(jī) C語言 入門教程
上傳時(shí)間: 2013-10-07
上傳用戶:pompey
PIC單片機(jī)的C語言編程教材 用C 語言來開發(fā)單片機(jī)系統(tǒng)軟件最大的好處是編寫代碼效率高、軟件調(diào)試直觀、維護(hù)升級(jí)方便、代碼的重復(fù)利用率高、便于跨平臺(tái)的代碼移植等等,因此C 語言編程在單片系統(tǒng)設(shè)計(jì)中已得到越來越廣泛的運(yùn)用。針對(duì)PIC 單片機(jī)的軟件開發(fā),同樣可以用C 語言實(shí)現(xiàn)。
標(biāo)簽: PIC C語言編程 單片機(jī) 教材
上傳時(shí)間: 2013-11-11
上傳用戶:xdqm
MSP430系列flash型超低功耗16位單片機(jī)MSP430系列單片機(jī)在超低功耗和功能集成等方面有明顯的特點(diǎn)。該系列單片機(jī)自問世以來,頗受用戶關(guān)注。在2000年該系列單片機(jī)又出現(xiàn)了幾個(gè)FLASH型的成員,它們除了仍然具備適合應(yīng)用在自動(dòng)信號(hào)采集系統(tǒng)、電池供電便攜式裝置、超長時(shí)間連續(xù)工作的設(shè)備等領(lǐng)域的特點(diǎn)外,更具有開發(fā)方便、可以現(xiàn)場編程等優(yōu)點(diǎn)。這些技術(shù)特點(diǎn)正是應(yīng)用工程師特別感興趣的?!禡SP430系列FLASH型超低功耗16位單片機(jī)》對(duì)該系列單片機(jī)的FLASH型成員的原理、結(jié)構(gòu)、內(nèi)部各功能模塊及開發(fā)方法與工具作詳細(xì)介紹。MSP430系列FLASH型超低功耗16位單片機(jī) 目錄 第1章 引 論1.1 MSP430系列單片機(jī)1.2 MSP430F11x系列1.3 MSP430F11x1系列1.4 MSP430F13x系列1.5 MSP430F14x系列第2章 結(jié)構(gòu)概述2.1 引 言2.2 CPU2.3 程序存儲(chǔ)器2.4 數(shù)據(jù)存儲(chǔ)器2.5 運(yùn)行控制2.6 外圍模塊2.7 振蕩器與時(shí)鐘發(fā)生器第3章 系統(tǒng)復(fù)位、中斷及工作模式3.1 系統(tǒng)復(fù)位和初始化3.1.1 引 言3.1.2 系統(tǒng)復(fù)位后的設(shè)備初始化3.2 中斷系統(tǒng)結(jié)構(gòu)3.3 MSP430 中斷優(yōu)先級(jí)3.3.1 中斷操作--復(fù)位/NMI3.3.2 中斷操作--振蕩器失效控制3.4 中斷處理 3.4.1 SFR中的中斷控制位3.4.2 中斷向量地址3.4.3 外部中斷3.5 工作模式3.5.1 低功耗模式0、1(LPM0和LPM1)3.5.2 低功耗模式2、3(LPM2和LPM3)3.5.3 低功耗模式4(LPM4)22 3.6 低功耗應(yīng)用的要點(diǎn)23第4章 存儲(chǔ)空間4.1 引 言4.2 存儲(chǔ)器中的數(shù)據(jù)4.3 片內(nèi)ROM組織4.3.1 ROM 表的處理4.3.2 計(jì)算分支跳轉(zhuǎn)和子程序調(diào)用4.4 RAM 和外圍模塊組織4.4.1 RAM4.4.2 外圍模塊--地址定位4.4.3 外圍模塊--SFR4.5 FLASH存儲(chǔ)器4.5.1 FLASH存儲(chǔ)器的組織4.5.2 FALSH存儲(chǔ)器的數(shù)據(jù)結(jié)構(gòu)4.5.3 FLASH存儲(chǔ)器的控制寄存器4.5.4 FLASH存儲(chǔ)器的安全鍵值與中斷4.5.5 經(jīng)JTAG接口訪問FLASH存儲(chǔ)器39第5章 16位CPU5.1 CPU寄存器5.1.1 程序計(jì)數(shù)器PC5.1.2 系統(tǒng)堆棧指針SP5.1.3 狀態(tài)寄存器SR5.1.4 常數(shù)發(fā)生寄存器CG1和CG25.2 尋址模式5.2.1 寄存器模式5.2.2 變址模式5.2.3 符號(hào)模式5.2.4 絕對(duì)模式5.2.5 間接模式5.2.6 間接增量模式5.2.7 立即模式5.2.8 指令的時(shí)鐘周期與長度5.3 指令組概述5.3.1 雙操作數(shù)指令5.3.2 單操作數(shù)指令5.3.3 條件跳轉(zhuǎn)5.3.4 模擬指令的簡短格式5.3.5 其他指令第6章 硬件乘法器6.1 硬件乘法器6.2 硬件乘法器操作6.2.1 無符號(hào)數(shù)相乘(16位×16位、16位×8位、8位×16位、8位×8位)6.2.2 有符號(hào)數(shù)相乘(16位×16位、16位×8位、8位×16位、8位×8位)6.2.3 無符號(hào)數(shù)乘加(16位×16位、16位×8位、8位×16位、8位×8位)6.2.4 有符號(hào)數(shù)乘加(16位×16位、16位×8位、8位×16位、8位×8位)6.3 硬件乘法器寄存器6.4 硬件乘法器的軟件限制6.4.1 尋址模式6.4.2 中斷程序6.4.3 MACS第7章 基礎(chǔ)時(shí)鐘模塊7.1 基礎(chǔ)時(shí)鐘模塊7.2 LFXT1與XT27.2.1 LFXT1振蕩器7.2.2 XT2振蕩器7.2.3 振蕩器失效檢測7.2.4 XT振蕩器失效時(shí)的DCO7.3 DCO振蕩器7.3.1 DCO振蕩器的特性7.3.2 DCO調(diào)整器7.4 時(shí)鐘與運(yùn)行模式7.4.1 由PUC啟動(dòng)7.4.2 基礎(chǔ)時(shí)鐘調(diào)整7.4.3 用于低功耗的基礎(chǔ)時(shí)鐘特性7.4.4 選擇晶振產(chǎn)生MCLK7.4.5 時(shí)鐘信號(hào)的同步7.5 基礎(chǔ)時(shí)鐘模塊控制寄存器7.5.1 DCO時(shí)鐘頻率控制7.5.2 振蕩器與時(shí)鐘控制寄存器7.5.3 SFR控制位第8章 輸入輸出端口8.1 引 言8.2 端口P1、P28.2.1 P1、P2的控制寄存器8.2.2 P1、P2的原理8.2.3 P1、P2的中斷控制功能8.3 端口P3、P4、P5和P68.3.1 端口P3、P4、P5和P6的控制寄存器8.3.2 端口P3、P4、P5和P6的端口邏輯第9章 看門狗定時(shí)器WDT9.1 看門狗定時(shí)器9.2 WDT寄存器9.3 WDT中斷控制功能9.4 WDT操作第10章 16位定時(shí)器Timer_A10.1 引 言10.2 Timer_A的操作10.2.1 定時(shí)器模式控制10.2.2 時(shí)鐘源選擇和分頻10.2.3 定時(shí)器啟動(dòng)10.3 定時(shí)器模式10.3.1 停止模式10.3.2 增計(jì)數(shù)模式10.3.3 連續(xù)模式10.3.4 增/減計(jì)數(shù)模式10.4 捕獲/比較模塊10.4.1 捕獲模式10.4.2 比較模式10.5 輸出單元10.5.1 輸出模式10.5.2 輸出控制模塊10.5.3 輸出舉例10.6 Timer_A的寄存器10.6.1 Timer_A控制寄存器TACTL10.6.2 Timer_A寄存器TAR10.6.3 捕獲/比較控制寄存器CCTLx10.6.4 Timer_A中斷向量寄存器10.7 Timer_A的UART應(yīng)用 第11章 16位定時(shí)器Timer_B11.1 引 言11.2 Timer_B的操作11.2.1 定時(shí)器長度11.2.2 定時(shí)器模式控制11.2.3 時(shí)鐘源選擇和分頻11.2.4 定時(shí)器啟動(dòng)11.3 定時(shí)器模式11.3.1 停止模式11.3.2 增計(jì)數(shù)模式11.3.3 連續(xù)模式11.3.4 增/減計(jì)數(shù)模式11.4 捕獲/比較模塊11.4.1 捕獲模式11.4.2 比較模式11.5 輸出單元11.5.1 輸出模式11.5.2 輸出控制模塊11.5.3 輸出舉例11.6 Timer_B的寄存器11.6.1 Timer_B控制寄存器TBCTL11.6.2 Timer_B寄存器TBR11.6.3 捕獲/比較控制寄存器CCTLx11.6.4 Timer_B中斷向量寄存器第12章 USART通信模塊的UART功能12.1 異步模式12.1.1 異步幀格式12.1.2 異步通信的波特率發(fā)生器12.1.3 異步通信格式12.1.4 線路空閑多機(jī)模式12.1.5 地址位多機(jī)通信格式12.2 中斷和中斷允許12.2.1 USART接收允許12.2.2 USART發(fā)送允許12.2.3 USART接收中斷操作12.2.4 USART發(fā)送中斷操作12.3 控制和狀態(tài)寄存器12.3.1 USART控制寄存器UCTL12.3.2 發(fā)送控制寄存器UTCTL12.3.3 接收控制寄存器URCTL12.3.4 波特率選擇和調(diào)整控制寄存器12.3.5 USART接收數(shù)據(jù)緩存URXBUF12.3.6 USART發(fā)送數(shù)據(jù)緩存UTXBUF12.4 UART模式,低功耗模式應(yīng)用特性12.4.1 由UART幀啟動(dòng)接收操作12.4.2 時(shí)鐘頻率的充分利用與UART的波特率12.4.3 多處理機(jī)模式對(duì)節(jié)約MSP430資源的支持12.5 波特率計(jì)算 第13章 USART通信模塊的SPI功能13.1 USART同步操作13.1.1 SPI模式中的主模式13.1.2 SPI模式中的從模式13.2 中斷與控制功能 13.2.1 USART接收/發(fā)送允許位及接收操作13.2.2 USART接收/發(fā)送允許位及發(fā)送操作13.2.3 USART接收中斷操作13.2.4 USART發(fā)送中斷操作13.3 控制與狀態(tài)寄存器13.3.1 USART控制寄存器13.3.2 發(fā)送控制寄存器UTCTL13.3.3 接收控制寄存器URCTL13.3.4 波特率選擇和調(diào)制控制寄存器13.3.5 USART接收數(shù)據(jù)緩存URXBUF13.3.6 USART發(fā)送數(shù)據(jù)緩存UTXBUF第14章 比較器Comparator_A14.1 概 述14.2 比較器A原理14.2.1 輸入模擬開關(guān)14.2.2 輸入多路切換14.2.3 比較器14.2.4 輸出濾波器14.2.5 參考電平發(fā)生器14.2.6 比較器A中斷電路14.3 比較器A控制寄存器14.3.1 控制寄存器CACTL114.3.2 控制寄存器CACTL214.3.3 端口禁止寄存器CAPD14.4 比較器A應(yīng)用14.4.1 模擬信號(hào)在數(shù)字端口的輸入14.4.2 比較器A測量電阻元件14.4.3 兩個(gè)獨(dú)立電阻元件的測量系統(tǒng)14.4.4 比較器A檢測電流或電壓14.4.5 比較器A測量電流或電壓14.4.6 測量比較器A的偏壓14.4.7 比較器A的偏壓補(bǔ)償14.4.8 增加比較器A的回差第15章 模數(shù)轉(zhuǎn)換器ADC1215.1 概 述15.2 ADC12的工作原理及操作15.2.1 ADC內(nèi)核15.2.2 參考電平15.3 模擬輸入與多路切換15.3.1 模擬多路切換15.3.2 輸入信號(hào)15.3.3 熱敏二極管的使用15.4 轉(zhuǎn)換存儲(chǔ)15.5 轉(zhuǎn)換模式15.5.1 單通道單次轉(zhuǎn)換模式15.5.2 序列通道單次轉(zhuǎn)換模式15.5.3 單通道重復(fù)轉(zhuǎn)換模式15.5.4 序列通道重復(fù)轉(zhuǎn)換模式15.5.5 轉(zhuǎn)換模式之間的切換15.5.6 低功耗15.6 轉(zhuǎn)換時(shí)鐘與轉(zhuǎn)換速度15.7 采 樣15.7.1 采樣操作15.7.2 采樣信號(hào)輸入選擇15.7.3 采樣模式15.7.4 MSC位的使用15.7.5 采樣時(shí)序15.8 ADC12控制寄存器15.8.1 控制寄存器ADC12CTL0和ADC12CTL115.8.2 轉(zhuǎn)換存儲(chǔ)寄存器ADC12MEMx15.8.3 控制寄存器ADC12MCTLx15.8.4 中斷標(biāo)志寄存器ADC12IFG.x和中斷允許寄存器ADC12IEN.x15.8.5 中斷向量寄存器ADC12IV15.9 ADC12接地與降噪第16章 FLASH型芯片的開發(fā)16.1 開發(fā)系統(tǒng)概述16.1.1 開發(fā)技術(shù)16.1.2 MSP430系列的開發(fā)16.1.3 MSP430F系列的開發(fā)16.2 FLASH型的FET開發(fā)方法16.2.1 MSP430芯片的JTAG接口16.2.2 FLASH型仿真工具16.3 FLASH型的BOOT ROM16.3.1 標(biāo)準(zhǔn)復(fù)位過程和進(jìn)入BSL過程16.3.2 BSL的UART協(xié)議16.3.3 數(shù)據(jù)格式16.3.4 退出BSL16.3.5 保護(hù)口令16.3.6 BSL的內(nèi)部設(shè)置和資源附錄A 尋址空間附錄B 指令說明B.1 指令匯總B.2 指令格式B.3 不增加ROM開銷的模擬指令B.4 指令說明(字母順序)B.5 用幾條指令模擬的宏指令附錄C MSP430系列單片機(jī)參數(shù)表附錄D MSP430系列單片機(jī)封裝形式附錄E MSP430系列器件命名
上傳時(shí)間: 2014-04-28
上傳用戶:sssnaxie
P C B 可測性設(shè)計(jì)布線規(guī)則之建議― ― 從源頭改善可測率PCB 設(shè)計(jì)除需考慮功能性與安全性等要求外,亦需考慮可生產(chǎn)與可測試。這里提供可測性設(shè)計(jì)建議供設(shè)計(jì)布線工程師參考。1. 每一個(gè)銅箔電路支點(diǎn),至少需要一個(gè)可測試點(diǎn)。如無對(duì)應(yīng)的測試點(diǎn),將可導(dǎo)致與之相關(guān)的開短路不可檢出,并且與之相連的零件會(huì)因無測試點(diǎn)而不可測。2. 雙面治具會(huì)增加制作成本,且上針板的測試針定位準(zhǔn)確度差。所以Layout 時(shí)應(yīng)通過Via Hole 盡可能將測試點(diǎn)放置于同一面。這樣就只要做單面治具即可。3. 測試選點(diǎn)優(yōu)先級(jí):A.測墊(Test Pad) B.通孔(Through Hole) C.零件腳(Component Lead) D.貫穿孔(Via Hole)(未Mask)。而對(duì)于零件腳,應(yīng)以AI 零件腳及其它較細(xì)較短腳為優(yōu)先,較粗或較長的引腳接觸性誤判多。4. PCB 厚度至少要62mil(1.35mm),厚度少于此值之PCB 容易板彎變形,影響測點(diǎn)精準(zhǔn)度,制作治具需特殊處理。5. 避免將測點(diǎn)置于SMT 之PAD 上,因SMT 零件會(huì)偏移,故不可靠,且易傷及零件。6. 避免使用過長零件腳(>170mil(4.3mm))或過大的孔(直徑>1.5mm)為測點(diǎn)。7. 對(duì)于電池(Battery)最好預(yù)留Jumper,在ICT 測試時(shí)能有效隔離電池的影響。8. 定位孔要求:(a) 定位孔(Tooling Hole)直徑最好為125mil(3.175mm)及其以上。(b) 每一片PCB 須有2 個(gè)定位孔和一個(gè)防呆孔(也可說成定位孔,用以預(yù)防將PCB反放而導(dǎo)致機(jī)器壓破板),且孔內(nèi)不能沾錫。(c) 選擇以對(duì)角線,距離最遠(yuǎn)之2 孔為定位孔。(d) 各定位孔(含防呆孔)不應(yīng)設(shè)計(jì)成中心對(duì)稱,即PCB 旋轉(zhuǎn)180 度角后仍能放入PCB,這樣,作業(yè)員易于反放而致機(jī)器壓破板)9. 測試點(diǎn)要求:(e) 兩測點(diǎn)或測點(diǎn)與預(yù)鉆孔之中心距不得小于50mil(1.27mm),否則有一測點(diǎn)無法植針。以大于100mil(2.54mm)為佳,其次是75mil(1.905mm)。(f) 測點(diǎn)應(yīng)離其附近零件(位于同一面者)至少100mil,如為高于3mm 零件,則應(yīng)至少間距120mil,方便治具制作。(g) 測點(diǎn)應(yīng)平均分布于PCB 表面,避免局部密度過高,影響治具測試時(shí)測試針壓力平衡。(h) 測點(diǎn)直徑最好能不小于35mil(0.9mm),如在上針板,則最好不小于40mil(1.00mm),圓形、正方形均可。小于0.030”(30mil)之測點(diǎn)需額外加工,以導(dǎo)正目標(biāo)。(i) 測點(diǎn)的Pad 及Via 不應(yīng)有防焊漆(Solder Mask)。(j) 測點(diǎn)應(yīng)離板邊或折邊至少100mil。(k) 錫點(diǎn)被實(shí)踐證實(shí)是最好的測試探針接觸點(diǎn)。因?yàn)殄a的氧化物較輕且容易刺穿。以錫點(diǎn)作測試點(diǎn),因接觸不良導(dǎo)致誤判的機(jī)會(huì)極少且可延長探針使用壽命。錫點(diǎn)尤其以PCB 光板制作時(shí)的噴錫點(diǎn)最佳。PCB 裸銅測點(diǎn),高溫后已氧化,且其硬度高,所以探針接觸電阻變化而致測試誤判率很高。如果裸銅測點(diǎn)在SMT 時(shí)加上錫膏再經(jīng)回流焊固化為錫點(diǎn),雖可大幅改善,但因助焊劑或吃錫不完全的緣故,仍會(huì)出現(xiàn)較多的接觸誤判。
標(biāo)簽: PCB 可測性設(shè)計(jì) 布線規(guī)則
上傳時(shí)間: 2014-01-14
上傳用戶:cylnpy
用C 語言來開發(fā)單片機(jī)系統(tǒng)軟件最大的好處是編寫代碼效率高、軟件調(diào)試直觀、維護(hù)升級(jí)方便、代碼的重復(fù)利用率高、便于跨平臺(tái)的代碼移植等等,因此C 語言編程在單片機(jī)系統(tǒng)設(shè)計(jì)中已得到越來越廣泛的運(yùn)用。針對(duì)PIC 單片機(jī)的軟件開發(fā),同樣可以用C 語言實(shí)現(xiàn)。但在單片機(jī)上用C 語言寫程序和在PC 機(jī)上寫程序絕對(duì)不能簡單等同?,F(xiàn)在的PC 機(jī)資源十分豐富,運(yùn)算能力強(qiáng)大,因此程序員在寫PC 機(jī)的應(yīng)用程序時(shí)幾乎不用關(guān)心編譯后的可執(zhí)行代碼在運(yùn)行過程中需要占用多少系統(tǒng)資源,也基本不用擔(dān)心運(yùn)行效率有多高。寫單片機(jī)的C 程序最關(guān)鍵的一點(diǎn)是單片機(jī)內(nèi)的資源非常有限,控制的實(shí)時(shí)性要求又很高,因此,如果沒有對(duì)單片機(jī)體系結(jié)構(gòu)和硬件資源作詳盡的了解,以筆者的愚見認(rèn)為是無法寫出高質(zhì)量實(shí)用的C 語言程序。這就是為什么前面所有章節(jié)中的的示范代碼全部用基礎(chǔ)的匯編指令實(shí)現(xiàn)的原因,希望籍此能使讀者對(duì)PIC 單片機(jī)的指令體系和硬件資源有深入了解,在這基礎(chǔ)之上再來討論C 語言編程,就有水到渠成的感覺。本書圍繞中檔系列PIC 單片機(jī)來展開討論,Microchip 公司自己沒有針對(duì)中低檔系列PIC單片機(jī)的C 語言編譯器,但很多專業(yè)的第三方公司有眾多支持PIC 單片機(jī)的C 語言編譯器提供,常見的有Hitech、CCS、IAR、Bytecraft 等公司。其中筆者最常用的是Hitech 公司的PICC編譯器,它穩(wěn)定可靠,編譯生成的代碼效率高,在用PIC 單片機(jī)進(jìn)行系統(tǒng)設(shè)計(jì)和開發(fā)的工程師群體中得到廣泛認(rèn)可。其正式完全版軟件需要購置,但在其網(wǎng)站上有限時(shí)的試用版供用戶評(píng)估。另外,Hitech 公司針對(duì)廣大PIC 的業(yè)余愛好者和初學(xué)者還提供了完全免費(fèi)的學(xué)習(xí)版PICC-Lite 編譯器套件,它的使用方式和完全版相同,只是支持的PIC 單片機(jī)型號(hào)限制在PIC16F84、PIC16F877 和PIC16F628 等幾款。這幾款Flash 型的單片機(jī)因其所具備的豐富的片上資源而最適用于單片機(jī)學(xué)習(xí)入門,因此筆者建議感興趣的讀者可從PICC-Lite 入手掌握PIC 單片機(jī)的C 語言編程。
上傳時(shí)間: 2013-11-17
上傳用戶:aa54
51單片機(jī)驅(qū)動(dòng)步進(jìn)電機(jī)(含電路圖和源程序代碼) 源程序:stepper.c stepper.hex /* * STEPPER.C * sweeping stepper's rotor cw and cww 400 steps * Copyright (c) 1999 by W.Sirichote */ #i nclude c:\mc5151io.h /* include i/o header file */ #i nclude c:\mc5151reg.h register unsigned char j,flag1,temp; register unsigned int cw_n,ccw_n; unsigned char step[8]={0x80,0xc0,0x40,0x60,0x20,0x30,0x10,0x90} #define n 400 /* flag1 mask byte 0x01 run cw() 0x02 run ccw() */
標(biāo)簽: 51單片機(jī) 驅(qū)動(dòng) 步進(jìn)電機(jī) C語言
上傳時(shí)間: 2013-11-09
上傳用戶:釣鰲牧馬
用C 語言來開發(fā)單片機(jī)系統(tǒng)軟件最大的好處是編寫代碼效率高、軟件調(diào)試直觀、維護(hù)升級(jí)方便、代碼的重復(fù)利用率高、便于跨平臺(tái)的代碼移植等等,因此C 語言編程在單機(jī)系統(tǒng)設(shè)計(jì)中已得到越來越廣泛的運(yùn)用。針對(duì)PIC 單片機(jī)的軟件開發(fā),同樣可以用C 語言實(shí)現(xiàn)。但在單片機(jī)上用C 語言寫程序和在PC 機(jī)上寫程序絕對(duì)不能簡單等同?,F(xiàn)在的PC 機(jī)資源十分豐富,運(yùn)算能力強(qiáng)大,因此程序員在寫PC 機(jī)的應(yīng)用程序時(shí)幾乎不用關(guān)心編譯后的可執(zhí)行代碼在運(yùn)行過程中需要占用多少系統(tǒng)資源,也基本不用擔(dān)心運(yùn)行效率有多高。寫單片機(jī)的C 程序最關(guān)鍵的一點(diǎn)是單片機(jī)內(nèi)的資源非常有限,控制的實(shí)時(shí)性要求又很高,因此,如果沒有對(duì)單片機(jī)體系結(jié)構(gòu)和硬件資源作詳盡的了解,以筆者的愚見認(rèn)為是無法寫出高質(zhì)量實(shí)用的C 語言程序。這就是為什么前面所有章節(jié)中的的示范代碼全部用基礎(chǔ)的匯編指令實(shí)現(xiàn)的原因,希望籍此能使讀者對(duì)PIC 單片機(jī)的指令體系和硬件資源有深入了解,在這基礎(chǔ)之上再來討論C 語言編程,就有水到渠成的感覺。本書圍繞中檔系列PIC 單片機(jī)來展開討論,Microchip 公司自己沒有針對(duì)中低檔系列PIC單片機(jī)的C 語言編譯器,但很多專業(yè)的第三方公司有眾多支持PIC 單片機(jī)的C 語言編譯器提供,常見的有Hitech、CCS、IAR、Bytecraft 等公司。其中筆者最常用的是Hitech 公司的PICC 編譯器,它穩(wěn)定可靠,編譯生成的代碼效率高,在用PIC 單片機(jī)進(jìn)行系統(tǒng)設(shè)計(jì)和開發(fā)的工程師群體中得到廣泛認(rèn)可。其正式完全版軟件需要購置,但在其網(wǎng)站上有限時(shí)的試用版供用戶評(píng)估。另外,Hitech 公司針對(duì)廣大PIC 的業(yè)余愛好者和初學(xué)者還提供了完全免費(fèi)的學(xué)習(xí)版PICC-Lite 編譯器套件,它的使用方式和完全版相同,只是支持的PIC 單片機(jī)型號(hào)限制在PIC16F84、PIC16F877 和PIC16F628 等幾款。這幾款Flash 型的單片機(jī)因其所具備的豐富的片上資源而最適用于單片機(jī)學(xué)習(xí)入門,因此筆者建議感興趣的讀者可從PICC-Lite 入手掌握PIC 單片機(jī)的C 語言編程。
上傳時(shí)間: 2013-11-12
上傳用戶:wfeel
51 單片機(jī)C 語言學(xué)習(xí)雜記學(xué)習(xí)單片機(jī)實(shí)在不是件易事,一來要購買高價(jià)格的編程器,仿真器,二來要學(xué)習(xí)編程語言,還有眾多種類的單片機(jī)選擇真是件讓人頭痛的事。在眾多單片機(jī)中51 架構(gòu)的芯片風(fēng)行很久,學(xué)習(xí)資料也相對(duì)很多,是初學(xué)的較好的選擇之一。51 的編程語言常用的有二種,一種是匯編語言,一種是C 語言。匯編語言的機(jī)器代碼生成效率很高但可讀性卻并不強(qiáng),復(fù)雜一點(diǎn)的程序就更是難讀懂,而C 語言在大多數(shù)情況下其機(jī)器代碼生成效率和匯編語言相當(dāng),但可讀性和可移植性卻遠(yuǎn)遠(yuǎn)超過匯編語言,而且C 語言還可以嵌入?yún)R編來解決高時(shí)效性的代碼編寫問題。對(duì)于開發(fā)周期來說,中大型的軟件編寫用C 語言的開發(fā)周期通常要小于匯編語言很多。綜合以上C 語言的優(yōu)點(diǎn),我在學(xué)習(xí)時(shí)選擇了C 語言。以后的教程也只是我在學(xué)習(xí)過程中的一些學(xué)習(xí)筆記和隨筆,在這里加以整理和修改,希望和大家一起分享,一起交流,一起學(xué)習(xí),一起進(jìn)步。*注:可以肯定的說這個(gè)教程只是為初學(xué)或入門者準(zhǔn)備的,筆者本人也只是菜鳥一只,第一課 建立您的第一個(gè)C 項(xiàng)目使用C 語言肯定要使用到C 編譯器,以便把寫好的C 程序編譯為機(jī)器碼,這樣單片機(jī)才能執(zhí)行編寫好的程序。KEIL uVISION2 是眾多單片機(jī)應(yīng)用開發(fā)軟件中優(yōu)秀的軟件之一,它支持眾多不同公司的MCS51 架構(gòu)的芯片,它集編輯,編譯,仿真等于一體,同時(shí)還支持,PLM,匯編和C 語言的程序設(shè)計(jì),它的界面和常用的微軟VC++的界面相似,界面友好,易學(xué)易用,在調(diào)試程序,軟件仿真方面也有很強(qiáng)大的功能。因此很多開發(fā)51 應(yīng)用的工程師或普通的單片機(jī)愛好者,都對(duì)它十分喜歡。以上簡單介紹了KEIL51 軟件,要使用KEIL51 軟件,必需先要安裝它。KEIL51 是一個(gè)商業(yè)的軟件,對(duì)于我們這些普通愛好者可以到KEIL 中國代理周立功公司的網(wǎng)站上下載一份能編譯2K 的DEMO 版軟件,基本可以滿足一般的個(gè)人學(xué)習(xí)和小型應(yīng)用的開發(fā)。(安裝的方法和普通軟件相當(dāng)這里就不做介紹了)安裝好后,您是不是迫不及待的想建立自己的第一個(gè)C 程序項(xiàng)目呢?下面就讓我們一起來建立一個(gè)小程序項(xiàng)目吧?;蛟S您手中還沒有一塊實(shí)驗(yàn)板,甚至沒有一塊單片機(jī),不過沒有關(guān)系我們可以通過KEIL 軟件仿真看到程序運(yùn)行的結(jié)果。首先當(dāng)然是運(yùn)行KEIL51 軟件。怎么打開?噢,天!那您要從頭學(xué)電腦了。呵呵,開個(gè)玩笑,這個(gè)問題我想讀者們也不會(huì)提的了:P。運(yùn)行幾秒后,出現(xiàn)如圖1-1 的屏幕。
標(biāo)簽: 單片機(jī)c語言 入門教程
上傳時(shí)間: 2014-01-23
上傳用戶:yyyyyyyyyy
PIC 單片機(jī)C 語言編程簡介用C 語言來開發(fā)單片機(jī)系統(tǒng)軟件最大的好處是編寫代碼效率高、軟件調(diào)試直觀、維護(hù)升級(jí)方便、代碼的重復(fù)利用率高、便于跨平臺(tái)的代碼移植等等,因此C 語言編程在單片機(jī)系統(tǒng)設(shè)計(jì)中已得到越來越廣泛的運(yùn)用。針對(duì)PIC 單片機(jī)的軟件開發(fā),同樣可以用C 語言實(shí)現(xiàn)。但在單片機(jī)上用C 語言寫程序和在PC 機(jī)上寫程序絕對(duì)不能簡單等同。現(xiàn)在的PC 機(jī)資源十分豐富,運(yùn)算能力強(qiáng)大,因此程序員在寫PC 機(jī)的應(yīng)用程序時(shí)幾乎不用關(guān)心編譯后的可執(zhí)行代碼在運(yùn)行過程中需要占用多少系統(tǒng)資源,也基本不用擔(dān)心運(yùn)行效率有多高。寫單片機(jī)的C 程序最關(guān)鍵的一點(diǎn)是單片機(jī)內(nèi)的資源非常有限,控制的實(shí)時(shí)性要求又很高,因此,如果沒有對(duì)單片機(jī)體系結(jié)構(gòu)和硬件資源作詳盡的了解,以筆者的愚見認(rèn)為是無法寫出高質(zhì)量實(shí)用的C 語言程序。這就是為什么前面所有章節(jié)中的的示范代碼全部用基礎(chǔ)的匯編指令實(shí)現(xiàn)的原因,希望籍此能使讀者對(duì)PIC 單片機(jī)的指令體系和硬件資源有深入了解,在這基礎(chǔ)之上再來討論C 語言編程,就有水到渠成的感覺。本書圍繞中檔系列PIC 單片機(jī)來展開討論,Microchip 公司自己沒有針對(duì)中低檔系列PIC單片機(jī)的C 語言編譯器,但很多專業(yè)的第三方公司有眾多支持PIC 單片機(jī)的C 語言編譯器提供,常見的有Hitech、CCS、IAR、Bytecraft 等公司。其中筆者最常用的是Hitech 公司的PICC 編譯器,它穩(wěn)定可靠,編譯生成的代碼效率高,在用PIC 單片機(jī)進(jìn)行系統(tǒng)設(shè)計(jì)和開發(fā)的工程師群體中得到廣泛認(rèn)可。其正式完全版軟件需要購置,但在其網(wǎng)站上有限時(shí)的試用版供用戶評(píng)估。另外,Hitech 公司針對(duì)廣大PIC 的業(yè)余愛好者和初學(xué)者還提供了完全免費(fèi)的學(xué)習(xí)版PICC-Lite 編譯器套件,它的使用方式和完全版相同,只是支持的PIC 單片機(jī)型號(hào)限制在PIC16F84、PIC16F877 和PIC16F628 等幾款。這幾款Flash 型的單片機(jī)因其所具備的豐富的片上資源而最適用于單片機(jī)學(xué)習(xí)入門,因此筆者建議感興趣的讀者可從PICC-Lite 入手掌握PIC 單片機(jī)的C 語言編程。
標(biāo)簽: pic 單片機(jī)c語言 教程
上傳時(shí)間: 2013-11-17
上傳用戶:15527161163
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1