P89V51RD2具有IAP(在應(yīng)用中編程)功能,用戶通過(guò)在應(yīng)用程序中調(diào)用IAP子程序,可實(shí)現(xiàn)有選擇的對(duì)FLASH塊進(jìn)行擦除和編程。P89V51RD2的bootrom區(qū)為0000H~1FFFH,為避免和用戶的程序代碼發(fā)生沖突,調(diào)用IAP功能的代碼要從地址2000H以后開(kāi)始存放。以下講述在Keil μVision2下用C語(yǔ)言和匯編語(yǔ)言混編的辦法實(shí)現(xiàn)IAP調(diào)用的方法。
上傳時(shí)間: 2013-10-08
上傳用戶:一諾88
MSP430系列單片機(jī)C語(yǔ)言程序設(shè)計(jì)與開(kāi)發(fā)MSP430系列是一個(gè)具有明顯技術(shù)特色的單片機(jī)品種。關(guān)于它的硬件特性及匯編語(yǔ)言程序設(shè)計(jì)已在《MSP430系列超低功耗16位單片機(jī)的原理與應(yīng)用》及《MSP430系列 FLASH型超低功耗16位單片機(jī)》等書中作了全面介紹。《MSP430系列單片機(jī)C語(yǔ)言程序設(shè)計(jì)與開(kāi)發(fā)》介紹IAR公司為MSP430系列單片機(jī)配備的C程序設(shè)計(jì)語(yǔ)言C430。書中敘述了C語(yǔ)言的基本概念、C430的擴(kuò)展特性及C庫(kù)函數(shù);對(duì)C430的集成開(kāi)發(fā)環(huán)境的使用及出錯(cuò)信息作了詳盡的說(shuō)明;并以MSP430F149為例,對(duì)各種應(yīng)用問(wèn)題及外圍模塊操作提供了典型的C程序例程,供讀者在今后的C430程序設(shè)計(jì)中參考。 《MSP430系列單片機(jī)C語(yǔ)言程序設(shè)計(jì)與開(kāi)發(fā)》可以作為高等院校計(jì)算機(jī)、自動(dòng)化及電子技術(shù)類專業(yè)的教學(xué)參考書,也可作為工程技術(shù)人員設(shè)計(jì)開(kāi)發(fā)時(shí)的技術(shù)資料。MSP430系列超低功耗16位單片機(jī)的原理與應(yīng)用目錄MSP430系列單片機(jī)C語(yǔ)言程序設(shè)計(jì)與開(kāi)發(fā) 目錄 第1章 C語(yǔ)言基本知識(shí)1.1 標(biāo)識(shí)符與關(guān)鍵字11.1.1 標(biāo)識(shí)符11.1.2 關(guān)鍵字11.2 數(shù)據(jù)基本類型21.2.1 整型數(shù)據(jù)21.2.2 實(shí)型數(shù)據(jù)31.2.3 字符型數(shù)據(jù)41.2.4 各種數(shù)據(jù)轉(zhuǎn)換關(guān)系61.3 C語(yǔ)言的運(yùn)算符71.3.1 算術(shù)運(yùn)算符71.3.2 關(guān)系運(yùn)算符和邏輯運(yùn)算符71.3.3 賦值運(yùn)算符81.3.4 逗號(hào)運(yùn)算符81.3.5 ? 與 :運(yùn)算符81.3.6 強(qiáng)制轉(zhuǎn)換運(yùn)算符91.3.7 各種運(yùn)算符優(yōu)先級(jí)列表91.4 程序設(shè)計(jì)的三種基本結(jié)構(gòu)101.4.1 語(yǔ)句的概念101.4.2 順序結(jié)構(gòu)111.4.3 選擇結(jié)構(gòu)121.4.4 循環(huán)結(jié)構(gòu)141.5 函數(shù)181.5.1 函數(shù)定義181.5.2 局部變量與全局變量191.5.3 形式參數(shù)與實(shí)際參數(shù)201.5.4 函數(shù)調(diào)用方式201.5.5 函數(shù)嵌套調(diào)用211.5.6 變量的存儲(chǔ)類別221.5.7 內(nèi)部函數(shù)和外部函數(shù)231.6 數(shù)組231.6.1 一維數(shù)組241.6.2 多維數(shù)組241.6.3 字符數(shù)組261.7 指針271.7.1 指針與地址的概念271.7.2 指針變量的定義281.7.3 指針變量的引用281.7.4 數(shù)組的指針281.7.5 函數(shù)的指針301.7.6 指針數(shù)組311.8 結(jié)構(gòu)和聯(lián)合321.8.1 結(jié)構(gòu)定義321.8.2 結(jié)構(gòu)類型變量的定義331.8.3 結(jié)構(gòu)類型變量的初始化341.8.4 結(jié)構(gòu)類型變量的引用341.8.5 聯(lián)合341.9 枚舉361.9.1 枚舉的定義361.9.2 枚舉元素的值371.9. 3 枚舉變量的使用371.10 類型定義381.10.1 類型定義的形式381.10.2 類型定義的使用381.11 位運(yùn)算391.11.1 位運(yùn)算符391.11.2 位域401.12 預(yù)處理功能411.12.1 簡(jiǎn)單宏定義和帶參數(shù)宏定義411.12.2 文件包含431.12.3 條件編譯命令44第2章 C430--MSP430系列的C語(yǔ)言2.1 MSP430系列的C語(yǔ)言452.1.1 C430概述452.1.2 C430程序設(shè)計(jì)工作流程462.1.3 開(kāi)始462.1.4 C430程序生成472.2 C430的數(shù)據(jù)表達(dá)482.2.1 數(shù)據(jù)類型482.2.2 編碼效率502.3 C430的配置512.3.1 引言512.3. 2 存儲(chǔ)器分配522.3.3 堆棧體積522.3.4 輸入輸出522.3.5 寄存器的訪問(wèn)542.3.6 堆體積542.3.7 初始化54第3章 C430的開(kāi)發(fā)調(diào)試環(huán)境3.1 引言563.1.1 Workbench特性563.1.2 Workbench的內(nèi)嵌編輯器特性563.1.3 C編譯器特性573.1. 4 匯編器特性573.1.5 連接器特性583.1.6 庫(kù)管理器特性583.1.7 C?SPY調(diào)試器特性593.2 Workbench概述593.2.1 項(xiàng)目管理模式593.2.2 選項(xiàng)設(shè)置603.2.3 建立項(xiàng)目603.2.4 測(cè)試代碼613.2.5 樣本應(yīng)用程序613.3 Workbench的操作623.3.1 開(kāi)始633.3.2 編譯項(xiàng)目683.3.3 連接項(xiàng)目693.3.4 調(diào)試項(xiàng)目713.3.5 使用Make命令733.4 Workbench的功能匯總753.4.1 Workbench的窗口753.4.2 Workbench的菜單功能813.5 Workbench的內(nèi)嵌編輯器993.5.1 內(nèi)嵌編輯器操作993.5.2 編輯鍵說(shuō)明993.6 C?SPY概述1013.6.1 C?SPY的C語(yǔ)言級(jí)和匯編語(yǔ)言級(jí)調(diào)試1013.6.2 程序的執(zhí)行1023.7 C?SPY的操作1033.7.1 程序生成1033.7.2 編譯與連接1033.7.3 C?SPY運(yùn)行1033.7.4 C語(yǔ)言級(jí)調(diào)試1043.7.5 匯編級(jí)調(diào)試1113.8 C?SPY的功能匯總1133.8.1 C?SPY的窗口1133.8.2 C?SPY的菜單命令功能1203.9 C?SPY的表達(dá)式與宏1323.9.1 匯編語(yǔ)言表達(dá)式1323.9.2 C語(yǔ)言表達(dá)式1333.9.3 C?SPY宏1353.9.4 C?SPY的設(shè)置宏1373.9.5 C?SPY的系統(tǒng)宏137 第4章 C430程序設(shè)計(jì)實(shí)例4.1 程序設(shè)計(jì)與調(diào)試環(huán)境1434.1.1 程序設(shè)計(jì)調(diào)試集成環(huán)境1434.1.2 設(shè)備連接1444.1.3 ProF149實(shí)驗(yàn)系統(tǒng)1444.2 數(shù)值計(jì)算1454.2.1 C語(yǔ)言表達(dá)式1454.2.2 利用MPY實(shí)現(xiàn)運(yùn)算1464.3 循環(huán)結(jié)構(gòu)1474.4 選擇結(jié)構(gòu)1484.5 SFR訪問(wèn)1494.6 RAM訪問(wèn)1504.7 FLASH訪問(wèn)1514.8 WDT操作1534.8. 1 WDT使程序自動(dòng)復(fù)位1534.8.2 程序?qū)ATCHDOG計(jì)數(shù)溢出的控制1544.8.3 WDT的定時(shí)器功能1554.9 Timer操作1554.9.1 用Timer產(chǎn)生時(shí)鐘信號(hào)1554.9.2 用Timer檢測(cè)脈沖寬度1564.10 UART操作1574.10.1 點(diǎn)對(duì)點(diǎn)通信1574.10.2 點(diǎn)對(duì)多點(diǎn)通信1604.11 SPI操作1634.12 比較器操作1654.13 ADC12操作1674.13.1 單通道單次轉(zhuǎn)換1674.13.2 序列通道多次轉(zhuǎn)換1684.14 時(shí)鐘模塊操作1704.15 中斷服務(wù)程序1714.16 省電工作模式1754.17 調(diào)用匯編語(yǔ)言子程序1764.17.1 程序舉例1764.17.2 生成C程序調(diào)用的匯編子程序177第5章 C430的擴(kuò)展特性5.1 C430的語(yǔ)言擴(kuò)展概述1785.1.1 擴(kuò)展關(guān)鍵字1785.1.2 #pragma編譯命令1785.1.3 預(yù)定義符號(hào)1795.1.4 本征函數(shù)1795.1.5 其他擴(kuò)展特性1795.2 C430的關(guān)鍵字?jǐn)U展1795.2.1 interrupt1805.2.2 monitor1805.2.3 no_init1815.2.4 sfrb1815.2.5 sfrw1825.3 C430的 #pragma編譯命令1825.3.1 bitfields=default1825.3.2 bitfields=reversed1825.3.3 codeseg1835.3.4 function=default1835.3.5 function=interrupt1845.3.6 function=monitor1845.3.7 language=default1845.3.8 language=extended1845.3.9 memory=constseg1855.3.10 memory=dataseg1855.3.11 memory=default1855.3.12 memory=no_init1865.3.13 warnings=default1865.3.14 warnings=off1865.3.15 warnings=on1865.4 C430的預(yù)定義符號(hào)1865.4.1 DATE1875.4.2 FILE1875.4.3 IAR_SYSTEMS_ICC1875.4.4 LINE1875.4.5 STDC1875.4.6 TID1875.4.7 TIME1885.4.8 VER1885.5 C430的本征函數(shù)1885.5.1 _args$1885.5.2 _argt$1895.5.3 _BIC_SR1895.5.4 _BIS_SR1905.5.5 _DINT1905.5.6 _EINT1905.5.7 _NOP1905.5.8 _OPC1905.6 C430的匯編語(yǔ)言接口1915.6.1 創(chuàng)建匯編子程序框架1915.6.2 調(diào)用規(guī)則1915.6.3 C程序調(diào)用匯編子程序1935.7 C430的段定義1935.7.1 存儲(chǔ)器分布與段定義1945.7.2 CCSTR段1945.7.3 CDATA0段1945.7.4 CODE段1955.7.5 CONST1955.7.6 CSTACK1955.7.7 CSTR1955.7.8 ECSTR1955.7.9 IDATA01965.7.10 INTVEC1965.7.11 NO_INIT1965.7.12 UDATA0196第6章 C430的庫(kù)函數(shù)6.1 引言1976.1.1 庫(kù)模塊文件1976.1.2 頭文件1976.1.3 庫(kù)定義匯總1976.2C 庫(kù)函數(shù)參考2046.2.1 C庫(kù)函數(shù)的說(shuō)明格式2046.2.2 C庫(kù)函數(shù)說(shuō)明204第7章 C430編譯器的診斷消息7.1 編譯診斷消息的類型2307.2 編譯出錯(cuò)消息2317.3 編譯警告消息243附錄 AMSP430系列FLASH型芯片資料248附錄 BProF149實(shí)驗(yàn)系統(tǒng)251附錄 CMSP430x14x.H文件253附錄 DIAR MSP430 C語(yǔ)言產(chǎn)品介紹275
標(biāo)簽: MSP 430 C語(yǔ)言 單片機(jī)
上傳時(shí)間: 2014-05-05
上傳用戶:253189838
單片機(jī)c語(yǔ)言輕松入門:隨著單片機(jī)開(kāi)發(fā)技術(shù)的不斷發(fā)展,目前已有越來(lái)越多的人從普遍使用匯編語(yǔ)言到逐漸使用高級(jí)語(yǔ)言開(kāi)發(fā),其中主要是以C 語(yǔ)言為主,市場(chǎng)上幾種常見(jiàn)的單片機(jī)均有其C 語(yǔ)言開(kāi)發(fā)環(huán)境。這里以最為流行的80C51 單片機(jī)為例來(lái)學(xué)習(xí)單片機(jī)的C 語(yǔ)言編程技術(shù)。本書共分六章,每章一個(gè)專題,以一些待完成的任務(wù)為中心,圍繞該任務(wù)介紹 C 語(yǔ)言的一些知識(shí),每一個(gè)任務(wù)都是可以獨(dú)立完成的,每完成一個(gè)任務(wù),都能掌握一定的知識(shí),等到所有的任務(wù)都完成后,即可以完成C 語(yǔ)言的入門工作。
標(biāo)簽: 單片機(jī)c語(yǔ)言
上傳時(shí)間: 2013-11-18
上傳用戶:zhqzal1014
單片機(jī)C語(yǔ)言應(yīng)用程序設(shè)計(jì)針對(duì)目前最通用的單片機(jī)8051和最流行的程序設(shè)計(jì)語(yǔ)言——C語(yǔ)言,以KEII。公司8051單片機(jī)開(kāi)發(fā)套件講解單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì)。該套件的編譯器有支持經(jīng)典8051及8051派生產(chǎn)品的版本,統(tǒng)稱為Cx51。Windows集成開(kāi)發(fā)環(huán)境μVision2把μVisionl用的模擬調(diào)試器dScope與集成環(huán)境無(wú)縫結(jié)合起來(lái),使用更方便,支持的單片機(jī)品種更多。 本書的特點(diǎn)是取材于原文資料,總結(jié)實(shí)際教學(xué)和應(yīng)用經(jīng)驗(yàn),實(shí)例較多,實(shí)用性強(qiáng)。本書中C語(yǔ)言是針對(duì)8051特有結(jié)構(gòu)描述的,這樣,即使無(wú)編程基礎(chǔ)的人,也可通過(guò)本書學(xué)習(xí)單片機(jī)的c編程。單片機(jī)C語(yǔ)言應(yīng)用程序設(shè)計(jì)目錄第1章 單片機(jī)基礎(chǔ)知識(shí) 1.1 8051單片機(jī)的特點(diǎn) 1.2 8051的內(nèi)部知識(shí) 1.3 8051的系統(tǒng)擴(kuò)展 習(xí)題一第2章 C與8051 2.1 8051的編程語(yǔ)言 2.2 Cx51編譯器 2.3 KEIL 8051開(kāi)發(fā)工具 2.4 KEIL Cx51編程實(shí)例 2.5 Cx51程序結(jié)構(gòu) 習(xí)題二第3章 Cx51 數(shù)據(jù)與運(yùn)算 3.1 數(shù)據(jù)與數(shù)據(jù)類型 3.2 常量與變量 3.3 Cx51數(shù)據(jù)存儲(chǔ)類型與8051存儲(chǔ)器結(jié)構(gòu) 3.4 8051特殊功能寄存器(SFR)及其Cx51定義 3.5 8051并行接口及其Cx51定義 3.6 位變量(BIT)及其Cx51定義 3.7 Cx51運(yùn)算符、表達(dá)式及其規(guī)則 習(xí)題三第4章 Cx51 流程控制語(yǔ)句 4.1 C語(yǔ)言程序的基本結(jié)構(gòu)及其流程圖 4.2 選擇語(yǔ)句 4.3 循環(huán)語(yǔ)句 習(xí)題四第5章 Cx51 構(gòu)造數(shù)據(jù)類型 5.1 數(shù)組 5.2 指針 5.3 結(jié)構(gòu) 5.4 共用體 5.5 枚舉 習(xí)題五第6章 Cx51 函數(shù)第7章 模塊化程序設(shè)計(jì)第8章 8051內(nèi)部資源的C編輯第9章 8051擴(kuò)展資源的C編輯第10章 8051輸出控制的C編程第11章 8051數(shù)據(jù)采集的C編程第12章 8051機(jī)間通信的C編程第13章 8051人機(jī)交互的C編程附錄A μVision2集成開(kāi)發(fā)環(huán)境使用附錄B KEIL Cx51 上機(jī)制南
標(biāo)簽: 單片機(jī) C語(yǔ)言 應(yīng)用程序
上傳時(shí)間: 2013-10-21
上傳用戶:行者Xin
針對(duì)無(wú)位置傳感器無(wú)刷直流電機(jī)的位置檢測(cè)問(wèn)題,本文應(yīng)用單片機(jī)成功地實(shí)現(xiàn)了一種軟件檢測(cè)方法,并給出了實(shí)測(cè)波形加以驗(yàn)證。關(guān)鍵詞: 無(wú)刷直流電機(jī) 無(wú)傳感器 位置檢測(cè)Abstract: As to the position-detecting problem of sensorless brushless DC motor, a softwarerealization by microcomputer is proposed successfully in the paper. Experiment results are also presented to verify the method.Keywords: brushless DC motor, sensorless, position detecting
標(biāo)簽: BLDCM 無(wú)傳感器 位置檢測(cè) 單片機(jī)軟件
上傳時(shí)間: 2013-11-01
上傳用戶:aappkkee
The XA-S3 is a member of Philips Semiconductors’ XA (eXtended Architecture) family of high performance 16-bit single-chip Microcontrollers. The XA-S3 combines many powerful peripherals on one chip. Therefore, it is suited for general multipurpose high performance embedded control functions.One of the on-chip peripherals is the I2C bus interface. This report describes worked-out driver software (written in C) to program / use the I2C interface of the XA-S3. The driver software, together with a demo program and interface software routines offer the user a quick start in writing a complete I2C - XAS3 system application.
上傳時(shí)間: 2013-11-10
上傳用戶:liaofamous
串行編程器源程序(Keil C語(yǔ)言)//FID=01:AT89C2051系列編程器//實(shí)現(xiàn)編程的讀,寫,擦等細(xì)節(jié)//AT89C2051的特殊處:給XTAL一個(gè)脈沖,地址計(jì)數(shù)加1;P1的引腳排列與AT89C51相反,需要用函數(shù)轉(zhuǎn)換#include <e51pro.h> #define C2051_P3_7 P1_0#define C2051_P1 P0//注意引腳排列相反#define C2051_P3_0 P1_1#define C2051_P3_1 P1_2#define C2051_XTAL P1_4#define C2051_P3_2 P1_5#define C2051_P3_3 P1_6#define C2051_P3_4 P1_7#define C2051_P3_5 P3_5 void InitPro01()//編程前的準(zhǔn)備工作{ SetVpp0V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=0; Delay_ms(20); nAddress=0x0000; SetVpp5V();} void ProOver01()//編程結(jié)束后的工作,設(shè)置合適的引腳電平{ SetVpp5V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=1;} BYTE GetData()//從P0口獲得數(shù)據(jù){ B_0=P0_7; B_1=P0_6; B_2=P0_5; B_3=P0_4; B_4=P0_3; B_5=P0_2; B_6=P0_1; B_7=P0_0; return B;} void SetData(BYTE DataByte)//轉(zhuǎn)換并設(shè)置P0口的數(shù)據(jù){ B=DataByte; P0_0=B_7; P0_1=B_6; P0_2=B_5; P0_3=B_4; P0_4=B_3; P0_5=B_2; P0_6=B_1; P0_7=B_0;} void ReadSign01()//讀特征字{ InitPro01(); Delay_ms(1);//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(20); ComBuf[2]=GetData(); C2051_XTAL=1; C2051_XTAL=0; Delay_us(20); ComBuf[3]=GetData(); ComBuf[4]=0xff;//----------------------------------------------------------------------------- ProOver01();} void Erase01()//擦除器件{ InitPro01();//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) C2051_P3_3=1; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(1); SetVpp12V(); Delay_ms(1); C2051_P3_2=0; Delay_ms(10); C2051_P3_2=1; Delay_ms(1);//----------------------------------------------------------------------------- ProOver01();} BOOL Write01(BYTE Data)//寫器件{//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) //寫一個(gè)單元 C2051_P3_3=0; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; SetData(Data); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); Delay_us(20); C2051_P3_4=0; Delay_ms(2); nTimeOut=0; P0=0xff; nTimeOut=0; while(!GetData()==Data)//效驗(yàn):循環(huán)讀,直到讀出與寫入的數(shù)相同 { nTimeOut++; if(nTimeOut>1000)//超時(shí)了 { return 0; } } C2051_XTAL=1; C2051_XTAL=0;//一個(gè)脈沖指向下一個(gè)單元//----------------------------------------------------------------------------- return 1;} BYTE Read01()//讀器件{ BYTE Data;//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) //讀一個(gè)單元 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=1; C2051_P3_7=1; Data=GetData(); C2051_XTAL=1; C2051_XTAL=0;//一個(gè)脈沖指向下一個(gè)單元//----------------------------------------------------------------------------- return Data;} void Lock01()//寫鎖定位{ InitPro01();//先設(shè)置成編程狀態(tài)//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號(hào) if(ComBuf[2]>=1)//ComBuf[2]為鎖定位 { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); } if(ComBuf[2]>=2) { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=0; C2051_P3_7=0; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); }//----------------------------------------------------------------------------- ProOver01();} void PreparePro01()//設(shè)置pw中的函數(shù)指針,讓主程序可以調(diào)用上面的函數(shù){ pw.fpInitPro=InitPro01; pw.fpReadSign=ReadSign01; pw.fpErase=Erase01; pw.fpWrite=Write01; pw.fpRead=Read01; pw.fpLock=Lock01; pw.fpProOver=ProOver01;}
上傳時(shí)間: 2013-11-12
上傳用戶:gut1234567
用C 語(yǔ)言來(lái)開(kāi)發(fā)單片機(jī)系統(tǒng)軟件最大的好處是編寫代碼效率高、軟件調(diào)試直觀、維護(hù)升級(jí)方便、代碼的重復(fù)利用率高、便于跨平臺(tái)的代碼移植等等,因此C 語(yǔ)言編程在單片機(jī)系統(tǒng)設(shè)計(jì)中已得到越來(lái)越廣泛的運(yùn)用。針對(duì)PIC 單片機(jī)的軟件開(kāi)發(fā),同樣可以用C 語(yǔ)言實(shí)現(xiàn)。但在單片機(jī)上用C 語(yǔ)言寫程序和在PC 機(jī)上寫程序絕對(duì)不能簡(jiǎn)單等同。現(xiàn)在的PC 機(jī)資源十分豐富,運(yùn)算能力強(qiáng)大,因此程序員在寫PC 機(jī)的應(yīng)用程序時(shí)幾乎不用關(guān)心編譯后的可執(zhí)行代碼在運(yùn)行過(guò)程中需要占用多少系統(tǒng)資源,也基本不用擔(dān)心運(yùn)行效率有多高。寫單片機(jī)的C 程序最關(guān)鍵的一點(diǎn)是單片機(jī)內(nèi)的資源非常有限,控制的實(shí)時(shí)性要求又很高,因此,如果沒(méi)有對(duì)單片機(jī)體系結(jié)構(gòu)和硬件資源作詳盡的了解,以筆者的愚見(jiàn)認(rèn)為是無(wú)法寫出高質(zhì)量實(shí)用的C 語(yǔ)言程序。這就是為什么前面所有章節(jié)中的的示范代碼全部用基礎(chǔ)的匯編指令實(shí)現(xiàn)的原因,希望籍此能使讀者對(duì)PIC 單片機(jī)的指令體系和硬件資源有深入了解,在這基礎(chǔ)之上再來(lái)討論C 語(yǔ)言編程,就有水到渠成的感覺(jué)。本書圍繞中檔系列PIC 單片機(jī)來(lái)展開(kāi)討論,Microchip 公司自己沒(méi)有針對(duì)中低檔系列PIC單片機(jī)的C 語(yǔ)言編譯器,但很多專業(yè)的第三方公司有眾多支持PIC 單片機(jī)的C 語(yǔ)言編譯器提供,常見(jiàn)的有Hitech、CCS、IAR、Bytecraft 等公司。其中筆者最常用的是Hitech 公司的PICC編譯器,它穩(wěn)定可靠,編譯生成的代碼效率高,在用PIC 單片機(jī)進(jìn)行系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)的工程師群體中得到廣泛認(rèn)可。其正式完全版軟件需要購(gòu)置,但在其網(wǎng)站上有限時(shí)的試用版供用戶評(píng)估。另外,Hitech 公司針對(duì)廣大PIC 的業(yè)余愛(ài)好者和初學(xué)者還提供了完全免費(fèi)的學(xué)習(xí)版PICC-Lite 編譯器套件,它的使用方式和完全版相同,只是支持的PIC 單片機(jī)型號(hào)限制在PIC16F84、PIC16F877 和PIC16F628 等幾款。這幾款Flash 型的單片機(jī)因其所具備的豐富的片上資源而最適用于單片機(jī)學(xué)習(xí)入門,因此筆者建議感興趣的讀者可從PICC-Lite 入手掌握PIC 單片機(jī)的C 語(yǔ)言編程。
上傳時(shí)間: 2013-11-17
上傳用戶:aa54
HI-TECH PICC C 的使用說(shuō)明. 這里我們只講述了PICC C 與標(biāo)準(zhǔn)C 的不同,它不是一本C 語(yǔ)言的教程, 并且我們假定你有C 語(yǔ)言的基礎(chǔ). 為了對(duì)PIC 單片機(jī)有更好的支持,PICC 在標(biāo)準(zhǔn)C 的基礎(chǔ)上作了一些擴(kuò)充: 定義I/O 函數(shù),以便在你的硬件系統(tǒng)中使用<stdio.h>中定義的函數(shù)。 用C 語(yǔ)言編寫中斷服務(wù)程序 用C 語(yǔ)言編寫I/O 操作程序 C 語(yǔ)言與匯編語(yǔ)言間的接口1-1 與標(biāo)準(zhǔn)C 的不同PICC 只在一處與標(biāo)準(zhǔn)C 不同:函數(shù)的重入。因?yàn)镻IC 單片機(jī)的寄存器及堆棧有限,所以PICC 不支持可重入函數(shù)。1-2 支持的PIC 芯片PICC 支持很多PIC 單片機(jī),支持PIC 單片機(jī)的類型在LIB 目錄下的picinfo.ini文件中有定義。1-3 PICC 包含一些標(biāo)準(zhǔn)庫(kù)1-4 PICC 編譯器可以輸出一些格式的目標(biāo)文件,缺省設(shè)置為輸出Bytecraft 的'COD'格式和 Intel 的'HEX'格式。你可以用表1-1 中的命令來(lái)指定輸出格式。
標(biāo)簽: HI-TECH PICC 使用說(shuō)明
上傳時(shí)間: 2013-10-10
上傳用戶:781354052
U盤IC1114的電路圖和C語(yǔ)言源程序
上傳時(shí)間: 2013-12-17
上傳用戶:hanli8870
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1