資源描述:
《PIC的存儲(chǔ)器編程結(jié)構(gòu)和單片機(jī)C語(yǔ)言使用入門》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、PIC的存儲(chǔ)器編程結(jié)構(gòu)和單片機(jī)C語(yǔ)言使用入門PIC的存儲(chǔ)器編程結(jié)構(gòu)PIC16F877單片機(jī)內(nèi)部配置了較完善的多種存儲(chǔ)器:數(shù)據(jù)存儲(chǔ)器(RAM):FileRegisters程序存儲(chǔ)器(ROM):FLASH非易失性數(shù)據(jù)存儲(chǔ)器:EEPROM隨機(jī)數(shù)據(jù)存儲(chǔ)器(RAM)PIC單片機(jī)的數(shù)據(jù)存儲(chǔ)器很特別,在配置結(jié)構(gòu)上可分為通用寄存器和特殊功能寄存器(SFR)兩大類,前者給用戶存儲(chǔ)變量使用,而后者用來(lái)控制特定功能模塊(定時(shí),中斷模塊等等),是一種具有特殊目的的功能寄存器。16F877內(nèi)部RAM總的地址空間為368個(gè)單元,其中包括部分無(wú)效單元,但每一個(gè)有效單元均可以象寄存器一樣進(jìn)行操作.PIC單片機(jī)架構(gòu)文件寄存器
2、概念GeneralPurposeRegisters(RAM)OtherSFRsPORTAFSRSTATUSPCLTMR0INDFWRegisterALURAM被看作是一組通用的寄存器.周邊模塊的寄存器都在數(shù)據(jù)存儲(chǔ)器中.RAM分為四個(gè)體:BANK0;BANK1;BANK2;BANK3.(12頁(yè)-圖1.6)大多數(shù)特殊寄存器在數(shù)據(jù)存儲(chǔ)器中特例非易失性數(shù)據(jù)存儲(chǔ)器掉電保持?jǐn)?shù)據(jù)存儲(chǔ)器:EEPROM(256×8bits=Bytes)ElectricEraseProgrammingROM2562.2.1程序存儲(chǔ)器(ROM)F877/F877A單片機(jī)內(nèi)部配置了8K×l4位的閃爍(FLASH)程序存儲(chǔ)器,可
3、以很方便進(jìn)行在線擦除和燒寫,壽命可達(dá)10萬(wàn)次以上(F877A)。非常適合單片機(jī)教學(xué)實(shí)驗(yàn)和科研開(kāi)發(fā)。程序存儲(chǔ)器結(jié)構(gòu)P13圖1-7匯編指令簡(jiǎn)介用匯編實(shí)現(xiàn)加法,用匯編實(shí)現(xiàn)跳轉(zhuǎn)就行MOVLWMOVWFADDWFBTFSCSTATUS,0GOTONOT_ZEROGOTO$提問(wèn)時(shí)間請(qǐng)?zhí)釂?wèn)為什么用C語(yǔ)言?單片機(jī)ROM/RAM越來(lái)越大。群眾基礎(chǔ)好,不需要了解基層工作。實(shí)現(xiàn)模塊化編程,代碼效率較高。便于移植,大規(guī)模項(xiàng)目開(kāi)發(fā),管理方便.ASMC常見(jiàn)PIC的C編譯器簡(jiǎn)介HITECH-CV9.50forPIC,C51,ARM,AVRCCS-CV3.241forPICPIC-C16MEforPIC16PIC-C18v2
4、.40.01forPIC18IAR-CIDEforPIC,C51,ARM,AVRHITECH-C的安裝步驟安裝picc8.05-pl.exe和mplabplugin運(yùn)行CompilerActivation運(yùn)行HtKeyGen.exe進(jìn)行注冊(cè)在MPLAB中用ProjectWizard在languagetoolsuite中選擇:HI-TECHPICCToolsuiteHI-TECHC快速入門找?guī)椭募蚐amples根據(jù)例程學(xué)習(xí)之如何聲明變量?如何聲明函數(shù)?如何聲明中斷?C語(yǔ)言基本框架#include“pic.h”charfunction2(chara);chargloblevar=0;vo
5、idmain(void){chari=0;TRISD=0x00;while(1){for(i=0;i<=255;i++){PORTD=I;}}}//必需加的頭文件//自定義函數(shù)聲明//主函數(shù)聲明//函數(shù)內(nèi)部變量聲明//自定義全局變量聲明//直接使用寄存器名稱訪問(wèn)//主函數(shù)內(nèi)必須是個(gè)死循環(huán)pic.h頭文件(C:HT-PICinclude)包含各種型號(hào)的頭文件相應(yīng)頭文件內(nèi)包含:特殊寄存器定義常量定義配置字定義等等pic1687x.h變量聲明chari=0;//必須初始化,注意全局變量聲明位置;char為8位,int為16位;bitflag=0;//位變量必須為全局量volatile修飾,不允許
6、優(yōu)化的變量const,默認(rèn)被定義在ROM里的常量C語(yǔ)言源碼級(jí)調(diào)試與TurboC類似!?單步跟蹤可以查看變量設(shè)置斷點(diǎn)編程限制不要用遞歸。不要用大數(shù)組。網(wǎng)上資源www.microchipc.comwww.pic16.comwww.microhcip.comwww.htsoft.comwww.iar.com